DVBZap Project Overview Documentation [2] [3] Sitemap

dvbszap-combo-applet

The dvbszap-combo-applet is a port of the corresponding DvbSZap Python Applet. Atleast it is not vulnerable to a "killall python" call. The actual reasoning was that I had some problems with controlling the child processes (I was simply grepping a "ps" output in the python variant). The latest version even reacts to the mouse scroll buttons while hovering over the combobox channel list.

Actually, any real functionality should be obvious. The problem is only about the option files. The option file is named ".szap/options" and it has a simple line based format. Mine looks like this:

omment=--
viewer_prog=xawtv
viewer_args=-geometry 320x240-5-35 -display :0.1
tuner_prog=szap
tuner_args=-r -c /my/.szap/0/channels.conf
szap_prog=/my/cvs/dvb-apps/util/szap/szap
channelfile=/my/.szap/0/channels.alias
channelfile=/my/.szap/0/channels.conf

The reason for viewer_prog / tuner_prog dates back to the python applet which was "grepping" the site-wide process list for these items. In the pure C variant the viewer_prog/viewer_args are just combined and used as the command line. However, I still want to keep compatibility with the pygtk applet.

That leaves us with the channelfiles. Actually you are allowed to have a number of channel files. The reason is just the difference between an "autogenerated" channel.conf file as coming out of "dvbscan" and some manually edited channelfiles. At first I was using a subset of the generated files with the major channels being given its own entry. That "major channels" was listed as the first channelfile - so that they would be set effectivly at the top of the combobox select list.

However, if a channel would move its transponder frequencies then one would need to re-edit the "majors" channels.conf. So instead I came up with the idea of creating a channels.alias file. The applet will see that alias name and resolve the real "szap" channel - only that real channel is handed down as a name to the "szap" call in the background. My channels.alias file (for Astra) looks like this:

ARD "Das Erste"
ZDF "ZDF"
RTL "RTL Television"
RTL2 "RTL2"
VOX "VOX"
Sat1 "SAT.1"
PRO7 "ProSieben"
K1 "KABEL1"
3sat "3sat"
VIVA "VIVA"
VIVA2 "VIVA PLUS"
ZIK (F) "ZIK/XXL"
MTV2 "MTV2 Pop Channel"
MTV "MTV Central"
CNN "CNN Int."
ntv "n-tv"
N24 "N24"
ARD2 "EinsExtra"
ARD3 "EinsFestival"
ARD4 "EinsMuXx"
ZDF2 "ZDFinfokanal"
ZDF3 "ZDFdokukanal"
ZDF4 "ZDFtheaterkanal"
Arte "ARTE"
TerraNova "TERRA NOVA"
BBC "BBC WORLD"
DSF "DSF"
Eurosport "Eurosport"
MDR "MDR FERNSEHEN"
rbb "rbb Berlin"
NDR "NDR FS HH"
BR "Bayerisches FS"
BRa "BR-alpha"
HR "hr-fernsehen"
SR "SR Fernsehen"
WDR "WDR Köln"
SW "SÜDWEST BW"
TVB "TV.BERLIN"

If you wonder why there are three buttons aside of the combobox channel selector: the left "Close" button will kill all children taks before leaving itself. That was very needed in the python variant atleast. The right "Kill" button will kill all "szap" tasks around - based on the observation that there were a lot of zombies around while playing with the applet. The middle button goes to the settings screen. Actually, these buttons can now be collapsed to a popup menu but it was nice to have them directly at hand while debugging the python problems.