Repository

PERSONAL PROJECTS btn0up
  TVMiddleware
   TVMiddleware is a media service platform which provides variety of services including video/audio broadcast, interactive data transaction, photo album and Java gaming.  Because of its flexibility and modulization, TVMiddleware is easy to add customized modules (services). For instance, karaoke and video conference services can be plugged in the Servicemanager. It won’t take lots of effort and time to change from a music box to a electric photo album or IPTV. 
TVMiddleware is constructed based on open source, jamvm, GNU classpath and directfb.  There are three parts in TVMiddleware majorly.  From up to down, Application layer is about service control/UI which directly interactive with users via input like remote control or keyboard (directfb has touch-screen input interface).   There are two types of application running on the stack:  java-base application (ex. EPG.class, gallery.class) and ASCII-format script (radio.xml) which feeds into parsing engine.  Logical data process resides in Middleware stack.  This layer is the core of TVMiddleware and consisted in modules: ServiceManager, Utility, classLoader, parsing engine, widget and other component modules etc.,  Parsing engine is used to parse UI scripts (XML) and link to widget package(changButton, changPlayer, changGrid etc.,) to position proper UI components on screen.  This functionality associates with Authoring tool. 
Users can customize their load applications to create personal channels/services.  Abstraction layer is more related to OS independent code.  This layer defines API for upper stack and implements lower event-driven codes/drivers.  Most codes in abstraction layer communicates with middleware stack via JNI.

[ Sample code 1 | 2 | 3 ]

  Authoring tool  
  Authoring tool is a development kit of loadable applications for TVMiddleware.  It creates a script (XML format) which includes components, attributes and hierarchic structure according to users compose.  Once the parsing engine in TVMiddleware reads this script, it starts to parse the content and set position and data of components on screen as described. Because of XML format, the engine links widget package and establishes hierarchic structure of widget elements.  The design/parsing concept comes from rhino JavaScript engine.  Example:
<TVML backgroundimage="http://10.0.0.15/Images/bg.jpg">
<CHANGLIST left="0" top="75" width="520" height="560" items="6" datasource="http://10.0.0.15/data/fun_main.xml"
normal_bgimage="http://10.0.0.15/Images/btn_up.png;false"
focused_bgimage="http://10.0.0.15/Images/btn_down.png;false" alpha="0"
horizontal_padding="0" text_alignment="middle" focused_fontcolor="255,0,20">
</CHANGLIST>
<CHANGBOARD left="270" top="15" width="330" height="230" start="true"
text_alignment="left" fontcolor="10,10,10">
FUN99 - Welcome to my personal channel.
Watch my art work and tell me what you think.
</CHANGBOARD>
<CHANGPLAYER left="250" top="275" width="360" height="260" src="rtp://172.168.0.256/Video/myart.mpg">
</CHANGPLAYER>
</TVML>

[ Source code ]


RESOURCE/TOOLS btn0up
 
  SoftOC   CTP
   pietty 3.27 Cygwin
   TeraTerm   DevTerm led_module.c  led_module.h
   USB to rs232 serial driver   VMWare
   Linux Device Driver 3e Linux socket programming
     Source Insight InterProcess Communication (IPC)
     IXIA I   Tandberg Catcher [VNCrypt]
     Mg-soft 8.0   UltraEdit 15.10
   Minerva  [ source ] [ doc ]  
   

 


DOCUMENTS btn0up

 

  CDSM upgrade   CFE (broadcom bootloader)
   Mounting JFFS2 Filesystem in RAM (MTD subsystem) OpenCable Architecture
   Video Codec Design ARM Multi-ICE User guide
   SI and EPG ASUS 6400 Datashit/Schematics
    PMP IP STB developing environment (Chinese)
    JMF Debugging/tracing pthread (notes)
RNG-218 boot process ATP environment
SDV Management BSE for signing app