summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS8
-rw-r--r--FORMATS35
-rw-r--r--HISTORY30
-rw-r--r--MANUAL45
-rw-r--r--Makefile4
-rw-r--r--Tools/dvbrc2vdr/Makefile16
-rw-r--r--Tools/dvbrc2vdr/channels.conf282
-rw-r--r--Tools/dvbrc2vdr/dvbrc.hotbird63
-rw-r--r--Tools/dvbrc2vdr/dvbrc2vdr.c183
-rw-r--r--Tools/dvbrc2vdr/hotbird2878
-rw-r--r--Tools/dvbrc2vdr/test.conf799
-rw-r--r--channels.conf2
-rw-r--r--config.c232
-rw-r--r--config.h52
-rw-r--r--dvbapi.c30
-rw-r--r--dvbapi.h10
-rw-r--r--interface.c73
-rw-r--r--interface.h6
-rw-r--r--menu.c149
-rw-r--r--menu.h13
-rw-r--r--osd.c98
-rw-r--r--osd.h11
-rw-r--r--setup.conf4
-rw-r--r--svdrp.c57
-rw-r--r--timers.conf11
-rw-r--r--tools.c12
-rw-r--r--tools.h3
-rw-r--r--vdr.c59
28 files changed, 2962 insertions, 203 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 07f9d16..9f6aa1b 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -10,6 +10,8 @@ Carsten Koch <Carsten.Koch@icem.de>
Plamen Ganev <pganev@com-it.net>
for fixing the frequency offset for Hotbird channels
for adding the 'xtvrc2vdr' tool (see Tools/xtvrc2vdr)
+ for adding the 'dvbrc2vdr' tool (see Tools/dvbrc2vdr)
+ for implementing "channel grouping"
Heino Goldenstein <heino.goldenstein@microplex.de>
for modifying scrolling through lists to make it page up and down
@@ -19,3 +21,9 @@ Guido Fiala <gfiala@s.netic.de>
Robert Schneider <Robert.Schneider@lotus.com>
for implementing EIT support for displaying the current/next info
+
+Niels de Carpentier <niels@casema.net>
+ for adding a workaround for a driver timing problem in cDvbApi::Cmd()
+
+Martin Hammerschmid <martin@hammerschmid.com>
+ for suggesting to display the direct channel select input on the OSD
diff --git a/FORMATS b/FORMATS
new file mode 100644
index 0000000..776fb4f
--- /dev/null
+++ b/FORMATS
@@ -0,0 +1,35 @@
+Video Disk Recorder File Formats
+--------------------------------
+
+* channels.conf
+
+ This file contains the channel setup.
+ It consists of two types of lines: "group delimiters" and "channel
+ definitions".
+
+ A "group delimiter" is a line starting with a ':' as the very first
+ character, followed by arbitrary text.
+ Example: ":First group"
+
+ A "channel definition" is a line with channel data, where the fields
+ are separated by ':' characters:
+ Example: "RTL:12188:h:1:27500:163:104:0:12003"
+
+ The fields in a channel definition have the following meaning (from left
+ to right):
+
+ - Name: the channel's name (if the name originally contains a ':' character
+ it has to be replaced by '|')
+ - Frequency in MHz (as an integer)
+ - Polarization (one of 'h', 'H', 'v', 'V')
+ - Diseqc number
+ - Symbol rate
+ - Video PID
+ - Audio PID
+ - Conditional Access (0 = Free To Air, 1 = can be decrypted by the first
+ DVB card, 2 = can be decrypted by the second DVB card)
+ - Program Number
+
+* timers.conf
+
+ TODO
diff --git a/HISTORY b/HISTORY
index f5c3cb9..dafab3b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -138,3 +138,33 @@ Video Disk Recorder Revision History
done for some of the channels in the default 'channels.conf'. Some other
parameters in the default 'channels.conf' have also been updated, so please
make sure your timers still use the correct channels!
+
+2000-09-10: Version 0.63
+
+- The new "Setup" menu allows the user to configure several parameters to his/her
+ personal taste (see MANUAL for details).
+- Workaround for a driver timing problem in cDvbApi::Cmd(), which sometimes caused
+ the OSD to no longer be displayed (thanks to Niels de Carpentier).
+- Added the '-m486' option to the compiler call.
+- If a channel name contains a colon (':') it is now replaced with a '|' in
+ channels.conf.
+- Not everybody appears to like the "page scrolling" mechanism introduced by
+ Heino Goldenstein in version 0.61, so this is now configurable via the "Setup"
+ menu.
+- The new 'dvbrc2vdr' tool (thanks to Plamen Ganev!) can be used to convert
+ 'dvbrc' channel files into 'vdr' format.
+- Channels can now be "grouped" (thanks to Plamen Ganev!). See MANUAL for details.
+ There is currently no mechanism to define and maintain "Channel groups" via
+ the menu, so you'll have to insert "Channel group" control lines into your
+ 'channels.conf' file manually (for example with a text editor).
+- Started a new file named FORMATS with a description of the various file
+ formats used by VDR.
+- The "Primary DVB interface" can now be chosen via the "Setup" menu.
+- Display of the "current/next" information when switching channels can now
+ be disabled via the "Setup" menu.
+- The "current/next" display now only shows those lines that actually contain
+ information.
+- When directly selecting a channel by entering the channel number, the digits
+ entered so far together with the name of that channel are displayed on the
+ OSD (suggested by Martin Hammerschmid).
+
diff --git a/MANUAL b/MANUAL
index b05c350..91c9bff 100644
--- a/MANUAL
+++ b/MANUAL
@@ -12,8 +12,8 @@ Video Disk Recorder User's Manual
Up Ch up Crsr up Crsr up Crsr up Crsr up Crsr up Play
Down Ch down Crsr down Crsr down Crsr down Crsr down Crsr down Pause
- Left - - - Disable Decrement - Search back
- Right - - - Enable Increment - Search forward
+ Left Prev group - - Disable Decrement - Search back
+ Right Next group - - Enable Increment - Search forward
Ok Ch display Select Switch Edit Accept Play Progress disp.
Menu Menu on Menu off Menu off Menu off Menu off Menu off Menu on
Back - Menu off Main menu Main menu Discard Main menu -
@@ -72,6 +72,18 @@ Video Disk Recorder User's Manual
To bring up the channel display without switching channels you can press
the "Ok" button.
+* Switching through channel groups
+
+ If the 'channels.conf' file contains "group separators" you can switch
+ through these groups by pressing the "Left" and "Right" key while no
+ menu is being displayed. The channel display will show the name of the
+ group, and if you press the "Ok" button while the group name is being
+ displayed, you will switch to the first channel of that group.
+
+ Channel groups can be whatever you decide them to be. You can either
+ group your channels by "Bouquet", by language, genre or whatever your
+ preferences may be.
+
* Instant Recording
You can start recording the current channel by pressing the "Red" button
@@ -153,3 +165,32 @@ Video Disk Recorder User's Manual
their date and time).
If this field is left blank, the channel name will be used to form
the name of the recording.
+
+* Parameters in the "Setup" menu
+
+ Select "Setup" from the main menu to enter the setup menu. From there you can
+ modify the following system parameters (note that "boolean" values will be
+ displayed as "no" and "yes" in the "Setup" menu, while in the setup file they
+ are stored as '0' and '1', respectively):
+
+ PrimaryDVB = 1 Defines the primary DVB interface (i.e. the one that
+ will display the menus and will react on input through
+ the remote control). Valid values range from '1' to the
+ number of installed DVB cards. If more than one DVB card
+ is installed and a recording is to be started, the
+ program will try to use a free DVB card that is different
+ from the primary DVB interface, so that the viewer will
+ be disturbed as little as possible.
+
+ ShowInfoOnChSwitch = 1 Turns the display of the current/next information on
+ or off when switching the channel. The information is
+ always displayed when pressing the "Ok" button in
+ normal viewing mode.
+
+ MenuScrollPage = 1 0 = when pressing the "Down" ("Up") key while the cursor
+ is on the last (first) line of a list page, the
+ list is advanced by a full page and the cursor will
+ be at the top (bottom) of that page
+ 1 = dto., but the cursor remains at the bottom (top) of
+ the page (this mode allows for faster scrolling
+ through long lists).
diff --git a/Makefile b/Makefile
index 9868ddb..2f00459 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
-# $Id: Makefile 1.7 2000/09/03 09:26:24 kls Exp $
+# $Id: Makefile 1.9 2000/09/10 08:55:45 kls Exp $
DVBDIR = ../DVB
@@ -22,7 +22,7 @@ DEFINES += -DDEBUG_OSD
endif
%.o: %.c
- g++ -g -O2 -Wall -c $(DEFINES) $(INCLUDES) $<
+ g++ -g -O2 -Wall -m486 -c $(DEFINES) $(INCLUDES) $<
all: vdr
diff --git a/Tools/dvbrc2vdr/Makefile b/Tools/dvbrc2vdr/Makefile
new file mode 100644
index 0000000..196f50b
--- /dev/null
+++ b/Tools/dvbrc2vdr/Makefile
@@ -0,0 +1,16 @@
+#
+# Makefile for dvbrc2vdr utility
+#
+
+OBJS = dvbrc2vdr.o
+
+%.o: %.c
+ gcc -g -O2 -Wall -c $(DEFINES) $<
+
+all: dvbrc2vdr
+
+dvbrc2vdr: $(OBJS)
+ gcc -g -O2 $(OBJS) -o dvbrc2vdr
+
+clean:
+ -rm -f $(OBJS) dvbrc2vdr
diff --git a/Tools/dvbrc2vdr/channels.conf b/Tools/dvbrc2vdr/channels.conf
new file mode 100644
index 0000000..d26699c
--- /dev/null
+++ b/Tools/dvbrc2vdr/channels.conf
@@ -0,0 +1,282 @@
+RAI Uno:11766:v:1:27500:160:80:0:0
+RAI Due:11766:v:1:27500:161:84:0:0
+RAI Tre:11766:v:1:27500:162:88:0:0
+Rete 4:11919:v:1:27500:514:670:0:0
+Canale 5:11919:v:1:27500:513:660:0:0
+Italia 1 :11919:v:1:27500:512:650:0:0
+Video Italia:12610:v:0:22000:121:122:0:0
+Grand Tour.:12670:v:0:22000:289:290:0:0
+AB Sat Passion promo:12266:h:0:27500:160:80:0:0
+Nuvolari Promo:12149:v:1:27500:176:177:0:0
+DigItaly:12673:v:1:27500:220:221:0:0
+NBC Europe:11054:h:1:27500:550:551:0:0
+Bloomberg TV UK:11642:h:1:27500:1560:1520:0:0
+Game Network:12673:v:1:27500:291:292:0:0
+Bulgaria TV:12540:h:1:27500:4612:4613:0:0
+Video Italia :12673:v:1:27500:340:341:0:0
+Racing Channel Test:11623:v:1:27500:223:243:0:0
+Fashion TV:12402:v:0:27500:163:92:0:0
+Palco Promo:12073:v:1:27500:161:84:0:0
+Coming Soon TV:12111:v:1:27500:310:311:0:0
+Alice:12149:v:1:27500:160:161:0:0
+RAI Mosaico:11766:v:1:27500:518:8191:0:0
+RAI SportSat:11804:v:1:27500:512:650:0:0
+Satisfaction TV:12092:h:1:27500:4192:4193:0:0
+RAI Nettuno Sat 2:11804:v:1:27500:513:651:0:0
+RAI Educational:11804:v:1:27500:514:652:0:0
+TelePace :11804:v:1:27500:515:653:0:0
+RAI News24:11804:v:1:27500:516:654:0:0
+AB Channel 1:12266:h:0:27500:161:84:0:0
+Studio Europa:12673:v:1:27500:230:231:0:0
+AB Passion:12692:h:1:27500:160:80:0:0
+Camera dei Deputati:11804:v:1:27500:517:655:0:0
+SAT 2000:11804:v:1:27500:518:656:0:0
+RAI NettunoSat 1:11804:v:1:27500:519:657:0:0
+Ante Prima:11881:v:1:27500:2435:2436:0:0
+Vetrina D+:12034:v:1:27500:166:105:0:0
+D+ Info:12073:v:1:27500:160:80:0:0
+SNAI:11881:v:1:27500:2561:2562:0:0
+RTL:12188:h:0:27500:163:104:0:0
+Sat.1:12480:v:0:27500:1791:1792:0:0
+Pro-7:12480:v:0:27500:255:256:0:0
+RTL2:12188:h:0:27500:166:128:0:0
+VOX:12188:h:0:27500:167:136:0:0
+ARD:11837:h:0:27500:101:102:0:0
+BR3:11837:h:0:27500:201:202:0:0
+INTV:11843:v:1:27500:2324:2325:0:0
+MC Sat Monte Carlo:12540:h:1:27500:5126:5122:0:0
+Hessen-3:11837:h:0:27500:301:302:0:0
+N3:11837:h:0:27500:401:402:0:0
+SR3:11837:h:0:27500:501:502:0:0
+WDR:11837:h:0:27500:601:602:0:0
+BR-alpha:11837:h:0:27500:701:702:0:0
+SWR BW:11837:h:0:27500:801:802:0:0
+Phoenix:11837:h:0:27500:901:902:0:0
+ZDF:11954:h:0:27500:110:120:0:0
+Test 3sat:11954:h:0:27500:210:220:0:0
+Kinderkanal:11954:h:0:27500:310:320:0:0
+arte:11954:h:0:27500:360:370:0:0
+Eurosport:11954:h:0:27500:410:420:0:0
+ZDF Infobox:11954:h:0:27500:610:620:0:0
+CNN:12168:v:0:27500:165:100:0:0
+Super RTL:12188:h:0:27500:165:120:0:0
+VOX:12188:h:0:27500:167:136:0:0
+ORF Sat:11954:h:0:27500:506:507:0:0
+DW TV:12363:v:0:27500:305:306:0:0
+Kabel 1:12480:v:0:27500:511:512:0:0
+TM3:12480:v:0:27500:767:768:0:0
+DSF:12480:v:0:27500:1023:1024:0:0
+HOT:12480:v:0:27500:1279:1280:0:0
+BloombergTV:12552:v:0:22000:162:99:0:0
+Sky News:12552:v:0:22000:305:306:0:0
+KinderNet:12574:h:0:22000:163:92:0:0
+Alice:12610:v:0:22000:162:96:0:0
+n-tv:12670:v:0:22000:162:96:0:0
+RAI Uno:12363:v:0:27500:289:290:0:0
+TW1:12692:h:0:22000:166:167:0:0
+Eins Extra:12722:h:0:22000:101:102:0:0
+Eins Festival:12722:h:0:22000:201:202:0:0
+Eins MuXx:12722:h:0:22000:301:302:0:0
+MDR:12722:h:0:22000:401:402:0:0
+ORB:12722:h:0:22000:501:502:0:0
+B1:12722:h:0:22000:601:602:0:0
+ARD Online-Kanal:12722:h:0:22000:8191:701:0:0
+Premiere World Promo:11798:h:0:27500:255:256:0:0
+Premiere:11798:h:0:27500:511:512:1:10
+Star Kino:11798:h:0:27500:767:768:1:9
+Cine Action:11798:h:0:27500:1023:1024:1:20
+Cine Comedy:11798:h:0:27500:1279:1280:1:29
+Sci Fantasy:11798:h:0:27500:1535:1536:1:41
+Romantic Movies:11798:h:0:27500:1791:1792:1:11
+Studio Universal:11798:h:0:27500:2047:2048:1:21
+TV Niepokalanow:11876:h:0:27500:305:321:0:0
+Mosaico:11934:v:0:27500:165:100:0:0
+Andalucia TV:11934:v:0:27500:166:104:0:0
+TVC Internacional:11934:v:0:27500:167:108:0:0
+Nasza TV:11992:h:0:27500:165:98:0:0
+WishLine test:12012:v:0:27500:163:92:0:0
+Pro 7 Austria:12051:v:0:27500:161:84:0:0
+Kabel 1 Schweiz:12051:v:0:27500:162:163:0:0
+Kabel 1 Austria:12051:v:0:27500:166:167:0:0
+Pro 7 Schweiz:12051:v:0:27500:289:290:0:0
+Kiosque:12129:v:0:27500:160:80:0:0
+KTO:12129:v:0:27500:170:120:0:0
+TCM:12168:v:0:27500:160:80:0:0
+Cartoon Network France & Spain:12168:v:0:27500:161:84:0:0
+TVBS Europe:12168:v:0:27500:162:88:0:0
+TVBS Europe:12168:v:0:27500:162:89:0:0
+Travel:12168:v:0:27500:163:92:0:0
+TCM Espania:12168:v:0:27500:164:96:0:0
+MTV Spain:12168:v:0:27500:167:112:0:0
+TCM France:12168:v:0:27500:169:64:0:0
+RTL2 CH:12188:h:0:27500:164:112:0:0
+La Cinquieme:12207:v:0:27500:160:80:0:0
+ARTE:12207:v:0:27500:165:100:0:0
+Post Filial TV:12226:h:0:27500:255:256:0:0
+Canal Canaris:12246:v:0:27500:160:80:0:0
+Canal Canaris:12246:v:0:27500:160:81:0:0
+Canal Canaris:12246:v:0:27500:160:82:0:0
+Canal Canaris:12246:v:0:27500:160:83:0:0
+Taquilla 0:12285:v:0:27500:165:100:0:0
+CSAT:12324:v:0:27500:160:80:0:0
+Mosaique:12324:v:0:27500:162:88:0:0
+Mosaique 2:12324:v:0:27500:163:92:0:0
+Mosaique 3:12324:v:0:27500:164:96:0:0
+Le Sesame C+:12324:v:0:27500:165:1965:0:0
+FEED:12344:h:0:27500:163:92:0:0
+RTM 1:12363:v:0:27500:162:96:0:0
+ESC 1:12363:v:0:27500:163:104:0:0
+TV5 Europe:12363:v:0:27500:164:112:0:0
+TV7 Tunisia:12363:v:0:27500:166:128:0:0
+ARTE:12363:v:0:27500:167:137:0:0
+RTP International:12363:v:0:27500:300:301:0:0
+VideoService:12422:h:0:27500:255:256:0:0
+Beta Research promo:12422:h:0:27500:1023:1024:0:0
+Canal Canarias:12441:v:0:27500:160:80:0:0
+TVC International:12441:v:0:27500:512:660:0:0
+Fitur:12441:v:0:27500:514:662:0:0
+Astra Info 1:12552:v:0:22000:164:112:0:0
+Astra Info 2:12552:v:0:22000:165:120:0:0
+Astra Vision 1:12552:v:0:22000:168:144:0:0
+Astra Vision 1:12552:v:0:22000:168:145:0:0
+Astra Vision 1:12552:v:0:22000:168:146:0:0
+Astra Vision 1:12552:v:0:22000:168:147:0:0
+Astra Vision 1:12552:v:0:22000:168:148:0:0
+Astra Vision 1:12552:v:0:22000:168:149:0:0
+Astra Vision 1:12552:v:0:22000:168:150:0:0
+RTL Tele Letzebuerg:12552:v:0:22000:168:144:0:0
+Astra Mosaic:12552:v:0:22000:175:176:0:0
+MHP test:12604:h:0:22000:5632:8191:0:0
+Bloomberg TV Spain:12610:v:0:22000:45:49:0:0
+AC 3 promo:12670:v:0:22000:308:256:0:0
+TV Polonia:10719:v:1:27500:163:92:0:0
+Credit Agricole:10834:v:1:27500:5321:5333:0:0
+La Chaine Parlementaire:10873:v:1:27500:1020:1030:0:0
+TMT:10892:v:1:27500:163:92:0:0
+Multivision Accueil:10911:v:1:27500:320:330:0:0
+RTL:11054:h:1:27500:160:80:0:0
+VOX:11054:h:1:27500:500:501:0:0
+Sat 1 A:11054:h:1:27500:511:512:0:0
+RTL II Austria:11054:h:1:27500:520:521:0:0
+ZDF:11054:h:1:27500:570:571:0:0
+K-TV:11054:h:1:27500:580:581:0:0
+Sat 1 Schweiz:11604:v:1:27500:101:102:0:0
+MKTV:11623:v:1:27500:222:242:0:0
+Olisat TV Promo:11623:v:1:27500:226:246:0:0
+Bloomberg TV Germany:11642:v:1:27500:1460:1420:0:0
+Bloomberg TV UK:11642:v:1:27500:1560:1520:0:0
+SAT 7:11642:v:1:27500:1660:1620:0:0
+Multivision 1:11662:v:1:27500:120:130:0:0
+Dubai EDTV:11746:v:1:27500:4130:4131:0:0
+Dubai Sport Channel:11746:v:1:27500:4386:4387:0:0
+Dubai Business Channel:11746:v:1:27500:4642:4643:0:0
+Dubai EDTV:11746:v:1:27500:4898:4899:0:0
+ERT Sat:11823:v:1:27500:521:740:0:0
+TVL:11843:v:1:27500:2441:2442:0:0
+Team TV :11881:v:1:27500:2305:2306:0:0
+ART Europe:12015:v:1:27500:164:96:0:0
+ESC 2:12015:v:1:27500:166:104:0:0
+ART Iqra:12015:v:1:27500:168:112:0:0
+Vacaciones TV:12092:v:1:27500:4112:4113:0:0
+TvL - TV Locale:12092:v:1:27500:4160:4161:0:0
+TVE Internacional:12092:v:1:27500:4208:4209:0:0
+TVG - TV de Galicia :12092:v:1:27500:4224:4225:0:0
+La Cadena Del Milagro:12092:v:1:27500:4368:4369:0:0
+Fiesta:12092:v:1:27500:4432:4433:0:0
+Visions Europe:12092:v:1:27500:4416:4417:0:0
+SateliTV/TV Sex Channel:12092:v:1:27500:4480:4481:0:0
+Krisma:12111:v:1:27500:200:201:0:0
+NTV:12111:v:1:27500:210:211:0:0
+Armenia TV 1:12111:v:1:27500:240:241:0:0
+SMAU Channel :12111:v:1:27500:260:261:0:0
+JSC - Al Jazeera Satellite Ch :12111:v:1:27500:270:271:0:0
+Il Tirreno Sat:12111:v:1:27500:280:301:0:0
+CCTV 4:12169:h:1:27500:516:690:0:0
+Kanali Vuolis:12169:v:1:27500:517:700:0:0
+Nova Promo:12169:v:1:27500:521:740:0:0
+ERT Sat :12188:v:1:27500:514:652:0:0
+Kanali Voulis:12188:v:1:27500:515:653:0:0
+OTE Promo:12188:v:1:27500:517:655:0:0
+TV 5 Europe:12245:v:1:27500:121:131:0:0
+Fashion TV:12245:h:1:27500:123:133:0:0
+TV Ajara:12245:v:1:27500:127:137:0:0
+Telekom TV:12265:v:1:27500:1460:1420:0:0
+SLO-TV1:12303:v:1:27500:200:201:0:0
+Polonia 1:12303:v:1:27500:205:206:0:0
+Super 1:12303:v:1:27500:207:208:0:0
+Sicilia Internacional:12303:v:1:27500:210:211:0:0
+SicilSat:12303:v:1:27500:225:226:0:0
+TBNE Italy:12303:v:1:27500:230:231:0:0
+Countdown TV:12303:v:1:27500:235:236:0:0
+Napoli International:12303:v:1:27500:240:241:0:0
+Magic TV:12303:v:1:27500:245:246:0:0
+TEST:12341:v:1:27500:165:108:0:0
+Colour Bars:12380:v:1:27500:3022:3032:0:0
+Tele 24 :12380:v:1:27500:3023:3033:0:0
+Abu Dhabi TV :12380:v:1:27500:3024:3034:0:0
+LCA:12380:v:1:27500:3025:3035:0:0
+RTV Montenegro:12380:v:1:27500:3026:3036:0:0
+SRG SSR Sat Access :12399:v:1:27500:165:98:0:0
+Jam-e-Jam Network 1 (IRIB 1):12437:v:1:27500:160:80:0:0
+Jam-e-Jam Network 2 (IRIB 2):12437:v:1:27500:161:82:0:0
+Sahar University Network:12437:v:1:27500:162:84:0:0
+Maharishi Open University:12476:v:1:27500:42:43:0:0
+Europe by Satellite:12476:h:1:27500:101:201:0:0
+Pink Backup:12476:v:1:27500:308:256:0:0
+Mizik Tropical:12476:h:1:27500:435:436:0:0
+TLI info card:12476:h:1:27500:771:768:0:0
+Liberty TV:12476:h:1:27500:941:942:0:0
+HRT TV 1:12520:v:1:27500:100:101:0:0
+HRT National:12520:v:1:27500:107:108:0:0
+BVN TV:12520:v:1:27500:210:211:0:0
+Sicilia International:12520:v:1:27500:501:502:0:0
+Sardegna Uno:12520:v:1:27500:503:504:0:0
+TGRT:12520:v:1:27500:505:506:0:0
+Euro Mediterraneo:12520:v:1:27500:510:511:0:0
+WWWTravel TV:12540:v:1:27500:1180:1183:0:0
+WWWTravel TV:12540:v:1:27500:1180:1184:0:0
+WWWTravel TV:12540:v:1:27500:1180:1185:0:0
+MBC:12597:v:1:27500:160:80:0:0
+SIMA-YEH-MOGHAVEMENT:12597:v:1:27500:161:84:0:0
+NITV (National Iran TV ):12597:v:1:27500:163:92:0:0
+BET International:12597:v:1:27500:167:108:0:0
+JSTV 2 Info Card:12597:v:1:27500:2011:2012:0:0
+EuroNews French:12597:v:1:27500:2221:2231:0:0
+EuroNews English:12597:v:1:27500:2221:2232:0:0
+EuroNews German:12597:v:1:27500:2221:2233:0:0
+EuroNews Italian:12597:v:1:27500:2221:2234:0:0
+EuroNews Spanish:12597:v:1:27500:2221:2235:0:0
+EuroNews Portuguese:12597:v:1:27500:2221:2236:0:0
+EuroNews English:12597:v:1:27500:2221:2237:0:0
+Canal Agro Rual:12597:v:1:27500:2321:2331:0:0
+MMO9:12616:v:1:27500:2561:2562:0:0
+Dubai Sport Channel:12654:v:1:27500:1060:1020:0:0
+Sharjah TV :12654:v:1:27500:1160:1120:0:0
+Qatar TV:12654:v:1:27500:1260:1220:0:0
+Saudi Channel 1 :12654:v:1:27500:1360:1320:0:0
+Kuwait Space Channel :12654:v:1:27500:1460:1420:0:0
+Libya TV:12654:v:1:27500:1560:1520:0:0
+Sudan TV:12654:v:1:27500:1660:1620:0:0
+Oman TV:12654:v:1:27500:1760:1720:0:0
+Jordan Satellite Channel:12654:v:1:27500:1860:1820:0:0
+Iraq Satellite Channel:12654:v:1:27500:1960:1920:0:0
+Thai TV 5 Global Network :12673:v:1:27500:200:201:0:0
+Telemarket:12673:v:1:27500:350:351:0:0
+Evision:12673:v:1:27500:360:361:0:0
+Onyx TV:12692:v:1:27500:161:84:0:0
+EWTN:10723:v:1:29900:1001:1201:0:0
+Test (Newslynx):10723:v:1:29900:1002:1202:0:0
+MTA International:10723:v:1:29900:1004:1204:0:0
+J TV Test:10992:v:1:27500:2436:2437:0:0
+Bloomberg UK Test Card:11242:v:1:27500:162:88:0:0
+Channel SUN TV:11604:h:1:27500:111:112:0:0
+Olisat TLC test card:11623:v:1:27500:225:245:0:0
+Channel SUN Test (KBT):11623:v:1:27500:229:249:0:0
+Rai way 3 test card:11766:v:1:27500:164:96:0:0
+Rai way 1 test card:11766:v:1:27500:515:653:0:0
+Rai way 2 test card:11766:v:1:27500:516:654:0:0
+Test (Local Satellite):12092:v:1:27500:4176:4177:0:0
+Retelsat Test:12092:v:1:27500:4464:4465:0:0
+AIT Test Card:12111:v:1:27500:220:221:0:0
+Fucino Test Card:12111:v:1:27500:230:231:0:0
+PGM1:12230:v:1:13396:1160:1121:0:0
diff --git a/Tools/dvbrc2vdr/dvbrc.hotbird b/Tools/dvbrc2vdr/dvbrc.hotbird
new file mode 100644
index 0000000..8717fdb
--- /dev/null
+++ b/Tools/dvbrc2vdr/dvbrc.hotbird
@@ -0,0 +1,63 @@
+LNB ID 1 TYPE 1 LOF1 9750000 LOF2 10600000 SLOF 11800000 DISEQCNR 1
+ SAT ID 1 NAME "Hotbird" LNBID 1 FMIN 12015000 FMAX 12100000
+ TRANSPONDER ID 119c8 SATID 0001 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 0 NAME "T+ BIANCO" SATID ffffff TPID 119c8 SID 2b5d TYPE 1 VPID a0 APID 50 APID 51 TTPID 2c PCRPID a0
+ CHANNEL ID 1 NAME "T+ NERO" SATID ffffff TPID 119c8 SID 2b5f TYPE 1 VPID a1 APID 54 APID 55 TTPID 2d PCRPID a1
+ CHANNEL ID 2 NAME "T+ GRIGIO" SATID ffffff TPID 119c8 SID 2b61 TYPE 1 VPID a2 APID 58 APID 59 PCRPID a2
+ CHANNEL ID 3 NAME "R4" SATID ffffff TPID 119c8 SID 18 TYPE 1 VPID a3 PCRPID a3
+ CHANNEL ID 4 NAME "16:9 TELE+" SATID ffffff TPID 119c8 SID 2b63 TYPE 1 VPID a4 APID 60 APID 61 PCRPID a4
+ CHANNEL ID 5 NAME "VETRINA D+" SATID ffffff TPID 119c8 SID 2b65 TYPE 1 PCRPID a5
+ CHANNEL ID 6 NAME "R/RAGAZZI RAISAT" SATID ffffff TPID 119c8 SID 2b67 TYPE 1 PCRPID a6
+ TRANSPONDER ID 11a90 SATID 0001 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 7 NAME "PALCO" SATID ffffff TPID 11a90 SID 2bc1 TYPE 1 PCRPID af
+ CHANNEL ID 8 NAME "INFO" SATID ffffff TPID 11a90 SID 2bc3 TYPE 1 VPID a1 PCRPID af
+ CHANNEL ID 9 NAME "P1" SATID ffffff TPID 11a90 SID 2bc5 TYPE 1 VPID a2 APID 58 APID 59 PCRPID af
+ CHANNEL ID a NAME "P2" SATID ffffff TPID 11a90 SID 2bc7 TYPE 1 VPID a3 APID 5c APID 5d PCRPID af
+ CHANNEL ID b NAME "P3" SATID ffffff TPID 11a90 SID 2bc9 TYPE 1 VPID a4 APID 60 APID 61 PCRPID af
+ CHANNEL ID c NAME "P4" SATID ffffff TPID 11a90 SID 2bcb TYPE 1 VPID a5 APID 64 APID 65 PCRPID af
+ CHANNEL ID d NAME "P5" SATID ffffff TPID 11a90 SID 2bcd TYPE 1 VPID a6 APID 68 APID 69 PCRPID af
+ CHANNEL ID e NAME "P6" SATID ffffff TPID 11a90 SID 2bcf TYPE 1 VPID a7 APID 6c APID 6d PCRPID af
+ TRANSPONDER ID 11964 SATID 0001 TYPE 1 FREQ 12015000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID f NAME "ART VARIETY" SATID ffffff TPID 11964 SID 19a TYPE 1 VPID a0 PCRPID a0
+ CHANNEL ID 10 NAME "ART CHILDREN" SATID ffffff TPID 11964 SID 1a4 TYPE 1 VPID a1 PCRPID a1
+ CHANNEL ID 11 NAME "ART MOVIES" SATID ffffff TPID 11964 SID 1ae TYPE 1 VPID a2 PCRPID a2
+ CHANNEL ID 12 NAME "ART MUSIC" SATID ffffff TPID 11964 SID 1b8 TYPE 1 VPID a3 PCRPID a3
+ CHANNEL ID 13 NAME "ART EUROPE" SATID ffffff TPID 11964 SID 1c2 TYPE 0 VPID a4 PCRPID a4
+ CHANNEL ID 14 NAME "LBC EUROPE" SATID ffffff TPID 11964 SID 1cc TYPE 1 VPID a5 PCRPID a5
+ CHANNEL ID 15 NAME "EGYPT SAT. CH. 2" SATID ffffff TPID 11964 SID 1d6 TYPE 1 VPID a6 PCRPID a6
+ CHANNEL ID 16 NAME "ART SPORT" SATID ffffff TPID 11964 SID 1d8 TYPE 1 VPID a7 PCRPID a7
+ CHANNEL ID 17 NAME "IQRA" SATID ffffff TPID 11964 SID 1da TYPE 1 VPID a8 PCRPID a8
+ TRANSPONDER ID 11a2c SATID 0001 TYPE 1 FREQ 12341001 POL H SRATE 27500000 FEC 8
+ CHANNEL ID ffffffff NAME "CNN" SATID ffffff TPID 11a2c SID 2ced TYPE 1 PCRPID af
+ CHANNEL ID ffffffff NAME "BBC" SATID ffffff TPID 11a2c SID 2cef TYPE 1 PCRPID af
+ CHANNEL ID ffffffff NAME "BLOOMBERG" SATID ffffff TPID 11a2c SID 2cf1 TYPE 1 PCRPID af
+ CHANNEL ID ffffffff NAME "CNBC" SATID ffffff TPID 11a2c SID 2cf3 TYPE 1 PCRPID af
+ CHANNEL ID ffffffff NAME "SKYNews" SATID ffffff TPID 11a2c SID 2cf5 TYPE 1 PCRPID af
+ CHANNEL ID ffffffff NAME "TST2" SATID ffffff TPID 11a2c SID 2cf7 TYPE 1 PCRPID af
+ CHANNEL ID ffffffff NAME "TV5" SATID ffffff TPID 11a2c SID 2cf9 TYPE 1 PCRPID af
+ CHANNEL ID ffffffff NAME "EPG" SATID ffffff TPID 11a2c SID 2cfb TYPE 1 PCRPID af
+ CHANNEL ID ffffffff NAME "CNN" SATID ffffff TPID 11a2c SID 2cfd TYPE 1 VPID a0 APID 50 PCRPID af
+ CHANNEL ID ffffffff NAME "CNBC" SATID ffffff TPID 11a2c SID 2cff TYPE 1 VPID a3 APID 5c PCRPID af
+ CHANNEL ID ffffffff NAME "TV5" SATID ffffff TPID 11a2c SID 2d01 TYPE 1 VPID a6 APID 68 PCRPID af
+ CHANNEL ID ffffffff NAME "BBC WORLD" SATID ffffff TPID 11a2c SID 2d03 TYPE 1 VPID a1 APID 54 PCRPID af
+ CHANNEL ID ffffffff SATID ffffff TPID 11a2c SID 2d4b TYPE 0 PCRPID 1ffe
+ CHANNEL ID ffffffff SATID ffffff TPID 11a2c SID 26fc TYPE 0 PCRPID 1ffe
+ CHANNEL ID ffffffff SATID ffffff TPID 11a2c SID 26fd TYPE 0 PCRPID 1ffe
+ TRANSPONDER ID 11af4 SATID 0001 TYPE 1 FREQ 12091901 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 27 NAME "Bolsa" SATID ffffff TPID 11af4 SID 222e TYPE 0
+ CHANNEL ID 28 NAME "Testw" SATID ffffff TPID 11af4 SID 222f TYPE 0
+ CHANNEL ID 29 NAME "SIRE" SATID ffffff TPID 11af4 SID 2230 TYPE 0 PCRPID 102
+ CHANNEL ID 2a NAME "Telesierra" SATID ffffff TPID 11af4 SID 2200 TYPE 0 VPID 1040 APID 1041 PCRPID 1040
+ CHANNEL ID 2b NAME "vtv" SATID ffffff TPID 11af4 SID 21fd TYPE 0 VPID 1010 APID 1012 APID 1011 APID 1013 PCRPID 1010
+ CHANNEL ID 2c NAME "Satisfaction" SATID ffffff TPID 11af4 SID 2202 TYPE 0 VPID 1060 APID 1061 PCRPID 1060
+ CHANNEL ID 2d NAME "C. Milagro" SATID ffffff TPID 11af4 SID 2207 TYPE 0 VPID 1110 APID 1111 PCRPID 1110
+ CHANNEL ID 2e NAME "Fiesta" SATID ffffff TPID 11af4 SID 2210 TYPE 0 VPID 1150 APID 1151 APID 1152 PCRPID 1150
+ CHANNEL ID 2f NAME "TVE Internacional" SATID ffffff TPID 11af4 SID 2203 TYPE 0 VPID 1070 APID 1071 PCRPID 1070
+ CHANNEL ID 30 NAME "TV Galicia" SATID ffffff TPID 11af4 SID 2204 TYPE 0 APID 1090 PCRPID 1090
+ CHANNEL ID 31 NAME "Radio Gallega" SATID ffffff TPID 11af4 SID 2205 TYPE 0 APID 1090 PCRPID 1090
+ CHANNEL ID 32 NAME "Retelsat" SATID ffffff TPID 11af4 SID 2212 TYPE 1 VPID 1170 APID 1171 PCRPID 1170
+ CHANNEL ID 33 NAME "Musicam 1" SATID ffffff TPID 11af4 SID 2209 TYPE 1 APID 1136 PCRPID 1136
+ CHANNEL ID 34 NAME "Musicam 2" SATID ffffff TPID 11af4 SID 220a TYPE 1 APID 1131 PCRPID 1131
+ CHANNEL ID 35 NAME "Musicam 3" SATID ffffff TPID 11af4 SID 220b TYPE 1 APID 1136 PCRPID 1136
+ CHANNEL ID 36 NAME "Musicam 4" SATID ffffff TPID 11af4 SID 220c TYPE 1 APID 1136 PCRPID 1136
+ CHANNEL ID 37 NAME "Musicam 5" SATID ffffff TPID 11af4 SID 220d TYPE 1 APID 1136 PCRPID 1136
diff --git a/Tools/dvbrc2vdr/dvbrc2vdr.c b/Tools/dvbrc2vdr/dvbrc2vdr.c
new file mode 100644
index 0000000..243ddc0
--- /dev/null
+++ b/Tools/dvbrc2vdr/dvbrc2vdr.c
@@ -0,0 +1,183 @@
+/*
+ * * dvbrc2vdr.c: Converts 'xtvrc' files to 'vdr' channel format
+ * *
+ * * Copyright (C) 2000 Plamen Ganev
+ * *
+ * * This program is free software; you can redistribute it and/or
+ * * modify it under the terms of the GNU General Public License
+ * * as published by the Free Software Foundation; either version 2
+ * * of the License, or (at your option) any later version.
+ * *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ * *
+ * * You should have received a copy of the GNU General Public License
+ * * along with this program; if not, write to the Free Software
+ * * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
+ * *
+ * * The author can be reached at pganev@comm.it
+ * *
+ * */
+
+
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
+
+#define MAX_LINE_LEN 1024
+#define MAX_NAME 100
+#define TOKS ": \n\r"
+#define NAMETOKS ":\n\r"
+
+typedef struct {
+ char Name[MAX_NAME+1];
+ int freq;
+ int color, hue, bright, saturation ;
+ int nitv, input ;
+ int pol, srate, fec, vpid, apid, lnbnum, type;
+ int sid, pcrpid ;
+} CHANNEL_DATA ;
+
+void strupr( char *s ){
+ while ( s && *s ){
+ *s = toupper(*s);
+ s++;
+ }
+}
+
+/* Warning: This function uses the last strtol string! */
+int GetTpInfo( CHANNEL_DATA *channel )
+{
+ // s is: ID x SATID x TYPE x FREQ x POL H/V SRATE x FEC x
+ char *p ;
+
+ p = strtok( NULL, TOKS ) ; /* Skip ID */
+ p = strtok( NULL, TOKS ) ; /* Skip x */
+ p = strtok( NULL, TOKS ) ; /* Skip SatId */
+ p = strtok( NULL, TOKS ) ; /* Skip x */
+ p = strtok( NULL, TOKS ) ; /* Skip Type */
+ p = strtok( NULL, TOKS ) ; /* Skip x */
+ p = strtok( NULL, TOKS ) ; /* Skip Freq */
+ p = strtok( NULL, TOKS ) ; /* Get Freq */
+ channel->freq = atol( p ) / 1000 ;
+ p = strtok( NULL, TOKS ) ; /* Skip Pol */
+ p = strtok( NULL, TOKS ) ; /* Get H/V */
+ channel->pol = (*p=='V') ? 1 : 0 ;
+ p = strtok( NULL, TOKS ) ; /* Skip SRATE */
+ p = strtok( NULL, TOKS ) ; /* Get srate */
+ channel->srate = atol(p) / 1000 ; /* Convert SRATE */
+ return 0;
+}
+
+/* Warning: This function uses the last strtol string! */
+int GetChInfo( CHANNEL_DATA *channel )
+{
+ /* s is: ID x NAME "name" SATID x TPID x SID x TYPE x VPID x APID x */
+ char *p, *q ;
+
+ p = strtok( NULL, TOKS ) ;
+ while ( p ) {
+ if ( !strcmp( p, "ID" )) {
+ p = strtok( NULL, TOKS ) ;
+ } else if ( !strcmp( p, "NAME")) {
+ while ( *p++ ); /* Jump to end of "NAME" */
+ p++ ; /* One More */
+ while ( *p == '"' ) p++ ; /* Skip the " */
+ q = channel->Name ;
+ while ( *p != '"' )
+ if ( *p == ':' )
+ *q++ = '|', p++ ;
+ else
+ *q++ = *p++ ; /* Copy the name */
+ *q = 0 ;
+ p++ ;
+ p = strtok( p, TOKS ) ;
+ channel->apid = 8190;
+ channel->vpid = 8190;
+ channel->pcrpid = 0 ;
+ channel->sid = 0;
+ } else if ( !strcmp( p, "VPID")) {
+ p = strtok( NULL, TOKS ) ;
+ channel->vpid = strtol( p, NULL, 16 ) ;
+ p = strtok( NULL, TOKS ) ;
+ } else if ( !strcmp( p, "APID")) {
+ p = strtok( NULL, TOKS ) ;
+ channel->apid = strtol( p, NULL, 16 ) ;
+ p = strtok( NULL, TOKS ) ;
+ } else if ( !strcmp( p, "SID")) {
+ p = strtok( NULL, TOKS ) ;
+ channel->sid = strtol( p, NULL, 16 ) ;
+ p = strtok( NULL, TOKS ) ;
+ } else if ( !strcmp( p, "PCRPID")) {
+ p = strtok( NULL, TOKS ) ;
+ channel->pcrpid = strtol( p, NULL, 16 ) ;
+ p = strtok( NULL, TOKS ) ;
+ } else {
+ p = strtok( NULL, TOKS ) ;
+ }
+ }
+ return 1;
+}
+
+int ReadChannel( FILE *f, CHANNEL_DATA *channel ) {
+ static char s[MAX_LINE_LEN+1];
+ char *p;
+
+ while (fgets( s, MAX_LINE_LEN, f )){
+ p = strtok( s, TOKS ) ;
+ strupr( p ) ;
+
+ if ( !strcmp( p, "TRANSPONDER" )){
+ GetTpInfo( channel ) ;
+ } else if ( !strcmp( p, "CHANNEL" ) ) {
+ GetChInfo( channel ) ;
+ return 1 ;
+ }
+ }
+ return 0 ;
+}
+
+int main ( int argc, char *argv[] ){
+ FILE *f, *fo ;
+ int cnt = 0;
+ CHANNEL_DATA channel ;
+
+ if ( argc != 3 ){
+ printf("USAGE: %s <dvbrc file> <vdr file>\n\n", argv[0] ) ;
+ return 0;
+ }
+
+ if ( !(f=fopen(argv[1], "rt"))){
+ printf("Can't open %s for reading\n\n", argv[1]);
+ return 0;
+ }
+
+ if ( !(fo=fopen(argv[2], "wt"))){
+ printf("Can't open %s for writing\n\n", argv[2]);
+ return 0;
+ }
+
+ while ( ReadChannel( f, &channel ) ) {
+ cnt++;
+ fprintf(fo, "%s:%d:%c:%d:%d:%d:%d:%d:%d\n",
+ channel.Name ,
+ channel.freq ,
+ channel.pol ? 'v' : 'h' ,
+ 1, //channel.lnbnum ,
+ channel.srate ,
+ channel.vpid ,
+ channel.apid ,
+ 0, //channel.type ,
+ channel.sid ) ;
+ }
+
+ printf( "%d channels read.\n\n", cnt ) ;
+
+ fclose(f);
+ fclose(fo);
+ return 1;
+}
diff --git a/Tools/dvbrc2vdr/hotbird2 b/Tools/dvbrc2vdr/hotbird2
new file mode 100644
index 0000000..39c7b87
--- /dev/null
+++ b/Tools/dvbrc2vdr/hotbird2
@@ -0,0 +1,878 @@
+LNB ID 0 TYPE 1 LOF1 9750000 LOF2 10600000 SLOF 11800000 DISEQCNR 0
+ SAT ID 0 NAME "HotBird" LNBID 0 FMIN 10700000 FMAX 12800000
+ TRANSPONDER ID 2af8 SATID 0000 TYPE 1 FREQ 10719000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 0 NAME "DISCOVERY" SATID ffffff TPID 2af8 SID 1132 TYPE 1 PCRPID a1
+ CHANNEL ID 1 NAME "RTL7" SATID ffffff TPID 2af8 SID 1133 TYPE 1 PCRPID a2
+ CHANNEL ID 2 NAME "TV POLONIA" SATID ffffff TPID 2af8 SID 1134 TYPE 1 PCRPID a3
+ CHANNEL ID 3 NAME "EUROSPORT" SATID ffffff TPID 2af8 SID 1135 TYPE 1 PCRPID a4
+ CHANNEL ID 4 NAME "PLANETE" SATID ffffff TPID 2af8 SID 1136 TYPE 1 PCRPID a5
+ CHANNEL ID 5 NAME "SEASONS" SATID ffffff TPID 2af8 SID 1137 TYPE 1 PCRPID a6
+ CHANNEL ID 6 NAME "VIVA Polska" SATID ffffff TPID 2af8 SID 1138 TYPE 1 PCRPID a7
+ CHANNEL ID 7 NAME "MULTIMUSIC 4" SATID ffffff TPID 2af8 SID 1158 TYPE 1 APID 79 APID 7a APID 7b PCRPID 79
+ CHANNEL ID 8 NAME "EPG" SATID ffffff TPID 2af8 SID 1162 TYPE 1 PCRPID a1
+ CHANNEL ID 9 NAME "CYFRA+ GRY" SATID ffffff TPID 2af8 SID 116c TYPE 1
+ TRANSPONDER ID 0101 SATID 0000 TYPE 1 FREQ 10722000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 2bc0 SATID 0000 TYPE 1 FREQ 0 POL V SRATE 27500000 FEC 8
+ CHANNEL ID a NAME "Guide LC" SATID ffffff TPID 2bc0 SID 7d0 TYPE 0 APID 1f5e PCRPID 1f5e
+ CHANNEL ID b NAME "Cinestar 1" SATID ffffff TPID 2bc0 SID 4b1 TYPE 1 VPID 78 APID 82 PCRPID 78
+ CHANNEL ID c NAME "Cinestar 2" SATID ffffff TPID 2bc0 SID 4b2 TYPE 1 VPID dc APID e6 PCRPID dc
+ CHANNEL ID d NAME "Cinetoile" SATID ffffff TPID 2bc0 SID 4b3 TYPE 1 VPID 140 APID 14a PCRPID 140
+ CHANNEL ID e NAME "Shopping Avenue" SATID ffffff TPID 2bc0 SID 4b4 TYPE 1 VPID 1a4 APID 1ae PCRPID 1a4
+ CHANNEL ID f NAME "Série Club " SATID ffffff TPID 2bc0 SID 4b5 TYPE 1 VPID 208 APID 212 PCRPID 208
+ CHANNEL ID 10 NAME "FUN TV" SATID ffffff TPID 2bc0 SID 4b6 TYPE 1 VPID 26c APID 276 PCRPID 26c
+ CHANNEL ID 11 NAME "Teva" SATID ffffff TPID 2bc0 SID 4b7 TYPE 1 VPID 2d0 APID 2da PCRPID 2d0
+ CHANNEL ID 12 NAME "M6 Music" SATID ffffff TPID 2bc0 SID 4b8 TYPE 1 VPID 334 APID 33e PCRPID 334
+ CHANNEL ID 13 NAME "Club Téléachat" SATID ffffff TPID 2bc0 SID 4b9 TYPE 1 VPID 398 APID 3a2 PCRPID 398
+ TRANSPONDER ID 0103 SATID 0000 TYPE 1 FREQ 10775000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 2c88 SATID 0000 TYPE 1 FREQ 0 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 14 NAME "INFOSPORT" SATID ffffff TPID 2c88 SID 579 TYPE 1 VPID 78 APID 82 PCRPID 78
+ CHANNEL ID 15 NAME "Régions" SATID ffffff TPID 2c88 SID 57a TYPE 1 VPID dc APID e6 PCRPID dc
+ CHANNEL ID 16 NAME "Mezzo" SATID ffffff TPID 2c88 SID 57b TYPE 1 VPID 140 APID 14a PCRPID 140
+ CHANNEL ID 17 NAME "01 01 15 97" SATID ffffff TPID 2c88 SID 5cb TYPE 0
+ CHANNEL ID 18 NAME "01 01 17 97" SATID ffffff TPID 2c88 SID 5cd TYPE 0
+ CHANNEL ID 19 NAME "01 02 17 97" SATID ffffff TPID 2c88 SID 5ce TYPE 0
+ CHANNEL ID 1a NAME "01 02 15 97" SATID ffffff TPID 2c88 SID 5d0 TYPE 0
+ CHANNEL ID 1b NAME "01 02 15 96" SATID ffffff TPID 2c88 SID 5d1 TYPE 0
+ CHANNEL ID 1c NAME "01 03 17 10" SATID ffffff TPID 2c88 SID 5d2 TYPE 0
+ CHANNEL ID 1d NAME "01 03 15 10" SATID ffffff TPID 2c88 SID 5d3 TYPE 0
+ CHANNEL ID 1e NAME "Festival" SATID ffffff TPID 2c88 SID 57c TYPE 1 VPID 1a4 APID 1ae PCRPID 1a4
+ CHANNEL ID 1f NAME "HISTOIRE " SATID ffffff TPID 2c88 SID 57d TYPE 1 VPID 208 APID 212 PCRPID 208
+ CHANNEL ID 20 NAME "Télétoon" SATID ffffff TPID 2c88 SID 57e TYPE 1 VPID 26c APID 276 PCRPID 26c
+ CHANNEL ID 21 NAME "Odyssée " SATID ffffff TPID 2c88 SID 57f TYPE 1 VPID 2d0 APID 2da PCRPID 2d0
+ CHANNEL ID 22 NAME "France Musiques" SATID ffffff TPID 2c88 SID 58a TYPE 0 APID 33e PCRPID 33e
+ CHANNEL ID 23 NAME "Hector" SATID ffffff TPID 2c88 SID 58b TYPE 0 APID 33f PCRPID 33f
+ CHANNEL ID 24 NAME "FIP" SATID ffffff TPID 2c88 SID 58c TYPE 0 APID 340 PCRPID 340
+ CHANNEL ID 25 NAME "France Inter" SATID ffffff TPID 2c88 SID 58d TYPE 0 APID 341 PCRPID 341
+ CHANNEL ID 26 NAME "France Info" SATID ffffff TPID 2c88 SID 58e TYPE 0 APID 342 PCRPID 342
+ CHANNEL ID 27 NAME "Elisa" SATID ffffff TPID 2c88 SID 58f TYPE 0 APID 343 PCRPID 343
+ CHANNEL ID 28 NAME "France Culture" SATID ffffff TPID 2c88 SID 590 TYPE 0 APID 344 PCRPID 344
+ CHANNEL ID 29 NAME "Radio Bleue" SATID ffffff TPID 2c88 SID 591 TYPE 0 APID 345 PCRPID 345
+ CHANNEL ID 2a NAME "Le Mouv" SATID ffffff TPID 2c88 SID 592 TYPE 0 APID 346 PCRPID 346
+ CHANNEL ID 2b NAME "TV5" SATID ffffff TPID 2c88 SID 581 TYPE 1 VPID 398 APID 3a2 PCRPID 398
+ TRANSPONDER ID 2d50 SATID 0000 TYPE 1 FREQ 0 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 2c NAME "CENTRONICS" SATID ffffff TPID 2d50 SID 7d0 TYPE 0
+ CHANNEL ID 2d NAME "FRANCE 2 " SATID ffffff TPID 2d50 SID 450 TYPE 1 VPID 140 PCRPID 140
+ CHANNEL ID 2e NAME "FRANCE 3" SATID ffffff TPID 2d50 SID 452 TYPE 1 VPID 208 PCRPID 208
+ CHANNEL ID 2f NAME "Crédit Agricole" SATID ffffff TPID 2d50 SID 14b5 TYPE 0 APID 14d5 PCRPID 14c9
+ CHANNEL ID 30 NAME "tps foot" SATID ffffff TPID 2d50 SID 1450 TYPE 0 APID 146e PCRPID 146e
+ CHANNEL ID 31 NAME "LCI" SATID ffffff TPID 2d50 SID 44d TYPE 1 VPID 78 APID 82 PCRPID 78
+ CHANNEL ID 32 NAME "EUROSPORT" SATID ffffff TPID 2d50 SID 44e TYPE 1 VPID dc APID e6 PCRPID dc
+ CHANNEL ID 33 NAME "FRANCE 2" SATID ffffff TPID 2d50 SID 44f TYPE 1 VPID 140 PCRPID 140
+ CHANNEL ID 34 NAME "FRANCE 3" SATID ffffff TPID 2d50 SID 451 TYPE 1 VPID 208 PCRPID 208
+ CHANNEL ID 35 NAME "I TELEVISION" SATID ffffff TPID 2d50 SID 454 TYPE 1 VPID 334 APID 33e PCRPID 334
+ CHANNEL ID 36 NAME "TV Mail alphatest" SATID ffffff TPID 2d50 SID 1645 TYPE 0
+ CHANNEL ID 37 NAME "CHAINE FI" SATID ffffff TPID 2d50 SID 14b4 TYPE 0 APID 14d2 APID 14d3 PCRPID 14d2
+ CHANNEL ID 38 NAME "caisse d'épargne" SATID ffffff TPID 2d50 SID 14b7 TYPE 0
+ CHANNEL ID 39 NAME "TV Mail" SATID ffffff TPID 2d50 SID 1644 TYPE 0
+ TRANSPONDER ID 2e7c SATID 0000 TYPE 1 FREQ 10892000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 3a NAME "CANAL+" SATID ffffff TPID 2e7c SID 12c1 TYPE 1 PCRPID a0
+ CHANNEL ID 3b NAME "CANAL+ ¯Ó£TY" SATID ffffff TPID 2e7c SID 12c2 TYPE 1 PCRPID a1
+ CHANNEL ID 3c NAME "TMT" SATID ffffff TPID 2e7c SID 12c4 TYPE 1 PCRPID a3
+ CHANNEL ID 3d NAME "ALE KINO!" SATID ffffff TPID 2e7c SID 12c5 TYPE 1 PCRPID a4
+ CHANNEL ID 3e NAME "MINIMAX" SATID ffffff TPID 2e7c SID 12c6 TYPE 1 PCRPID a5
+ CHANNEL ID 3f NAME "TVP 1" SATID ffffff TPID 2e7c SID 12c7 TYPE 1 PCRPID a6
+ CHANNEL ID 40 NAME "TVP 2" SATID ffffff TPID 2e7c SID 12c8 TYPE 1 PCRPID a7
+ CHANNEL ID 41 NAME "CANAL+ NIEBIESKI" SATID ffffff TPID 2e7c SID 12c9 TYPE 1 PCRPID a8
+ CHANNEL ID 42 NAME "EPG" SATID ffffff TPID 2e7c SID 12f2 TYPE 1 TTPID 1f4 PCRPID a0
+ TRANSPONDER ID 2ee0 SATID 0000 TYPE 1 FREQ 0 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 43 NAME "Multivision" SATID ffffff TPID 2ee0 SID 643 TYPE 0 VPID 140 PCRPID 140
+ CHANNEL ID 44 NAME "Grand Classique" SATID ffffff TPID 2ee0 SID 672 TYPE 1 APID 33e PCRPID 33e
+ CHANNEL ID 45 NAME "Symphonies" SATID ffffff TPID 2ee0 SID 673 TYPE 1 APID 33f PCRPID 33f
+ CHANNEL ID 46 NAME "Baroque" SATID ffffff TPID 2ee0 SID 674 TYPE 1 APID 340 PCRPID 340
+ CHANNEL ID 47 NAME "Opéra" SATID ffffff TPID 2ee0 SID 675 TYPE 1 APID 341 PCRPID 341
+ CHANNEL ID 48 NAME "Contemporain" SATID ffffff TPID 2ee0 SID 676 TYPE 1 APID 342 PCRPID 342
+ CHANNEL ID 49 NAME "Relaxation" SATID ffffff TPID 2ee0 SID 677 TYPE 1 APID 343 PCRPID 343
+ CHANNEL ID 4a NAME "Blues" SATID ffffff TPID 2ee0 SID 678 TYPE 1 APID 344 PCRPID 344
+ CHANNEL ID 4b NAME "Jazz" SATID ffffff TPID 2ee0 SID 679 TYPE 1 APID 345 PCRPID 345
+ CHANNEL ID 4c NAME "Big Band" SATID ffffff TPID 2ee0 SID 67a TYPE 1 APID 346 PCRPID 346
+ CHANNEL ID 4d NAME "Jazz Moderne" SATID ffffff TPID 2ee0 SID 67b TYPE 1 APID 347 PCRPID 347
+ CHANNEL ID 4e NAME "Les Tubes Français" SATID ffffff TPID 2ee0 SID 67c TYPE 1 APID 348 PCRPID 348
+ CHANNEL ID 4f NAME "RFO SAT" SATID ffffff TPID 2ee0 SID 641 TYPE 0 VPID 78 APID 82 PCRPID 78
+ CHANNEL ID 50 NAME "Appli D1 LC" SATID ffffff TPID 2ee0 SID 690 TYPE 0
+ CHANNEL ID 51 NAME "Cinefaz" SATID ffffff TPID 2ee0 SID 642 TYPE 1 VPID dc APID e6 PCRPID dc
+ CHANNEL ID 52 NAME "TurboPC" SATID ffffff TPID 2ee0 SID af1 TYPE 0
+ CHANNEL ID 53 NAME "MTV2" SATID ffffff TPID 2ee0 SID 647 TYPE 1 VPID 2d0 APID 2da PCRPID 2d0
+ CHANNEL ID 54 NAME "Rire et chansons" SATID ffffff TPID 2ee0 SID 65e TYPE 0 APID 3a2 PCRPID 3a2
+ CHANNEL ID 55 NAME "Radio J" SATID ffffff TPID 2ee0 SID 65f TYPE 1 APID 3a3 PCRPID 3a3
+ CHANNEL ID 56 NAME "Mosqueteiros" SATID ffffff TPID 2ee0 SID 660 TYPE 0 APID 3a4 PCRPID 3a4
+ CHANNEL ID 57 NAME "Abysse" SATID ffffff TPID 2ee0 SID 661 TYPE 1 APID 3a5 PCRPID 3a5
+ CHANNEL ID 58 NAME "RMC" SATID ffffff TPID 2ee0 SID 663 TYPE 1 APID 3a7 PCRPID 3a7
+ CHANNEL ID 59 NAME "Radio Junior" SATID ffffff TPID 2ee0 SID 664 TYPE 0 APID 3a8 PCRPID 3a8
+ CHANNEL ID 5a NAME "NETRADIO" SATID ffffff TPID 2ee0 SID 665 TYPE 0 APID 3a9 PCRPID 3a9
+ CHANNEL ID 5b NAME "Nostalgie" SATID ffffff TPID 2ee0 SID 666 TYPE 0 APID 3aa PCRPID 3aa
+ CHANNEL ID 5c NAME "Skyrock" SATID ffffff TPID 2ee0 SID 667 TYPE 1 APID 3ab PCRPID 3ab
+ CHANNEL ID 5d NAME "Radio Coutoisie" SATID ffffff TPID 2ee0 SID 668 TYPE 0 APID 3ac PCRPID 3ac
+ CHANNEL ID 5e NAME "La Voix des Pays" SATID ffffff TPID 2ee0 SID 669 TYPE 0 APID 3ad PCRPID 3ad
+ CHANNEL ID 5f NAME "INFO EXPRESS" SATID ffffff TPID 2ee0 SID 157c TYPE 0 APID 159a PCRPID 159a
+ CHANNEL ID 60 NAME "METEO" SATID ffffff TPID 2ee0 SID 16a8 TYPE 0 APID 16c6 PCRPID 16c6
+ CHANNEL ID 61 NAME "X X L" SATID ffffff TPID 2ee0 SID 1518 TYPE 1
+ CHANNEL ID 62 NAME "Multivision Cinéma" SATID ffffff TPID 2ee0 SID 1c20 TYPE 0
+ CHANNEL ID 63 NAME "Multivision Sport" SATID ffffff TPID 2ee0 SID 1c84 TYPE 0 TTPID 18fb
+ CHANNEL ID 64 NAME "Multivision Spectacle" SATID ffffff TPID 2ee0 SID 1ce8 TYPE 0
+ TRANSPONDER ID 2f44 SATID 0000 TYPE 1 FREQ 12673000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 65 NAME "Test OTV8" SATID ffffff TPID 2f44 SID 1d67 TYPE 1 PCRPID e80
+ CHANNEL ID 66 NAME "Test OTV9" SATID ffffff TPID 2f44 SID 1d68 TYPE 1 PCRPID e80
+ CHANNEL ID 67 NAME "Test OTV10" SATID ffffff TPID 2f44 SID 1d69 TYPE 1 PCRPID e80
+ CHANNEL ID 68 NAME "Test OTV11" SATID ffffff TPID 2f44 SID 1d6a TYPE 1 VPID 201 PCRPID 1ffe
+ CHANNEL ID 69 NAME "Test31" SATID ffffff TPID 2f44 SID 1d4d TYPE 1 VPID 200 APID 28a PCRPID 1ffe
+ CHANNEL ID 6a NAME "CNN" SATID ffffff TPID 2f44 SID 1d4e TYPE 1 VPID 201 APID 294 PCRPID 1ffe
+ CHANNEL ID 6b NAME "Q24" SATID ffffff TPID 2f44 SID 1d4f TYPE 0 VPID 202 APID 29e APID 29f APID 2a9 APID 2b3 PCRPID 1ffe
+ CHANNEL ID 6c NAME "Test34" SATID ffffff TPID 2f44 SID 1d50 TYPE 1 VPID 203 APID 2a8 PCRPID 1ffe
+ CHANNEL ID 6d NAME "Test35" SATID ffffff TPID 2f44 SID 1d51 TYPE 1 VPID 204 APID 2b2 PCRPID 1ffe
+ CHANNEL ID 6e NAME "Test OTV1" SATID ffffff TPID 2f44 SID 1d60 TYPE 1 PCRPID e80
+ CHANNEL ID 6f NAME "Test OTV2" SATID ffffff TPID 2f44 SID 1d61 TYPE 1 PCRPID e80
+ CHANNEL ID 70 NAME "Test OTV3" SATID ffffff TPID 2f44 SID 1d62 TYPE 1 PCRPID e80
+ CHANNEL ID 71 NAME "Test OTV4" SATID ffffff TPID 2f44 SID 1d63 TYPE 1 PCRPID e80
+ CHANNEL ID 72 NAME "Test OTV5" SATID ffffff TPID 2f44 SID 1d64 TYPE 1 PCRPID e80
+ CHANNEL ID 73 NAME "Test OTV6" SATID ffffff TPID 2f44 SID 1d65 TYPE 1 PCRPID e80
+ CHANNEL ID 74 NAME "Test OTV7" SATID ffffff TPID 2f44 SID 1d66 TYPE 1 PCRPID e80
+ CHANNEL ID 75 SATID ffffff TPID 2f44 SID 1d74 TYPE 0
+ CHANNEL ID 76 SATID ffffff TPID 2f44 SID 1d75 TYPE 0
+ TRANSPONDER ID 0109 SATID 0000 TYPE 1 FREQ 11033000 POL V SRATE 27500000 FEC 8
+ TRANSPONDER ID 010a SATID 0000 TYPE 1 FREQ 11054000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 3264 SATID 0000 TYPE 1 FREQ 11095910 POL H SRATE 27500000 FEC 8
+ CHANNEL ID ffffffff NAME "Telekom TV" SATID ffffff TPID 3264 SID e7f TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "FantasticOverOpal" SATID ffffff TPID 3264 SID e80 TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "Gilat" SATID ffffff TPID 3264 SID e81 TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "Siemens TV" SATID ffffff TPID 3264 SID e84 TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "S-TV" SATID ffffff TPID 3264 SID e85 TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "Optibase Encoder" SATID ffffff TPID 3264 SID e86 TYPE 0 VPID 20 PCRPID 20
+ TRANSPONDER ID 010c SATID 0000 TYPE 1 FREQ 11130000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 010d SATID 0000 TYPE 1 FREQ 11131000 POL V SRATE 27500000 FEC 8
+ TRANSPONDER ID 010e SATID 0000 TYPE 1 FREQ 11196000 POL V SRATE 27500000 FEC 8
+ TRANSPONDER ID 010f SATID 0000 TYPE 1 FREQ 11205000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 0110 SATID 0000 TYPE 1 FREQ 11242000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 012c SATID 0000 TYPE 1 FREQ 11095910 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 7d NAME "FantasticOverOpal" SATID ffffff TPID 12c SID e76 TYPE 0 PCRPID 201
+ TRANSPONDER ID 004d SATID 0000 TYPE 1 FREQ 11303750 POL H SRATE 27500000 FEC 8
+ CHANNEL ID ffffffff NAME "Deutsche Bank / T1" SATID ffffff TPID 4d SID 1 TYPE 1 VPID 488 PCRPID 488
+ CHANNEL ID 7f NAME "Animal Planet" SATID ffffff TPID 4d SID a TYPE 1 VPID 488 PCRPID 488
+ CHANNEL ID 80 NAME "Discovery E Europe-English" SATID ffffff TPID 4d SID 14 TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID ffffffff NAME "Wuerth KG / T21" SATID ffffff TPID 4d SID 15 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 82 NAME "Discovery Italy" SATID ffffff TPID 4d SID 1e TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID ffffffff NAME "BTI / T31" SATID ffffff TPID 4d SID 1f TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 84 NAME "Discovery Russia" SATID ffffff TPID 4d SID 28 TYPE 1 VPID 5b4 PCRPID 5b4
+ CHANNEL ID ffffffff NAME "K-TV (MetroMux) / T41" SATID ffffff TPID 4d SID 29 TYPE 1 VPID 7a8 PCRPID 7a8
+ CHANNEL ID 86 NAME "Animal Planet EE" SATID ffffff TPID 4d SID 32 TYPE 1 VPID 618 PCRPID 618
+ CHANNEL ID 87 NAME "Animal Planet - Russian" SATID ffffff TPID 4d SID 33 TYPE 1 VPID 618 PCRPID 618
+ CHANNEL ID 88 NAME "Discovery Netherlands" SATID ffffff TPID 4d SID 3c TYPE 1 VPID 67c PCRPID 67c
+ CHANNEL ID ffffffff NAME "Q English" SATID ffffff TPID 4d SID 46 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 8a NAME "Travel and Adventure" SATID ffffff TPID 4d SID 50 TYPE 1 VPID 744 PCRPID 744
+ CHANNEL ID 8b NAME "Travel and Adventure- Russian" SATID ffffff TPID 4d SID 51 TYPE 1 VPID 744 PCRPID 744
+ CHANNEL ID 8c NAME "New DCP" SATID ffffff TPID 4d SID 12c TYPE 1 APID 4c4 PCRPID 4c4
+ CHANNEL ID 8d NAME "CCP" SATID ffffff TPID 4d SID 12d TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID ffffffff NAME "Deutsche Bank / T2" SATID ffffff TPID 4d SID 2 TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID 93 NAME "Channel Three" SATID ffffff TPID 4d SID 3 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 94 NAME "Channel Four" SATID ffffff TPID 4d SID 4 TYPE 0 VPID 5b4 PCRPID 5b4
+ CHANNEL ID 95 NAME "Channel Five" SATID ffffff TPID 4d SID 5 TYPE 0 VPID 618 PCRPID 618
+ CHANNEL ID 96 NAME "Channel 6 = Sat 7 Arabic" SATID ffffff TPID 4d SID 6 TYPE 0 VPID 67c PCRPID 67c
+ CHANNEL ID 97 NAME "Channel Seven" SATID ffffff TPID 4d SID 7 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 98 NAME "Q German" SATID ffffff TPID 4d SID 47 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 99 NAME "Q French" SATID ffffff TPID 4d SID 48 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 9a NAME "Q Dutch" SATID ffffff TPID 4d SID 49 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 1b8 NAME "DTAG / T11" SATID ffffff TPID 4d SID b TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1b9 NAME "DTAG 50 / T12" SATID ffffff TPID 4d SID c TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1ba NAME "Telekom TV" SATID ffffff TPID 4d SID d TYPE 1 VPID 5b4 PCRPID 5b4
+ CHANNEL ID 1bb NAME "Gerling / T26" SATID ffffff TPID 4d SID 1a TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bc NAME "Hornbach-D / T36" SATID ffffff TPID 4d SID 24 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bd NAME "Hornbach-NL / T38" SATID ffffff TPID 4d SID 26 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1be NAME "Hornbach-CZ / T39" SATID ffffff TPID 4d SID 27 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bf NAME "Testkanal" SATID ffffff TPID 4d SID 63 TYPE 0 VPID 67c PCRPID 67c
+ CHANNEL ID 1c0 NAME "KENCAST" SATID ffffff TPID 4d SID 6f TYPE 0 PCRPID 42e
+ TRANSPONDER ID 0113 SATID 0000 TYPE 1 FREQ 11338000 POL V SRATE 27500000 FEC 8
+ TRANSPONDER ID 0114 SATID 0000 TYPE 1 FREQ 11371000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 0115 SATID 0000 TYPE 1 FREQ 11457000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 0116 SATID 0000 TYPE 1 FREQ 11464000 POL V SRATE 27500000 FEC 8
+ TRANSPONDER ID 3c8c SATID 0000 TYPE 1 FREQ 11604100 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 8e NAME "SAT.1 CH" SATID ffffff TPID 3c8c SID 259 TYPE 0 VPID 65 APID 66 TTPID 69 PCRPID 69
+ CHANNEL ID 8f NAME "KBT Channel SUN" SATID ffffff TPID 3c8c SID 25b TYPE 0 VPID 6f APID 70 PCRPID 6f
+ CHANNEL ID 90 NAME "big FM" SATID ffffff TPID 3c8c SID 25c TYPE 0 APID 71 PCRPID 71
+ CHANNEL ID 91 NAME "Event" SATID ffffff TPID 3c8c SID 25a TYPE 0 VPID a0 APID a1 PCRPID a0
+ TRANSPONDER ID 0118 SATID 0000 TYPE 1 FREQ 11623000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 004d SATID 0000 TYPE 1 FREQ 11642500 POL H SRATE 27500000 FEC 8
+ CHANNEL ID ffffffff NAME "Deutsche Bank / T1" SATID ffffff TPID 4d SID 1 TYPE 1 VPID 488 PCRPID 488
+ CHANNEL ID 7f NAME "Animal Planet" SATID ffffff TPID 4d SID a TYPE 1 VPID 488 PCRPID 488
+ CHANNEL ID 80 NAME "Discovery E Europe-English" SATID ffffff TPID 4d SID 14 TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID ffffffff NAME "Wuerth KG / T21" SATID ffffff TPID 4d SID 15 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 82 NAME "Discovery Italy" SATID ffffff TPID 4d SID 1e TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID ffffffff NAME "BTI / T31" SATID ffffff TPID 4d SID 1f TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 84 NAME "Discovery Russia" SATID ffffff TPID 4d SID 28 TYPE 1 VPID 5b4 PCRPID 5b4
+ CHANNEL ID ffffffff NAME "K-TV (MetroMux) / T41" SATID ffffff TPID 4d SID 29 TYPE 1 VPID 7a8 PCRPID 7a8
+ CHANNEL ID 86 NAME "Animal Planet EE" SATID ffffff TPID 4d SID 32 TYPE 1 VPID 618 PCRPID 618
+ CHANNEL ID 87 NAME "Animal Planet - Russian" SATID ffffff TPID 4d SID 33 TYPE 1 VPID 618 PCRPID 618
+ CHANNEL ID 88 NAME "Discovery Netherlands" SATID ffffff TPID 4d SID 3c TYPE 1 VPID 67c PCRPID 67c
+ CHANNEL ID ffffffff NAME "Q English" SATID ffffff TPID 4d SID 46 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 8a NAME "Travel and Adventure" SATID ffffff TPID 4d SID 50 TYPE 1 VPID 744 PCRPID 744
+ CHANNEL ID 8b NAME "Travel and Adventure- Russian" SATID ffffff TPID 4d SID 51 TYPE 1 VPID 744 PCRPID 744
+ CHANNEL ID 8c NAME "New DCP" SATID ffffff TPID 4d SID 12c TYPE 1 APID 4c4 PCRPID 4c4
+ CHANNEL ID 8d NAME "CCP" SATID ffffff TPID 4d SID 12d TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID ffffffff NAME "Deutsche Bank / T2" SATID ffffff TPID 4d SID 2 TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID 93 NAME "Channel Three" SATID ffffff TPID 4d SID 3 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 94 NAME "Channel Four" SATID ffffff TPID 4d SID 4 TYPE 0 VPID 5b4 PCRPID 5b4
+ CHANNEL ID 95 NAME "Channel Five" SATID ffffff TPID 4d SID 5 TYPE 0 VPID 618 PCRPID 618
+ CHANNEL ID 96 NAME "Channel 6 = Sat 7 Arabic" SATID ffffff TPID 4d SID 6 TYPE 0 VPID 67c PCRPID 67c
+ CHANNEL ID 97 NAME "Channel Seven" SATID ffffff TPID 4d SID 7 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 98 NAME "Q German" SATID ffffff TPID 4d SID 47 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 99 NAME "Q French" SATID ffffff TPID 4d SID 48 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 9a NAME "Q Dutch" SATID ffffff TPID 4d SID 49 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 1b8 NAME "DTAG / T11" SATID ffffff TPID 4d SID b TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1b9 NAME "DTAG 50 / T12" SATID ffffff TPID 4d SID c TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1ba NAME "Telekom TV" SATID ffffff TPID 4d SID d TYPE 1 VPID 5b4 PCRPID 5b4
+ CHANNEL ID 1bb NAME "Gerling / T26" SATID ffffff TPID 4d SID 1a TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bc NAME "Hornbach-D / T36" SATID ffffff TPID 4d SID 24 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bd NAME "Hornbach-NL / T38" SATID ffffff TPID 4d SID 26 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1be NAME "Hornbach-CZ / T39" SATID ffffff TPID 4d SID 27 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bf NAME "Testkanal" SATID ffffff TPID 4d SID 63 TYPE 0 VPID 67c PCRPID 67c
+ CHANNEL ID 1c0 NAME "KENCAST" SATID ffffff TPID 4d SID 6f TYPE 0 PCRPID 42e
+ TRANSPONDER ID 011a SATID 0000 TYPE 1 FREQ 11662000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 3e1c SATID 0000 TYPE 1 FREQ 11681001 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 9b NAME "AB 1" SATID ffffff TPID 3e1c SID c9 TYPE 1 VPID a0 APID 50 TTPID 20 PCRPID a0
+ CHANNEL ID 9c NAME "AB MOTEURS" SATID ffffff TPID 3e1c SID ca TYPE 1 VPID a1 APID 54 TTPID 23 PCRPID a1
+ CHANNEL ID 9d NAME "ANIMAUX" SATID ffffff TPID 3e1c SID cb TYPE 1 VPID a2 APID 58 TTPID 26 PCRPID a2
+ CHANNEL ID 9e NAME "CHASSE ET PECHE" SATID ffffff TPID 3e1c SID cc TYPE 1 VPID a3 APID 5c TTPID 29 PCRPID a3
+ CHANNEL ID 9f NAME "XXL" SATID ffffff TPID 3e1c SID cd TYPE 1 VPID a4 APID 60 TTPID 2c PCRPID a4
+ CHANNEL ID a0 NAME "MUSIQUE CLASSIQUE" SATID ffffff TPID 3e1c SID ce TYPE 1 VPID a5 APID 64 TTPID 2f PCRPID a5
+ CHANNEL ID a1 NAME "ESCALES" SATID ffffff TPID 3e1c SID cf TYPE 1 VPID a6 APID 68 TTPID 32 PCRPID a6
+ CHANNEL ID a2 NAME "FIT/chaîne HISTOIRE" SATID ffffff TPID 3e1c SID d0 TYPE 1 VPID a7 APID 6c TTPID 35 PCRPID a7
+ CHANNEL ID a3 NAME "RFM TV" SATID ffffff TPID 3e1c SID d1 TYPE 1 VPID a8 APID 70 TTPID 38 PCRPID a8
+ TRANSPONDER ID 13ec SATID 0000 TYPE 1 FREQ 11744599 POL H SRATE 27500000 FEC 8
+ CHANNEL ID a4 NAME "EDTV DRAMA" SATID ffffff TPID 13ec SID 2520 TYPE 0 VPID 1322 PCRPID 1322
+ CHANNEL ID a5 NAME "EDTV RADIO 02" SATID ffffff TPID 13ec SID 2534 TYPE 0 VPID 1322 PCRPID 1322
+ CHANNEL ID a6 NAME "EDTV RADIO 01" SATID ffffff TPID 13ec SID 2533 TYPE 0 VPID 1322 PCRPID 1322
+ CHANNEL ID a7 NAME "EDTV SPORT" SATID ffffff TPID 13ec SID 251e TYPE 0 VPID 1322 PCRPID 1322
+ CHANNEL ID a8 NAME "EDTV BUSINESS" SATID ffffff TPID 13ec SID 251f TYPE 0 VPID 1322 PCRPID 1322
+ TRANSPONDER ID 1450 SATID 0000 TYPE 1 FREQ 11765841 POL V SRATE 27500000 FEC 8
+ CHANNEL ID a9 NAME "RAI1" SATID ffffff TPID 1450 SID d49 TYPE 0 VPID a0 PCRPID 1ffe
+ CHANNEL ID aa NAME "RAI2" SATID ffffff TPID 1450 SID d4a TYPE 0 VPID a1 PCRPID 1ffe
+ CHANNEL ID ab NAME "RAI3" SATID ffffff TPID 1450 SID d4b TYPE 0 VPID a2 PCRPID 1ffe
+ CHANNEL ID ac NAME "Rai Way TEST1" SATID ffffff TPID 1450 SID d4c TYPE 0 VPID 203 PCRPID 1ffe
+ CHANNEL ID ad NAME "Rai Way TEST2" SATID ffffff TPID 1450 SID d4d TYPE 0 VPID 204 PCRPID 1ffe
+ CHANNEL ID ae NAME "Rai Way TEST3" SATID ffffff TPID 1450 SID d4e TYPE 0 VPID a4 PCRPID 1ffe
+ CHANNEL ID af NAME "RAIMOSAICO" SATID ffffff TPID 1450 SID d4f TYPE 0 VPID 206 PCRPID 1ffe
+ CHANNEL ID b0 SATID ffffff TPID 1450 SID da2 TYPE 0
+ TRANSPONDER ID 1518 SATID 0000 TYPE 1 FREQ 11765841 POL V SRATE 27500000 FEC 8
+ CHANNEL ID b1 NAME "RAINews24" SATID ffffff TPID 1518 SID ce5 TYPE 0 VPID 204 PCRPID 1ffe
+ CHANNEL ID b2 NAME "CAMERA DEPUTATI" SATID ffffff TPID 1518 SID ce6 TYPE 0 VPID 205 PCRPID 1ffe
+ CHANNEL ID b3 NAME "TELEPACE" SATID ffffff TPID 1518 SID ce8 TYPE 0 VPID 203 PCRPID 1ffe
+ CHANNEL ID b4 NAME "RAISPORTSAT" SATID ffffff TPID 1518 SID ce9 TYPE 0 VPID 200 PCRPID 1ffe
+ CHANNEL ID b5 NAME "RAINettunoSAT2" SATID ffffff TPID 1518 SID cea TYPE 0 VPID 201 PCRPID 1ffe
+ CHANNEL ID b6 NAME "RAIeducational" SATID ffffff TPID 1518 SID ceb TYPE 0 VPID 202 PCRPID 1ffe
+ CHANNEL ID b7 NAME "RAINettunoSAT1" SATID ffffff TPID 1518 SID cec TYPE 0 VPID 207 PCRPID 1ffe
+ CHANNEL ID b8 NAME "SAT2000" SATID ffffff TPID 1518 SID ced TYPE 0 VPID 206 PCRPID 1ffe
+ CHANNEL ID b9 NAME "RADIOUNO" SATID ffffff TPID 1518 SID cef TYPE 0 APID 29e PCRPID 1ffe
+ CHANNEL ID ba NAME "RADIODUE" SATID ffffff TPID 1518 SID cf0 TYPE 0 APID 29f PCRPID 1ffe
+ CHANNEL ID bb NAME "RADIOTRE" SATID ffffff TPID 1518 SID cf1 TYPE 0 APID 2a0 PCRPID 1ffe
+ CHANNEL ID bc NAME "FDleggera" SATID ffffff TPID 1518 SID cf2 TYPE 0 APID 2a1 PCRPID 1ffe
+ CHANNEL ID bd NAME "FDauditorium" SATID ffffff TPID 1518 SID cf3 TYPE 0 APID 299 PCRPID 1ffe
+ CHANNEL ID be NAME "BLUSAT 2000" SATID ffffff TPID 1518 SID cf4 TYPE 0 APID 2a5 PCRPID 1ffe
+ CHANNEL ID bf NAME "GR PARLAMENTO" SATID ffffff TPID 1518 SID cf5 TYPE 0 APID 298 PCRPID 1ffe
+ CHANNEL ID c0 NAME "ISORADIO" SATID ffffff TPID 1518 SID cf6 TYPE 0 APID 295 PCRPID 1ffe
+ TRANSPONDER ID 157c SATID 0000 TYPE 1 FREQ 11823000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID c1 NAME "R1" SATID ffffff TPID 157c SID 12d TYPE 1 VPID 200 APID 28a PCRPID 1ffe
+ CHANNEL ID c2 NAME "R2" SATID ffffff TPID 157c SID 12e TYPE 1 VPID 201 APID 294 APID 295 PCRPID 1ffe
+ CHANNEL ID c3 NAME "R3" SATID ffffff TPID 157c SID 12f TYPE 1 VPID 202 APID 29e TTPID 242 PCRPID 1ffe
+ CHANNEL ID c4 NAME "R4" SATID ffffff TPID 157c SID 130 TYPE 1 VPID 203 APID 2a8 TTPID 243 PCRPID 1ffe
+ CHANNEL ID c5 NAME "R5" SATID ffffff TPID 157c SID 132 TYPE 1 VPID 124a APID 2bc TTPID 245 PCRPID 1ffe
+ CHANNEL ID c6 NAME "R6" SATID ffffff TPID 157c SID 133 TYPE 1 VPID 206 APID 2c6 PCRPID 1ffe
+ CHANNEL ID c7 NAME "R7" SATID ffffff TPID 157c SID 134 TYPE 1 VPID 207 APID 2d0 PCRPID 1ffe
+ CHANNEL ID c8 NAME "Love Radio" SATID ffffff TPID 157c SID 135 TYPE 1 APID 2c7 PCRPID 1ffe
+ CHANNEL ID c9 NAME "Greek Church" SATID ffffff TPID 157c SID 136 TYPE 1 APID 29f PCRPID 1ffe
+ CHANNEL ID ca NAME "Skai Radio" SATID ffffff TPID 157c SID 137 TYPE 1 APID 2e5 PCRPID 1ffe
+ CHANNEL ID cb NAME "MelodiRadio" SATID ffffff TPID 157c SID 138 TYPE 1 APID 2bd PCRPID 1ffe
+ CHANNEL ID cc NAME "ERA 3" SATID ffffff TPID 157c SID 139 TYPE 1 APID 28b PCRPID 1ffe
+ CHANNEL ID cd NAME "RR1" SATID ffffff TPID 157c SID 13a TYPE 1 APID 2a9 PCRPID 1ffe
+ CHANNEL ID ce NAME "RR2" SATID ffffff TPID 157c SID 13b TYPE 1 APID 2d1 PCRPID 1ffe
+ CHANNEL ID cf NAME "NOVA CINE" SATID ffffff TPID 157c SID 13c TYPE 1 VPID 209 APID 2e4 PCRPID 1ffe
+ CHANNEL ID d0 NAME "FILM NET" SATID ffffff TPID 157c SID 13d TYPE 1 VPID 200 APID 28a PCRPID 1ffe
+ CHANNEL ID d1 NAME "SSportK-T.V" SATID ffffff TPID 157c SID 13e TYPE 1 VPID 201 APID 294 APID 295 PCRPID 1ffe
+ CHANNEL ID d2 NAME "MEGA" SATID ffffff TPID 157c SID 13f TYPE 1 VPID 202 APID 29e TTPID 242 PCRPID 1ffe
+ CHANNEL ID d3 NAME "ANT-1" SATID ffffff TPID 157c SID 140 TYPE 1 VPID 203 APID 2a8 TTPID 243 PCRPID 1ffe
+ CHANNEL ID d4 NAME "STAR" SATID ffffff TPID 157c SID 141 TYPE 1 VPID 205 APID 2bc TTPID 245 PCRPID 1ffe
+ CHANNEL ID d5 NAME "Alter 5" SATID ffffff TPID 157c SID 142 TYPE 1 VPID 206 APID 2c6 PCRPID 1ffe
+ CHANNEL ID d6 NAME "NEW Tempo" SATID ffffff TPID 157c SID 143 TYPE 1 VPID 207 APID 2d0 PCRPID 1ffe
+ CHANNEL ID d7 NAME "Super Sport2" SATID ffffff TPID 157c SID 144 TYPE 1 VPID 204 APID 2b2 APID 2b3 PCRPID 1ffe
+ TRANSPONDER ID 15e0 SATID 0000 TYPE 1 FREQ 11843000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID d8 SATID ffffff TPID 15e0 SID fffe TYPE 0
+ CHANNEL ID d9 NAME "INTV" SATID ffffff TPID 15e0 SID db0 TYPE 1 VPID 914 PCRPID 900
+ CHANNEL ID da NAME "UNIV" SATID ffffff TPID 15e0 SID db3 TYPE 1 VPID 901 PCRPID 900
+ CHANNEL ID db NAME "CULT" SATID ffffff TPID 15e0 SID db6 TYPE 1 VPID 903 PCRPID 900
+ CHANNEL ID dc NAME "ERSP" SATID ffffff TPID 15e0 SID db9 TYPE 1 VPID 905 PCRPID 900
+ CHANNEL ID dd NAME "SINT" SATID ffffff TPID 15e0 SID dbb TYPE 1
+ CHANNEL ID de NAME "CART" SATID ffffff TPID 15e0 SID dbc TYPE 1 VPID 981 PCRPID 980
+ CHANNEL ID df NAME "SINT" SATID ffffff TPID 15e0 SID dbf TYPE 1
+ CHANNEL ID e0 NAME "DISC" SATID ffffff TPID 15e0 SID dc2 TYPE 1 VPID 985 PCRPID 980
+ CHANNEL ID e1 NAME "SINT" SATID ffffff TPID 15e0 SID dc5 TYPE 1
+ CHANNEL ID e2 NAME "TVL" SATID ffffff TPID 15e0 SID dc8 TYPE 1 VPID 989 PCRPID 980
+ CHANNEL ID e3 NAME "SINT" SATID ffffff TPID 15e0 SID dca TYPE 1
+ CHANNEL ID e4 NAME "ROCK" SATID ffffff TPID 15e0 SID dde TYPE 1 APID 910 PCRPID 900
+ CHANNEL ID e5 NAME "RDS" SATID ffffff TPID 15e0 SID de1 TYPE 1 APID 911 PCRPID 900
+ CHANNEL ID e6 NAME "RTL" SATID ffffff TPID 15e0 SID de4 TYPE 1 APID 912 PCRPID 900
+ CHANNEL ID e7 NAME "101" SATID ffffff TPID 15e0 SID de7 TYPE 1 APID 913 PCRPID 900
+ CHANNEL ID e8 NAME "RVOY" SATID ffffff TPID 15e0 SID dea TYPE 1 APID 90b PCRPID 900
+ CHANNEL ID e9 NAME "RKFM" SATID ffffff TPID 15e0 SID deb TYPE 1 APID 90d PCRPID 900
+ CHANNEL ID ea NAME "GLOB" SATID ffffff TPID 15e0 SID dec TYPE 1 APID 90c PCRPID 900
+ CHANNEL ID eb NAME "ANT1" SATID ffffff TPID 15e0 SID ded TYPE 1 APID 90e PCRPID 900
+ CHANNEL ID ec NAME "RRAD" SATID ffffff TPID 15e0 SID dee TYPE 1 APID 90f PCRPID 900
+ CHANNEL ID ed NAME "MC01" SATID ffffff TPID 15e0 SID df0 TYPE 1 APID 908 PCRPID 908
+ CHANNEL ID ee NAME "MC02" SATID ffffff TPID 15e0 SID df3 TYPE 1 APID 909 PCRPID 909
+ CHANNEL ID ef NAME "MC03" SATID ffffff TPID 15e0 SID df6 TYPE 1 APID 90a PCRPID 90a
+ TRANSPONDER ID 1644 SATID 0000 TYPE 1 FREQ 12341001 POL H SRATE 27500000 FEC 8
+ CHANNEL ID f0 NAME "P7" SATID ffffff TPID 1644 SID 2c25 TYPE 1 VPID a0 APID 50 APID 51 PCRPID af
+ CHANNEL ID f1 NAME "P8" SATID ffffff TPID 1644 SID 2c27 TYPE 1 VPID a1 APID 54 APID 55 PCRPID af
+ CHANNEL ID f2 NAME "P9" SATID ffffff TPID 1644 SID 2c29 TYPE 1 VPID a2 APID 58 APID 59 PCRPID af
+ CHANNEL ID f3 NAME "+GIOCHI" SATID ffffff TPID 1644 SID 2c2e TYPE 1 PCRPID af
+ CHANNEL ID f4 NAME "MM01" SATID ffffff TPID 1644 SID 2c2f TYPE 1 APID 259 PCRPID b0
+ CHANNEL ID f5 NAME "MM02" SATID ffffff TPID 1644 SID 2c30 TYPE 0 APID 25a PCRPID b0
+ CHANNEL ID f6 NAME "MM03" SATID ffffff TPID 1644 SID 2c31 TYPE 0 APID 25b PCRPID b0
+ CHANNEL ID f7 NAME "MM04" SATID ffffff TPID 1644 SID 2c32 TYPE 0 APID 25c PCRPID b0
+ CHANNEL ID f8 NAME "MM05" SATID ffffff TPID 1644 SID 2c33 TYPE 0 APID 25d PCRPID b0
+ CHANNEL ID f9 NAME "MM06" SATID ffffff TPID 1644 SID 2c34 TYPE 0 APID 25e PCRPID b0
+ CHANNEL ID fa NAME "MM07" SATID ffffff TPID 1644 SID 2c35 TYPE 0 APID 25f PCRPID b0
+ CHANNEL ID fb NAME "MM08" SATID ffffff TPID 1644 SID 2c36 TYPE 0 APID 260 PCRPID b0
+ CHANNEL ID fc NAME "MM09" SATID ffffff TPID 1644 SID 2c37 TYPE 0 APID 261 PCRPID b0
+ CHANNEL ID fd NAME "MM10" SATID ffffff TPID 1644 SID 2c38 TYPE 0 APID 262 PCRPID b0
+ CHANNEL ID fe NAME "MM11" SATID ffffff TPID 1644 SID 2c39 TYPE 1 APID 263 PCRPID b0
+ CHANNEL ID ff NAME "MM12" SATID ffffff TPID 1644 SID 2c3a TYPE 0 APID 264 PCRPID b0
+ CHANNEL ID 100 NAME "MM13" SATID ffffff TPID 1644 SID 2c3b TYPE 0 APID 265 PCRPID b0
+ CHANNEL ID 101 NAME "MM14" SATID ffffff TPID 1644 SID 2c3c TYPE 0 APID 266 PCRPID b0
+ CHANNEL ID 102 NAME "MM15" SATID ffffff TPID 1644 SID 2c3d TYPE 0 APID 267 PCRPID b0
+ CHANNEL ID 103 NAME "MM16" SATID ffffff TPID 1644 SID 2c3e TYPE 0 APID 268 PCRPID b0
+ CHANNEL ID 104 NAME "MM17" SATID ffffff TPID 1644 SID 2c3f TYPE 0 APID 269 PCRPID b0
+ CHANNEL ID 105 NAME "MM18" SATID ffffff TPID 1644 SID 2c40 TYPE 0 APID 26a PCRPID b0
+ CHANNEL ID 106 NAME "MM19" SATID ffffff TPID 1644 SID 2c41 TYPE 0 APID 26b PCRPID b0
+ CHANNEL ID 107 NAME "MM20" SATID ffffff TPID 1644 SID 2c42 TYPE 0 APID 26c PCRPID b0
+ CHANNEL ID 108 NAME "MM21" SATID ffffff TPID 1644 SID 2c43 TYPE 1 APID 26d PCRPID b0
+ CHANNEL ID 109 NAME "MM22" SATID ffffff TPID 1644 SID 2c44 TYPE 0 APID 26e PCRPID b0
+ CHANNEL ID 10a NAME "MM23" SATID ffffff TPID 1644 SID 2c45 TYPE 0 APID 26f PCRPID b0
+ CHANNEL ID 10b NAME "MM24" SATID ffffff TPID 1644 SID 2c46 TYPE 0 APID 270 PCRPID b0
+ CHANNEL ID 10c NAME "MM25" SATID ffffff TPID 1644 SID 2c47 TYPE 0 APID 271 PCRPID b0
+ CHANNEL ID 10d NAME "MM26" SATID ffffff TPID 1644 SID 2c48 TYPE 0 APID 272 PCRPID b0
+ CHANNEL ID 10e NAME "MM27" SATID ffffff TPID 1644 SID 2c49 TYPE 0 APID 273 PCRPID b0
+ CHANNEL ID 10f NAME "MM28" SATID ffffff TPID 1644 SID 2c4a TYPE 0 APID 274 PCRPID b0
+ CHANNEL ID 110 NAME "MM29" SATID ffffff TPID 1644 SID 2c4b TYPE 0 APID 275 PCRPID b0
+ CHANNEL ID 111 NAME "MM30" SATID ffffff TPID 1644 SID 2c4c TYPE 0 APID 276 PCRPID b0
+ CHANNEL ID 112 NAME "RCAP" SATID ffffff TPID 1644 SID 2c4d TYPE 1 APID 277 PCRPID b0
+ CHANNEL ID 113 NAME "R105" SATID ffffff TPID 1644 SID 2c4e TYPE 0 APID 278 PCRPID b0
+ CHANNEL ID 114 NAME "RDJ" SATID ffffff TPID 1644 SID 2c4f TYPE 0 APID 279 PCRPID b0
+ CHANNEL ID 115 NAME "RITA" SATID ffffff TPID 1644 SID 2c50 TYPE 0 APID 27a PCRPID b0
+ CHANNEL ID 116 NAME "RMC" SATID ffffff TPID 1644 SID 2c51 TYPE 0 APID 27b PCRPID b0
+ CHANNEL ID 117 NAME "R101" SATID ffffff TPID 1644 SID 2c52 TYPE 0 APID 27c PCRPID b0
+ CHANNEL ID 118 NAME "RRAD" SATID ffffff TPID 1644 SID 2c53 TYPE 0 APID 27d PCRPID b0
+ CHANNEL ID 119 NAME "RR" SATID ffffff TPID 1644 SID 2c54 TYPE 0 APID 27e PCRPID b0
+ CHANNEL ID 11a SATID ffffff TPID 1644 SID 2c61 TYPE 0 APID 259 APID 25a APID 25b APID 25c APID 25d APID 25e APID 25f APID 260 APID 261 APID 262 PCRPID b0
+ CHANNEL ID 11b SATID ffffff TPID 1644 SID 2c62 TYPE 0 APID 263 APID 264 APID 265 APID 266 APID 267 APID 268 APID 269 APID 26a APID 26b APID 26c PCRPID b0
+ CHANNEL ID 11c SATID ffffff TPID 1644 SID 2c63 TYPE 0 APID 26d APID 26e APID 26f APID 270 APID 271 APID 272 APID 273 APID 274 APID 275 APID 276 PCRPID b0
+ CHANNEL ID 11d SATID ffffff TPID 1644 SID 2c64 TYPE 0 APID 277 APID 278 APID 279 APID 27a APID 27b APID 27c APID 27d APID 27e PCRPID b0
+ CHANNEL ID 11e NAME "MULTIMUSICA" SATID ffffff TPID 1644 SID 2c58 TYPE 1 PCRPID b0
+ CHANNEL ID 11f NAME "RADIO" SATID ffffff TPID 1644 SID 2c59 TYPE 1 PCRPID b0
+ CHANNEL ID 120 NAME "MULTIMUSIC 1" SATID ffffff TPID 1644 SID 2c65 TYPE 1 APID 262 APID 259 APID 25a APID 25b APID 25c APID 25d APID 25e APID 25f APID 260 APID 261 PCRPID b0
+ CHANNEL ID 121 NAME "MULTIMUSIC 2" SATID ffffff TPID 1644 SID 2c66 TYPE 1 APID 265 APID 266 APID 267 APID 263 APID 264 APID 268 APID 269 APID 26a APID 26b APID 26c PCRPID b0
+ TRANSPONDER ID 16a8 SATID 0000 TYPE 1 FREQ 12713000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 122 SATID ffffff TPID 16a8 SID fffe TYPE 0
+ CHANNEL ID 123 NAME "TEAM" SATID ffffff TPID 16a8 SID e1a TYPE 1 VPID 901 PCRPID 900
+ CHANNEL ID 124 NAME "SINT" SATID ffffff TPID 16a8 SID e1d TYPE 1
+ CHANNEL ID 125 NAME "VIAG" SATID ffffff TPID 16a8 SID e20 TYPE 1 VPID 904 PCRPID 900
+ CHANNEL ID 126 NAME "SINT" SATID ffffff TPID 16a8 SID e23 TYPE 1
+ CHANNEL ID 127 NAME "EURO" SATID ffffff TPID 16a8 SID e26 TYPE 1 VPID 907 PCRPID 900
+ CHANNEL ID 128 NAME "SINT" SATID ffffff TPID 16a8 SID e27 TYPE 1
+ CHANNEL ID 129 NAME "CNN" SATID ffffff TPID 16a8 SID e29 TYPE 1 VPID 981 PCRPID 980
+ CHANNEL ID 12a NAME "ante prima" SATID ffffff TPID 16a8 SID e2c TYPE 1 VPID 983 PCRPID 980
+ CHANNEL ID 12b NAME "SNAI" SATID ffffff TPID 16a8 SID e2e TYPE 1 VPID a01 PCRPID a00
+ CHANNEL ID 12c NAME "MPPV" SATID ffffff TPID 16a8 SID e30 TYPE 1 VPID a03 PCRPID a00
+ CHANNEL ID 12d NAME "MC04" SATID ffffff TPID 16a8 SID e34 TYPE 1 APID a80 PCRPID a80
+ CHANNEL ID 12e NAME "MC05" SATID ffffff TPID 16a8 SID e35 TYPE 1 APID a81 PCRPID a81
+ CHANNEL ID 12f NAME "MC06" SATID ffffff TPID 16a8 SID e36 TYPE 1 APID a82 PCRPID a82
+ CHANNEL ID 130 NAME "MC07" SATID ffffff TPID 16a8 SID e39 TYPE 1 APID a83 PCRPID a83
+ CHANNEL ID 131 NAME "MC08" SATID ffffff TPID 16a8 SID e3c TYPE 1 APID a84 PCRPID a84
+ CHANNEL ID 132 NAME "MC09" SATID ffffff TPID 16a8 SID e3f TYPE 1 APID a85 PCRPID a85
+ CHANNEL ID 133 NAME "MC10" SATID ffffff TPID 16a8 SID e42 TYPE 1 APID a86 PCRPID a86
+ CHANNEL ID 134 NAME "MC11" SATID ffffff TPID 16a8 SID e45 TYPE 1 APID a87 PCRPID a87
+ CHANNEL ID 135 NAME "MC12" SATID ffffff TPID 16a8 SID e48 TYPE 1 APID a88 PCRPID a88
+ CHANNEL ID 136 NAME "MC13" SATID ffffff TPID 16a8 SID e4b TYPE 1 APID a89 PCRPID a89
+ CHANNEL ID 137 NAME "MC14" SATID ffffff TPID 16a8 SID e4e TYPE 1 APID a8a PCRPID a8a
+ CHANNEL ID 138 NAME "MC15" SATID ffffff TPID 16a8 SID e51 TYPE 1 APID a8b PCRPID a8b
+ CHANNEL ID 139 NAME "MC16" SATID ffffff TPID 16a8 SID e54 TYPE 1 APID a8c PCRPID a8c
+ CHANNEL ID 13a NAME "MC17" SATID ffffff TPID 16a8 SID e57 TYPE 1 APID a8d PCRPID a8d
+ CHANNEL ID 13b NAME "MC18" SATID ffffff TPID 16a8 SID e5a TYPE 1 APID a8e PCRPID a8e
+ TRANSPONDER ID 170c SATID 0000 TYPE 1 FREQ 12341001 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 13c NAME "MOSAICO D+" SATID ffffff TPID 170c SID 2c89 TYPE 1 VPID a1 APID 55 APID 51 APID 50 APID 54 PCRPID af
+ CHANNEL ID 13d NAME " MILAN CH." SATID ffffff TPID 170c SID 2c8b TYPE 1 VPID a2 APID 58 APID 59 PCRPID af
+ CHANNEL ID 13e NAME " INTER CH." SATID ffffff TPID 170c SID 2c8d TYPE 1 VPID a3 APID 5c APID 5d PCRPID af
+ CHANNEL ID 13f NAME "TST3" SATID ffffff TPID 170c SID 2c8f TYPE 1 PCRPID af
+ TRANSPONDER ID 1770 SATID 0000 TYPE 1 FREQ 11919280 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 140 NAME " I1" SATID ffffff TPID 1770 SID 1 TYPE 1 VPID 200 APID 28a TTPID 240 PCRPID 1ffe
+ CHANNEL ID 141 NAME " C5" SATID ffffff TPID 1770 SID 2 TYPE 1 VPID 201 APID 294 TTPID 241 PCRPID 1ffe
+ CHANNEL ID 142 NAME " R4" SATID ffffff TPID 1770 SID 3 TYPE 1 VPID 202 APID 29e TTPID 242 PCRPID 1ffe
+ CHANNEL ID 143 NAME "Test" SATID ffffff TPID 1770 SID 4 TYPE 1 VPID 203 APID 2a8 TTPID 243 PCRPID 1ffe
+ TRANSPONDER ID 003d SATID 0000 TYPE 1 FREQ 11938000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 144 NAME "NTV" SATID ffffff TPID 3d SID 1bc1 TYPE 1 VPID a4 APID 58 APID 59 PCRPID a4
+ CHANNEL ID 145 NAME "NTV-PLUS" SATID ffffff TPID 3d SID 1bc2 TYPE 1 VPID a5 APID 5a APID 5b PCRPID a5
+ CHANNEL ID 146 NAME "NTV Int.-HTB" SATID ffffff TPID 3d SID 1bbd TYPE 1 VPID a0 APID 50 PCRPID a0
+ CHANNEL ID 147 NAME "NTV Int.-Nashe Kino" SATID ffffff TPID 3d SID 1bbe TYPE 1 VPID a1 APID 52 PCRPID a1
+ CHANNEL ID 148 NAME "NTV Int.-Detsk. Mir" SATID ffffff TPID 3d SID 1bbf TYPE 1 VPID a2 APID 54 PCRPID a2
+ TRANSPONDER ID 1838 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 149 NAME "DISNEY CHANNEL" SATID ffffff TPID 1838 SID 2a95 TYPE 1 PCRPID a0
+ CHANNEL ID 14a NAME "DISCOVERY" SATID ffffff TPID 1838 SID 2a97 TYPE 1 VPID a1 PCRPID a1
+ CHANNEL ID 14b NAME "EUSP" SATID ffffff TPID 1838 SID 2a99 TYPE 1 VPID a2 APID 58 APID 59 PCRPID a2
+ CHANNEL ID 14c NAME "HAPPY CHANNEL" SATID ffffff TPID 1838 SID 2a9b TYPE 1 PCRPID a3
+ CHANNEL ID 14d NAME "MATCH MUSIC" SATID ffffff TPID 1838 SID 2a9d TYPE 1 PCRPID a4
+ CHANNEL ID 14e NAME "MTV" SATID ffffff TPID 1838 SID 2a9f TYPE 1 PCRPID a5
+ CHANNEL ID 14f NAME "R/CINEMA RAISAT" SATID ffffff TPID 1838 SID 2aa1 TYPE 1 PCRPID a6
+ TRANSPONDER ID 189c SATID 0000 TYPE 1 FREQ 12713000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 150 SATID ffffff TPID 189c SID fffe TYPE 0
+ CHANNEL ID 151 NAME "cine stream" SATID ffffff TPID 189c SID 1e18 TYPE 1 VPID 200 APID 28a PCRPID 1ffe
+ CHANNEL ID 152 NAME "cine movie" SATID ffffff TPID 189c SID 1e1b TYPE 1 VPID 202 APID 29e PCRPID 1ffe
+ TRANSPONDER ID 1900 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 153 NAME "CLASSICA" SATID ffffff TPID 1900 SID 2af9 TYPE 1 PCRPID a0
+ CHANNEL ID 154 NAME "R/GAM ROS RAISAT" SATID ffffff TPID 1900 SID 2afb TYPE 1 PCRPID a1
+ CHANNEL ID 155 NAME "R/ALBUM RAISAT" SATID ffffff TPID 1900 SID 2afd TYPE 1 PCRPID a2
+ CHANNEL ID 156 NAME "HALLMARK" SATID ffffff TPID 1900 SID 2aff TYPE 1 VPID a3 PCRPID a3
+ CHANNEL ID 157 NAME "R/ART RAISAT" SATID ffffff TPID 1900 SID 2b01 TYPE 1 PCRPID a4
+ CHANNEL ID 158 NAME "TST1" SATID ffffff TPID 1900 SID 2b03 TYPE 1 PCRPID a5
+ CHANNEL ID 159 NAME "TMC" SATID ffffff TPID 1900 SID 2b05 TYPE 1 VPID a6 PCRPID a6
+ CHANNEL ID 15a NAME "TMC2" SATID ffffff TPID 1900 SID 2b07 TYPE 1 VPID a7 PCRPID a7
+ TRANSPONDER ID 1964 SATID 0000 TYPE 1 FREQ 12015000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 15b NAME "ART VARIETY" SATID ffffff TPID 1964 SID 19a TYPE 1 VPID a0 PCRPID a0
+ CHANNEL ID 15c NAME "ART CHILDREN" SATID ffffff TPID 1964 SID 1a4 TYPE 1 VPID a1 PCRPID a1
+ CHANNEL ID 15d NAME "ART MOVIES" SATID ffffff TPID 1964 SID 1ae TYPE 1 VPID a2 PCRPID a2
+ CHANNEL ID 15e NAME "ART MUSIC" SATID ffffff TPID 1964 SID 1b8 TYPE 1 VPID a3 PCRPID a3
+ CHANNEL ID 15f NAME "ART EUROPE" SATID ffffff TPID 1964 SID 1c2 TYPE 0 VPID a4 PCRPID a4
+ CHANNEL ID 160 NAME "LBC EUROPE" SATID ffffff TPID 1964 SID 1cc TYPE 1 VPID a5 PCRPID a5
+ CHANNEL ID 161 NAME "EGYPT SAT. CH. 2" SATID ffffff TPID 1964 SID 1d6 TYPE 1 VPID a6 PCRPID a6
+ CHANNEL ID 162 NAME "ART SPORT" SATID ffffff TPID 1964 SID 1d8 TYPE 1 VPID a7 PCRPID a7
+ CHANNEL ID 163 NAME "IQRA" SATID ffffff TPID 1964 SID 1da TYPE 1 VPID a8 PCRPID a8
+ TRANSPONDER ID 19c8 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 164 NAME "T+ BIANCO" SATID ffffff TPID 19c8 SID 2b5d TYPE 1 VPID a0 APID 50 APID 51 TTPID 2c PCRPID a0
+ CHANNEL ID 165 NAME "T+ NERO" SATID ffffff TPID 19c8 SID 2b5f TYPE 1 VPID a1 APID 54 APID 55 TTPID 2d PCRPID a1
+ CHANNEL ID 166 NAME "T+ GRIGIO" SATID ffffff TPID 19c8 SID 2b61 TYPE 1 VPID a2 APID 58 APID 59 PCRPID a2
+ CHANNEL ID 167 NAME "R4" SATID ffffff TPID 19c8 SID 18 TYPE 1 VPID a3 PCRPID a3
+ CHANNEL ID 168 NAME "16:9 TELE+" SATID ffffff TPID 19c8 SID 2b63 TYPE 1 VPID a4 APID 60 APID 61 PCRPID a4
+ CHANNEL ID 169 NAME "VETRINA D+" SATID ffffff TPID 19c8 SID 2b65 TYPE 1 PCRPID a5
+ CHANNEL ID 16a NAME "R/RAGAZZI RAISAT" SATID ffffff TPID 19c8 SID 2b67 TYPE 1 PCRPID a6
+ TRANSPONDER ID 1a2c SATID 0000 TYPE 1 FREQ 12341001 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 16b NAME "CNN" SATID ffffff TPID 1a2c SID 2ced TYPE 1 PCRPID af
+ CHANNEL ID 16c NAME "BBC" SATID ffffff TPID 1a2c SID 2cef TYPE 1 PCRPID af
+ CHANNEL ID 16d NAME "BLOOMBERG" SATID ffffff TPID 1a2c SID 2cf1 TYPE 1 PCRPID af
+ CHANNEL ID 16e NAME "CNBC" SATID ffffff TPID 1a2c SID 2cf3 TYPE 1 PCRPID af
+ CHANNEL ID 16f NAME "SKYNews" SATID ffffff TPID 1a2c SID 2cf5 TYPE 1 PCRPID af
+ CHANNEL ID 170 NAME "TST2" SATID ffffff TPID 1a2c SID 2cf7 TYPE 1 PCRPID af
+ CHANNEL ID 171 NAME "TV5" SATID ffffff TPID 1a2c SID 2cf9 TYPE 1 PCRPID af
+ CHANNEL ID 172 NAME "EPG" SATID ffffff TPID 1a2c SID 2cfb TYPE 1 PCRPID af
+ CHANNEL ID 173 NAME "CNN" SATID ffffff TPID 1a2c SID 2cfd TYPE 1 VPID a0 APID 50 PCRPID af
+ CHANNEL ID 174 NAME "CNBC" SATID ffffff TPID 1a2c SID 2cff TYPE 1 VPID a3 APID 5c PCRPID af
+ CHANNEL ID 175 NAME "TV5" SATID ffffff TPID 1a2c SID 2d01 TYPE 1 VPID a6 APID 68 PCRPID af
+ CHANNEL ID 176 NAME "BBC WORLD" SATID ffffff TPID 1a2c SID 2d03 TYPE 1 VPID a1 APID 54 PCRPID af
+ CHANNEL ID 177 SATID ffffff TPID 1a2c SID 2d4b TYPE 0 PCRPID 1ffe
+ CHANNEL ID 178 SATID ffffff TPID 1a2c SID 26fc TYPE 0 PCRPID 1ffe
+ CHANNEL ID 179 SATID ffffff TPID 1a2c SID 26fd TYPE 0 PCRPID 1ffe
+ TRANSPONDER ID 3264 SATID 0000 TYPE 1 FREQ 11095910 POL V SRATE 27500000 FEC 8
+ CHANNEL ID ffffffff NAME "Telekom TV" SATID ffffff TPID 3264 SID e7f TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "FantasticOverOpal" SATID ffffff TPID 3264 SID e80 TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "Gilat" SATID ffffff TPID 3264 SID e81 TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "Siemens TV" SATID ffffff TPID 3264 SID e84 TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "S-TV" SATID ffffff TPID 3264 SID e85 TYPE 0 VPID 20 PCRPID 20
+ CHANNEL ID ffffffff NAME "Optibase Encoder" SATID ffffff TPID 3264 SID e86 TYPE 0 VPID 20 PCRPID 20
+ TRANSPONDER ID 1af4 SATID 0000 TYPE 1 FREQ 12091901 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 17a NAME "Bolsa" SATID ffffff TPID 1af4 SID 222e TYPE 0
+ CHANNEL ID 17b NAME "Testw" SATID ffffff TPID 1af4 SID 222f TYPE 0
+ CHANNEL ID 17c NAME "SIRE" SATID ffffff TPID 1af4 SID 2230 TYPE 0 PCRPID 102
+ CHANNEL ID 17d NAME "Telesierra" SATID ffffff TPID 1af4 SID 2200 TYPE 0 VPID 1040 APID 1041 PCRPID 1040
+ CHANNEL ID 17e NAME "vtv" SATID ffffff TPID 1af4 SID 21fd TYPE 0 VPID 1010 APID 1012 APID 1011 APID 1013 PCRPID 1010
+ CHANNEL ID 17f NAME "Satisfaction" SATID ffffff TPID 1af4 SID 2202 TYPE 0 VPID 1060 APID 1061 PCRPID 1060
+ CHANNEL ID 180 NAME "C. Milagro" SATID ffffff TPID 1af4 SID 2207 TYPE 0 VPID 1110 APID 1111 PCRPID 1110
+ CHANNEL ID 181 NAME "Fiesta" SATID ffffff TPID 1af4 SID 2210 TYPE 0 VPID 1150 APID 1151 APID 1152 PCRPID 1150
+ CHANNEL ID 182 NAME "TVE Internacional" SATID ffffff TPID 1af4 SID 2203 TYPE 0 VPID 1070 APID 1071 PCRPID 1070
+ CHANNEL ID 183 NAME "TV Galicia" SATID ffffff TPID 1af4 SID 2204 TYPE 0 APID 1090 PCRPID 1090
+ CHANNEL ID 184 NAME "Radio Gallega" SATID ffffff TPID 1af4 SID 2205 TYPE 0 APID 1090 PCRPID 1090
+ CHANNEL ID 185 NAME "Retelsat" SATID ffffff TPID 1af4 SID 2212 TYPE 1 VPID 1170 APID 1171 PCRPID 1170
+ CHANNEL ID 186 NAME "Musicam 1" SATID ffffff TPID 1af4 SID 2209 TYPE 1 APID 1136 PCRPID 1136
+ CHANNEL ID 187 NAME "Musicam 2" SATID ffffff TPID 1af4 SID 220a TYPE 1 APID 1133 PCRPID 1133
+ CHANNEL ID 188 NAME "Musicam 3" SATID ffffff TPID 1af4 SID 220b TYPE 1 APID 1136 PCRPID 1136
+ CHANNEL ID 189 NAME "Musicam 4" SATID ffffff TPID 1af4 SID 220c TYPE 1 APID 1132 PCRPID 1132
+ CHANNEL ID 18a NAME "Musicam 5" SATID ffffff TPID 1af4 SID 220d TYPE 1 APID 1136 PCRPID 1136
+ TRANSPONDER ID 1b58 SATID 0000 TYPE 1 FREQ 12673000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 18b NAME "HBCH FUCINO" SATID ffffff TPID 1b58 SID 2bd TYPE 0 VPID c8 APID c9 PCRPID c8
+ CHANNEL ID 18c NAME "NTVi" SATID ffffff TPID 1b58 SID 2be TYPE 0 VPID d2 APID d3 APID d4 PCRPID d2
+ CHANNEL ID 18d NAME "Test Telespazio" SATID ffffff TPID 1b58 SID 2bf TYPE 0 VPID dc APID dd PCRPID dc
+ CHANNEL ID 18e NAME "Test Telespazio" SATID ffffff TPID 1b58 SID 2c0 TYPE 0 VPID e6 APID e7 PCRPID e6
+ CHANNEL ID 18f NAME "ARMENIA TV" SATID ffffff TPID 1b58 SID 2c1 TYPE 0 VPID f0 APID f1 APID f2 PCRPID f0
+ CHANNEL ID 190 NAME "MEDNET" SATID ffffff TPID 1b58 SID 2c3 TYPE 0 VPID 104 APID 105 PCRPID 104
+ CHANNEL ID 191 NAME "AL JAZEERA" SATID ffffff TPID 1b58 SID 2c4 TYPE 0 VPID 10e APID 10f PCRPID 10e
+ CHANNEL ID 192 NAME "TIRRENO SAT" SATID ffffff TPID 1b58 SID 2c5 TYPE 0 VPID 118 APID 12d TTPID 139 PCRPID 118
+ CHANNEL ID 193 NAME "RADIO ROCK" SATID ffffff TPID 1b58 SID 2c7 TYPE 0 APID d4 PCRPID d2
+ CHANNEL ID 194 NAME "RADIO ARMENIA" SATID ffffff TPID 1b58 SID 2c8 TYPE 0 APID f2 PCRPID f0
+ CHANNEL ID 195 NAME "Coming Soon TV" SATID ffffff TPID 1b58 SID 2cd TYPE 0 APID 28 PCRPID 28
+ TRANSPONDER ID 1c20 SATID 0000 TYPE 1 FREQ 12149000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 196 NAME "AH-EDP1" SATID ffffff TPID 1c20 SID 1c21 TYPE 0 VPID 60 APID 61 PCRPID 60
+ CHANNEL ID 197 NAME "AH-EDP2" SATID ffffff TPID 1c20 SID 1c22 TYPE 0 VPID 70 APID 71 PCRPID 70
+ CHANNEL ID 198 NAME "AH-EDP3" SATID ffffff TPID 1c20 SID 1c23 TYPE 0 VPID 24 APID 25 PCRPID 24
+ CHANNEL ID 199 NAME "AH-EMP4-DATA" SATID ffffff TPID 1c20 SID 1c24 TYPE 0 PCRPID 92
+ CHANNEL ID 19a NAME "Alice" SATID ffffff TPID 1c20 SID 1c34 TYPE 0 VPID a0 APID a1 PCRPID a0
+ CHANNEL ID 19b NAME "Nuvolari" SATID ffffff TPID 1c20 SID 1c35 TYPE 0 VPID b0 APID b1 PCRPID b0
+ CHANNEL ID 19c NAME "Leonardo" SATID ffffff TPID 1c20 SID 1c36 TYPE 0 VPID 80 APID 81 PCRPID 80
+ TRANSPONDER ID 1c84 SATID 0000 TYPE 1 FREQ 12169000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 19d NAME "Discovery" SATID ffffff TPID 1c84 SID 15f TYPE 1 VPID 200 PCRPID 1ffe
+ CHANNEL ID 19e NAME "R9" SATID ffffff TPID 1c84 SID 160 TYPE 1 VPID 201 PCRPID 1ffe
+ CHANNEL ID 19f NAME "BBC World" SATID ffffff TPID 1c84 SID 161 TYPE 1 VPID 202 PCRPID 1ffe
+ CHANNEL ID 1a0 NAME "CNN" SATID ffffff TPID 1c84 SID 162 TYPE 1 VPID 203 PCRPID 1ffe
+ CHANNEL ID 1a1 NAME "CCTV" SATID ffffff TPID 1c84 SID 163 TYPE 0 VPID 204 PCRPID 1ffe
+ CHANNEL ID 1a2 NAME "R10" SATID ffffff TPID 1c84 SID 165 TYPE 1 VPID 206 PCRPID 1ffe
+ CHANNEL ID 1a3 NAME "R8" SATID ffffff TPID 1c84 SID 166 TYPE 1 VPID 207 PCRPID 1ffe
+ CHANNEL ID 1a4 NAME "FILM SAT" SATID ffffff TPID 1c84 SID 167 TYPE 1 VPID 208 PCRPID 1ffe
+ CHANNEL ID 1a5 NAME "Cartoon" SATID ffffff TPID 1c84 SID 168 TYPE 1 VPID 203 PCRPID 1ffe
+ CHANNEL ID 1a6 NAME "Promo" SATID ffffff TPID 1c84 SID 169 TYPE 0 VPID 209 PCRPID 1ffe
+ CHANNEL ID 1a7 NAME "Tempo" SATID ffffff TPID 1c84 SID 16a TYPE 1 VPID 5a0 APID 28b PCRPID f80
+ CHANNEL ID 1a8 NAME "Tempo" SATID ffffff TPID 1c84 SID 16b TYPE 1 APID 295 PCRPID f80
+ CHANNEL ID 1a9 NAME "Tempo" SATID ffffff TPID 1c84 SID 16c TYPE 1 APID 29f PCRPID f80
+ CHANNEL ID 1aa NAME "Tempo" SATID ffffff TPID 1c84 SID 16d TYPE 1 APID 2a9 PCRPID f80
+ CHANNEL ID 1ab NAME "Tempo" SATID ffffff TPID 1c84 SID 16e TYPE 1 APID 2b3 PCRPID f80
+ CHANNEL ID 1ac NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 16f TYPE 1 PCRPID 1080
+ CHANNEL ID 1ad NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 171 TYPE 1 PCRPID 1080
+ CHANNEL ID 1ae NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 172 TYPE 1 PCRPID 1080
+ CHANNEL ID 1af NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 173 TYPE 1 VPID 42b PCRPID 1080
+ CHANNEL ID 1b0 NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 174 TYPE 1 PCRPID 1080
+ CHANNEL ID 1b1 NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 175 TYPE 1 PCRPID 1080
+ CHANNEL ID 1b2 NAME "NOVA Cinema" SATID ffffff TPID 1c84 SID 176 TYPE 1 PCRPID 1080
+ CHANNEL ID 1b3 NAME "NET" SATID ffffff TPID 1c84 SID 178 TYPE 1 VPID 201 PCRPID 1ffe
+ CHANNEL ID 1b4 NAME "MAD T.V" SATID ffffff TPID 1c84 SID 179 TYPE 1 VPID 206 PCRPID 1ffe
+ CHANNEL ID 1b5 NAME "ET-1" SATID ffffff TPID 1c84 SID 17a TYPE 1 VPID 207 PCRPID 1ffe
+ CHANNEL ID 1b6 SATID ffffff TPID 1c84 SID 17b TYPE 0 PCRPID 1000
+ CHANNEL ID 1b7 NAME "ÂïõëÞ" SATID ffffff TPID 1c84 SID 180 TYPE 0 VPID 205 PCRPID 1ffe
+ TRANSPONDER ID 0131 SATID 0000 TYPE 1 FREQ 12188000 POL V SRATE 27500000 FEC 8
+ TRANSPONDER ID 0132 SATID 0000 TYPE 1 FREQ 12203000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 0133 SATID 0000 TYPE 1 FREQ 12211000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 004d SATID 0000 TYPE 1 FREQ 12264500 POL V SRATE 27500000 FEC 8
+ CHANNEL ID ffffffff NAME "Deutsche Bank / T1" SATID ffffff TPID 4d SID 1 TYPE 1 VPID 488 PCRPID 488
+ CHANNEL ID 7f NAME "Animal Planet" SATID ffffff TPID 4d SID a TYPE 1 VPID 488 PCRPID 488
+ CHANNEL ID 80 NAME "Discovery E Europe-English" SATID ffffff TPID 4d SID 14 TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID ffffffff NAME "Wuerth KG / T21" SATID ffffff TPID 4d SID 15 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 82 NAME "Discovery Italy" SATID ffffff TPID 4d SID 1e TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID ffffffff NAME "BTI / T31" SATID ffffff TPID 4d SID 1f TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 84 NAME "Discovery Russia" SATID ffffff TPID 4d SID 28 TYPE 1 VPID 5b4 PCRPID 5b4
+ CHANNEL ID ffffffff NAME "K-TV (MetroMux) / T41" SATID ffffff TPID 4d SID 29 TYPE 1 VPID 7a8 PCRPID 7a8
+ CHANNEL ID 86 NAME "Animal Planet EE" SATID ffffff TPID 4d SID 32 TYPE 1 VPID 618 PCRPID 618
+ CHANNEL ID 87 NAME "Animal Planet - Russian" SATID ffffff TPID 4d SID 33 TYPE 1 VPID 618 PCRPID 618
+ CHANNEL ID 88 NAME "Discovery Netherlands" SATID ffffff TPID 4d SID 3c TYPE 1 VPID 67c PCRPID 67c
+ CHANNEL ID ffffffff NAME "Q English" SATID ffffff TPID 4d SID 46 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 8a NAME "Travel and Adventure" SATID ffffff TPID 4d SID 50 TYPE 1 VPID 744 PCRPID 744
+ CHANNEL ID 8b NAME "Travel and Adventure- Russian" SATID ffffff TPID 4d SID 51 TYPE 1 VPID 744 PCRPID 744
+ CHANNEL ID 8c NAME "New DCP" SATID ffffff TPID 4d SID 12c TYPE 1 APID 4c4 PCRPID 4c4
+ CHANNEL ID 8d NAME "CCP" SATID ffffff TPID 4d SID 12d TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID ffffffff NAME "Deutsche Bank / T2" SATID ffffff TPID 4d SID 2 TYPE 1 VPID 4ec PCRPID 4ec
+ CHANNEL ID 93 NAME "Channel Three" SATID ffffff TPID 4d SID 3 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 94 NAME "Channel Four" SATID ffffff TPID 4d SID 4 TYPE 0 VPID 5b4 PCRPID 5b4
+ CHANNEL ID 95 NAME "Channel Five" SATID ffffff TPID 4d SID 5 TYPE 0 VPID 618 PCRPID 618
+ CHANNEL ID 96 NAME "Channel 6 = Sat 7 Arabic" SATID ffffff TPID 4d SID 6 TYPE 0 VPID 67c PCRPID 67c
+ CHANNEL ID 97 NAME "Channel Seven" SATID ffffff TPID 4d SID 7 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 98 NAME "Q German" SATID ffffff TPID 4d SID 47 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 99 NAME "Q French" SATID ffffff TPID 4d SID 48 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 9a NAME "Q Dutch" SATID ffffff TPID 4d SID 49 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 1b8 NAME "DTAG / T11" SATID ffffff TPID 4d SID b TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1b9 NAME "DTAG 50 / T12" SATID ffffff TPID 4d SID c TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1ba NAME "Telekom TV" SATID ffffff TPID 4d SID d TYPE 1 VPID 5b4 PCRPID 5b4
+ CHANNEL ID 1bb NAME "Gerling / T26" SATID ffffff TPID 4d SID 1a TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bc NAME "Hornbach-D / T36" SATID ffffff TPID 4d SID 24 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bd NAME "Hornbach-NL / T38" SATID ffffff TPID 4d SID 26 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1be NAME "Hornbach-CZ / T39" SATID ffffff TPID 4d SID 27 TYPE 1 VPID 550 PCRPID 550
+ CHANNEL ID 1bf NAME "Testkanal" SATID ffffff TPID 4d SID 63 TYPE 0 VPID 67c PCRPID 67c
+ CHANNEL ID 1c0 NAME "KENCAST" SATID ffffff TPID 4d SID 6f TYPE 0 PCRPID 42e
+ TRANSPONDER ID 1f40 SATID 0000 TYPE 1 FREQ 12302880 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 1c1 NAME "SLO-TV1" SATID ffffff TPID 1f40 SID c81 TYPE 1 VPID c8 PCRPID c8
+ CHANNEL ID 1c2 NAME "SLO-TV2" SATID ffffff TPID 1f40 SID c82 TYPE 1 VPID cb PCRPID cb
+ CHANNEL ID 1c3 NAME "POLONIA 1" SATID ffffff TPID 1f40 SID c83 TYPE 0 VPID cd PCRPID cd
+ CHANNEL ID 1c4 NAME "SLO-RA1-INF" SATID ffffff TPID 1f40 SID c84 TYPE 0 APID fa PCRPID fa
+ CHANNEL ID 1c5 NAME "SLO-RA2" SATID ffffff TPID 1f40 SID c85 TYPE 0 APID fb PCRPID fb
+ CHANNEL ID 1c6 NAME "SLO-RA3" SATID ffffff TPID 1f40 SID c86 TYPE 0 APID fc PCRPID fc
+ CHANNEL ID 1c7 NAME "SUPER 1" SATID ffffff TPID 1f40 SID c87 TYPE 0 VPID cf PCRPID cf
+ CHANNEL ID 1c8 NAME "NAPOLI INT." SATID ffffff TPID 1f40 SID c8a TYPE 0 VPID f0 PCRPID f0
+ CHANNEL ID 1c9 NAME "MAGIC" SATID ffffff TPID 1f40 SID c8b TYPE 0 VPID f5 PCRPID f5
+ CHANNEL ID 1ca NAME "COUNTDOWN" SATID ffffff TPID 1f40 SID c8c TYPE 0 VPID eb PCRPID eb
+ CHANNEL ID 1cb NAME "TBNE" SATID ffffff TPID 1f40 SID c8d TYPE 0 VPID e6 PCRPID e6
+ CHANNEL ID 1cc NAME "SICILSAT" SATID ffffff TPID 1f40 SID c8e TYPE 0 VPID e1 PCRPID e1
+ TRANSPONDER ID 1fa4 SATID 0000 TYPE 1 FREQ 10892000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 1cd NAME "TVP1" SATID ffffff TPID 1fa4 SID 1 TYPE 1 VPID 101 APID 102 APID 17df TTPID 103 PCRPID 101
+ CHANNEL ID 1ce NAME "TVP2" SATID ffffff TPID 1fa4 SID 2 TYPE 1 VPID 141 APID 142 PCRPID 141
+ CHANNEL ID 1cf NAME "POLSAT1" SATID ffffff TPID 1fa4 SID 3 TYPE 1
+ CHANNEL ID 1d0 NAME "TV4" SATID ffffff TPID 1fa4 SID 4 TYPE 1 VPID 101 APID 102 APID 17df TTPID 103 PCRPID 101
+ CHANNEL ID 1d1 NAME "POLSAT2" SATID ffffff TPID 1fa4 SID 5 TYPE 1 VPID 141 APID 142 PCRPID 141
+ CHANNEL ID 1d2 NAME "WOT" SATID ffffff TPID 1fa4 SID 6 TYPE 1
+ CHANNEL ID 1d3 NAME "DISCOVERY" SATID ffffff TPID 1fa4 SID f TYPE 1 VPID 101 APID 102 APID 17df TTPID 103 PCRPID 101
+ CHANNEL ID 1d4 NAME "ANIMAL PLANET" SATID ffffff TPID 1fa4 SID 10 TYPE 1 VPID 141 APID 142 PCRPID 141
+ CHANNEL ID 1d5 NAME "EpgOpenTV" SATID ffffff TPID 1fa4 SID e66 TYPE 0
+ TRANSPONDER ID 2008 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 1d6 NAME "P10" SATID ffffff TPID 2008 SID 2d51 TYPE 1 VPID a0 APID 50 APID 51 PCRPID b0
+ CHANNEL ID 1d7 NAME "P11" SATID ffffff TPID 2008 SID 2d53 TYPE 1 VPID a1 APID 54 APID 55 PCRPID b0
+ CHANNEL ID 1d8 NAME "P12" SATID ffffff TPID 2008 SID 2d55 TYPE 1 VPID a2 APID 58 APID 59 PCRPID b0
+ CHANNEL ID 1d9 NAME "P13" SATID ffffff TPID 2008 SID 2d57 TYPE 1 VPID a3 APID 5c APID 5d PCRPID b0
+ CHANNEL ID 1da NAME "P14" SATID ffffff TPID 2008 SID 2d59 TYPE 1 VPID a4 APID 60 APID 61 PCRPID b0
+ CHANNEL ID 1db NAME "P15" SATID ffffff TPID 2008 SID 2d5b TYPE 1 VPID a5 APID 64 APID 65 PCRPID b0
+ CHANNEL ID 1dc NAME "P16" SATID ffffff TPID 2008 SID 2d5d TYPE 1 VPID a6 APID 68 APID 69 PCRPID b0
+ CHANNEL ID 1dd NAME "PREMIUM" SATID ffffff TPID 2008 SID 2d5f TYPE 1 PCRPID af
+ CHANNEL ID 1de NAME "+F1" SATID ffffff TPID 2008 SID 2d61 TYPE 1 VPID a0 APID 51 APID 298 PCRPID b0
+ CHANNEL ID 1df NAME "+F1" SATID ffffff TPID 2008 SID 2d63 TYPE 1 VPID a1 APID 29a APID 55 PCRPID b0
+ CHANNEL ID 1e0 NAME "+F1" SATID ffffff TPID 2008 SID 2d65 TYPE 1 VPID a2 APID 59 APID 29b PCRPID b0
+ CHANNEL ID 1e1 NAME "+F1" SATID ffffff TPID 2008 SID 2d67 TYPE 1 VPID a3 APID 5d APID 2a2 PCRPID b0
+ CHANNEL ID 1e2 NAME "+F1" SATID ffffff TPID 2008 SID 2d69 TYPE 1 VPID a4 APID 61 APID 60 PCRPID b0
+ CHANNEL ID 1e3 NAME "+F1" SATID ffffff TPID 2008 SID 2d6b TYPE 1 VPID a5 APID 65 APID 2a4 PCRPID b0
+ CHANNEL ID 1e4 NAME "+F1" SATID ffffff TPID 2008 SID 2d6d TYPE 1 VPID a6 APID 69 APID 29a PCRPID b0
+ CHANNEL ID 1e5 NAME "RMC" SATID ffffff TPID 2008 SID 2d6f TYPE 1 PCRPID b8
+ CHANNEL ID 1e6 NAME "R101" SATID ffffff TPID 2008 SID 2d70 TYPE 1 PCRPID b8
+ CHANNEL ID 1e7 NAME "RRAD" SATID ffffff TPID 2008 SID 2d71 TYPE 1 PCRPID b8
+ TRANSPONDER ID 206c SATID 0000 TYPE 1 FREQ 10892000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 1e8 NAME "ON" SATID ffffff TPID 206c SID 7 TYPE 1 VPID 161 APID 162 PCRPID 161
+ CHANNEL ID 1e9 NAME "DLA-CIEBIE" SATID ffffff TPID 206c SID 8 TYPE 1 VPID 211 APID 212 PCRPID 211
+ CHANNEL ID 1ea NAME "KOMEDIA" SATID ffffff TPID 206c SID 9 TYPE 1 VPID 161 APID 162 PCRPID 161
+ CHANNEL ID 1eb NAME "SMYK" SATID ffffff TPID 206c SID a TYPE 1 VPID 211 APID 212 PCRPID 211
+ CHANNEL ID 1ec NAME "RELAKS" SATID ffffff TPID 206c SID b TYPE 1 VPID 161 APID 162 PCRPID 161
+ CHANNEL ID 1ed NAME "INFO" SATID ffffff TPID 206c SID c TYPE 1 VPID 211 APID 212 PCRPID 211
+ CHANNEL ID 1ee NAME "POLSAT SPORT" SATID ffffff TPID 206c SID d TYPE 1 VPID 161 APID 162 PCRPID 161
+ TRANSPONDER ID 20d0 SATID 0000 TYPE 1 FREQ 12379000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 1ef NAME "Paris Première" SATID ffffff TPID 20d0 SID bb9 TYPE 1 VPID bcd APID bd7 PCRPID bcd
+ CHANNEL ID 1f0 NAME "OCC HB3" SATID ffffff TPID 20d0 SID bba TYPE 0 VPID bce APID bd8 PCRPID bce
+ CHANNEL ID 1f1 NAME "TELE 24 Switzerland" SATID ffffff TPID 20d0 SID bbb TYPE 0 VPID bcf APID bd9 PCRPID bcf
+ CHANNEL ID 1f2 NAME "AIR MEDIA" SATID ffffff TPID 20d0 SID c0f TYPE 0 APID dd1 PCRPID dd1
+ CHANNEL ID 1f3 NAME "Abu Dhabi TV" SATID ffffff TPID 20d0 SID bbc TYPE 0 VPID bd0 APID bda PCRPID bd0
+ CHANNEL ID 1f4 NAME "EMIRAT FM 1" SATID ffffff TPID 20d0 SID c0b TYPE 0 APID dcd PCRPID dcd
+ CHANNEL ID 1f5 NAME "EMIRAT FM2" SATID ffffff TPID 20d0 SID c0c TYPE 0 APID dce PCRPID dce
+ CHANNEL ID 1f6 NAME "Radio Italia " SATID ffffff TPID 20d0 SID c09 TYPE 0 APID dcb PCRPID dcb
+ CHANNEL ID 1f7 NAME "EQUIDIA INTER." SATID ffffff TPID 20d0 SID beb TYPE 1 VPID cf9 APID d03 APID d0d APID d17 PCRPID cf9
+ CHANNEL ID 1f8 NAME "RTV MONTENEGRO" SATID ffffff TPID 20d0 SID bbe TYPE 0 VPID bd2 APID bdc PCRPID bd2
+ CHANNEL ID 1f9 NAME "Radio Montenegro" SATID ffffff TPID 20d0 SID c10 TYPE 0 APID dd2 PCRPID dd2
+ CHANNEL ID 1fa NAME "SERTE TEST" SATID ffffff TPID 20d0 SID bbd TYPE 0 VPID bd1 PCRPID bd1
+ CHANNEL ID 1fb NAME "GAME 1" SATID ffffff TPID 20d0 SID bbf TYPE 1 VPID bd3 APID bdd PCRPID bd3
+ TRANSPONDER ID 0055 SATID 0000 TYPE 1 FREQ 12398781 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 1fc NAME "SF 2" SATID ffffff TPID 55 SID 38b TYPE 1 VPID a3 APID 5c APID 5d TTPID 29 PCRPID a3
+ CHANNEL ID 1fd NAME "SRG SSR Sat Access" SATID ffffff TPID 55 SID 38e TYPE 0 VPID a5 APID 62 APID 63 TTPID 2f PCRPID a5
+ CHANNEL ID 1fe NAME "SF 1" SATID ffffff TPID 55 SID 385 TYPE 1 VPID a0 APID 50 APID 51 TTPID 20 PCRPID a0
+ CHANNEL ID 1ff NAME "TSR 1" SATID ffffff TPID 55 SID 386 TYPE 1 VPID a1 APID 54 APID 55 TTPID 23 PCRPID a1
+ CHANNEL ID 200 NAME "TSI 1" SATID ffffff TPID 55 SID 387 TYPE 1 VPID a2 APID 58 APID 59 TTPID 26 PCRPID a2
+ CHANNEL ID 201 NAME "TSR 2" SATID ffffff TPID 55 SID 38c TYPE 1 VPID a4 APID 60 APID 61 TTPID 2c PCRPID a4
+ CHANNEL ID 202 NAME "TSI 2" SATID ffffff TPID 55 SID 38d TYPE 1 VPID a6 APID 64 APID 65 TTPID 32 PCRPID a6
+ CHANNEL ID 203 NAME "OPTION MUSIQUE" SATID ffffff TPID 55 SID 3bd TYPE 0 APID cc PCRPID cc
+ CHANNEL ID 204 NAME "ESPACE 2" SATID ffffff TPID 55 SID 3be TYPE 0 APID cd PCRPID cd
+ CHANNEL ID 205 NAME "SRI-F-I" SATID ffffff TPID 55 SID 3b7 TYPE 0 APID c7 PCRPID c7
+ CHANNEL ID 206 NAME "SRI-EUROPA" SATID ffffff TPID 55 SID 3b9 TYPE 0 VPID 230 APID c8 PCRPID c8
+ TRANSPONDER ID 2198 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 207 NAME "POLO" SATID ffffff TPID 2198 SID 2db5 TYPE 1 VPID a0 APID 50 PCRPID a0
+ CHANNEL ID 208 NAME "PLANETE" SATID ffffff TPID 2198 SID 2db7 TYPE 1 VPID a1 APID 54 PCRPID a1
+ CHANNEL ID 209 NAME "JIMMY" SATID ffffff TPID 2198 SID 2db9 TYPE 1 VPID a2 APID 58 PCRPID a2
+ CHANNEL ID 20a NAME "INN" SATID ffffff TPID 2198 SID 2dbb TYPE 1 VPID a3 APID 5c PCRPID a3
+ CHANNEL ID 20b NAME "CIN1" SATID ffffff TPID 2198 SID 2dbd TYPE 1 VPID a4 APID 60 PCRPID a4
+ CHANNEL ID 20c NAME "CIN2" SATID ffffff TPID 2198 SID 2dbf TYPE 1 VPID a5 APID 64 PCRPID a5
+ CHANNEL ID 20d NAME "CINC" SATID ffffff TPID 2198 SID 2dc1 TYPE 1 VPID a6 APID 68 PCRPID a6
+ CHANNEL ID 20e NAME "SEASONS" SATID ffffff TPID 2198 SID 2dc3 TYPE 1 VPID a7 APID 6c PCRPID a7
+ CHANNEL ID 20f NAME "WISHLINE" SATID ffffff TPID 2198 SID 2dc5 TYPE 1 VPID a8 APID 55 APID 5d APID 59 PCRPID a8
+ CHANNEL ID 210 NAME "MARCOPOLO" SATID ffffff TPID 2198 SID 2dc7 TYPE 1 VPID a0 APID 50 APID 51 PCRPID a0
+ TRANSPONDER ID 0049 SATID 0000 TYPE 1 FREQ 12436999 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 211 NAME "JAAM-E-JAM 1" SATID ffffff TPID 49 SID 1 TYPE 0 VPID a0 APID 50 APID 51 PCRPID a0
+ CHANNEL ID 212 NAME "JAAM-E-JAM 2" SATID ffffff TPID 49 SID 2 TYPE 0 VPID a1 APID 52 APID 53 TTPID 21 PCRPID a1
+ CHANNEL ID 213 NAME "SAHAR" SATID ffffff TPID 49 SID 3 TYPE 0 VPID a2 APID 54 APID 55 PCRPID a2
+ CHANNEL ID 214 NAME "TEST(SAHAR)" SATID ffffff TPID 49 SID 4 TYPE 0 VPID a3 APID 56 APID 57 PCRPID a3
+ CHANNEL ID 215 NAME "IRINN" SATID ffffff TPID 49 SID 5 TYPE 0 VPID a4 APID 58 APID 59 PCRPID a4
+ CHANNEL ID 216 NAME "TEST 2" SATID ffffff TPID 49 SID 6 TYPE 0 VPID a5 APID 5a PCRPID a5
+ CHANNEL ID 217 NAME "IRIB1 RADIO" SATID ffffff TPID 49 SID 7 TYPE 0 APID 51 PCRPID a0
+ CHANNEL ID 218 NAME "IRIB ARABIC /International 1 Radio" SATID ffffff TPID 49 SID 8 TYPE 0 APID 53 PCRPID a1
+ TRANSPONDER ID 013d SATID 0000 TYPE 1 FREQ 12460000 POL V SRATE 27500000 FEC 8
+ TRANSPONDER ID 013e SATID 0000 TYPE 1 FREQ 12484000 POL V SRATE 27500000 FEC 8
+ TRANSPONDER ID 22c4 SATID 0000 TYPE 1 FREQ 12475499 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 219 NAME "INT1 FAMILY RADIO" SATID ffffff TPID 22c4 SID 2977 TYPE 0 APID 3c1 PCRPID 3c1
+ CHANNEL ID 21a NAME "RADIO 74" SATID ffffff TPID 22c4 SID 2974 TYPE 0 APID 399 PCRPID 399
+ CHANNEL ID 21b NAME "R 74 INT." SATID ffffff TPID 22c4 SID 2975 TYPE 0 APID 3a3 PCRPID 3a3
+ CHANNEL ID 21c NAME "FAMILY Radio" SATID ffffff TPID 22c4 SID 2976 TYPE 0 APID 3b7 PCRPID 3b7
+ CHANNEL ID 21d NAME "Temp" SATID ffffff TPID 22c4 SID 296f TYPE 0 VPID 303 PCRPID 300
+ CHANNEL ID 21e NAME "SPREE Radio" SATID ffffff TPID 22c4 SID 299c TYPE 0 APID 1f5 PCRPID 1f5
+ CHANNEL ID 21f NAME " RVI ( VRT ) " SATID ffffff TPID 22c4 SID 2972 TYPE 0 APID 385 PCRPID 385
+ CHANNEL ID 220 NAME "EbS" SATID ffffff TPID 22c4 SID 2969 TYPE 0 VPID 65 APID c9 APID ca APID cb APID cc APID cd APID ce APID cf APID d0 APID d1 APID d2 APID d3 APID d4 APID d5 APID d6 APID d7 APID d8 TTPID 12d PCRPID 65
+ CHANNEL ID 221 NAME "MOU.2" SATID ffffff TPID 22c4 SID 296a TYPE 0 VPID 2a PCRPID 2a
+ CHANNEL ID 222 NAME "MIZIK TROPICAL" SATID ffffff TPID 22c4 SID 296e TYPE 0 VPID 1b3 APID 1b4 PCRPID 1b3
+ CHANNEL ID 223 NAME "MIZIK TROPICAL Radio" SATID ffffff TPID 22c4 SID 2970 TYPE 0 APID 321 PCRPID 321
+ CHANNEL ID 224 NAME "Framboise Nord (CH)" SATID ffffff TPID 22c4 SID 2978 TYPE 0 APID 3cb PCRPID 3cb
+ CHANNEL ID 225 NAME "Framboise Sud (CH)" SATID ffffff TPID 22c4 SID 2979 TYPE 0 APID 3d5 PCRPID 3d5
+ CHANNEL ID 226 NAME "PINK PLUS" SATID ffffff TPID 22c4 SID 296d TYPE 1 VPID 134 APID 100 APID 101 PCRPID 24
+ CHANNEL ID 227 NAME "LIBERTYTV.COM" SATID ffffff TPID 22c4 SID 296b TYPE 0 VPID 3ad APID 3ae PCRPID 3ad
+ CHANNEL ID 228 NAME "KURDSAT" SATID ffffff TPID 22c4 SID 297a TYPE 0 VPID 258 APID 259 PCRPID 1ffe
+ CHANNEL ID 229 NAME "test2" SATID ffffff TPID 22c4 SID 297c TYPE 0 VPID bb8 APID bb9 TTPID bba PCRPID bb8
+ TRANSPONDER ID 2328 SATID 0000 TYPE 1 FREQ 12519840 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 22a NAME "HRT-TV1" SATID ffffff TPID 2328 SID 206d TYPE 1 VPID 64 APID 65 TTPID 66 PCRPID 64
+ CHANNEL ID 22b NAME "HRT-TV2" SATID ffffff TPID 2328 SID 206e TYPE 1 VPID 67 APID 68 TTPID 66 PCRPID 67
+ CHANNEL ID 22c NAME "HRT-TV3" SATID ffffff TPID 2328 SID 206f TYPE 1 VPID 69 APID 6a TTPID 66 PCRPID 69
+ CHANNEL ID 22d NAME "HRT-HR1" SATID ffffff TPID 2328 SID 2071 TYPE 0 APID 96 PCRPID 96
+ CHANNEL ID 22e NAME "HRT-HR2" SATID ffffff TPID 2328 SID 2072 TYPE 0 APID 97 PCRPID 97
+ CHANNEL ID 22f NAME "HRT-HR3" SATID ffffff TPID 2328 SID 2073 TYPE 0 APID 98 PCRPID 98
+ CHANNEL ID 230 NAME "SICILIA INTERNATIONAL" SATID ffffff TPID 2328 SID 2075 TYPE 0 VPID 1f5 PCRPID 1f5
+ CHANNEL ID 231 NAME "HRT-NATIONAL" SATID ffffff TPID 2328 SID 2070 TYPE 1 VPID 6b APID 6c TTPID 66 PCRPID 6b
+ CHANNEL ID 232 NAME "HRT-TEST" SATID ffffff TPID 2328 SID 2074 TYPE 1 VPID 6d APID 6e TTPID 66 PCRPID 6d
+ CHANNEL ID 233 NAME "SARDEGNA UNO" SATID ffffff TPID 2328 SID 2076 TYPE 0 VPID 1f7 PCRPID 1f7
+ CHANNEL ID 234 NAME "R-HRVATSKA" SATID ffffff TPID 2328 SID 2077 TYPE 0 APID 99 PCRPID 99
+ CHANNEL ID 235 NAME "EuroMed" SATID ffffff TPID 2328 SID 2078 TYPE 0 VPID 1fe PCRPID 1fe
+ CHANNEL ID 236 NAME "TGRT" SATID ffffff TPID 2328 SID 2079 TYPE 0 VPID 1f9 PCRPID 1f9
+ CHANNEL ID 237 NAME "HR-TEST" SATID ffffff TPID 2328 SID 207a TYPE 0 APID 9a PCRPID 9a
+ CHANNEL ID 238 NAME "MINI-BVN" SATID ffffff TPID 2328 SID 207b TYPE 0 VPID d2 PCRPID d6
+ TRANSPONDER ID 238c SATID 0000 TYPE 1 FREQ 12713000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 239 NAME "SIMS 91 LARIO" SATID ffffff TPID 238c SID 2262 TYPE 0
+ CHANNEL ID 23a NAME "SKYPLEX TXP91" SATID ffffff TPID 238c SID 2261 TYPE 0
+ CHANNEL ID 23b NAME "Skygate 18" SATID ffffff TPID 238c SID 2 TYPE 0
+ CHANNEL ID 23c NAME "MA12_2905" SATID ffffff TPID 238c SID 226a TYPE 0 PCRPID 1113
+ CHANNEL ID 23d NAME "ES13_1107" SATID ffffff TPID 238c SID 226b TYPE 0 PCRPID 1114
+ CHANNEL ID 23e NAME "ASTONv0107" SATID ffffff TPID 238c SID 226f TYPE 0 PCRPID 1112
+ CHANNEL ID 23f NAME "sisal" SATID ffffff TPID 238c SID 1 TYPE 1 VPID 1104 PCRPID 1104
+ CHANNEL ID 240 NAME "service" SATID ffffff TPID 238c SID 3 TYPE 1 VPID 1104 PCRPID 1104
+ CHANNEL ID 241 NAME "Skyplex 19" SATID ffffff TPID 238c SID 231f TYPE 0
+ CHANNEL ID 242 NAME "Network" SATID ffffff TPID 238c SID 2320 TYPE 0
+ CHANNEL ID 243 NAME "www.travel" SATID ffffff TPID 238c SID 2321 TYPE 0 VPID 49c APID 49f APID 4a0 TTPID 49d PCRPID 49c
+ CHANNEL ID 244 NAME "MagicStar" SATID ffffff TPID 238c SID 2322 TYPE 0 APID 4a4 PCRPID 4a4
+ CHANNEL ID 245 NAME "Skygate 8" SATID ffffff TPID 238c SID 22de TYPE 0
+ CHANNEL ID 246 NAME "UDLR" SATID ffffff TPID 238c SID 22df TYPE 0 APID 19fd
+ CHANNEL ID 247 NAME "UDLR UDcast" SATID ffffff TPID 238c SID 22e0 TYPE 0
+ CHANNEL ID 248 NAME "Skygate 17" SATID ffffff TPID 238c SID 2264 TYPE 0
+ CHANNEL ID 249 NAME "Netshow" SATID ffffff TPID 238c SID 226d TYPE 0
+ CHANNEL ID 24a NAME "MEDIOLANUM" SATID ffffff TPID 238c SID 226e TYPE 0 VPID 1006 PCRPID 1006
+ CHANNEL ID 24b NAME "Skygate 10" SATID ffffff TPID 238c SID 22c5 TYPE 0
+ CHANNEL ID 24c NAME "HitCast Data 1" SATID ffffff TPID 238c SID 22c6 TYPE 0
+ CHANNEL ID 24d NAME "HitCast S.Amer." SATID ffffff TPID 238c SID 22c7 TYPE 0
+ CHANNEL ID 24e NAME "Skygate 1" SATID ffffff TPID 238c SID 22ac TYPE 0
+ CHANNEL ID 24f NAME "MonteCarloSat" SATID ffffff TPID 238c SID 22ad TYPE 0 VPID 1407 APID 1402 PCRPID 1407
+ CHANNEL ID 250 NAME "Bulgaria Radio" SATID ffffff TPID 238c SID 227c TYPE 0 APID 1207
+ CHANNEL ID 251 NAME "skygate 600" SATID ffffff TPID 238c SID 227a TYPE 0
+ TRANSPONDER ID 23f0 SATID 0000 TYPE 1 FREQ 12558201 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 252 NAME "SKYPLEX TXP92" SATID ffffff TPID 23f0 SID 238d TYPE 0
+ CHANNEL ID 253 SATID ffffff TPID 23f0 SID 2491 TYPE 0
+ CHANNEL ID 254 SATID ffffff TPID 23f0 SID 2492 TYPE 0 VPID b09 APID b02 TTPID b0a PCRPID b09
+ CHANNEL ID 255 SATID ffffff TPID 23f0 SID 2493 TYPE 0 VPID b09 TTPID b0a PCRPID b0d
+ CHANNEL ID 256 SATID ffffff TPID 23f0 SID 2494 TYPE 0 VPID b09 TTPID b0a PCRPID b04
+ CHANNEL ID 257 NAME "SKY_4" SATID ffffff TPID 23f0 SID 2487 TYPE 0
+ CHANNEL ID 258 NAME "ESP Int'l" SATID ffffff TPID 23f0 SID 2488 TYPE 1 VPID a0f APID a02 APID a03 TTPID a10 PCRPID a0f
+ CHANNEL ID 259 NAME "ESP Romanian" SATID ffffff TPID 23f0 SID 2489 TYPE 1 APID a09 PCRPID a2c
+ CHANNEL ID 25a NAME "ESP Dutch" SATID ffffff TPID 23f0 SID 248a TYPE 1 VPID a0f APID a04 TTPID a10 PCRPID a2c
+ CHANNEL ID 25b NAME "ESP PolisI" SATID ffffff TPID 23f0 SID 248b TYPE 1 APID a05 PCRPID a2c
+ CHANNEL ID 25c SATID ffffff TPID 23f0 SID 248c TYPE 0 VPID a0f APID a06 TTPID a10 PCRPID a2c
+ CHANNEL ID 25d SATID ffffff TPID 23f0 SID 248d TYPE 0 VPID a0f APID a04 TTPID a10 PCRPID a2c
+ CHANNEL ID 25e SATID ffffff TPID 23f0 SID 248e TYPE 0 VPID a0f APID a08 TTPID a10 PCRPID a2c
+ CHANNEL ID 25f SATID ffffff TPID 23f0 SID 248f TYPE 0 APID a02 APID a03 APID a04 APID a05 PCRPID a0f
+ CHANNEL ID 260 SATID ffffff TPID 23f0 SID 2423 TYPE 0
+ TRANSPONDER ID 0143 SATID 0000 TYPE 1 FREQ 12573000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 0144 SATID 0000 TYPE 1 FREQ 12590000 POL H SRATE 27500000 FEC 8
+ TRANSPONDER ID 24b8 SATID 0000 TYPE 1 FREQ 12596560 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 261 NAME "JSTV 1" SATID ffffff TPID 24b8 SID 2015 TYPE 0 VPID 7d0 APID 7d2 APID 7d3 APID 7d2 PCRPID 7d0
+ CHANNEL ID 262 NAME "JSTV 2" SATID ffffff TPID 24b8 SID 2016 TYPE 0 VPID 7db APID 7dc APID 7dd APID 7dd PCRPID 7db
+ CHANNEL ID 263 NAME "MBC" SATID ffffff TPID 24b8 SID 2009 TYPE 0 VPID a0 APID 50 APID 51 TTPID 20 PCRPID a0
+ CHANNEL ID 264 NAME "Service 2" SATID ffffff TPID 24b8 SID 200a TYPE 0 VPID a1 APID 54 PCRPID a1
+ CHANNEL ID 265 NAME "NITV" SATID ffffff TPID 24b8 SID 200c TYPE 0 VPID a3 APID 5c PCRPID a3
+ CHANNEL ID 266 NAME "SIMAYE AZADI" SATID ffffff TPID 24b8 SID 200f TYPE 0 VPID a6 APID 6a PCRPID a6
+ CHANNEL ID 267 NAME "BET" SATID ffffff TPID 24b8 SID 2010 TYPE 0 VPID a7 APID 6c APID 6d PCRPID a7
+ CHANNEL ID 268 NAME "CNNI" SATID ffffff TPID 24b8 SID 2011 TYPE 1 VPID a8 APID 70 APID 71 TTPID 38 PCRPID a8
+ CHANNEL ID 269 NAME "EuroNews" SATID ffffff TPID 24b8 SID 2013 TYPE 0 VPID 8ad APID 8b7 APID 8b8 APID 8b9 APID 8ba APID 8bb APID 8bc APID 8bd APID 8be TTPID 300 PCRPID 8ad
+ CHANNEL ID 26a NAME "Canal Rural" SATID ffffff TPID 24b8 SID 2014 TYPE 0 VPID 911 APID 91b APID 91c PCRPID 911
+ CHANNEL ID 26b NAME "MediaHW" SATID ffffff TPID 24b8 SID 2063 TYPE 0 PCRPID fa0
+ TRANSPONDER ID 251c SATID 0000 TYPE 1 FREQ 12615000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 26c SATID ffffff TPID 251c SID fffe TYPE 0
+ CHANNEL ID 26d NAME "MMOV" SATID ffffff TPID 251c SID f46 TYPE 1 VPID a10 PCRPID a00
+ CHANNEL ID 26e NAME "MMOV" SATID ffffff TPID 251c SID f49 TYPE 1 VPID a12 PCRPID a01
+ CHANNEL ID 26f NAME "MMOV" SATID ffffff TPID 251c SID f4d TYPE 1 VPID a14 PCRPID a02
+ CHANNEL ID 270 NAME "MMOV" SATID ffffff TPID 251c SID f4e TYPE 1 VPID a16 PCRPID a03
+ CHANNEL ID 271 NAME "MMOV" SATID ffffff TPID 251c SID f4f TYPE 1 VPID a18 PCRPID a04
+ CHANNEL ID 272 NAME "MMOV" SATID ffffff TPID 251c SID f50 TYPE 1 VPID a1a PCRPID a05
+ CHANNEL ID 273 NAME "SC 1" SATID ffffff TPID 251c SID f51 TYPE 1 VPID a07 PCRPID a06
+ CHANNEL ID 274 NAME "SC 2" SATID ffffff TPID 251c SID f54 TYPE 1 VPID a0a PCRPID a06
+ CHANNEL ID 275 NAME "SC 3" SATID ffffff TPID 251c SID f57 TYPE 1 VPID a0d PCRPID a06
+ CHANNEL ID 276 NAME "MC20" SATID ffffff TPID 251c SID f5f TYPE 1 APID 900 PCRPID 900
+ CHANNEL ID 277 NAME "MC21" SATID ffffff TPID 251c SID f62 TYPE 1 APID 901 PCRPID 901
+ CHANNEL ID 278 NAME "MC22" SATID ffffff TPID 251c SID f65 TYPE 1 APID 902 PCRPID 902
+ CHANNEL ID 279 NAME "MC23" SATID ffffff TPID 251c SID f68 TYPE 1 APID 903 PCRPID 903
+ CHANNEL ID 27a NAME "MC24" SATID ffffff TPID 251c SID f6b TYPE 1 APID 904 PCRPID 904
+ CHANNEL ID 27b NAME "MC25" SATID ffffff TPID 251c SID f6e TYPE 1 APID 905 PCRPID 905
+ CHANNEL ID 27c NAME "MC26" SATID ffffff TPID 251c SID f71 TYPE 1 APID 906 PCRPID 906
+ CHANNEL ID 27d NAME "MC27" SATID ffffff TPID 251c SID f74 TYPE 1 APID 907 PCRPID 907
+ CHANNEL ID 27e NAME "MC28" SATID ffffff TPID 251c SID f77 TYPE 1 APID 908 PCRPID 908
+ CHANNEL ID 27f NAME "MC29" SATID ffffff TPID 251c SID f7a TYPE 1 APID 909 PCRPID 909
+ CHANNEL ID 280 NAME "MC30" SATID ffffff TPID 251c SID f7d TYPE 1 APID 90a PCRPID 90a
+ CHANNEL ID 281 NAME "MC31" SATID ffffff TPID 251c SID f80 TYPE 1 APID 90b PCRPID 90b
+ CHANNEL ID 282 NAME "MC32" SATID ffffff TPID 251c SID f83 TYPE 1 APID 90c PCRPID 90c
+ CHANNEL ID 283 NAME "MC33" SATID ffffff TPID 251c SID f86 TYPE 1 APID 90d PCRPID 90d
+ CHANNEL ID 284 NAME "MC34" SATID ffffff TPID 251c SID f89 TYPE 1 APID 90e PCRPID 90e
+ CHANNEL ID 285 NAME "MC35" SATID ffffff TPID 251c SID f8c TYPE 1 APID 90f PCRPID 90f
+ CHANNEL ID 286 NAME "MC36" SATID ffffff TPID 251c SID f8f TYPE 1 APID 910 PCRPID 910
+ CHANNEL ID 287 NAME "MC37" SATID ffffff TPID 251c SID f92 TYPE 1 APID 911 PCRPID 911
+ CHANNEL ID 288 NAME "MC38" SATID ffffff TPID 251c SID f95 TYPE 1 APID 912 PCRPID 912
+ CHANNEL ID 289 NAME "MC39" SATID ffffff TPID 251c SID f98 TYPE 1 APID 913 PCRPID 913
+ TRANSPONDER ID 2580 SATID 0000 TYPE 1 FREQ 12635000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 28a SATID ffffff TPID 2580 SID fffe TYPE 0
+ CHANNEL ID 28b NAME "SC 4" SATID ffffff TPID 2580 SID fa1 TYPE 1 VPID a90 PCRPID a83
+ CHANNEL ID 28c NAME "SC 5" SATID ffffff TPID 2580 SID fa2 TYPE 1 VPID a88 PCRPID a83
+ CHANNEL ID 28d NAME "SC 6" SATID ffffff TPID 2580 SID fa3 TYPE 1 VPID a8d PCRPID a83
+ CHANNEL ID 28e NAME "MMOV" SATID ffffff TPID 2580 SID fa7 TYPE 1 VPID a84 PCRPID a80
+ CHANNEL ID 28f NAME "MMOV" SATID ffffff TPID 2580 SID faa TYPE 1 VPID a86 PCRPID a81
+ CHANNEL ID 290 NAME "MMOV" SATID ffffff TPID 2580 SID fb0 TYPE 1 VPID a93 PCRPID a82
+ CHANNEL ID 291 NAME "MMOV" SATID ffffff TPID 2580 SID fb3 TYPE 1 VPID a95 PCRPID a8b
+ CHANNEL ID 292 NAME "MMOV" SATID ffffff TPID 2580 SID fb6 TYPE 1 VPID a97 PCRPID a8c
+ CHANNEL ID 293 NAME "MMOV" SATID ffffff TPID 2580 SID fb9 TYPE 1 VPID b03 PCRPID b00
+ CHANNEL ID 294 NAME "MMOV" SATID ffffff TPID 2580 SID fbc TYPE 1 VPID b05 PCRPID b01
+ TRANSPONDER ID 25e4 SATID 0000 TYPE 1 FREQ 12654000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 295 NAME "Sharjah Arabsat Bouquet" SATID ffffff TPID 25e4 SID 1 TYPE 0 VPID 488 PCRPID 488
+ CHANNEL ID 296 NAME "Qatar Arabsat Bouquet" SATID ffffff TPID 25e4 SID 2 TYPE 0 VPID 4ec PCRPID 4ec
+ CHANNEL ID 297 NAME "Saudi 1 Arabsat Bouquet" SATID ffffff TPID 25e4 SID 3 TYPE 0 VPID 550 PCRPID 550
+ CHANNEL ID 298 NAME "Kuwait Arabsat Bouquet" SATID ffffff TPID 25e4 SID 4 TYPE 0 VPID 5b4 PCRPID 5b4
+ CHANNEL ID 299 NAME "Libya Arabsat Bouquet" SATID ffffff TPID 25e4 SID 5 TYPE 0 VPID 618 PCRPID 618
+ CHANNEL ID 29a NAME "Sudan Arabsat Bouquet" SATID ffffff TPID 25e4 SID 6 TYPE 0 VPID 67c PCRPID 67c
+ CHANNEL ID 29b NAME "Oman Arabsat Bouquet" SATID ffffff TPID 25e4 SID 7 TYPE 0 VPID 6e0 PCRPID 6e0
+ CHANNEL ID 29c NAME "Jordan Arabsat Bouquet" SATID ffffff TPID 25e4 SID 8 TYPE 0 VPID 744 PCRPID 744
+ CHANNEL ID 29d NAME "IRAQ TV" SATID ffffff TPID 25e4 SID 9 TYPE 0 VPID 7a8 PCRPID 7a8
+ CHANNEL ID 29e NAME "Dubai Sport" SATID ffffff TPID 25e4 SID a TYPE 0 VPID 424 PCRPID 424
+ CHANNEL ID 29f NAME "Qatar A2 Arabsat Bouquet" SATID ffffff TPID 25e4 SID c TYPE 0 APID 4c5 PCRPID 4c5
+ CHANNEL ID 2a0 NAME "Saudi1 A2 Arabsat Bouquet" SATID ffffff TPID 25e4 SID d TYPE 0 APID 529 PCRPID 529
+ CHANNEL ID 2a1 NAME "Kuwait A2 Arabsat Bouquet" SATID ffffff TPID 25e4 SID e TYPE 0 APID 58d PCRPID 58d
+ CHANNEL ID 2a2 NAME "Jordan A2 Arabsat Bouquet" SATID ffffff TPID 25e4 SID 12 TYPE 0 APID 71d PCRPID 71d
+ CHANNEL ID 2a3 NAME "Radio dubai sport" SATID ffffff TPID 25e4 SID 13 TYPE 0 APID 3fd PCRPID 3fd
+ TRANSPONDER ID 2648 SATID 0000 TYPE 1 FREQ 12673000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 2a4 NAME "Digitaly" SATID ffffff TPID 2648 SID 106b TYPE 0 VPID dc APID dd APID de PCRPID dc
+ CHANNEL ID 2a5 NAME "Telemarket" SATID ffffff TPID 2648 SID 1073 TYPE 0 VPID 15e APID 15f PCRPID 15e
+ CHANNEL ID 2a6 NAME "Internet data 1" SATID ffffff TPID 2648 SID 1074 TYPE 0 TTPID 11f
+ CHANNEL ID 2a7 NAME "eVision" SATID ffffff TPID 2648 SID 1076 TYPE 0 VPID 168 APID 169 APID 16a APID 1be6 PCRPID 168
+ CHANNEL ID 2a8 NAME "ANNI 60" SATID ffffff TPID 2648 SID 1086 TYPE 0 APID fa PCRPID fa
+ CHANNEL ID 2a9 NAME "R. Reporter" SATID ffffff TPID 2648 SID 1087 TYPE 0 APID fb PCRPID fb
+ CHANNEL ID 2aa NAME "Radio Italia S.M.I." SATID ffffff TPID 2648 SID 1088 TYPE 0 APID fc PCRPID fc
+ CHANNEL ID 2ab NAME "R. Tour" SATID ffffff TPID 2648 SID 1089 TYPE 0 APID fd PCRPID fd
+ CHANNEL ID 2ac NAME "R.Rinascente" SATID ffffff TPID 2648 SID 108a TYPE 0 APID fe PCRPID fe
+ CHANNEL ID 2ad NAME "R. Cooky" SATID ffffff TPID 2648 SID 108b TYPE 0 APID ff PCRPID ff
+ CHANNEL ID 2ae NAME "RadioBaby" SATID ffffff TPID 2648 SID 108c TYPE 0 APID 100 PCRPID 100
+ CHANNEL ID 2af NAME "McDonalds" SATID ffffff TPID 2648 SID 108d TYPE 0 APID 101 PCRPID 101
+ CHANNEL ID 2b0 NAME "TRBuonconsiglio" SATID ffffff TPID 2648 SID 108e TYPE 0 APID 191 PCRPID 191
+ CHANNEL ID 2b1 NAME "R-Radio" SATID ffffff TPID 2648 SID 108f TYPE 0 APID 192 PCRPID 192
+ CHANNEL ID 2b2 NAME "R. Donna" SATID ffffff TPID 2648 SID 1090 TYPE 0 APID 193 PCRPID 193
+ CHANNEL ID 2b3 NAME "R. Reporter 2" SATID ffffff TPID 2648 SID 1091 TYPE 0 APID 194 PCRPID 194
+ CHANNEL ID 2b4 NAME "R. West" SATID ffffff TPID 2648 SID 1092 TYPE 0 APID 195 PCRPID 195
+ CHANNEL ID 2b5 NAME "Melodia Russia" SATID ffffff TPID 2648 SID 1093 TYPE 0 VPID 19f6 APID 196 PCRPID 196
+ CHANNEL ID 2b6 NAME "Padre Pio" SATID ffffff TPID 2648 SID 1094 TYPE 0 APID 197 PCRPID 197
+ CHANNEL ID 2b7 NAME "Thai TV5" SATID ffffff TPID 2648 SID 1069 TYPE 0 VPID c8 APID c9 APID ca PCRPID c8
+ CHANNEL ID 2b8 NAME "Studio Europa" SATID ffffff TPID 2648 SID 106c TYPE 0 VPID e6 APID e7 PCRPID e6
+ CHANNEL ID 2b9 NAME "Video Italia" SATID ffffff TPID 2648 SID 1072 TYPE 0 VPID 154 APID 155 APID 156 PCRPID 154
+ TRANSPONDER ID 26ac SATID 0000 TYPE 1 FREQ 12692000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 2ba NAME "PASSIONS" SATID ffffff TPID 26ac SID 1f5 TYPE 0 VPID a0 PCRPID a0
+ CHANNEL ID 2bb NAME "ONYX" SATID ffffff TPID 26ac SID 1f6 TYPE 0 VPID a1 PCRPID a1
+ CHANNEL ID 2bc NAME "MANGAS" SATID ffffff TPID 26ac SID 1f7 TYPE 1 VPID a2 APID 58 TTPID 26 PCRPID a2
+ CHANNEL ID 2bd NAME "ENCYCLOPEDIA" SATID ffffff TPID 26ac SID 1f8 TYPE 1 VPID a3 APID 5c TTPID 29 PCRPID a3
+ CHANNEL ID 2be NAME "POLAR" SATID ffffff TPID 26ac SID 1f9 TYPE 1 VPID a4 APID 60 TTPID 2c PCRPID a4
+ CHANNEL ID 2bf NAME "CINE PALACE" SATID ffffff TPID 26ac SID 1fa TYPE 1 VPID a5 APID 64 TTPID 2f PCRPID a5
+ CHANNEL ID 2c0 NAME "ROMANCE" SATID ffffff TPID 26ac SID 1fb TYPE 1 VPID a6 APID 68 TTPID 32 PCRPID a6
+ CHANNEL ID 2c1 NAME "RIRE" SATID ffffff TPID 26ac SID 1fc TYPE 1 VPID a7 APID 6c TTPID 35 PCRPID a7
+ CHANNEL ID 2c2 NAME "ACTION" SATID ffffff TPID 26ac SID 1fd TYPE 1 VPID a8 APID 70 TTPID 38 PCRPID a8
+ CHANNEL ID 2c3 NAME "ABsat test RADIO" SATID ffffff TPID 26ac SID 1fe TYPE 1 APID 65 PCRPID a5
+ TRANSPONDER ID 2710 SATID 0000 TYPE 1 FREQ 12713000 POL V SRATE 27500000 FEC 8
+ CHANNEL ID 2c4 SATID ffffff TPID 2710 SID fffe TYPE 0
+ CHANNEL ID 2c5 NAME "MMOV" SATID ffffff TPID 2710 SID 10d0 TYPE 1 VPID a03 PCRPID a00
+ CHANNEL ID 2c6 NAME "MMOV" SATID ffffff TPID 2710 SID 10d3 TYPE 1 VPID a05 PCRPID a01
+ CHANNEL ID 2c7 NAME "MMOV" SATID ffffff TPID 2710 SID 10d6 TYPE 1 VPID a07 PCRPID a02
+ CHANNEL ID 2c8 NAME "MMOV" SATID ffffff TPID 2710 SID 10d9 TYPE 1 VPID 904 PCRPID 900
+ CHANNEL ID 2c9 NAME "MMOV" SATID ffffff TPID 2710 SID 10dc TYPE 1 VPID 90a PCRPID 901
+ CHANNEL ID 2ca NAME "MMOV" SATID ffffff TPID 2710 SID 10e4 TYPE 1 VPID 906 PCRPID 902
+ CHANNEL ID 2cb NAME "MMOV" SATID ffffff TPID 2710 SID 10e7 TYPE 1 VPID 908 PCRPID 903
+ TRANSPONDER ID 2774 SATID 0000 TYPE 1 FREQ 12713000 POL H SRATE 27500000 FEC 8
+ CHANNEL ID 2cc SATID ffffff TPID 2774 SID fffe TYPE 0
+ CHANNEL ID 2cd NAME "SINT" SATID ffffff TPID 2774 SID 2262 TYPE 1
+ CHANNEL ID 2ce NAME "info" SATID ffffff TPID 2774 SID 2264 TYPE 1 VPID 205 PCRPID 1ffe
+ CHANNEL ID 2cf NAME "SINT" SATID ffffff TPID 2774 SID 2266 TYPE 1
+ CHANNEL ID 2d0 NAME "CFN" SATID ffffff TPID 2774 SID 2269 TYPE 1 VPID 20b PCRPID 1ffe
+ CHANNEL ID 2d1 NAME "SINT" SATID ffffff TPID 2774 SID 226c TYPE 1
+ CHANNEL ID 2d2 NAME "duel" SATID ffffff TPID 2774 SID 226f TYPE 1 VPID 206 PCRPID 1ffe
+ CHANNEL ID 2d3 NAME "comedy" SATID ffffff TPID 2774 SID 2272 TYPE 1 VPID 203 PCRPID 1ffe
+ CHANNEL ID 2d4 NAME "fox kids" SATID ffffff TPID 2774 SID 2275 TYPE 1 VPID 201 PCRPID 1ffe
diff --git a/Tools/dvbrc2vdr/test.conf b/Tools/dvbrc2vdr/test.conf
new file mode 100644
index 0000000..31dddb7
--- /dev/null
+++ b/Tools/dvbrc2vdr/test.conf
@@ -0,0 +1,799 @@
+DISCOVERY:10719:v:1:27500:8190:8190:0:4402
+RTL7:10719:v:1:27500:8190:8190:0:4403
+TV POLONIA:10719:v:1:27500:8190:8190:0:4404
+EUROSPORT:10719:v:1:27500:8190:8190:0:4405
+PLANETE:10719:v:1:27500:8190:8190:0:4406
+SEASONS:10719:v:1:27500:8190:8190:0:4407
+VIVA Polska:10719:v:1:27500:8190:8190:0:4408
+MULTIMUSIC 4:10719:v:1:27500:8190:123:0:4440
+EPG:10719:v:1:27500:8190:8190:0:4450
+CYFRA+ GRY:10719:v:1:27500:8190:8190:0:4460
+Guide LC:0:v:1:27500:8190:8030:0:2000
+Cinestar 1:0:v:1:27500:120:130:0:1201
+Cinestar 2:0:v:1:27500:220:230:0:1202
+Cinetoile:0:v:1:27500:320:330:0:1203
+Shopping Avenue:0:v:1:27500:420:430:0:1204
+Série Club :0:v:1:27500:520:530:0:1205
+FUN TV:0:v:1:27500:620:630:0:1206
+Teva:0:v:1:27500:720:730:0:1207
+M6 Music:0:v:1:27500:820:830:0:1208
+Club Téléachat:0:v:1:27500:920:930:0:1209
+INFOSPORT:0:v:1:27500:120:130:0:1401
+Régions:0:v:1:27500:220:230:0:1402
+Mezzo:0:v:1:27500:320:330:0:1403
+01 01 15 97:0:v:1:27500:8190:8190:0:1483
+01 01 17 97:0:v:1:27500:8190:8190:0:1485
+01 02 17 97:0:v:1:27500:8190:8190:0:1486
+01 02 15 97:0:v:1:27500:8190:8190:0:1488
+01 02 15 96:0:v:1:27500:8190:8190:0:1489
+01 03 17 10:0:v:1:27500:8190:8190:0:1490
+01 03 15 10:0:v:1:27500:8190:8190:0:1491
+Festival:0:v:1:27500:420:430:0:1404
+HISTOIRE :0:v:1:27500:520:530:0:1405
+Télétoon:0:v:1:27500:620:630:0:1406
+Odyssée :0:v:1:27500:720:730:0:1407
+France Musiques:0:v:1:27500:8190:830:0:1418
+Hector:0:v:1:27500:8190:831:0:1419
+FIP:0:v:1:27500:8190:832:0:1420
+France Inter:0:v:1:27500:8190:833:0:1421
+France Info:0:v:1:27500:8190:834:0:1422
+Elisa:0:v:1:27500:8190:835:0:1423
+France Culture:0:v:1:27500:8190:836:0:1424
+Radio Bleue:0:v:1:27500:8190:837:0:1425
+Le Mouv:0:v:1:27500:8190:838:0:1426
+TV5:0:v:1:27500:920:930:0:1409
+CENTRONICS:0:v:1:27500:8190:8190:0:2000
+FRANCE 2 :0:v:1:27500:320:8190:0:1104
+FRANCE 3:0:v:1:27500:520:8190:0:1106
+Crédit Agricole:0:v:1:27500:8190:5333:0:5301
+tps foot:0:v:1:27500:8190:5230:0:5200
+LCI:0:v:1:27500:120:130:0:1101
+EUROSPORT:0:v:1:27500:220:230:0:1102
+FRANCE 2:0:v:1:27500:320:8190:0:1103
+FRANCE 3:0:v:1:27500:520:8190:0:1105
+I TELEVISION:0:v:1:27500:820:830:0:1108
+TV Mail alphatest:0:v:1:27500:8190:8190:0:5701
+CHAINE FI:0:v:1:27500:8190:5331:0:5300
+caisse d'épargne:0:v:1:27500:8190:8190:0:5303
+TV Mail:0:v:1:27500:8190:8190:0:5700
+CANAL+:10892:h:1:27500:8190:8190:0:4801
+CANAL+ ¯Ó£TY:10892:h:1:27500:8190:8190:0:4802
+TMT:10892:h:1:27500:8190:8190:0:4804
+ALE KINO!:10892:h:1:27500:8190:8190:0:4805
+MINIMAX:10892:h:1:27500:8190:8190:0:4806
+TVP 1:10892:h:1:27500:8190:8190:0:4807
+TVP 2:10892:h:1:27500:8190:8190:0:4808
+CANAL+ NIEBIESKI:10892:h:1:27500:8190:8190:0:4809
+EPG:10892:h:1:27500:8190:8190:0:4850
+Multivision:0:v:1:27500:320:8190:0:1603
+Grand Classique:0:v:1:27500:8190:830:0:1650
+Symphonies:0:v:1:27500:8190:831:0:1651
+Baroque:0:v:1:27500:8190:832:0:1652
+Opéra:0:v:1:27500:8190:833:0:1653
+Contemporain:0:v:1:27500:8190:834:0:1654
+Relaxation:0:v:1:27500:8190:835:0:1655
+Blues:0:v:1:27500:8190:836:0:1656
+Jazz:0:v:1:27500:8190:837:0:1657
+Big Band:0:v:1:27500:8190:838:0:1658
+Jazz Moderne:0:v:1:27500:8190:839:0:1659
+Les Tubes Français:0:v:1:27500:8190:840:0:1660
+RFO SAT:0:v:1:27500:120:130:0:1601
+Appli D1 LC:0:v:1:27500:8190:8190:0:1680
+Cinefaz:0:v:1:27500:220:230:0:1602
+TurboPC:0:v:1:27500:8190:8190:0:2801
+MTV2:0:v:1:27500:720:730:0:1607
+Rire et chansons:0:v:1:27500:8190:930:0:1630
+Radio J:0:v:1:27500:8190:931:0:1631
+Mosqueteiros:0:v:1:27500:8190:932:0:1632
+Abysse:0:v:1:27500:8190:933:0:1633
+RMC:0:v:1:27500:8190:935:0:1635
+Radio Junior:0:v:1:27500:8190:936:0:1636
+NETRADIO:0:v:1:27500:8190:937:0:1637
+Nostalgie:0:v:1:27500:8190:938:0:1638
+Skyrock:0:v:1:27500:8190:939:0:1639
+Radio Coutoisie:0:v:1:27500:8190:940:0:1640
+La Voix des Pays:0:v:1:27500:8190:941:0:1641
+INFO EXPRESS:0:v:1:27500:8190:5530:0:5500
+METEO:0:v:1:27500:8190:5830:0:5800
+X X L:0:v:1:27500:8190:8190:0:5400
+Multivision Cinéma:0:v:1:27500:8190:8190:0:7200
+Multivision Sport:0:v:1:27500:8190:8190:0:7300
+Multivision Spectacle:0:v:1:27500:8190:8190:0:7400
+Test OTV8:12673:h:1:27500:8190:8190:0:7527
+Test OTV9:12673:h:1:27500:8190:8190:0:7528
+Test OTV10:12673:h:1:27500:8190:8190:0:7529
+Test OTV11:12673:h:1:27500:513:8190:0:7530
+Test31:12673:h:1:27500:512:650:0:7501
+CNN:12673:h:1:27500:513:660:0:7502
+Q24:12673:h:1:27500:514:691:0:7503
+Test34:12673:h:1:27500:515:680:0:7504
+Test35:12673:h:1:27500:516:690:0:7505
+Test OTV1:12673:h:1:27500:8190:8190:0:7520
+Test OTV2:12673:h:1:27500:8190:8190:0:7521
+Test OTV3:12673:h:1:27500:8190:8190:0:7522
+Test OTV4:12673:h:1:27500:8190:8190:0:7523
+Test OTV5:12673:h:1:27500:8190:8190:0:7524
+Test OTV6:12673:h:1:27500:8190:8190:0:7525
+Test OTV7:12673:h:1:27500:8190:8190:0:7526
+Test OTV7:12673:h:1:27500:8190:8190:0:7540
+Test OTV7:12673:h:1:27500:8190:8190:0:7541
+Telekom TV:11095:h:1:27500:32:8190:0:3711
+FantasticOverOpal:11095:h:1:27500:32:8190:0:3712
+Gilat:11095:h:1:27500:32:8190:0:3713
+Siemens TV:11095:h:1:27500:32:8190:0:3716
+S-TV:11095:h:1:27500:32:8190:0:3717
+Optibase Encoder:11095:h:1:27500:32:8190:0:3718
+FantasticOverOpal:11095:h:1:27500:8190:8190:0:3702
+Deutsche Bank / T1:11303:h:1:27500:1160:8190:0:1
+Animal Planet:11303:h:1:27500:1160:8190:0:10
+Discovery E Europe-English:11303:h:1:27500:1260:8190:0:20
+Wuerth KG / T21:11303:h:1:27500:1360:8190:0:21
+Discovery Italy:11303:h:1:27500:1360:8190:0:30
+BTI / T31:11303:h:1:27500:1360:8190:0:31
+Discovery Russia:11303:h:1:27500:1460:8190:0:40
+K-TV (MetroMux) / T41:11303:h:1:27500:1960:8190:0:41
+Animal Planet EE:11303:h:1:27500:1560:8190:0:50
+Animal Planet - Russian:11303:h:1:27500:1560:8190:0:51
+Discovery Netherlands:11303:h:1:27500:1660:8190:0:60
+Q English:11303:h:1:27500:1760:8190:0:70
+Travel and Adventure:11303:h:1:27500:1860:8190:0:80
+Travel and Adventure- Russian:11303:h:1:27500:1860:8190:0:81
+New DCP:11303:h:1:27500:8190:1220:0:300
+CCP:11303:h:1:27500:1260:8190:0:301
+Deutsche Bank / T2:11303:h:1:27500:1260:8190:0:2
+Channel Three:11303:h:1:27500:1360:8190:0:3
+Channel Four:11303:h:1:27500:1460:8190:0:4
+Channel Five:11303:h:1:27500:1560:8190:0:5
+Channel 6 = Sat 7 Arabic:11303:h:1:27500:1660:8190:0:6
+Channel Seven:11303:h:1:27500:1760:8190:0:7
+Q German:11303:h:1:27500:1760:8190:0:71
+Q French:11303:h:1:27500:1760:8190:0:72
+Q Dutch:11303:h:1:27500:1760:8190:0:73
+DTAG / T11:11303:h:1:27500:1360:8190:0:11
+DTAG 50 / T12:11303:h:1:27500:1360:8190:0:12
+Telekom TV:11303:h:1:27500:1460:8190:0:13
+Gerling / T26:11303:h:1:27500:1360:8190:0:26
+Hornbach-D / T36:11303:h:1:27500:1360:8190:0:36
+Hornbach-NL / T38:11303:h:1:27500:1360:8190:0:38
+Hornbach-CZ / T39:11303:h:1:27500:1360:8190:0:39
+Testkanal:11303:h:1:27500:1660:8190:0:99
+KENCAST:11303:h:1:27500:8190:8190:0:111
+SAT.1 CH:11604:h:1:27500:101:102:0:601
+KBT Channel SUN:11604:h:1:27500:111:112:0:603
+big FM:11604:h:1:27500:8190:113:0:604
+Event:11604:h:1:27500:160:161:0:602
+Deutsche Bank / T1:11642:h:1:27500:1160:8190:0:1
+Animal Planet:11642:h:1:27500:1160:8190:0:10
+Discovery E Europe-English:11642:h:1:27500:1260:8190:0:20
+Wuerth KG / T21:11642:h:1:27500:1360:8190:0:21
+Discovery Italy:11642:h:1:27500:1360:8190:0:30
+BTI / T31:11642:h:1:27500:1360:8190:0:31
+Discovery Russia:11642:h:1:27500:1460:8190:0:40
+K-TV (MetroMux) / T41:11642:h:1:27500:1960:8190:0:41
+Animal Planet EE:11642:h:1:27500:1560:8190:0:50
+Animal Planet - Russian:11642:h:1:27500:1560:8190:0:51
+Discovery Netherlands:11642:h:1:27500:1660:8190:0:60
+Q English:11642:h:1:27500:1760:8190:0:70
+Travel and Adventure:11642:h:1:27500:1860:8190:0:80
+Travel and Adventure- Russian:11642:h:1:27500:1860:8190:0:81
+New DCP:11642:h:1:27500:8190:1220:0:300
+CCP:11642:h:1:27500:1260:8190:0:301
+Deutsche Bank / T2:11642:h:1:27500:1260:8190:0:2
+Channel Three:11642:h:1:27500:1360:8190:0:3
+Channel Four:11642:h:1:27500:1460:8190:0:4
+Channel Five:11642:h:1:27500:1560:8190:0:5
+Channel 6 = Sat 7 Arabic:11642:h:1:27500:1660:8190:0:6
+Channel Seven:11642:h:1:27500:1760:8190:0:7
+Q German:11642:h:1:27500:1760:8190:0:71
+Q French:11642:h:1:27500:1760:8190:0:72
+Q Dutch:11642:h:1:27500:1760:8190:0:73
+DTAG / T11:11642:h:1:27500:1360:8190:0:11
+DTAG 50 / T12:11642:h:1:27500:1360:8190:0:12
+Telekom TV:11642:h:1:27500:1460:8190:0:13
+Gerling / T26:11642:h:1:27500:1360:8190:0:26
+Hornbach-D / T36:11642:h:1:27500:1360:8190:0:36
+Hornbach-NL / T38:11642:h:1:27500:1360:8190:0:38
+Hornbach-CZ / T39:11642:h:1:27500:1360:8190:0:39
+Testkanal:11642:h:1:27500:1660:8190:0:99
+KENCAST:11642:h:1:27500:8190:8190:0:111
+AB 1:11681:h:1:27500:160:80:0:201
+AB MOTEURS:11681:h:1:27500:161:84:0:202
+ANIMAUX:11681:h:1:27500:162:88:0:203
+CHASSE ET PECHE:11681:h:1:27500:163:92:0:204
+XXL:11681:h:1:27500:164:96:0:205
+MUSIQUE CLASSIQUE:11681:h:1:27500:165:100:0:206
+ESCALES:11681:h:1:27500:166:104:0:207
+FIT/chaîne HISTOIRE:11681:h:1:27500:167:108:0:208
+RFM TV:11681:h:1:27500:168:112:0:209
+EDTV DRAMA:11744:h:1:27500:4898:8190:0:9504
+EDTV RADIO 02:11744:h:1:27500:4898:8190:0:9524
+EDTV RADIO 01:11744:h:1:27500:4898:8190:0:9523
+EDTV SPORT:11744:h:1:27500:4898:8190:0:9502
+EDTV BUSINESS:11744:h:1:27500:4898:8190:0:9503
+RAI1:11765:v:1:27500:160:8190:0:3401
+RAI2:11765:v:1:27500:161:8190:0:3402
+RAI3:11765:v:1:27500:162:8190:0:3403
+Rai Way TEST1:11765:v:1:27500:515:8190:0:3404
+Rai Way TEST2:11765:v:1:27500:516:8190:0:3405
+Rai Way TEST3:11765:v:1:27500:164:8190:0:3406
+RAIMOSAICO:11765:v:1:27500:518:8190:0:3407
+RAIMOSAICO:11765:v:1:27500:518:8190:0:3490
+RAINews24:11765:v:1:27500:516:8190:0:3301
+CAMERA DEPUTATI:11765:v:1:27500:517:8190:0:3302
+TELEPACE:11765:v:1:27500:515:8190:0:3304
+RAISPORTSAT:11765:v:1:27500:512:8190:0:3305
+RAINettunoSAT2:11765:v:1:27500:513:8190:0:3306
+RAIeducational:11765:v:1:27500:514:8190:0:3307
+RAINettunoSAT1:11765:v:1:27500:519:8190:0:3308
+SAT2000:11765:v:1:27500:518:8190:0:3309
+RADIOUNO:11765:v:1:27500:8190:670:0:3311
+RADIODUE:11765:v:1:27500:8190:671:0:3312
+RADIOTRE:11765:v:1:27500:8190:672:0:3313
+FDleggera:11765:v:1:27500:8190:673:0:3314
+FDauditorium:11765:v:1:27500:8190:665:0:3315
+BLUSAT 2000:11765:v:1:27500:8190:677:0:3316
+GR PARLAMENTO:11765:v:1:27500:8190:664:0:3317
+ISORADIO:11765:v:1:27500:8190:661:0:3318
+R1:11823:h:1:27500:512:650:0:301
+R2:11823:h:1:27500:513:661:0:302
+R3:11823:h:1:27500:514:670:0:303
+R4:11823:h:1:27500:515:680:0:304
+R5:11823:h:1:27500:4682:700:0:306
+R6:11823:h:1:27500:518:710:0:307
+R7:11823:h:1:27500:519:720:0:308
+Love Radio:11823:h:1:27500:8190:711:0:309
+Greek Church:11823:h:1:27500:8190:671:0:310
+Skai Radio:11823:h:1:27500:8190:741:0:311
+MelodiRadio:11823:h:1:27500:8190:701:0:312
+ERA 3:11823:h:1:27500:8190:651:0:313
+RR1:11823:h:1:27500:8190:681:0:314
+RR2:11823:h:1:27500:8190:721:0:315
+NOVA CINE:11823:h:1:27500:521:740:0:316
+FILM NET:11823:h:1:27500:512:650:0:317
+SSportK-T.V:11823:h:1:27500:513:661:0:318
+MEGA:11823:h:1:27500:514:670:0:319
+ANT-1:11823:h:1:27500:515:680:0:320
+STAR:11823:h:1:27500:517:700:0:321
+Alter 5:11823:h:1:27500:518:710:0:322
+NEW Tempo:11823:h:1:27500:519:720:0:323
+Super Sport2:11823:h:1:27500:516:691:0:324
+Super Sport2:11843:v:1:27500:516:691:0:65534
+INTV:11843:v:1:27500:2324:8190:0:3504
+UNIV:11843:v:1:27500:2305:8190:0:3507
+CULT:11843:v:1:27500:2307:8190:0:3510
+ERSP:11843:v:1:27500:2309:8190:0:3513
+SINT:11843:v:1:27500:8190:8190:0:3515
+CART:11843:v:1:27500:2433:8190:0:3516
+SINT:11843:v:1:27500:8190:8190:0:3519
+DISC:11843:v:1:27500:2437:8190:0:3522
+SINT:11843:v:1:27500:8190:8190:0:3525
+TVL:11843:v:1:27500:2441:8190:0:3528
+SINT:11843:v:1:27500:8190:8190:0:3530
+ROCK:11843:v:1:27500:8190:2320:0:3550
+RDS:11843:v:1:27500:8190:2321:0:3553
+RTL:11843:v:1:27500:8190:2322:0:3556
+101:11843:v:1:27500:8190:2323:0:3559
+RVOY:11843:v:1:27500:8190:2315:0:3562
+RKFM:11843:v:1:27500:8190:2317:0:3563
+GLOB:11843:v:1:27500:8190:2316:0:3564
+ANT1:11843:v:1:27500:8190:2318:0:3565
+RRAD:11843:v:1:27500:8190:2319:0:3566
+MC01:11843:v:1:27500:8190:2312:0:3568
+MC02:11843:v:1:27500:8190:2313:0:3571
+MC03:11843:v:1:27500:8190:2314:0:3574
+P7:12341:h:1:27500:160:81:0:11301
+P8:12341:h:1:27500:161:85:0:11303
+P9:12341:h:1:27500:162:89:0:11305
++GIOCHI:12341:h:1:27500:8190:8190:0:11310
+MM01:12341:h:1:27500:8190:601:0:11311
+MM02:12341:h:1:27500:8190:602:0:11312
+MM03:12341:h:1:27500:8190:603:0:11313
+MM04:12341:h:1:27500:8190:604:0:11314
+MM05:12341:h:1:27500:8190:605:0:11315
+MM06:12341:h:1:27500:8190:606:0:11316
+MM07:12341:h:1:27500:8190:607:0:11317
+MM08:12341:h:1:27500:8190:608:0:11318
+MM09:12341:h:1:27500:8190:609:0:11319
+MM10:12341:h:1:27500:8190:610:0:11320
+MM11:12341:h:1:27500:8190:611:0:11321
+MM12:12341:h:1:27500:8190:612:0:11322
+MM13:12341:h:1:27500:8190:613:0:11323
+MM14:12341:h:1:27500:8190:614:0:11324
+MM15:12341:h:1:27500:8190:615:0:11325
+MM16:12341:h:1:27500:8190:616:0:11326
+MM17:12341:h:1:27500:8190:617:0:11327
+MM18:12341:h:1:27500:8190:618:0:11328
+MM19:12341:h:1:27500:8190:619:0:11329
+MM20:12341:h:1:27500:8190:620:0:11330
+MM21:12341:h:1:27500:8190:621:0:11331
+MM22:12341:h:1:27500:8190:622:0:11332
+MM23:12341:h:1:27500:8190:623:0:11333
+MM24:12341:h:1:27500:8190:624:0:11334
+MM25:12341:h:1:27500:8190:625:0:11335
+MM26:12341:h:1:27500:8190:626:0:11336
+MM27:12341:h:1:27500:8190:627:0:11337
+MM28:12341:h:1:27500:8190:628:0:11338
+MM29:12341:h:1:27500:8190:629:0:11339
+MM30:12341:h:1:27500:8190:630:0:11340
+RCAP:12341:h:1:27500:8190:631:0:11341
+R105:12341:h:1:27500:8190:632:0:11342
+RDJ:12341:h:1:27500:8190:633:0:11343
+RITA:12341:h:1:27500:8190:634:0:11344
+RMC:12341:h:1:27500:8190:635:0:11345
+R101:12341:h:1:27500:8190:636:0:11346
+RRAD:12341:h:1:27500:8190:637:0:11347
+RR:12341:h:1:27500:8190:638:0:11348
+RR:12341:h:1:27500:8190:610:0:11361
+RR:12341:h:1:27500:8190:620:0:11362
+RR:12341:h:1:27500:8190:630:0:11363
+RR:12341:h:1:27500:8190:638:0:11364
+MULTIMUSICA:12341:h:1:27500:8190:8190:0:11352
+RADIO:12341:h:1:27500:8190:8190:0:11353
+MULTIMUSIC 1:12341:h:1:27500:8190:609:0:11365
+MULTIMUSIC 2:12341:h:1:27500:8190:620:0:11366
+MULTIMUSIC 2:12713:v:1:27500:8190:620:0:65534
+TEAM:12713:v:1:27500:2305:8190:0:3610
+SINT:12713:v:1:27500:8190:8190:0:3613
+VIAG:12713:v:1:27500:2308:8190:0:3616
+SINT:12713:v:1:27500:8190:8190:0:3619
+EURO:12713:v:1:27500:2311:8190:0:3622
+SINT:12713:v:1:27500:8190:8190:0:3623
+CNN:12713:v:1:27500:2433:8190:0:3625
+ante prima:12713:v:1:27500:2435:8190:0:3628
+SNAI:12713:v:1:27500:2561:8190:0:3630
+MPPV:12713:v:1:27500:2563:8190:0:3632
+MC04:12713:v:1:27500:8190:2688:0:3636
+MC05:12713:v:1:27500:8190:2689:0:3637
+MC06:12713:v:1:27500:8190:2690:0:3638
+MC07:12713:v:1:27500:8190:2691:0:3641
+MC08:12713:v:1:27500:8190:2692:0:3644
+MC09:12713:v:1:27500:8190:2693:0:3647
+MC10:12713:v:1:27500:8190:2694:0:3650
+MC11:12713:v:1:27500:8190:2695:0:3653
+MC12:12713:v:1:27500:8190:2696:0:3656
+MC13:12713:v:1:27500:8190:2697:0:3659
+MC14:12713:v:1:27500:8190:2698:0:3662
+MC15:12713:v:1:27500:8190:2699:0:3665
+MC16:12713:v:1:27500:8190:2700:0:3668
+MC17:12713:v:1:27500:8190:2701:0:3671
+MC18:12713:v:1:27500:8190:2702:0:3674
+MOSAICO D+:12341:h:1:27500:161:84:0:11401
+ MILAN CH.:12341:h:1:27500:162:89:0:11403
+ INTER CH.:12341:h:1:27500:163:93:0:11405
+TST3:12341:h:1:27500:8190:8190:0:11407
+ I1:11919:v:1:27500:512:650:0:1
+ C5:11919:v:1:27500:513:660:0:2
+ R4:11919:v:1:27500:514:670:0:3
+Test:11919:v:1:27500:515:680:0:4
+NTV:11938:h:1:27500:164:89:0:7105
+NTV-PLUS:11938:h:1:27500:165:91:0:7106
+NTV Int.-HTB:11938:h:1:27500:160:80:0:7101
+NTV Int.-Nashe Kino:11938:h:1:27500:161:82:0:7102
+NTV Int.-Detsk. Mir:11938:h:1:27500:162:84:0:7103
+DISNEY CHANNEL:12341:v:1:27500:8190:8190:0:10901
+DISCOVERY:12341:v:1:27500:161:8190:0:10903
+EUSP:12341:v:1:27500:162:89:0:10905
+HAPPY CHANNEL:12341:v:1:27500:8190:8190:0:10907
+MATCH MUSIC:12341:v:1:27500:8190:8190:0:10909
+MTV:12341:v:1:27500:8190:8190:0:10911
+R/CINEMA RAISAT:12341:v:1:27500:8190:8190:0:10913
+R/CINEMA RAISAT:12713:h:1:27500:8190:8190:0:65534
+cine stream:12713:h:1:27500:512:650:0:7704
+cine movie:12713:h:1:27500:514:670:0:7707
+CLASSICA:12341:v:1:27500:8190:8190:0:11001
+R/GAM ROS RAISAT:12341:v:1:27500:8190:8190:0:11003
+R/ALBUM RAISAT:12341:v:1:27500:8190:8190:0:11005
+HALLMARK:12341:v:1:27500:163:8190:0:11007
+R/ART RAISAT:12341:v:1:27500:8190:8190:0:11009
+TST1:12341:v:1:27500:8190:8190:0:11011
+TMC:12341:v:1:27500:166:8190:0:11013
+TMC2:12341:v:1:27500:167:8190:0:11015
+ART VARIETY:12015:h:1:27500:160:8190:0:410
+ART CHILDREN:12015:h:1:27500:161:8190:0:420
+ART MOVIES:12015:h:1:27500:162:8190:0:430
+ART MUSIC:12015:h:1:27500:163:8190:0:440
+ART EUROPE:12015:h:1:27500:164:8190:0:450
+LBC EUROPE:12015:h:1:27500:165:8190:0:460
+EGYPT SAT. CH. 2:12015:h:1:27500:166:8190:0:470
+ART SPORT:12015:h:1:27500:167:8190:0:472
+IQRA:12015:h:1:27500:168:8190:0:474
+T+ BIANCO:12341:v:1:27500:160:81:0:11101
+T+ NERO:12341:v:1:27500:161:85:0:11103
+T+ GRIGIO:12341:v:1:27500:162:89:0:11105
+R4:12341:v:1:27500:163:8190:0:24
+16|9 TELE+:12341:v:1:27500:164:97:0:11107
+VETRINA D+:12341:v:1:27500:8190:8190:0:11109
+R/RAGAZZI RAISAT:12341:v:1:27500:8190:8190:0:11111
+CNN:12341:h:1:27500:8190:8190:0:11501
+BBC:12341:h:1:27500:8190:8190:0:11503
+BLOOMBERG:12341:h:1:27500:8190:8190:0:11505
+CNBC:12341:h:1:27500:8190:8190:0:11507
+SKYNews:12341:h:1:27500:8190:8190:0:11509
+TST2:12341:h:1:27500:8190:8190:0:11511
+TV5:12341:h:1:27500:8190:8190:0:11513
+EPG:12341:h:1:27500:8190:8190:0:11515
+CNN:12341:h:1:27500:160:80:0:11517
+CNBC:12341:h:1:27500:163:92:0:11519
+TV5:12341:h:1:27500:166:104:0:11521
+BBC WORLD:12341:h:1:27500:161:84:0:11523
+BBC WORLD:12341:h:1:27500:161:84:0:11595
+BBC WORLD:12341:h:1:27500:161:84:0:9980
+BBC WORLD:12341:h:1:27500:161:84:0:9981
+Telekom TV:11095:v:1:27500:32:8190:0:3711
+FantasticOverOpal:11095:v:1:27500:32:8190:0:3712
+Gilat:11095:v:1:27500:32:8190:0:3713
+Siemens TV:11095:v:1:27500:32:8190:0:3716
+S-TV:11095:v:1:27500:32:8190:0:3717
+Optibase Encoder:11095:v:1:27500:32:8190:0:3718
+Bolsa:12091:h:1:27500:8190:8190:0:8750
+Testw:12091:h:1:27500:8190:8190:0:8751
+SIRE:12091:h:1:27500:8190:8190:0:8752
+Telesierra:12091:h:1:27500:4160:4161:0:8704
+vtv:12091:h:1:27500:4112:4115:0:8701
+Satisfaction:12091:h:1:27500:4192:4193:0:8706
+C. Milagro:12091:h:1:27500:4368:4369:0:8711
+Fiesta:12091:h:1:27500:4432:4434:0:8720
+TVE Internacional:12091:h:1:27500:4208:4209:0:8707
+TV Galicia:12091:h:1:27500:8190:4240:0:8708
+Radio Gallega:12091:h:1:27500:8190:4240:0:8709
+Retelsat:12091:h:1:27500:4464:4465:0:8722
+Musicam 1:12091:h:1:27500:8190:4406:0:8713
+Musicam 2:12091:h:1:27500:8190:4403:0:8714
+Musicam 3:12091:h:1:27500:8190:4406:0:8715
+Musicam 4:12091:h:1:27500:8190:4402:0:8716
+Musicam 5:12091:h:1:27500:8190:4406:0:8717
+HBCH FUCINO:12673:v:1:27500:200:201:0:701
+NTVi:12673:v:1:27500:210:212:0:702
+Test Telespazio:12673:v:1:27500:220:221:0:703
+Test Telespazio:12673:v:1:27500:230:231:0:704
+ARMENIA TV:12673:v:1:27500:240:242:0:705
+MEDNET:12673:v:1:27500:260:261:0:707
+AL JAZEERA:12673:v:1:27500:270:271:0:708
+TIRRENO SAT:12673:v:1:27500:280:301:0:709
+RADIO ROCK:12673:v:1:27500:8190:212:0:711
+RADIO ARMENIA:12673:v:1:27500:8190:242:0:712
+Coming Soon TV:12673:v:1:27500:8190:40:0:717
+AH-EDP1:12149:v:1:27500:96:97:0:7201
+AH-EDP2:12149:v:1:27500:112:113:0:7202
+AH-EDP3:12149:v:1:27500:36:37:0:7203
+AH-EMP4-DATA:12149:v:1:27500:8190:8190:0:7204
+Alice:12149:v:1:27500:160:161:0:7220
+Nuvolari:12149:v:1:27500:176:177:0:7221
+Leonardo:12149:v:1:27500:128:129:0:7222
+Discovery:12169:h:1:27500:512:8190:0:351
+R9:12169:h:1:27500:513:8190:0:352
+BBC World:12169:h:1:27500:514:8190:0:353
+CNN:12169:h:1:27500:515:8190:0:354
+CCTV:12169:h:1:27500:516:8190:0:355
+R10:12169:h:1:27500:518:8190:0:357
+R8:12169:h:1:27500:519:8190:0:358
+FILM SAT:12169:h:1:27500:520:8190:0:359
+Cartoon:12169:h:1:27500:515:8190:0:360
+Promo:12169:h:1:27500:521:8190:0:361
+Tempo:12169:h:1:27500:1440:651:0:362
+Tempo:12169:h:1:27500:8190:661:0:363
+Tempo:12169:h:1:27500:8190:671:0:364
+Tempo:12169:h:1:27500:8190:681:0:365
+Tempo:12169:h:1:27500:8190:691:0:366
+NOVA INFO:12169:h:1:27500:8190:8190:0:367
+NOVA INFO:12169:h:1:27500:8190:8190:0:369
+NOVA INFO:12169:h:1:27500:8190:8190:0:370
+NOVA INFO:12169:h:1:27500:1067:8190:0:371
+NOVA INFO:12169:h:1:27500:8190:8190:0:372
+NOVA INFO:12169:h:1:27500:8190:8190:0:373
+NOVA Cinema:12169:h:1:27500:8190:8190:0:374
+NET:12169:h:1:27500:513:8190:0:376
+MAD T.V:12169:h:1:27500:518:8190:0:377
+ET-1:12169:h:1:27500:519:8190:0:378
+ET-1:12169:h:1:27500:519:8190:0:379
+ÂïõëÞ:12169:h:1:27500:517:8190:0:384
+Deutsche Bank / T1:12264:v:1:27500:1160:8190:0:1
+Animal Planet:12264:v:1:27500:1160:8190:0:10
+Discovery E Europe-English:12264:v:1:27500:1260:8190:0:20
+Wuerth KG / T21:12264:v:1:27500:1360:8190:0:21
+Discovery Italy:12264:v:1:27500:1360:8190:0:30
+BTI / T31:12264:v:1:27500:1360:8190:0:31
+Discovery Russia:12264:v:1:27500:1460:8190:0:40
+K-TV (MetroMux) / T41:12264:v:1:27500:1960:8190:0:41
+Animal Planet EE:12264:v:1:27500:1560:8190:0:50
+Animal Planet - Russian:12264:v:1:27500:1560:8190:0:51
+Discovery Netherlands:12264:v:1:27500:1660:8190:0:60
+Q English:12264:v:1:27500:1760:8190:0:70
+Travel and Adventure:12264:v:1:27500:1860:8190:0:80
+Travel and Adventure- Russian:12264:v:1:27500:1860:8190:0:81
+New DCP:12264:v:1:27500:8190:1220:0:300
+CCP:12264:v:1:27500:1260:8190:0:301
+Deutsche Bank / T2:12264:v:1:27500:1260:8190:0:2
+Channel Three:12264:v:1:27500:1360:8190:0:3
+Channel Four:12264:v:1:27500:1460:8190:0:4
+Channel Five:12264:v:1:27500:1560:8190:0:5
+Channel 6 = Sat 7 Arabic:12264:v:1:27500:1660:8190:0:6
+Channel Seven:12264:v:1:27500:1760:8190:0:7
+Q German:12264:v:1:27500:1760:8190:0:71
+Q French:12264:v:1:27500:1760:8190:0:72
+Q Dutch:12264:v:1:27500:1760:8190:0:73
+DTAG / T11:12264:v:1:27500:1360:8190:0:11
+DTAG 50 / T12:12264:v:1:27500:1360:8190:0:12
+Telekom TV:12264:v:1:27500:1460:8190:0:13
+Gerling / T26:12264:v:1:27500:1360:8190:0:26
+Hornbach-D / T36:12264:v:1:27500:1360:8190:0:36
+Hornbach-NL / T38:12264:v:1:27500:1360:8190:0:38
+Hornbach-CZ / T39:12264:v:1:27500:1360:8190:0:39
+Testkanal:12264:v:1:27500:1660:8190:0:99
+KENCAST:12264:v:1:27500:8190:8190:0:111
+SLO-TV1:12302:v:1:27500:200:8190:0:3201
+SLO-TV2:12302:v:1:27500:203:8190:0:3202
+POLONIA 1:12302:v:1:27500:205:8190:0:3203
+SLO-RA1-INF:12302:v:1:27500:8190:250:0:3204
+SLO-RA2:12302:v:1:27500:8190:251:0:3205
+SLO-RA3:12302:v:1:27500:8190:252:0:3206
+SUPER 1:12302:v:1:27500:207:8190:0:3207
+NAPOLI INT.:12302:v:1:27500:240:8190:0:3210
+MAGIC:12302:v:1:27500:245:8190:0:3211
+COUNTDOWN:12302:v:1:27500:235:8190:0:3212
+TBNE:12302:v:1:27500:230:8190:0:3213
+SICILSAT:12302:v:1:27500:225:8190:0:3214
+TVP1:10892:h:1:27500:257:6111:0:1
+TVP2:10892:h:1:27500:321:322:0:2
+POLSAT1:10892:h:1:27500:8190:8190:0:3
+TV4:10892:h:1:27500:257:6111:0:4
+POLSAT2:10892:h:1:27500:321:322:0:5
+WOT:10892:h:1:27500:8190:8190:0:6
+DISCOVERY:10892:h:1:27500:257:6111:0:15
+ANIMAL PLANET:10892:h:1:27500:321:322:0:16
+EpgOpenTV:10892:h:1:27500:8190:8190:0:3686
+P10:12341:v:1:27500:160:81:0:11601
+P11:12341:v:1:27500:161:85:0:11603
+P12:12341:v:1:27500:162:89:0:11605
+P13:12341:v:1:27500:163:93:0:11607
+P14:12341:v:1:27500:164:97:0:11609
+P15:12341:v:1:27500:165:101:0:11611
+P16:12341:v:1:27500:166:105:0:11613
+PREMIUM:12341:v:1:27500:8190:8190:0:11615
++F1:12341:v:1:27500:160:664:0:11617
++F1:12341:v:1:27500:161:85:0:11619
++F1:12341:v:1:27500:162:667:0:11621
++F1:12341:v:1:27500:163:674:0:11623
++F1:12341:v:1:27500:164:96:0:11625
++F1:12341:v:1:27500:165:676:0:11627
++F1:12341:v:1:27500:166:666:0:11629
+RMC:12341:v:1:27500:8190:8190:0:11631
+R101:12341:v:1:27500:8190:8190:0:11632
+RRAD:12341:v:1:27500:8190:8190:0:11633
+ON:10892:h:1:27500:353:354:0:7
+DLA-CIEBIE:10892:h:1:27500:529:530:0:8
+KOMEDIA:10892:h:1:27500:353:354:0:9
+SMYK:10892:h:1:27500:529:530:0:10
+RELAKS:10892:h:1:27500:353:354:0:11
+INFO:10892:h:1:27500:529:530:0:12
+POLSAT SPORT:10892:h:1:27500:353:354:0:13
+Paris Première:12379:v:1:27500:3021:3031:0:3001
+OCC HB3:12379:v:1:27500:3022:3032:0:3002
+TELE 24 Switzerland:12379:v:1:27500:3023:3033:0:3003
+AIR MEDIA:12379:v:1:27500:8190:3537:0:3087
+Abu Dhabi TV:12379:v:1:27500:3024:3034:0:3004
+EMIRAT FM 1:12379:v:1:27500:8190:3533:0:3083
+EMIRAT FM2:12379:v:1:27500:8190:3534:0:3084
+Radio Italia :12379:v:1:27500:8190:3531:0:3081
+EQUIDIA INTER.:12379:v:1:27500:3321:3351:0:3051
+RTV MONTENEGRO:12379:v:1:27500:3026:3036:0:3006
+Radio Montenegro:12379:v:1:27500:8190:3538:0:3088
+SERTE TEST:12379:v:1:27500:3025:8190:0:3005
+GAME 1:12379:v:1:27500:3027:3037:0:3007
+SF 2:12398:h:1:27500:163:93:0:907
+SRG SSR Sat Access:12398:h:1:27500:165:99:0:910
+SF 1:12398:h:1:27500:160:81:0:901
+TSR 1:12398:h:1:27500:161:85:0:902
+TSI 1:12398:h:1:27500:162:89:0:903
+TSR 2:12398:h:1:27500:164:97:0:908
+TSI 2:12398:h:1:27500:166:101:0:909
+OPTION MUSIQUE:12398:h:1:27500:8190:204:0:957
+ESPACE 2:12398:h:1:27500:8190:205:0:958
+SRI-F-I:12398:h:1:27500:8190:199:0:951
+SRI-EUROPA:12398:h:1:27500:560:200:0:953
+POLO:12341:v:1:27500:160:80:0:11701
+PLANETE:12341:v:1:27500:161:84:0:11703
+JIMMY:12341:v:1:27500:162:88:0:11705
+INN:12341:v:1:27500:163:92:0:11707
+CIN1:12341:v:1:27500:164:96:0:11709
+CIN2:12341:v:1:27500:165:100:0:11711
+CINC:12341:v:1:27500:166:104:0:11713
+SEASONS:12341:v:1:27500:167:108:0:11715
+WISHLINE:12341:v:1:27500:168:89:0:11717
+MARCOPOLO:12341:v:1:27500:160:81:0:11719
+JAAM-E-JAM 1:12436:h:1:27500:160:81:0:1
+JAAM-E-JAM 2:12436:h:1:27500:161:83:0:2
+SAHAR:12436:h:1:27500:162:85:0:3
+TEST(SAHAR):12436:h:1:27500:163:87:0:4
+IRINN:12436:h:1:27500:164:89:0:5
+TEST 2:12436:h:1:27500:165:90:0:6
+IRIB1 RADIO:12436:h:1:27500:8190:81:0:7
+IRIB ARABIC /International 1 Radio:12436:h:1:27500:8190:83:0:8
+INT1 FAMILY RADIO:12475:h:1:27500:8190:961:0:10615
+RADIO 74:12475:h:1:27500:8190:921:0:10612
+R 74 INT.:12475:h:1:27500:8190:931:0:10613
+FAMILY Radio:12475:h:1:27500:8190:951:0:10614
+Temp:12475:h:1:27500:771:8190:0:10607
+SPREE Radio:12475:h:1:27500:8190:501:0:10652
+ RVI ( VRT ) :12475:h:1:27500:8190:901:0:10610
+EbS:12475:h:1:27500:101:216:0:10601
+MOU.2:12475:h:1:27500:42:8190:0:10602
+MIZIK TROPICAL:12475:h:1:27500:435:436:0:10606
+MIZIK TROPICAL Radio:12475:h:1:27500:8190:801:0:10608
+Framboise Nord (CH):12475:h:1:27500:8190:971:0:10616
+Framboise Sud (CH):12475:h:1:27500:8190:981:0:10617
+PINK PLUS:12475:h:1:27500:308:257:0:10605
+LIBERTYTV.COM:12475:h:1:27500:941:942:0:10603
+KURDSAT:12475:h:1:27500:600:601:0:10618
+test2:12475:h:1:27500:3000:3001:0:10620
+HRT-TV1:12519:v:1:27500:100:101:0:8301
+HRT-TV2:12519:v:1:27500:103:104:0:8302
+HRT-TV3:12519:v:1:27500:105:106:0:8303
+HRT-HR1:12519:v:1:27500:8190:150:0:8305
+HRT-HR2:12519:v:1:27500:8190:151:0:8306
+HRT-HR3:12519:v:1:27500:8190:152:0:8307
+SICILIA INTERNATIONAL:12519:v:1:27500:501:8190:0:8309
+HRT-NATIONAL:12519:v:1:27500:107:108:0:8304
+HRT-TEST:12519:v:1:27500:109:110:0:8308
+SARDEGNA UNO:12519:v:1:27500:503:8190:0:8310
+R-HRVATSKA:12519:v:1:27500:8190:153:0:8311
+EuroMed:12519:v:1:27500:510:8190:0:8312
+TGRT:12519:v:1:27500:505:8190:0:8313
+HR-TEST:12519:v:1:27500:8190:154:0:8314
+MINI-BVN:12519:v:1:27500:210:8190:0:8315
+SIMS 91 LARIO:12713:h:1:27500:8190:8190:0:8802
+SKYPLEX TXP91:12713:h:1:27500:8190:8190:0:8801
+Skygate 18:12713:h:1:27500:8190:8190:0:2
+MA12_2905:12713:h:1:27500:8190:8190:0:8810
+ES13_1107:12713:h:1:27500:8190:8190:0:8811
+ASTONv0107:12713:h:1:27500:8190:8190:0:8815
+sisal:12713:h:1:27500:4356:8190:0:1
+service:12713:h:1:27500:4356:8190:0:3
+Skyplex 19:12713:h:1:27500:8190:8190:0:8991
+Network:12713:h:1:27500:8190:8190:0:8992
+www.travel:12713:h:1:27500:1180:1184:0:8993
+MagicStar:12713:h:1:27500:8190:1188:0:8994
+Skygate 8:12713:h:1:27500:8190:8190:0:8926
+UDLR:12713:h:1:27500:8190:6653:0:8927
+UDLR UDcast:12713:h:1:27500:8190:8190:0:8928
+Skygate 17:12713:h:1:27500:8190:8190:0:8804
+Netshow:12713:h:1:27500:8190:8190:0:8813
+MEDIOLANUM:12713:h:1:27500:4102:8190:0:8814
+Skygate 10:12713:h:1:27500:8190:8190:0:8901
+HitCast Data 1:12713:h:1:27500:8190:8190:0:8902
+HitCast S.Amer.:12713:h:1:27500:8190:8190:0:8903
+Skygate 1:12713:h:1:27500:8190:8190:0:8876
+MonteCarloSat:12713:h:1:27500:5127:5122:0:8877
+Bulgaria Radio:12713:h:1:27500:8190:4615:0:8828
+skygate 600:12713:h:1:27500:8190:8190:0:8826
+SKYPLEX TXP92:12558:v:1:27500:8190:8190:0:9101
+SKYPLEX TXP92:12558:v:1:27500:8190:8190:0:9361
+SKYPLEX TXP92:12558:v:1:27500:2825:2818:0:9362
+SKYPLEX TXP92:12558:v:1:27500:2825:2818:0:9363
+SKYPLEX TXP92:12558:v:1:27500:2825:2818:0:9364
+SKY_4:12558:v:1:27500:8190:8190:0:9351
+ESP Int'l:12558:v:1:27500:2575:2563:0:9352
+ESP Romanian:12558:v:1:27500:8190:2569:0:9353
+ESP Dutch:12558:v:1:27500:2575:2564:0:9354
+ESP PolisI:12558:v:1:27500:8190:2565:0:9355
+ESP PolisI:12558:v:1:27500:2575:2566:0:9356
+ESP PolisI:12558:v:1:27500:2575:2564:0:9357
+ESP PolisI:12558:v:1:27500:2575:2568:0:9358
+ESP PolisI:12558:v:1:27500:2575:2565:0:9359
+ESP PolisI:12558:v:1:27500:2575:2565:0:9251
+JSTV 1:12596:v:1:27500:2000:2002:0:8213
+JSTV 2:12596:v:1:27500:2011:2013:0:8214
+MBC:12596:v:1:27500:160:81:0:8201
+Service 2:12596:v:1:27500:161:84:0:8202
+NITV:12596:v:1:27500:163:92:0:8204
+SIMAYE AZADI:12596:v:1:27500:166:106:0:8207
+BET:12596:v:1:27500:167:109:0:8208
+CNNI:12596:v:1:27500:168:113:0:8209
+EuroNews:12596:v:1:27500:2221:2238:0:8211
+Canal Rural:12596:v:1:27500:2321:2332:0:8212
+MediaHW:12596:v:1:27500:8190:8190:0:8291
+MediaHW:12615:h:1:27500:8190:8190:0:65534
+MMOV:12615:h:1:27500:2576:8190:0:3910
+MMOV:12615:h:1:27500:2578:8190:0:3913
+MMOV:12615:h:1:27500:2580:8190:0:3917
+MMOV:12615:h:1:27500:2582:8190:0:3918
+MMOV:12615:h:1:27500:2584:8190:0:3919
+MMOV:12615:h:1:27500:2586:8190:0:3920
+SC 1:12615:h:1:27500:2567:8190:0:3921
+SC 2:12615:h:1:27500:2570:8190:0:3924
+SC 3:12615:h:1:27500:2573:8190:0:3927
+MC20:12615:h:1:27500:8190:2304:0:3935
+MC21:12615:h:1:27500:8190:2305:0:3938
+MC22:12615:h:1:27500:8190:2306:0:3941
+MC23:12615:h:1:27500:8190:2307:0:3944
+MC24:12615:h:1:27500:8190:2308:0:3947
+MC25:12615:h:1:27500:8190:2309:0:3950
+MC26:12615:h:1:27500:8190:2310:0:3953
+MC27:12615:h:1:27500:8190:2311:0:3956
+MC28:12615:h:1:27500:8190:2312:0:3959
+MC29:12615:h:1:27500:8190:2313:0:3962
+MC30:12615:h:1:27500:8190:2314:0:3965
+MC31:12615:h:1:27500:8190:2315:0:3968
+MC32:12615:h:1:27500:8190:2316:0:3971
+MC33:12615:h:1:27500:8190:2317:0:3974
+MC34:12615:h:1:27500:8190:2318:0:3977
+MC35:12615:h:1:27500:8190:2319:0:3980
+MC36:12615:h:1:27500:8190:2320:0:3983
+MC37:12615:h:1:27500:8190:2321:0:3986
+MC38:12615:h:1:27500:8190:2322:0:3989
+MC39:12615:h:1:27500:8190:2323:0:3992
+MC39:12635:v:1:27500:8190:2323:0:65534
+SC 4:12635:v:1:27500:2704:8190:0:4001
+SC 5:12635:v:1:27500:2696:8190:0:4002
+SC 6:12635:v:1:27500:2701:8190:0:4003
+MMOV:12635:v:1:27500:2692:8190:0:4007
+MMOV:12635:v:1:27500:2694:8190:0:4010
+MMOV:12635:v:1:27500:2707:8190:0:4016
+MMOV:12635:v:1:27500:2709:8190:0:4019
+MMOV:12635:v:1:27500:2711:8190:0:4022
+MMOV:12635:v:1:27500:2819:8190:0:4025
+MMOV:12635:v:1:27500:2821:8190:0:4028
+Sharjah Arabsat Bouquet:12654:h:1:27500:1160:8190:0:1
+Qatar Arabsat Bouquet:12654:h:1:27500:1260:8190:0:2
+Saudi 1 Arabsat Bouquet:12654:h:1:27500:1360:8190:0:3
+Kuwait Arabsat Bouquet:12654:h:1:27500:1460:8190:0:4
+Libya Arabsat Bouquet:12654:h:1:27500:1560:8190:0:5
+Sudan Arabsat Bouquet:12654:h:1:27500:1660:8190:0:6
+Oman Arabsat Bouquet:12654:h:1:27500:1760:8190:0:7
+Jordan Arabsat Bouquet:12654:h:1:27500:1860:8190:0:8
+IRAQ TV:12654:h:1:27500:1960:8190:0:9
+Dubai Sport:12654:h:1:27500:1060:8190:0:10
+Qatar A2 Arabsat Bouquet:12654:h:1:27500:8190:1221:0:12
+Saudi1 A2 Arabsat Bouquet:12654:h:1:27500:8190:1321:0:13
+Kuwait A2 Arabsat Bouquet:12654:h:1:27500:8190:1421:0:14
+Jordan A2 Arabsat Bouquet:12654:h:1:27500:8190:1821:0:18
+Radio dubai sport:12654:h:1:27500:8190:1021:0:19
+Digitaly:12673:v:1:27500:220:222:0:4203
+Telemarket:12673:v:1:27500:350:351:0:4211
+Internet data 1:12673:v:1:27500:8190:8190:0:4212
+eVision:12673:v:1:27500:360:7142:0:4214
+ANNI 60:12673:v:1:27500:8190:250:0:4230
+R. Reporter:12673:v:1:27500:8190:251:0:4231
+Radio Italia S.M.I.:12673:v:1:27500:8190:252:0:4232
+R. Tour:12673:v:1:27500:8190:253:0:4233
+R.Rinascente:12673:v:1:27500:8190:254:0:4234
+R. Cooky:12673:v:1:27500:8190:255:0:4235
+RadioBaby:12673:v:1:27500:8190:256:0:4236
+McDonalds:12673:v:1:27500:8190:257:0:4237
+TRBuonconsiglio:12673:v:1:27500:8190:401:0:4238
+R-Radio:12673:v:1:27500:8190:402:0:4239
+R. Donna:12673:v:1:27500:8190:403:0:4240
+R. Reporter 2:12673:v:1:27500:8190:404:0:4241
+R. West:12673:v:1:27500:8190:405:0:4242
+Melodia Russia:12673:v:1:27500:6646:406:0:4243
+Padre Pio:12673:v:1:27500:8190:407:0:4244
+Thai TV5:12673:v:1:27500:200:202:0:4201
+Studio Europa:12673:v:1:27500:230:231:0:4204
+Video Italia:12673:v:1:27500:340:342:0:4210
+PASSIONS:12692:h:1:27500:160:8190:0:501
+ONYX:12692:h:1:27500:161:8190:0:502
+MANGAS:12692:h:1:27500:162:88:0:503
+ENCYCLOPEDIA:12692:h:1:27500:163:92:0:504
+POLAR:12692:h:1:27500:164:96:0:505
+CINE PALACE:12692:h:1:27500:165:100:0:506
+ROMANCE:12692:h:1:27500:166:104:0:507
+RIRE:12692:h:1:27500:167:108:0:508
+ACTION:12692:h:1:27500:168:112:0:509
+ABsat test RADIO:12692:h:1:27500:8190:101:0:510
+ABsat test RADIO:12713:v:1:27500:8190:101:0:65534
+MMOV:12713:v:1:27500:2563:8190:0:4304
+MMOV:12713:v:1:27500:2565:8190:0:4307
+MMOV:12713:v:1:27500:2567:8190:0:4310
+MMOV:12713:v:1:27500:2308:8190:0:4313
+MMOV:12713:v:1:27500:2314:8190:0:4316
+MMOV:12713:v:1:27500:2310:8190:0:4324
+MMOV:12713:v:1:27500:2312:8190:0:4327
+MMOV:12713:h:1:27500:2312:8190:0:65534
+SINT:12713:h:1:27500:8190:8190:0:8802
+info:12713:h:1:27500:517:8190:0:8804
+SINT:12713:h:1:27500:8190:8190:0:8806
+CFN:12713:h:1:27500:523:8190:0:8809
+SINT:12713:h:1:27500:8190:8190:0:8812
+duel:12713:h:1:27500:518:8190:0:8815
+comedy:12713:h:1:27500:515:8190:0:8818
+fox kids:12713:h:1:27500:513:8190:0:8821
diff --git a/channels.conf b/channels.conf
index 6e6d016..4a6cb0b 100644
--- a/channels.conf
+++ b/channels.conf
@@ -9,7 +9,7 @@ N3:12110:h:1:27500:2401:2402:0:28224
SR3:11837:h:1:27500:501:502:0:28110
WDR:11837:h:1:27500:601:602:0:28111
BR-alpha:11837:h:1:27500:701:702:0:28112
-SWR BW:11837:h:1:27500:801:802:0:28110
+SWR BW:11837:h:1:27500:801:802:0:28113
Phoenix:11837:h:1:27500:901:902:0:28114
ZDF:11954:h:1:27500:110:120:0:28006
3sat:11954:h:1:27500:210:220:0:28007
diff --git a/config.c b/config.c
index af5be87..0a965ee 100644
--- a/config.c
+++ b/config.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.c 1.18 2000/09/03 09:20:22 kls Exp $
+ * $Id: config.c 1.22 2000/09/10 15:07:15 kls Exp $
*/
#include "config.h"
@@ -196,11 +196,22 @@ cChannel::cChannel(const cChannel *Channel)
apid = Channel ? Channel->apid : 256;
ca = Channel ? Channel->ca : 0;
pnr = Channel ? Channel->pnr : 0;
+ groupSep = Channel ? Channel->groupSep : false;
}
const char *cChannel::ToText(cChannel *Channel)
{
- asprintf(&buffer, "%s:%d:%c:%d:%d:%d:%d:%d:%d\n", Channel->name, Channel->frequency, Channel->polarization, Channel->diseqc, Channel->srate, Channel->vpid, Channel->apid, Channel->ca, Channel->pnr);
+ char buf[MaxChannelName * 2];
+ char *s = Channel->name;
+ if (strchr(s, ':')) {
+ s = strcpy(buf, s);
+ strreplace(s, ':', '|');
+ }
+ delete buffer;
+ if (Channel->groupSep)
+ asprintf(&buffer, ":%s\n", s);
+ else
+ asprintf(&buffer, "%s:%d:%c:%d:%d:%d:%d:%d:%d\n", s, Channel->frequency, Channel->polarization, Channel->diseqc, Channel->srate, Channel->vpid, Channel->apid, Channel->ca, Channel->pnr);
return buffer;
}
@@ -212,13 +223,27 @@ const char *cChannel::ToText(void)
bool cChannel::Parse(const char *s)
{
char *buffer = NULL;
- if (9 == sscanf(s, "%a[^:]:%d:%c:%d:%d:%d:%d:%d:%d", &buffer, &frequency, &polarization, &diseqc, &srate, &vpid, &apid, &ca, &pnr)) {
- strncpy(name, buffer, MaxChannelName - 1);
- name[strlen(buffer)] = 0;
- delete buffer;
- return true;
+ if (*s == ':') {
+ if (*++s) {
+ strn0cpy(name, s, MaxChannelName);
+ name[strlen(name) - 1] = 0; // strip the '\n'
+ groupSep = true;
+ }
+ else
+ return false;
}
- return false;
+ else {
+ groupSep = false;
+ int fields = sscanf(s, "%a[^:]:%d:%c:%d:%d:%d:%d:%d:%d", &buffer, &frequency, &polarization, &diseqc, &srate, &vpid, &apid, &ca, &pnr);
+ if (fields == 9) {
+ strn0cpy(name, buffer, MaxChannelName);
+ delete buffer;
+ }
+ else
+ return false;
+ }
+ strreplace(name, '|', ':');
+ return true;
}
bool cChannel::Save(FILE *f)
@@ -230,9 +255,9 @@ bool cChannel::Switch(cDvbApi *DvbApi)
{
if (!DvbApi)
DvbApi = cDvbApi::PrimaryDvbApi;
- if (!DvbApi->Recording()) {
- isyslog(LOG_INFO, "switching to channel %d", Index() + 1);
- CurrentChannel = Index();
+ if (!DvbApi->Recording() && !groupSep) {
+ isyslog(LOG_INFO, "switching to channel %d", number);
+ CurrentChannel = number;
for (int i = 3; i--;) {
if (DvbApi->SetChannel(frequency, polarization, diseqc, srate, vpid, apid, ca, pnr)) {
EIT.SetProgramNumber(pnr);
@@ -242,22 +267,10 @@ bool cChannel::Switch(cDvbApi *DvbApi)
}
return false;
}
- Interface.Info("Channel locked (recording)!");
+ Interface.Info(DvbApi->Recording() ? "Channel locked (recording)!" : name);
return false;
}
-bool cChannel::SwitchTo(int i, cDvbApi *DvbApi)
-{
- cChannel *channel = Channels.Get(i);
- return channel && channel->Switch(DvbApi);
-}
-
-const char *cChannel::GetChannelName(int i)
-{
- cChannel *channel = Channels.Get(i);
- return channel ? channel->name : NULL;
-}
-
// -- cTimer -----------------------------------------------------------------
char *cTimer::buffer = NULL;
@@ -267,7 +280,8 @@ cTimer::cTimer(bool Instant)
startTime = stopTime = 0;
recording = false;
active = Instant;
- channel = CurrentChannel + 1;
+ cChannel *ch = Channels.GetByNumber(CurrentChannel);
+ channel = ch ? ch->number : 0;
time_t t = time(NULL);
struct tm *now = localtime(&t);
day = now->tm_mday;
@@ -280,8 +294,8 @@ cTimer::cTimer(bool Instant)
lifetime = 99;
*file = 0;
summary = NULL;
- if (Instant)
- snprintf(file, sizeof(file), "@%s", cChannel::GetChannelName(CurrentChannel));
+ if (Instant && ch)
+ snprintf(file, sizeof(file), "@%s", ch->name);
}
cTimer::~cTimer()
@@ -299,6 +313,7 @@ cTimer& cTimer::operator= (const cTimer &Timer)
const char *cTimer::ToText(cTimer *Timer)
{
+ delete buffer;
asprintf(&buffer, "%d:%d:%s:%04d:%04d:%d:%d:%s:%s\n", Timer->active, Timer->channel, PrintDay(Timer->day), Timer->start, Timer->stop, Timer->priority, Timer->lifetime, Timer->file, Timer->summary ? Timer->summary : "");
return buffer;
}
@@ -368,11 +383,7 @@ bool cTimer::Parse(const char *s)
if (8 <= sscanf(s, "%d:%d:%a[^:]:%d:%d:%d:%d:%a[^:\n]:%a[^\n]", &active, &channel, &buffer1, &start, &stop, &priority, &lifetime, &buffer2, &summary)) {
//TODO add more plausibility checks
day = ParseDay(buffer1);
- int l = strlen(buffer2);
- if (l >= MaxFileName)
- l = MaxFileName - 1;
- strncpy(file, buffer2, l);
- file[l] = 0;
+ strn0cpy(file, buffer2, MaxFileName);
delete buffer1;
delete buffer2;
return day != 0;
@@ -470,10 +481,87 @@ cKeys Keys;
// -- cChannels --------------------------------------------------------------
-int CurrentChannel = 0;
+int CurrentChannel = 1;
+int CurrentGroup = -1;
cChannels Channels;
+bool cChannels::Load(const char *FileName)
+{
+ if (cConfig<cChannel>::Load(FileName)) {
+ ReNumber();
+ return true;
+ }
+ return false;
+}
+
+int cChannels::GetNextGroup(int Idx)
+{
+ cChannel *channel = Get(++Idx);
+ while (channel && !channel->groupSep)
+ channel = Get(++Idx);
+ return channel ? Idx : -1;
+}
+
+int cChannels::GetPrevGroup(int Idx)
+{
+ cChannel *channel = Get(--Idx);
+ while (channel && !channel->groupSep)
+ channel = Get(--Idx);
+ return channel ? Idx : -1;
+}
+
+int cChannels::GetNextNormal(int Idx)
+{
+ cChannel *channel = Get(++Idx);
+ while (channel && channel->groupSep)
+ channel = Get(++Idx);
+ return channel ? Idx : -1;
+}
+
+void cChannels::ReNumber( void )
+{
+ int Number = 0;
+ cChannel *ch = (cChannel *)First();
+ while (ch) {
+ if (!ch->groupSep)
+ ch->number = ++Number;
+ ch = (cChannel *)ch->Next();
+ }
+ maxNumber = Number;
+}
+
+cChannel *cChannels::GetByNumber(int Number)
+{
+ cChannel *channel = (cChannel *)First();
+ while (channel) {
+ if (channel->number == Number)
+ return channel;
+ channel = (cChannel *)channel->Next();
+ }
+ return NULL;
+}
+
+bool cChannels::SwitchTo(int Number, cDvbApi *DvbApi)
+{
+ cChannel *channel = GetByNumber(Number);
+ return channel && channel->Switch(DvbApi);
+}
+
+const char *cChannels::GetChannelNameByNumber(int Number)
+{
+ cChannel *channel = GetByNumber(Number);
+ return channel ? channel->name : NULL;
+}
+
+eKeys cChannels::ShowChannel(int Number, bool Switched, bool Group)
+{
+ cChannel *channel = Group ? Get(Number) : GetByNumber(Number);
+ if (channel)
+ return Interface.DisplayChannel(channel->number, channel->name, !Switched || Setup.ShowInfoOnChSwitch);
+ return kNone;
+}
+
// -- cTimers ----------------------------------------------------------------
cTimers Timers;
@@ -489,3 +577,81 @@ cTimer *cTimers::GetTimer(cTimer *Timer)
return NULL;
}
+// -- cSetup -----------------------------------------------------------------
+
+cSetup Setup;
+
+char *cSetup::fileName = NULL;
+
+cSetup::cSetup(void)
+{
+ PrimaryDVB = 1;
+ ShowInfoOnChSwitch = 1;
+ MenuScrollPage = 1;
+}
+
+bool cSetup::Parse(char *s)
+{
+ const char *Delimiters = " \t\n=";
+ char *Name = strtok(s, Delimiters);
+ char *Value = strtok(NULL, Delimiters);
+ if (Name && Value) {
+ if (!strcasecmp(Name, "PrimaryDVB")) PrimaryDVB = atoi(Value);
+ else if (!strcasecmp(Name, "ShowInfoOnChSwitch")) ShowInfoOnChSwitch = atoi(Value);
+ else if (!strcasecmp(Name, "MenuScrollPage")) MenuScrollPage = atoi(Value);
+ else
+ return false;
+ return true;
+ }
+ return false;
+}
+
+bool cSetup::Load(const char *FileName)
+{
+ isyslog(LOG_INFO, "loading %s", FileName);
+ delete fileName;
+ fileName = strdup(FileName);
+ FILE *f = fopen(fileName, "r");
+ if (f) {
+ int line = 0;
+ char buffer[MaxBuffer];
+ bool result = true;
+ while (fgets(buffer, sizeof(buffer), f) > 0) {
+ line++;
+ if (*buffer != '#' && !Parse(buffer)) {
+ esyslog(LOG_ERR, "error in %s, line %d\n", fileName, line);
+ result = false;
+ break;
+ }
+ }
+ fclose(f);
+ return result;
+ }
+ else
+ LOG_ERROR_STR(FileName);
+ return false;
+}
+
+bool cSetup::Save(const char *FileName)
+{
+ if (!FileName)
+ FileName = fileName;
+ if (FileName) {
+ FILE *f = fopen(FileName, "w");
+ if (f) {
+ fprintf(f, "# VDR Setup\n");
+ fprintf(f, "PrimaryDVB = %d\n", PrimaryDVB);
+ fprintf(f, "ShowInfoOnChSwitch = %d\n", ShowInfoOnChSwitch);
+ fprintf(f, "MenuScrollPage = %d\n", MenuScrollPage);
+ fclose(f);
+ isyslog(LOG_INFO, "saved setup to %s", FileName);
+ return true;
+ }
+ else
+ LOG_ERROR_STR(FileName);
+ }
+ else
+ esyslog(LOG_ERR, "attempt to save setup without file name");
+ return false;
+}
+
diff --git a/config.h b/config.h
index 15e9050..30dd9ba 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.15 2000/09/03 09:37:30 kls Exp $
+ * $Id: config.h 1.19 2000/09/10 15:05:08 kls Exp $
*/
#ifndef __CONFIG_H
@@ -17,7 +17,7 @@
#include "dvbapi.h"
#include "tools.h"
-#define VDRVERSION "0.62"
+#define VDRVERSION "0.63"
#define MaxBuffer 10000
@@ -75,14 +75,14 @@ public:
int apid;
int ca;
int pnr;
+ int number; // Sequence number assigned on load
+ bool groupSep;
cChannel(void);
cChannel(const cChannel *Channel);
const char *ToText(void);
bool Parse(const char *s);
bool Save(FILE *f);
bool Switch(cDvbApi *DvbApi = NULL);
- static bool SwitchTo(int i, cDvbApi *DvbApi = NULL);
- static const char *GetChannelName(int i);
};
class cTimer : public cListObject {
@@ -130,7 +130,7 @@ private:
cList<T>::Clear();
}
public:
- bool Load(const char *FileName)
+ virtual bool Load(const char *FileName)
{
isyslog(LOG_INFO, "loading %s", FileName);
bool result = true;
@@ -155,7 +155,7 @@ public:
fclose(f);
}
else {
- esyslog(LOG_ERR, "can't open '%s'\n", fileName);
+ LOG_ERROR_STR(fileName);
result = false;
}
return result;
@@ -176,23 +176,57 @@ public:
}
fclose(f);
}
- else
+ else {
+ LOG_ERROR_STR(fileName);
result = false;
+ }
return result;
}
};
-class cChannels : public cConfig<cChannel> {};
-
+class cChannels : public cConfig<cChannel> {
+protected:
+ int maxNumber;
+public:
+ cChannels(void) { maxNumber = 0; }
+ virtual bool Load(const char *FileName);
+ int GetNextGroup(int Idx); // Get next channel group
+ int GetPrevGroup(int Idx); // Get previous channel group
+ int GetNextNormal(int Idx); // Get next normal channel (not group)
+ void ReNumber(void); // Recalculate 'number' based on channel type
+ cChannel *GetByNumber(int Number);
+ const char *GetChannelNameByNumber(int Number);
+ bool SwitchTo(int Number, cDvbApi *DvbApi = NULL);
+ int MaxNumber(void) { return maxNumber; }
+ eKeys ShowChannel(int Number, bool Switched, bool Group = false);
+ };
+
class cTimers : public cConfig<cTimer> {
public:
cTimer *GetTimer(cTimer *Timer);
};
extern int CurrentChannel;
+extern int CurrentGroup;
extern cChannels Channels;
extern cTimers Timers;
extern cKeys Keys;
+class cSetup {
+private:
+ static char *fileName;
+ bool Parse(char *s);
+public:
+ // Also adjust cMenuSetup (menu.c) when adding parameters here!
+ int PrimaryDVB;
+ int ShowInfoOnChSwitch;
+ int MenuScrollPage;
+ cSetup(void);
+ bool Load(const char *FileName);
+ bool Save(const char *FileName = NULL);
+ };
+
+extern cSetup Setup;
+
#endif //__CONFIG_H
diff --git a/dvbapi.c b/dvbapi.c
index 0562a4f..9f9cbab 100644
--- a/dvbapi.c
+++ b/dvbapi.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbapi.c 1.22 2000/08/06 14:06:14 kls Exp $
+ * $Id: dvbapi.c 1.24 2000/09/10 10:25:09 kls Exp $
*/
#include "dvbapi.h"
@@ -1097,16 +1097,34 @@ cDvbApi::~cDvbApi()
delete replayTitle;
}
+bool cDvbApi::SetPrimaryDvbApi(int n)
+{
+ n--;
+ if (0 <= n && n < NumDvbApis && dvbApi[n]) {
+ isyslog(LOG_INFO, "setting primary DVB to %d", n + 1);
+ PrimaryDvbApi = dvbApi[n];
+ return true;
+ }
+ esyslog(LOG_ERR, "invalid DVB interface: %d", n + 1);
+ return false;
+}
+
cDvbApi *cDvbApi::GetDvbApi(int Ca)
{
+ cDvbApi *d = NULL;
Ca--;
for (int i = MAXDVBAPI; --i >= 0; ) {
- if (dvbApi[i]) {
- if ((i == Ca || Ca < 0) && !dvbApi[i]->Recording())
+ if (dvbApi[i] && !dvbApi[i]->Recording()) {
+ if (i == Ca)
return dvbApi[i];
+ if (Ca < 0) {
+ d = dvbApi[i];
+ if (d != PrimaryDvbApi)
+ break;
+ }
}
}
- return NULL;
+ return d;
}
int cDvbApi::Index(void)
@@ -1199,6 +1217,10 @@ void cDvbApi::Cmd(OSD_Command cmd, int color, int x0, int y0, int x1, int y1, co
dc.y1 = y1;
dc.data = (void *)data;
ioctl(videoDev, VIDIOCSOSDCOMMAND, &dc);
+ usleep(10); // XXX Workaround for a driver bug (cInterface::DisplayChannel() displayed texts at wrong places
+ // XXX and sometimes the OSD was no longer displayed).
+ // XXX Increase the value if the problem still persists on your particular system.
+ // TODO Check if this is still necessary with driver versions after 0.6.
}
}
#endif
diff --git a/dvbapi.h b/dvbapi.h
index 9f95430..a43e707 100644
--- a/dvbapi.h
+++ b/dvbapi.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbapi.h 1.13 2000/09/03 09:25:53 kls Exp $
+ * $Id: dvbapi.h 1.14 2000/09/10 10:03:29 kls Exp $
*/
#ifndef __DVBAPI_H
@@ -53,9 +53,13 @@ private:
static cDvbApi *dvbApi[MAXDVBAPI];
public:
static cDvbApi *PrimaryDvbApi;
+ static bool SetPrimaryDvbApi(int n);
+ // Sets the primary DVB device to 'n' (which must be in the range
+ // 1...NumDvbApis) and returns true if this was possible.
static cDvbApi *GetDvbApi(int Ca = 0);
- // Selects a free DVB device, starting with the highest device number.
- // If Ca is nor 0, the device with the given number will be returned
+ // Selects a free DVB device, starting with the highest device number
+ // (but avoiding, if possible, the PrimaryDvbApi).
+ // If Ca is not 0, the device with the given number will be returned
// if it is not currently recording.
int Index(void);
// Returns the index of this DvbApi.
diff --git a/interface.c b/interface.c
index 2ae49c3..5633f86 100644
--- a/interface.c
+++ b/interface.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: interface.c 1.11 2000/09/03 10:17:21 kls Exp $
+ * $Id: interface.c 1.15 2000/09/10 16:04:14 kls Exp $
*/
#include "interface.h"
@@ -72,10 +72,10 @@ eKeys cInterface::GetKey(bool Wait)
eKeys cInterface::Wait(int Seconds, bool KeepChar)
{
- int t0 = time_ms();
+ int t0 = time_ms() + Seconds * 1000;
eKeys Key = kNone;
- while (time_ms() - t0 < Seconds * 1000) {
+ while (time_ms() < t0) {
Key = GetKey();
if (Key != kNone)
break;
@@ -112,11 +112,9 @@ void cInterface::Write(int x, int y, const char *s, eDvbColor FgColor, eDvbColor
cDvbApi::PrimaryDvbApi->Text(x, y, s, FgColor, BgColor);
}
-void cInterface::WriteText(int x, int y, const char *s, bool Current)
+void cInterface::WriteText(int x, int y, const char *s, eDvbColor FgColor, eDvbColor BgColor)
{
if (open) {
- eDvbColor FgColor = Current ? clrBlack : clrWhite;
- eDvbColor BgColor = Current ? clrCyan : clrBackground;
ClearEol(x, y, BgColor);
int col = 0;
for (;;) {
@@ -315,36 +313,61 @@ void cInterface::LearnKeys(void)
}
}
-void cInterface::DisplayChannel(int Number, const char *Name)
+eKeys cInterface::DisplayChannel(int Number, const char *Name, bool WithInfo)
{
- RcIo.Number(Number);
+ // Number = 0 is used for channel group display and no EIT
+ if (Number)
+ RcIo.Number(Number);
if (Name && !Recording()) {
- Open(MenuColumns, EIT.IsValid() ? 5 : 1);
- char buffer[MenuColumns + 1];
- snprintf(buffer, sizeof(buffer), "%d %s", Number, Name ? Name : "");
+ char *RunningTitle = "", *RunningSubtitle = "", *NextTitle = "", *NextSubtitle = "";
+ int Lines = 0;
+ if (Number && WithInfo && EIT.IsValid()) {
+ if (*(RunningTitle = EIT.GetRunningTitle())) Lines++;
+ if (*(RunningSubtitle = EIT.GetRunningSubtitle())) Lines++;
+ if (*(NextTitle = EIT.GetNextTitle())) Lines++;
+ if (*(NextSubtitle = EIT.GetNextSubtitle())) Lines++;
+ }
+ Open(MenuColumns, Lines + 1);
+ int BufSize = MenuColumns + 1;
+ char buffer[BufSize];
+ if (Number)
+ snprintf(buffer, BufSize, "%d %s", Number, Name ? Name : "");
+ else
+ snprintf(buffer, BufSize, "%s", Name ? Name : "");
Write(0, 0, buffer);
time_t t = time(NULL);
struct tm *now = localtime(&t);
- snprintf(buffer, sizeof(buffer), "%02d:%02d", now->tm_hour, now->tm_min);
+ snprintf(buffer, BufSize, "%02d:%02d", now->tm_hour, now->tm_min);
Write(-5, 0, buffer);
- if (EIT.IsValid()) {
- const int t = 7;
+ if (Lines > 0) {
+ const int t = 6;
int w = MenuColumns - t;
- Write(0, 1, EIT.GetRunningTime(), clrYellow, clrBackground);
- snprintf(buffer, sizeof(buffer), "%.*s", w, EIT.GetRunningTitle());
- Write(t, 1, buffer, clrCyan, clrBackground);
- snprintf(buffer, sizeof(buffer), "%.*s", w, EIT.GetRunningSubtitle());
- Write(t, 2, buffer, clrCyan, clrBackground);
- Write(0, 3, EIT.GetNextTime(), clrYellow, clrBackground);
- snprintf(buffer, sizeof(buffer), "%.*s", w, EIT.GetNextTitle());
- Write(t, 3, buffer, clrCyan, clrBackground);
- snprintf(buffer, sizeof(buffer), "%.*s", w, EIT.GetNextSubtitle());
- Write(t, 4, buffer, clrCyan, clrBackground);
+ int l = 1;
+ if (*RunningTitle) {
+ Write(0, l, EIT.GetRunningTime(), clrYellow, clrBackground);
+ snprintf(buffer, BufSize, "%.*s", w, RunningTitle); Write(t, l, buffer, clrCyan, clrBackground);
+ l++;
+ }
+ if (*RunningSubtitle) {
+ snprintf(buffer, BufSize, "%.*s", w, RunningSubtitle); Write(t, l, buffer, clrCyan, clrBackground);
+ l++;
+ }
+ if (*NextTitle) {
+ Write(0, l, EIT.GetNextTime(), clrYellow, clrBackground);
+ snprintf(buffer, BufSize, "%.*s", w, NextTitle); Write(t, l, buffer, clrCyan, clrBackground);
+ l++;
+ }
+ if (*NextSubtitle) {
+ snprintf(buffer, BufSize, "%.*s", w, NextSubtitle); Write(t, l, buffer, clrCyan, clrBackground);
+ }
}
- if (Wait(5, true) == kOk)
+ eKeys Key = Wait(5, true);
+ if (Key == kOk)
GetKey();
Close();
+ return Key;
}
+ return kNone;
}
void cInterface::DisplayRecording(int Index, bool On)
diff --git a/interface.h b/interface.h
index 2a1c156..4503dc6 100644
--- a/interface.h
+++ b/interface.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: interface.h 1.9 2000/05/06 15:39:23 kls Exp $
+ * $Id: interface.h 1.11 2000/09/10 10:35:46 kls Exp $
*/
#ifndef __INTERFACE_H
@@ -34,7 +34,7 @@ public:
void ClearEol(int x, int y, eDvbColor Color = clrBackground);
void SetCols(int *c);
void Write(int x, int y, const char *s, eDvbColor FgColor = clrWhite, eDvbColor BgColor = clrBackground);
- void WriteText(int x, int y, const char *s, bool Current = false);
+ void WriteText(int x, int y, const char *s, eDvbColor FgColor = clrWhite, eDvbColor BgColor = clrBlack);
void Title(const char *s);
void Status(const char *s, eDvbColor FgColor = clrBlack, eDvbColor BgColor = clrCyan);
void Info(const char *s);
@@ -42,7 +42,7 @@ public:
bool Confirm(const char *s);
void Help(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
void LearnKeys(void);
- void DisplayChannel(int Number, const char *Name = NULL);
+ eKeys DisplayChannel(int Number, const char *Name = NULL, bool WithInfo = false);
void DisplayRecording(int Index, bool On);
bool Recording(void);
};
diff --git a/menu.c b/menu.c
index 15c8379..ad803cf 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 1.22 2000/08/06 07:02:52 kls Exp $
+ * $Id: menu.c 1.26 2000/09/10 15:06:15 kls Exp $
*/
#include "menu.h"
@@ -145,7 +145,7 @@ public:
};
cMenuEditChanItem::cMenuEditChanItem(const char *Name, int *Value)
-:cMenuEditIntItem(Name, Value, 1, Channels.Count())
+:cMenuEditIntItem(Name, Value, 1, Channels.MaxNumber())
{
Set();
}
@@ -153,7 +153,7 @@ cMenuEditChanItem::cMenuEditChanItem(const char *Name, int *Value)
void cMenuEditChanItem::Set(void)
{
char buf[255];
- cChannel *channel = Channels.Get(*value - 1);
+ cChannel *channel = Channels.GetByNumber(*value);
if (channel)
snprintf(buf, sizeof(buf), "%d %s", *value, channel->name);
else
@@ -547,13 +547,18 @@ cMenuChannelItem::cMenuChannelItem(int Index, cChannel *Channel)
{
index = Index;
channel = Channel;
+ if (channel->groupSep)
+ SetColor(clrWhite, clrBlue);
Set();
}
void cMenuChannelItem::Set(void)
{
char *buffer = NULL;
- asprintf(&buffer, "%d\t%s", index + 1, channel->name); // user visible channel numbers start with '1'
+ if (!channel->groupSep)
+ asprintf(&buffer, "%d\t%s", channel->number, channel->name );
+ else
+ asprintf(&buffer, "\t%s", channel->name);
SetText(buffer, false);
}
@@ -583,9 +588,10 @@ cMenuChannels::cMenuChannels(void)
//TODO
int i = 0;
cChannel *channel;
+ int curr = ((channel = Channels.GetByNumber(CurrentChannel)) != NULL) ? channel->Index() : -1;
while ((channel = Channels.Get(i)) != NULL) {
- Add(new cMenuChannelItem(i, channel), i == CurrentChannel);
+ Add(new cMenuChannelItem(i, channel), i == curr);
i++;
}
SetHelp("Edit", "New", "Delete", "Mark");
@@ -613,9 +619,10 @@ eOSState cMenuChannels::New(void)
return osContinue;
cChannel *channel = new cChannel(Channels.Get(Current()));
Channels.Add(channel);
+ Channels.ReNumber();
Add(new cMenuChannelItem(channel->Index()/*XXX*/, channel), true);
Channels.Save();
- isyslog(LOG_INFO, "channel %d added", channel->Index() + 1);
+ isyslog(LOG_INFO, "channel %d added", channel->number);
return AddSubMenu(new cMenuEditChannel(Current()));
}
@@ -623,28 +630,30 @@ eOSState cMenuChannels::Del(void)
{
if (Count() > 0) {
int Index = Current();
+ cChannel *channel = Channels.Get(Index);
+ int DeletedChannel = channel->number;
// Check if there is a timer using this channel:
for (cTimer *ti = Timers.First(); ti; ti = (cTimer *)ti->Next()) {
- if (ti->channel == Index + 1) {
+ if (ti->channel == DeletedChannel) {
Interface.Error("Channel is being used by a timer!");
return osContinue;
}
}
if (Interface.Confirm("Delete Channel?")) {
// Move and renumber the channels:
- Channels.Del(Channels.Get(Index));
+ Channels.Del(channel);
+ Channels.ReNumber();
cOsdMenu::Del(Index);
int i = 0;
for (cMenuChannelItem *ci = (cMenuChannelItem *)First(); ci; ci = (cMenuChannelItem *)ci->Next())
ci->SetIndex(i++);
Channels.Save();
- isyslog(LOG_INFO, "channel %d deleted", Index + 1);
+ isyslog(LOG_INFO, "channel %d deleted", DeletedChannel);
// Fix the timers:
bool TimersModified = false;
- Index++; // user visible channel numbers start with '1'
for (cTimer *ti = Timers.First(); ti; ti = (cTimer *)ti->Next()) {
int OldChannel = ti->channel;
- if (ti->channel > Index)
+ if (ti->channel > DeletedChannel)
ti->channel--;
if (ti->channel != OldChannel) {
TimersModified = true;
@@ -661,25 +670,28 @@ eOSState cMenuChannels::Del(void)
void cMenuChannels::Move(int From, int To)
{
+ int FromNumber = Channels.Get(From)->number;
+ int ToNumber = Channels.Get(To)->number;
// Move and renumber the channels:
Channels.Move(From, To);
+ Channels.ReNumber();
cOsdMenu::Move(From, To);
int i = 0;
for (cMenuChannelItem *ci = (cMenuChannelItem *)First(); ci; ci = (cMenuChannelItem *)ci->Next())
ci->SetIndex(i++);
Channels.Save();
- isyslog(LOG_INFO, "channel %d moved to %d", From + 1, To + 1);
+ isyslog(LOG_INFO, "channel %d moved to %d", FromNumber, ToNumber);
// Fix the timers:
bool TimersModified = false;
From++; // user visible channel numbers start with '1'
To++;
for (cTimer *ti = Timers.First(); ti; ti = (cTimer *)ti->Next()) {
int OldChannel = ti->channel;
- if (ti->channel == From)
- ti->channel = To;
- else if (ti->channel > From && ti->channel <= To)
+ if (ti->channel == FromNumber)
+ ti->channel = ToNumber;
+ else if (ti->channel > FromNumber && ti->channel <= ToNumber)
ti->channel--;
- else if (ti->channel < From && ti->channel >= To)
+ else if (ti->channel < FromNumber && ti->channel >= ToNumber)
ti->channel++;
if (ti->channel != OldChannel) {
TimersModified = true;
@@ -791,7 +803,7 @@ eOSState cMenuEditTimer::ProcessKey(eKeys Key)
if (state == osUnknown) {
if (Key == kOk) {
if (!*data.file)
- strcpy(data.file, cChannel::GetChannelName(data.channel - 1));
+ strcpy(data.file, Channels.GetChannelNameByNumber(data.channel));
if (timer && memcmp(timer, &data, sizeof(data)) != 0) {
*timer = data;
Timers.Save();
@@ -1059,6 +1071,41 @@ eOSState cMenuRecordings::ProcessKey(eKeys Key)
return state;
}
+// --- cMenuSetup ------------------------------------------------------------
+
+class cMenuSetup : public cOsdMenu {
+private:
+ cSetup data;
+public:
+ cMenuSetup(void);
+ virtual eOSState ProcessKey(eKeys Key);
+ };
+
+cMenuSetup::cMenuSetup(void)
+:cOsdMenu("Setup", 20)
+{
+ data = Setup;
+ Add(new cMenuEditIntItem( "PrimaryDVB", &data.PrimaryDVB, 1, cDvbApi::NumDvbApis));
+ Add(new cMenuEditBoolItem("ShowInfoOnChSwitch", &data.ShowInfoOnChSwitch));
+ Add(new cMenuEditBoolItem("MenuScrollPage", &data.MenuScrollPage));
+}
+
+eOSState cMenuSetup::ProcessKey(eKeys Key)
+{
+ eOSState state = cOsdMenu::ProcessKey(Key);
+
+ if (state == osUnknown) {
+ switch (Key) {
+ case kOk: state = (Setup.PrimaryDVB != data.PrimaryDVB) ? osSwitchDvb : osBack;
+ Setup = data;
+ Setup.Save();
+ break;
+ default: break;
+ }
+ }
+ return state;
+}
+
// --- cMenuMain -------------------------------------------------------------
#define STOP_RECORDING "Stop recording "
@@ -1069,6 +1116,7 @@ cMenuMain::cMenuMain(bool Replaying)
Add(new cOsdItem("Channels", osChannels));
Add(new cOsdItem("Timer", osTimer));
Add(new cOsdItem("Recordings", osRecordings));
+ Add(new cOsdItem("Setup", osSetup));
if (Replaying)
Add(new cOsdItem("Stop replaying", osStopReplay));
const char *s = NULL;
@@ -1091,6 +1139,7 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
case osChannels: return AddSubMenu(new cMenuChannels);
case osTimer: return AddSubMenu(new cMenuTimers);
case osRecordings: return AddSubMenu(new cMenuRecordings);
+ case osSetup: return AddSubMenu(new cMenuSetup);
case osStopRecord: if (Interface.Confirm("Stop Recording?")) {
cOsdItem *item = Get(Current());
if (item) {
@@ -1113,6 +1162,60 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
return state;
}
+// --- cDirectChannelSelect --------------------------------------------------
+
+#define DIRECTCHANNELTIMEOUT 500 //ms
+
+cDirectChannelSelect::cDirectChannelSelect(eKeys FirstKey)
+:cOsdBase(true)
+{
+ oldNumber = CurrentChannel;
+ number = 0;
+ lastTime = time_ms();
+ Interface.Open(MenuColumns, 1);
+ ProcessKey(FirstKey);
+}
+
+cDirectChannelSelect::~cDirectChannelSelect()
+{
+ if (number < 0)
+ Interface.DisplayChannel(oldNumber);
+ Interface.Close();
+}
+
+eOSState cDirectChannelSelect::ProcessKey(eKeys Key)
+{
+ switch (Key) {
+ case k0: case k1: case k2: case k3: case k4: case k5: case k6: case k7: case k8: case k9:
+ if (number >= 0) {
+ number = number * 10 + Key - k0;
+ cChannel *channel = Channels.GetByNumber(number);
+ char *Name = channel ? channel->name : "*** Invalid Channel ***";
+ int BufSize = MenuColumns + 1;
+ char buffer[BufSize];
+ snprintf(buffer, BufSize, "%d %s", number, Name);
+ Interface.DisplayChannel(number);
+ Interface.Clear();
+ Interface.Write(0, 0, buffer);
+ lastTime = time_ms();
+ if (!channel) {
+ number = -1;
+ lastTime += 1000;
+ }
+ }
+ break;
+ case kNone:
+ if (time_ms() - lastTime > DIRECTCHANNELTIMEOUT) {
+ if (number > 0 && !Channels.SwitchTo(number))
+ number = -1;
+ }
+ else
+ break;
+ default: return osEnd;
+ };
+ return osContinue;
+}
+
// --- cRecordControl --------------------------------------------------------
cRecordControl::cRecordControl(cDvbApi *DvbApi, cTimer *Timer)
@@ -1125,10 +1228,10 @@ cRecordControl::cRecordControl(cDvbApi *DvbApi, cTimer *Timer)
timer = new cTimer(true);
Timers.Add(timer);
Timers.Save();
- asprintf(&instantId, cDvbApi::NumDvbApis > 1 ? "%s on %d" : "%s", cChannel::GetChannelName(timer->channel - 1), dvbApi->Index() + 1);
+ asprintf(&instantId, cDvbApi::NumDvbApis > 1 ? "%s on %d" : "%s", Channels.GetChannelNameByNumber(timer->channel), dvbApi->Index() + 1);
}
timer->SetRecording(true);
- cChannel::SwitchTo(timer->channel - 1, dvbApi);
+ Channels.SwitchTo(timer->channel, dvbApi);
cRecording Recording(timer);
if (dvbApi->StartRecord(Recording.FileName()))
Recording.WriteSummary();
@@ -1172,8 +1275,8 @@ cRecordControl *cRecordControls::RecordControls[MAXDVBAPI] = { NULL };
bool cRecordControls::Start(cTimer *Timer)
{
- int ch = Timer ? Timer->channel - 1 : CurrentChannel;
- cChannel *channel = Channels.Get(ch);
+ int ch = Timer ? Timer->channel : CurrentChannel;
+ cChannel *channel = Channels.GetByNumber(ch);
if (channel) {
cDvbApi *dvbApi = cDvbApi::GetDvbApi(channel->ca);
@@ -1186,10 +1289,10 @@ bool cRecordControls::Start(cTimer *Timer)
}
}
else
- esyslog(LOG_ERR, "ERROR: no free DVB device to record channel %d!", ch + 1);
+ esyslog(LOG_ERR, "ERROR: no free DVB device to record channel %d!", ch);
}
else
- esyslog(LOG_ERR, "ERROR: channel %d not defined!", ch + 1);
+ esyslog(LOG_ERR, "ERROR: channel %d not defined!", ch);
return false;
}
diff --git a/menu.h b/menu.h
index 6ba080c..8b4f82e 100644
--- a/menu.h
+++ b/menu.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.h 1.9 2000/05/01 15:16:23 kls Exp $
+ * $Id: menu.h 1.10 2000/09/10 14:42:20 kls Exp $
*/
#ifndef _MENU_H
@@ -23,6 +23,17 @@ public:
virtual eOSState ProcessKey(eKeys Key);
};
+class cDirectChannelSelect : public cOsdBase {
+private:
+ int oldNumber;
+ int number;
+ int lastTime;
+public:
+ cDirectChannelSelect(eKeys FirstKey);
+ virtual ~cDirectChannelSelect();
+ virtual eOSState ProcessKey(eKeys Key);
+ };
+
class cRecordControl {
private:
cDvbApi *dvbApi;
diff --git a/osd.c b/osd.c
index 3c32373..e1c99b4 100644
--- a/osd.c
+++ b/osd.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.c 1.5 2000/07/26 17:35:09 kls Exp $
+ * $Id: osd.c 1.7 2000/09/10 08:24:50 kls Exp $
*/
#include "osd.h"
@@ -19,6 +19,9 @@ cOsdItem::cOsdItem(eOSState State)
offset = -1;
state = State;
fresh = false;
+ userColor = false;
+ fgColor = clrWhite;
+ bgColor = clrBackground;
}
cOsdItem::cOsdItem(char *Text, eOSState State)
@@ -27,6 +30,9 @@ cOsdItem::cOsdItem(char *Text, eOSState State)
offset = -1;
state = State;
fresh = false;
+ userColor = false;
+ fgColor = clrWhite;
+ bgColor = clrBackground;
SetText(Text);
}
@@ -41,15 +47,24 @@ void cOsdItem::SetText(const char *Text, bool Copy)
text = Copy ? strdup(Text) : Text;
}
-void cOsdItem::Display(int Offset, bool Current)
+void cOsdItem::SetColor(eDvbColor FgColor, eDvbColor BgColor)
{
+ userColor = true;
+ fgColor = FgColor;
+ bgColor = BgColor;
+}
+
+void cOsdItem::Display(int Offset, eDvbColor FgColor, eDvbColor BgColor)
+{
+ if (Offset < 0) {
+ FgColor = clrBlack;
+ BgColor = clrCyan;
+ }
fresh |= Offset >= 0;
- Current |= Offset < 0;
if (Offset >= 0)
offset = Offset;
- //TODO current if Offset == -1 ???
if (offset >= 0)
- Interface.WriteText(0, offset + 2, text, Current);
+ Interface.WriteText(0, offset + 2, text, userColor ? fgColor : FgColor, userColor ? bgColor : BgColor);
}
eOSState cOsdItem::ProcessKey(eKeys Key)
@@ -100,6 +115,10 @@ void cOsdMenu::SetHelp(const char *Red, const char *Green, const char *Yellow, c
helpGreen = Green;
helpYellow = Yellow;
helpBlue = Blue;
+ if (visible)
+ Display();
+ //XXX Interface.Help(helpRed, helpGreen, helpYellow, helpBlue);
+ //XXX must clear unused button areas!
}
void cOsdMenu::Del(int Index)
@@ -140,7 +159,7 @@ void cOsdMenu::Display(void)
for (int i = first; i < count; i++) {
cOsdItem *item = Get(i);
if (item)
- item->Display(i - first, i == current);
+ item->Display(i - first, i == current ? clrBlack : clrWhite, i == current ? clrCyan : clrBackground);
if (++n == MAXOSDITEMS) //TODO get this from Interface!!!
break;
}
@@ -159,49 +178,62 @@ void cOsdMenu::DisplayCurrent(bool Current)
{
cOsdItem *item = Get(current);
if (item)
- item->Display(current - first, Current);
+ item->Display(current - first, Current ? clrBlack : clrWhite, Current ? clrCyan : clrBackground);
+}
+
+bool cOsdMenu::SpecialItem(int idx)
+{
+ cOsdItem *item = Get(idx);
+ return item && item->HasUserColor();
}
void cOsdMenu::CursorUp(void)
{
if (current > 0) {
- DisplayCurrent(false);
- if (current == first) {
- first -= MAXOSDITEMS;
- if (first < 0)
- first = 0;
- if (current - MAXOSDITEMS > 0)
- current -= MAXOSDITEMS;
- else
- current--;
+ int tmpCurrent = current;
+ while (--tmpCurrent >= 0 && SpecialItem(tmpCurrent));
+ if (tmpCurrent < 0)
+ return;
+ if (tmpCurrent >= first)
+ DisplayCurrent(false);
+ current = tmpCurrent;
+ if (current < first) {
+ first = first > MAXOSDITEMS - 1 ? first - (MAXOSDITEMS - 1) : 0;
+ if (Setup.MenuScrollPage)
+ current = SpecialItem(first) ? first + 1 : first;
Display();
}
- else {
- current--;
+ else
DisplayCurrent(true);
- }
}
}
void cOsdMenu::CursorDown(void)
{
- int count = Count();
- if (current < count - 1) {
- DisplayCurrent(false);
- if (current == first + MAXOSDITEMS - 1) {
- first += MAXOSDITEMS;
- if (first > count - MAXOSDITEMS)
- first = count - MAXOSDITEMS;
- if (current + MAXOSDITEMS < count)
- current += MAXOSDITEMS;
- else
- current++;
+ int last = Count() - 1;
+ int lastOnScreen = first + MAXOSDITEMS - 1;
+
+ if (current < last) {
+ int tmpCurrent = current;
+ while (++tmpCurrent <= last && SpecialItem(tmpCurrent));
+ if (tmpCurrent > last)
+ return;
+ if (tmpCurrent <= lastOnScreen)
+ DisplayCurrent(false);
+ current = tmpCurrent;
+ if (current > lastOnScreen) {
+ first += MAXOSDITEMS - 1;
+ lastOnScreen = first + MAXOSDITEMS - 1;
+ if (lastOnScreen > last) {
+ first = last - (MAXOSDITEMS - 1);
+ lastOnScreen = last;
+ }
+ if (Setup.MenuScrollPage)
+ current = SpecialItem(lastOnScreen) ? lastOnScreen - 1 : lastOnScreen;
Display();
}
- else {
- current++;
+ else
DisplayCurrent(true);
- }
}
}
diff --git a/osd.h b/osd.h
index 1d4f4cf..876c87c 100644
--- a/osd.h
+++ b/osd.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.h 1.9 2000/05/27 15:35:41 kls Exp $
+ * $Id: osd.h 1.11 2000/09/10 09:50:38 kls Exp $
*/
#ifndef __OSD_H
@@ -22,10 +22,12 @@ enum eOSState { osUnknown,
osChannels,
osTimer,
osRecordings,
+ osSetup,
osRecord,
osReplay,
osStopRecord,
osStopReplay,
+ osSwitchDvb,
osBack,
osEnd,
};
@@ -37,13 +39,17 @@ private:
eOSState state;
protected:
bool fresh;
+ bool userColor;
+ eDvbColor fgColor, bgColor;
public:
cOsdItem(eOSState State = osUnknown);
cOsdItem(char *Text, eOSState State = osUnknown);
virtual ~cOsdItem();
+ bool HasUserColor(void) { return userColor; }
void SetText(const char *Text, bool Copy = true);
+ void SetColor(eDvbColor FgColor, eDvbColor BgColor = clrBackground);
const char *Text(void) { return text; }
- void Display(int Offset = -1, bool Current = false);
+ void Display(int Offset = -1, eDvbColor FgColor = clrWhite, eDvbColor BgColor = clrBackground);
virtual void Set(void) {}
virtual eOSState ProcessKey(eKeys Key);
};
@@ -68,6 +74,7 @@ private:
const char *status;
protected:
bool visible;
+ bool SpecialItem(int idx);
void RefreshCurrent(void);
void DisplayCurrent(bool Current);
void CursorUp(void);
diff --git a/setup.conf b/setup.conf
new file mode 100644
index 0000000..e80c2e0
--- /dev/null
+++ b/setup.conf
@@ -0,0 +1,4 @@
+# VDR Setup
+PrimaryDVB = 1
+ShowInfoOnChSwitch = 1
+MenuScrollPage = 1
diff --git a/svdrp.c b/svdrp.c
index 01e9fb7..2af3ee5 100644
--- a/svdrp.c
+++ b/svdrp.c
@@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection.
*
- * $Id: svdrp.c 1.5 2000/08/26 12:51:51 kls Exp $
+ * $Id: svdrp.c 1.6 2000/09/09 10:51:21 kls Exp $
*/
#define _GNU_SOURCE
@@ -279,24 +279,24 @@ void cSVDRP::CmdChan(const char *Option)
if (*Option) {
int n = -1;
if (isnumber(Option)) {
- int o = strtol(Option, NULL, 10) - 1;
- if (o >= 0 && o < Channels.Count())
+ int o = strtol(Option, NULL, 10);
+ if (o >= 1 && o <= Channels.MaxNumber())
n = o;
}
else if (strcmp(Option, "-") == 0) {
n = CurrentChannel;
- if (CurrentChannel > 0)
+ if (CurrentChannel > 1)
n--;
}
else if (strcmp(Option, "+") == 0) {
n = CurrentChannel;
- if (CurrentChannel < Channels.Count() - 1)
+ if (CurrentChannel < Channels.MaxNumber())
n++;
}
else {
- int i = 0;
+ int i = 1;
cChannel *channel;
- while ((channel = Channels.Get(i)) != NULL) {
+ while ((channel = Channels.GetByNumber(i)) != NULL) {
if (strcasecmp(channel->name, Option) == 0) {
n = i;
break;
@@ -312,10 +312,10 @@ void cSVDRP::CmdChan(const char *Option)
Reply(550, "Can't switch channel, interface is recording");
return;
}
- cChannel *channel = Channels.Get(n);
+ cChannel *channel = Channels.GetByNumber(n);
if (channel) {
if (!channel->Switch()) {
- Reply(554, "Error switching to channel \"%d\"", channel->Index() + 1);
+ Reply(554, "Error switching to channel \"%d\"", channel->number);
return;
}
}
@@ -324,9 +324,9 @@ void cSVDRP::CmdChan(const char *Option)
return;
}
}
- cChannel *channel = Channels.Get(CurrentChannel);
+ cChannel *channel = Channels.GetByNumber(CurrentChannel);
if (channel)
- Reply(250, "%d %s", CurrentChannel + 1, channel->name);
+ Reply(250, "%d %s", CurrentChannel, channel->name);
else
Reply(550, "Unable to find channel \"%d\"", CurrentChannel);
}
@@ -394,41 +394,41 @@ void cSVDRP::CmdLstc(const char *Option)
{
if (*Option) {
if (isnumber(Option)) {
- cChannel *channel = Channels.Get(strtol(Option, NULL, 10) - 1);
+ cChannel *channel = Channels.GetByNumber(strtol(Option, NULL, 10));
if (channel)
- Reply(250, "%d %s", channel->Index() + 1, channel->ToText());
+ Reply(250, "%d %s", channel->number, channel->ToText());
else
Reply(501, "Channel \"%s\" not defined", Option);
}
else {
- int i = 0;
+ int i = 1;
cChannel *next = NULL;
- while (i < Channels.Count()) {
- cChannel *channel = Channels.Get(i);
+ while (i <= Channels.MaxNumber()) {
+ cChannel *channel = Channels.GetByNumber(i);
if (channel) {
if (strcasestr(channel->name, Option)) {
if (next)
- Reply(-250, "%d %s", next->Index() + 1, next->ToText());
+ Reply(-250, "%d %s", next->number, next->ToText());
next = channel;
}
}
else {
- Reply(501, "Channel \"%d\" not found", i + 1);
+ Reply(501, "Channel \"%d\" not found", i);
return;
}
i++;
}
if (next)
- Reply(250, "%d %s", next->Index() + 1, next->ToText());
+ Reply(250, "%d %s", next->number, next->ToText());
}
}
else {
- for (int i = 0; i < Channels.Count(); i++) {
- cChannel *channel = Channels.Get(i);
+ for (int i = 1; i <= Channels.MaxNumber(); i++) {
+ cChannel *channel = Channels.GetByNumber(i);
if (channel)
- Reply(i < Channels.Count() - 1 ? -250 : 250, "%d %s", channel->Index() + 1, channel->ToText());
+ Reply(i < Channels.MaxNumber() ? -250 : 250, "%d %s", channel->number, channel->ToText());
else
- Reply(501, "Channel \"%d\" not found", i + 1);
+ Reply(501, "Channel \"%d\" not found", i);
}
}
}
@@ -464,7 +464,7 @@ void cSVDRP::CmdModc(const char *Option)
int n = strtol(Option, &tail, 10);
if (tail && tail != Option) {
tail = skipspace(tail);
- cChannel *channel = Channels.Get(n - 1);
+ cChannel *channel = Channels.GetByNumber(n);
if (channel) {
cChannel c = *channel;
if (!c.Parse(tail)) {
@@ -473,8 +473,8 @@ void cSVDRP::CmdModc(const char *Option)
}
*channel = c;
Channels.Save();
- isyslog(LOG_INFO, "channel %d modified", channel->Index() + 1);
- Reply(250, "%d %s", channel->Index() + 1, channel->ToText());
+ isyslog(LOG_INFO, "channel %d modified", channel->number);
+ Reply(250, "%d %s", channel->number, channel->ToText());
}
else
Reply(501, "Channel \"%d\" not defined", n);
@@ -537,9 +537,10 @@ void cSVDRP::CmdNewc(const char *Option)
cChannel *channel = new cChannel;
if (channel->Parse(Option)) {
Channels.Add(channel);
+ Channels.ReNumber();
Channels.Save();
- isyslog(LOG_INFO, "channel %d added", channel->Index() + 1);
- Reply(250, "%d %s", channel->Index() + 1, channel->ToText());
+ isyslog(LOG_INFO, "channel %d added", channel->number);
+ Reply(250, "%d %s", channel->number, channel->ToText());
}
else
Reply(501, "Error in channel settings");
diff --git a/timers.conf b/timers.conf
index 733fb9c..9031d35 100644
--- a/timers.conf
+++ b/timers.conf
@@ -1,11 +1,12 @@
+1:15:M------:2128:2205:99:7:Neues:
+1:3:-T-----:2013:2125:99:99:SevenDays
1:10:-T-----:2058:2202:99:10:Quarks:
-1:26:-T-----:2203:0015:99:99:UFO:
+1:26:-T-----:2255:0005:99:99:UFO:
0:3:---T---:2211:2300:99:10:Switch:
1:2:----F--:2140:2225:10:10:WWW:
-1:15:-----S-:1358:1435:99:7:Neues:
-1:1:-----S-:1445:1610:99:30:Hammerman:
-0:11:-----S-:2158:2235:99:99:Computer:
+1:11:-----S-:2158:2235:99:99:Computer:
1:2:-----S-:2213:2320:99:30:Wochenshow:
1:11:------S:2058:2120:99:10:Centauri:
1:15:MTWTF--:1828:1901:10:5:nano:
-1:1:-TWTF--:0855:0945:99:99:Ellen:
+1:1:-TWTF--:0955:1040:99:99:Ellen:
+1:1:MTWTF--:1553:1710:99:99:Hammerman:
diff --git a/tools.c b/tools.c
index 0dca69e..e081ee7 100644
--- a/tools.c
+++ b/tools.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.c 1.13 2000/07/29 18:41:45 kls Exp $
+ * $Id: tools.c 1.14 2000/09/09 12:53:34 kls Exp $
*/
#define _GNU_SOURCE
@@ -97,6 +97,14 @@ char *readline(FILE *f)
return NULL;
}
+char *strn0cpy(char *dest, const char *src, size_t n)
+{
+ char *s = dest;
+ for ( ; --n && (*dest = *src) != 0; dest++, src++) ;
+ *dest = 0;
+ return s;
+}
+
char *strreplace(char *s, char c1, char c2)
{
char *p = s;
@@ -418,6 +426,8 @@ void cListBase::Clear(void)
cListObject *cListBase::Get(int Index)
{
+ if (Index < 0)
+ return NULL;
cListObject *object = objects;
while (object && Index-- > 0)
object = object->Next();
diff --git a/tools.h b/tools.h
index 563f3d0..1ef955c 100644
--- a/tools.h
+++ b/tools.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.h 1.12 2000/07/29 10:56:00 kls Exp $
+ * $Id: tools.h 1.13 2000/09/09 12:53:10 kls Exp $
*/
#ifndef __TOOLS_H
@@ -38,6 +38,7 @@ bool readint(int filedes, int &n);
int readstring(int filedes, char *buffer, int size, bool wait = false);
void purge(int filedes);
char *readline(FILE *f);
+char *strn0cpy(char *dest, const char *src, size_t n);
char *strreplace(char *s, char c1, char c2);
char *skipspace(char *s);
int time_ms(void);
diff --git a/vdr.c b/vdr.c
index 69eceed..4932bf2 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/people/kls/vdr
*
- * $Id: vdr.c 1.27 2000/07/29 19:01:57 kls Exp $
+ * $Id: vdr.c 1.30 2000/09/10 14:33:09 kls Exp $
*/
#include <getopt.h>
@@ -44,8 +44,6 @@
#define KEYS_CONF "keys.conf"
#endif
-#define DIRECTCHANNELTIMEOUT 500 //ms
-
static int Interrupted = 0;
void SignalHandler(int signum)
@@ -156,6 +154,7 @@ int main(int argc, char *argv[])
// Configuration data:
+ Setup.Load("setup.conf");
Channels.Load("channels.conf");
Timers.Load("timers.conf");
#ifdef REMOTE_LIRC
@@ -166,7 +165,9 @@ int main(int argc, char *argv[])
#endif
Interface.Init();
- cChannel::SwitchTo(CurrentChannel);
+ cDvbApi::SetPrimaryDvbApi(Setup.PrimaryDVB);
+
+ Channels.SwitchTo(CurrentChannel);
// Signal handlers:
@@ -177,27 +178,17 @@ int main(int argc, char *argv[])
// Main program loop:
cSVDRP *SVDRP = SVDRPport ? new cSVDRP(SVDRPport) : NULL;
- cMenuMain *Menu = NULL;
+ cOsdBase *Menu = NULL;
cReplayControl *ReplayControl = NULL;
- int dcTime = 0, dcNumber = 0;
int LastChannel = -1;
while (!Interrupted) {
// Channel display:
if (CurrentChannel != LastChannel) {
- if (!Menu) {
- cChannel *channel = Channels.Get(CurrentChannel);
- if (channel)
- Interface.DisplayChannel(CurrentChannel + 1, channel->name);
- }
+ if (!Menu)
+ Channels.ShowChannel(CurrentChannel, LastChannel > 0);
LastChannel = CurrentChannel;
}
- // Direct Channel Select (action):
- if (dcNumber && time_ms() - dcTime > DIRECTCHANNELTIMEOUT) {
- cChannel::SwitchTo(dcNumber - 1);
- dcNumber = 0;
- LastChannel = -1; // in case an invalid channel number was entered!
- }
// Timers and Recordings:
if (!Menu) {
cTimer *Timer = cTimer::GetMatch();
@@ -209,7 +200,7 @@ int main(int argc, char *argv[])
cRecordControls::Process();
}
// User Input:
- cOsdBase **Interact = Menu ? (cOsdBase **)&Menu : (cOsdBase **)&ReplayControl;
+ cOsdBase **Interact = Menu ? &Menu : (cOsdBase **)&ReplayControl;
eKeys key = Interface.GetKey(!*Interact || !(*Interact)->NeedsFastResponse());
if (*Interact) {
switch ((*Interact)->ProcessKey(key)) {
@@ -228,6 +219,11 @@ int main(int argc, char *argv[])
DELETENULL(*Interact);
DELETENULL(ReplayControl);
break;
+ case osSwitchDvb:
+ DELETENULL(*Interact);
+ Interface.Info("Switching primary DVB...");
+ cDvbApi::SetPrimaryDvbApi(Setup.PrimaryDVB);
+ break;
case osBack:
case osEnd: DELETENULL(*Interact);
break;
@@ -236,21 +232,30 @@ int main(int argc, char *argv[])
}
else {
switch (key) {
- // Direct Channel Select (input):
+ // Direct Channel Select:
case k0: case k1: case k2: case k3: case k4: case k5: case k6: case k7: case k8: case k9:
- {
- if (!Interface.Recording()) {
- dcNumber = dcNumber * 10 + key - k0;
- dcTime = time_ms();
- Interface.DisplayChannel(dcNumber);
- }
- }
+ if (!Interface.Recording())
+ Menu = new cDirectChannelSelect(key);
break;
+ // Left/Right rotates trough channel groups:
+ case kLeft:
+ case kRight: if (!Interface.Recording()) {
+ int SaveGroup = CurrentGroup;
+ if (key == kRight)
+ CurrentGroup = Channels.GetNextGroup(CurrentGroup) ;
+ else
+ CurrentGroup = Channels.GetPrevGroup(CurrentGroup < 1 ? 1 : CurrentGroup);
+ if (CurrentGroup < 0)
+ CurrentGroup = SaveGroup;
+ if (Channels.ShowChannel(CurrentGroup, false, true) == kOk)
+ Channels.SwitchTo(Channels.Get(Channels.GetNextNormal(CurrentGroup))->number);
+ }
+ break;
// Up/Down Channel Select:
case kUp:
case kDown: if (!Interface.Recording()) {
int n = CurrentChannel + (key == kUp ? 1 : -1);
- cChannel *channel = Channels.Get(n);
+ cChannel *channel = Channels.GetByNumber(n);
if (channel)
channel->Switch();
}