summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2000-07-25 18:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2000-07-25 18:00:00 +0200
commit1d22145c423f2524c7766b4ae30ee2c26174113d (patch)
tree57d5ead142972730c932a7d94c375e99f9e743a9 /Tools
parent3b78ec8374aac8daa560fa0cd06260fca6eb1500 (diff)
downloadvdr-patch-lnbsharing-1d22145c423f2524c7766b4ae30ee2c26174113d.tar.gz
vdr-patch-lnbsharing-1d22145c423f2524c7766b4ae30ee2c26174113d.tar.bz2
Version 0.6vdr-0.6
- Added support for LIRC remote control (thanks to Carsten Koch!). There are now three different remote control modes: KBD (PC-Keyboard), RCU and LIRC. See the INSTALL file for information on how to enable either of these modes. The default mode is now KBD, not RCU as before (to make it work immediately even if there is no actual remote control). - Fixed small bug in dvbapi.c that was causing some channels (many on hotbird) not to be correctly tuned (thanks to Plamen Ganev!). - Now clearing the replay buffer in search forward/back, which results in faster reaction. - The 'Recordings' menu is now listed alphabetically (thanks to Carsten Koch!). - The new 'epg2timers' tool (thanks to Carsten Koch!) can be used to convert an EPG "merkliste" page (http://www.tvtv.de) to vdr timer entries. - The new 'xtvrc2vdr' tool (thanks to Plamen Ganev!) can be used to convert 'xtvrc' channel files into 'vdr' format. - When more than one timer matches at the same time, the first one in the list with the highest 'Priority' is selected. - The MANUAL section on "Programming the Timer" has been filled in. - The year in the "Recordings" menu as well as in the progress display during replay has been reduced to 2 digits to allow more space for the recording's title. In the internal file structure the year is still stored with 4 digits, so there will be no problem at the next turn of the century ;-) - Channel names and timer filenames can now contain blanks. To avoid problems with file names that contain blanks, all blanks in recording file names are converted to underscores. - The polarization can now be given in uppercase or lowercase characters in channels.conf. - Fixed buffer initialization to work with DVB driver version 0.6. - Implemented the "Simple Video Disk Recorder Protocol" (SVDRP) to control the VDR over a network connection. - Implemented command line option handling. - The program can now run in full background mode by using the --daemon option. - Added a "summary" field to the timers (thanks to Carsten Koch!). This field can contain a descriptive text of the programme and will be displayed when the "Blue" key is pressed on a recording that was created by this timer. If the text contains the special character '|', a newline will be inserted at that place. When pressing "Ok" on a timer that contains a summary field, the summary will be displayed. To edit such a timer the "Red" key must be pressed. Timers without a summary still go into Edit mode when pressing "Ok". The summary field can only be filled in directly by editing the 'timers.conf' file with a text editor, or by defining/modifying the timer via the SVDRP interface.
Diffstat (limited to 'Tools')
-rw-r--r--Tools/epg2timers/epg2timers.cxx242
-rw-r--r--Tools/xtvrc2vdr/Makefile16
-rw-r--r--Tools/xtvrc2vdr/hotbird.conf191
-rw-r--r--Tools/xtvrc2vdr/xtvrc.hotbird1337
-rw-r--r--Tools/xtvrc2vdr/xtvrc2vdr.c146
5 files changed, 1932 insertions, 0 deletions
diff --git a/Tools/epg2timers/epg2timers.cxx b/Tools/epg2timers/epg2timers.cxx
new file mode 100644
index 0000000..4a8f333
--- /dev/null
+++ b/Tools/epg2timers/epg2timers.cxx
@@ -0,0 +1,242 @@
+/*
+ * epg2timers.cxx: Convert an EPG "merkliste" page (http://www.tvtv.de) to a timers.conf
+ * file for Klaus Schmidinger's vdr (http://www.cadsoft.de/people/kls/vdr).
+ *
+ * Copyright (C) 2000 Carsten Koch
+ *
+ * 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 Carsten.Koch@icem.de
+ */
+
+
+#include <stdio.h>
+#include <string.h>
+
+
+static const char date_line[] = "\t<td align=center valign=middle colspan=3><span id=fb-b10>";
+static const char start_time_line[] = " \t\t<td bgcolor=\"#7f98bf\" align=center><span id=\"fb-w14\"><nobr>&nbsp;";
+static const char stop_time_line[] = "\t\t\t<tr><td bgcolor=\"#002b64\" align=center><span id=\"fn-w9\">bis ";
+static const char channel_line[] = "\t\t\t<tr><td bgcolor=\"#002b64\" align=center><span id=\"fb-w9\">";
+static const char title_line[] = "\t\t\t\t<td bgcolor=\"#002b64\" align=left width=100%><span id=\"fb-w10\">";
+static const char summary_line[] = "\t\t\t<table border=0 cellpadding=10 cellspacing=0 bgcolor=\"white\" width=100%>";
+static const char * const channel_names[] =
+{"RTL", "SAT1", "PRO7", "RTL2", "ARD", "BR3", "HR3", "NDR", "SWF", "WDR", "BR Alpha", "SWR BW", "Phoenix",
+ "ZDF", "3sat", "Kinderkanal", "ARTE", "phoenix", "ORF Sat", "ZDF.info", "CNN", "Super RTL", "VOX", "DW TV",
+ "Kabel1", "TM3", "DSF", "HOT", "BloombergTV", "Sky News", "KinderNet", "Alice", "n-tv", "Grand Tour.", "TW1",
+ "Eins Extra", "Eins Festival", "Eins MuXx", "MDR", "ORB", "B1", "ARD Online-Kanal", "Premiere World Promo",
+ "Premiere", "Star Kino", "Cine Action", "Cine Comedy", "Sci Fantasy", "Romantic Movies", "Studio Universal",
+ "TV Niepokalanow", "Mosaico", "Andalucia TV", "TVC Internacional", "Nasza TV", "WishLine test", "Pro 7 Austria",
+ "Kabel 1 Schweiz", "Kabel 1 Austria", "Pro 7 Schweiz", "Kiosque", "KTO", "TCM", "Cartoon Network France & Spain",
+ "TVBS Europe", "TVBS Europe", "Travel", "TCM Espania", "MTV Spain", "TCM France", "RTL2 CH",
+ "La Cinquieme", "ARTE", "Post Filial TV", "Canal Canaris", "Canal Canaris", "Canal Canaris", "Canal Canaris",
+ "AB Sat Passion promo", "AB Channel 1", "Taquilla 0", "CSAT", "Mosaique", "Mosaique 2", "Mosaique 3", "Le Sesame C+",
+ "FEED", "RTM 1", "ESC 1", "TV5 Europe", "TV7 Tunisia", "ARTE", "RAI Uno", "RTP International",
+ "Fashion TV", "VideoService", "Beta Research promo", "Canal Canarias", "TVC International", "Fitur", "Astra Info 1",
+ "Astra Info 2", "Astra Vision 1", "Astra Vision 1", "Astra Vision 1", "Astra Vision 1", "Astra Vision 1",
+ "Astra Vision 1", "Astra Vision 1", "RTL Tele Letzebuerg", "Astra Mosaic", "MHP test", "Bloomberg TV Spain",
+ "Video Italia", "AC 3 promo", ""
+};
+static const int month_lengths[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
+
+static const int max_channel = sizeof(channel_names)/sizeof(char *);
+static const int max_title = 50; // maximum length of title file name generated
+static const int max_line = 1024; // line buffer (not used when parsing summary text)
+static const int max_summary = 5000; // Summary can be up to 5000 bytes long
+static const int stop_time_safety_margin = 10; // add 10 minutes to stop time in case start was delayed
+
+
+
+char map_special_char(const char * const word)
+
+{
+ if (strcmp(word, "auml") == 0)
+ return 'ä';
+ else if (strcmp(word, "ouml") == 0)
+ return 'ö';
+ else if (strcmp(word, "uuml") == 0)
+ return 'ü';
+ else if (strcmp(word, "Auml") == 0)
+ return 'Ä';
+ else if (strcmp(word, "Ouml") == 0)
+ return 'Ö';
+ else if (strcmp(word, "Uuml") == 0)
+ return 'Ü';
+ else if (strcmp(word, "szlig") == 0)
+ return 'ß';
+ return ' ';
+}
+
+
+
+
+
+void read_file_name(const char * const line, char * const file_name)
+
+{
+ int line_index = sizeof(title_line) - 1;
+ int title_index = 0;
+ char ch = line[line_index++];
+ do
+ {
+ if (ch == '&')
+ {
+ char word[10];
+ int i = 0;
+ while ((line[line_index + i] != ';') && (i < 9))
+ word[i++] = line[line_index + i];
+ word[i] = 0;
+ ch = map_special_char(word);
+ line_index += i;
+ }
+ switch (ch)
+ {
+ case 'ä': file_name[title_index++] = 'a'; file_name[title_index++] = 'e'; break;
+ case 'ö': file_name[title_index++] = 'o'; file_name[title_index++] = 'e'; break;
+ case 'ü': file_name[title_index++] = 'u'; file_name[title_index++] = 'e'; break;
+ case 'Ä': file_name[title_index++] = 'A'; file_name[title_index++] = 'e'; break;
+ case 'Ö': file_name[title_index++] = 'O'; file_name[title_index++] = 'e'; break;
+ case 'Ü': file_name[title_index++] = 'U'; file_name[title_index++] = 'e'; break;
+ case 'ß': file_name[title_index++] = 's'; file_name[title_index++] = 's'; break;
+ default:
+ if (((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || ((ch >= '0') && (ch <= '9')))
+ file_name[title_index++] = ch;
+ }
+ ch = int(line[line_index++]);
+ } while ((title_index < max_title-1) && (ch != '<') && (ch != 0) && (line_index < max_line-1));
+ file_name[title_index] = 0;
+}
+
+
+
+void read_summary(char * const summary)
+
+{
+ int summary_index = 0;
+ int ch;
+ bool need_space = false;
+ bool done = false;
+ do
+ {
+ ch = getchar();
+ switch (ch)
+ {
+ case '&':
+ {
+ char word[10];
+ int i = 0;
+ ch = getchar();
+ while ((ch != ';') && (ch != EOF) && (i < 9))
+ {
+ word[i++] = ch;
+ ch = getchar();
+ }
+ word[i] = 0;
+ if (need_space) {summary[summary_index++] = ' '; need_space = false;}
+ summary[summary_index++] = map_special_char(word);
+ }
+ break;
+ case '<':
+ {
+ char word[6];
+ int word_index = 0;
+ do
+ {
+ ch = getchar();
+ word[word_index++] = ch;
+ } while ((word_index < 6) && (ch != '>') && (ch != EOF));
+ while ((ch != '>') && (ch != EOF)) ch = getchar();
+ if (strncmp("/table", word, 6) == 0)
+ done = true;
+ }
+ break;
+ default:
+ {
+ if (ch <= ' ')
+ {
+ if (summary_index > 0) need_space = true;
+ }
+ else
+ {
+ if (need_space) {summary[summary_index++] = ' '; need_space = false;}
+ summary[summary_index++] = ch;
+ }
+ }
+ }
+ } while ((summary_index < max_summary - 2) && (!done) && (ch != EOF));
+ summary[summary_index] = 0;
+}
+
+
+
+
+main()
+
+{
+ int channel = 0;
+ int day = -1;
+ int next_day = -1;
+ int start_time = -1;
+ int stop_time = -1;
+ char summary[max_summary] = {0};
+ char file_name[max_title] = {0};
+
+ while (!feof(stdin))
+ {
+ char line[max_line];
+ fgets(line, max_line-1, stdin);
+ if (strncmp(line, date_line, sizeof(date_line)-1) == 0)
+ {
+ const int month = (line[sizeof(date_line) + 6]- '0') * 10 + line[sizeof(date_line) + 7]-'0';
+ day = (line[sizeof(date_line) + 3]- '0') * 10 + line[sizeof(date_line) + 4]-'0';
+ next_day = day == month_lengths[month]? 1 : day + 1;
+ }
+ else if (strncmp(line, start_time_line, sizeof(start_time_line)-1) == 0)
+ {
+ start_time = (line[sizeof(start_time_line) - 1] - '0') * 1000 +
+ (line[sizeof(start_time_line) ] - '0') * 100 +
+ (line[sizeof(start_time_line) + 2] - '0') * 10 +
+ (line[sizeof(start_time_line) + 3] - '0');
+ }
+ else if (strncmp(line, stop_time_line, sizeof(stop_time_line)-1) == 0)
+ {
+ stop_time = ((line[sizeof(stop_time_line) - 1] - '0') * 1000 +
+ (line[sizeof(stop_time_line) ] - '0') * 100 +
+ (line[sizeof(stop_time_line) + 2] - '0') * 10 +
+ (line[sizeof(stop_time_line) + 3] - '0') + stop_time_safety_margin) % 2400;
+ if ((day < 0) || (start_time < 0) || (file_name[0] == 0) || (channel == max_channel))
+ fprintf(stderr, "Input data error.\n");
+ else
+ printf("1:%03d:%02d:%04d:%04d:2:7:%s:%s\n", channel+1, start_time < 600? next_day : day, start_time, stop_time, file_name, summary);
+ start_time = -1; stop_time = -1; file_name[0] = 0; summary[0] = 0; channel = max_channel;
+ }
+ else if (strncmp(line, title_line, sizeof(title_line)-1) == 0)
+ read_file_name(line, file_name);
+ else if (strncmp(line, channel_line, sizeof(channel_line)-1) == 0)
+ {
+ int i = sizeof(channel_line);
+ while ((i < max_line-1) && (line[i] != '<')) i++;
+ line[i] = 0; // end of string
+ for (channel = 0; (channel < max_channel) &&
+ (strcmp(line + sizeof(channel_line) - 1, channel_names[channel]) != 0);
+ channel++);
+ if (channel == max_channel)
+ fprintf(stderr, "Error - channel '%s' not recognized.\n", line + sizeof(channel_line) - 1);
+ }
+ else if (strncmp(line, summary_line, sizeof(summary_line)-1) == 0)
+ read_summary(summary);
+ }
+}
diff --git a/Tools/xtvrc2vdr/Makefile b/Tools/xtvrc2vdr/Makefile
new file mode 100644
index 0000000..be50541
--- /dev/null
+++ b/Tools/xtvrc2vdr/Makefile
@@ -0,0 +1,16 @@
+#
+# Makefile for xtvrc2vdr utility
+#
+
+OBJS = xtvrc2vdr.o
+
+%.o: %.c
+ gcc -g -O2 -Wall -c $(DEFINES) $<
+
+all: xtvrc2vdr
+
+xtvrc2vdr: $(OBJS)
+ gcc -g -O2 $(OBJS) -o xtvrc2vdr
+
+clean:
+ -rm -f $(OBJS) xtvrc2vdr
diff --git a/Tools/xtvrc2vdr/hotbird.conf b/Tools/xtvrc2vdr/hotbird.conf
new file mode 100644
index 0000000..3431d5c
--- /dev/null
+++ b/Tools/xtvrc2vdr/hotbird.conf
@@ -0,0 +1,191 @@
+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:v:1:27500:160:80:0:0
+VOX:11054:v:1:27500:500:501:0:0
+Sat 1 A:11054:v:1:27500:511:512:0:0
+RTL II Austria:11054:v:1:27500:520:521:0:0
+NBC Europe:11054:v:1:27500:550:551:0:0
+ZDF:11054:v:1:27500:570:571:0:0
+K-T9:11054:v:1:27500:580:581:0:0
+Sat 1 Schweiz:11604:v:1:27500:101:102:0:0
+MKT9: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 EDT9: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 EDT9:11746:v:1:27500:4898:4899:0:0
+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
+RAI Mosaico:11766:v:1:27500:518:8191:0:0
+RAI SportSat:11804:v:1:27500:512:650: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
+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
+ERT Sat:11823:v:1:27500:521:740:0:0
+INT9:11843:v:1:27500:2324:2325:0:0
+TVL:11843:v:1:27500:2441:2442:0:0
+Team TV :11881:v:1:27500:2305:2306:0:0
+Ante Prima:11881:v:1:27500:2435:2436:0:0
+SNAI:11881:v:1:27500:2561:2562:0:0
+Italia 1 :11919:v:1:27500:512:650:0:0
+Canale 5:11919:v:1:27500:513:660:0:0
+Rete 4 :11919:v:1:27500:514:670: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
+Vetrina D+:12034:v:1:27500:166:105:0:0
+D+ Info:12073:v:1:27500:160:80:0:0
+Palco Promo:12073:v:1:27500:161:84:0:0
+Vacaciones T9:12092:v:1:27500:4112:4113:0:0
+TvL - TV Locale:12092:v:1:27500:4160:4161:0:0
+Satisfaction T9:12092:v:1:27500:4192:4193: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
+NT9: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
+Coming Soon T9:12111:v:1:27500:310:311:0:0
+Alice:12149:v:1:27500:160:161:0:0
+Nuvolari Promo:12149:v:1:27500:176:177:0:0
+CCTV 4:12169:v: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 T9:12245:v:1:27500:123:133:0:0
+TV Ajara:12245:v:1:27500:127:137:0:0
+Telekom T9: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 T9:12303:v:1:27500:235:236:0:0
+Napoli International:12303:v:1:27500:240:241:0:0
+Magic T9: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:v:1:27500:101:201:0:0
+Pink Backup:12476:v:1:27500:308:256:0:0
+Mizik Tropical:12476:v:1:27500:435:436:0:0
+TLI info card:12476:v:1:27500:771:768:0:0
+Liberty T9:12476:v: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 T9:12540:v:1:27500:1180:1183:0:0
+WWWTravel T9:12540:v:1:27500:1180:1184:0:0
+WWWTravel T9:12540:v:1:27500:1180:1185:0:0
+Bulgaria T9:12540:v:1:27500:4612:4613:0:0
+MC Sat Monte Carlo:12540:v:1:27500:5126:5122: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:12597:v:1:27500:2221:2231:0:0
+EuroNews:12597:v:1:27500:2221:2232:0:0
+EuroNews:12597:v:1:27500:2221:2233:0:0
+EuroNews:12597:v:1:27500:2221:2234:0:0
+EuroNews:12597:v:1:27500:2221:2235:0:0
+EuroNews:12597:v:1:27500:2221:2236:0:0
+EuroNews: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 T9: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 T9:12654:v:1:27500:1560:1520:0:0
+Sudan T9:12654:v:1:27500:1660:1620:0:0
+Oman T9: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
+DigItaly:12673:v:1:27500:220:221:0:0
+Studio Europa:12673:v:1:27500:230:231:0:0
+Game Network:12673:v:1:27500:291:292:0:0
+Video Italia :12673:v:1:27500:340:341:0:0
+Telemarket:12673:v:1:27500:350:351:0:0
+Evision:12673:v:1:27500:360:361:0:0
+AB Passion:12692:v:1:27500:160:80:0:0
+Onyx T9: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 Test (KBT):11604:v:1:27500:111:112:0:0
+Racing Channel Test:11623:v:1:27500:223:243:0:0
+Test Card (pgm 4):11623:v:1:27500:224:244: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
+Espresso(Antenna Hungaria Test Card):12149:v:1:27500:36:37:0:0
+Antenna Hungaria Test Card:12149:v:1:27500:96:97:0:0
+Antenna Hungaria Test Card:12149:v:1:27500:112:113:0:0
+Leonardo (Antenna Hungaria Test):12149:v:1:27500:128:129:0:0
+Test (Sahar):12437:v:1:27500:163:86:0:0
+Test 1:12437:v:1:27500:164:88:0:0
+Test 2:12437:v:1:27500:165:90:0:0
+CNES-Toulouse test:12558:v:1:27500:6143:6142:0:0
+Test Card:12597:v:1:27500:161:84:0:0
+FEED:11242:v:1:27500:167:108:0:0
+Feed :11623:v:1:27500:221:241:0:0
+Quantum 24 :10913:v:1:3998:1160:1120:0:0
+Quantum 24:10913:v:1:3998:1160:1220:0:0
+VIVA Polska:11131:v:1:4340:98:99:0:0
+Deutsche Welle T9:11196:v:1:9096:101:102:0:0
+Canal 24 Horas :11205:v:1:4000:4130:4131:0:0
+TV 5 Asie :11338:v:1:5632:512:640:0:0
+RAI4IFA:11548:v:1:4398:512:650:0:0
+Pro TV International:12201:v:1:5632:1160:1120:0:0
+TVN Polnoc:12211:v:1:5632:4194:4195:0:0
+WorldNet Europe:12484:v:1:8298:4260:4220:0:0
+WorldNet Europe:12484:v:1:8298:4360:4320:0:0
+WorldNet Europe:12484:v:1:8298:4460:4420:0:0
+WorldNet Europe:12484:v:1:8298:4560:4520:0:0
+TVN Polnoc:12573:v:1:5632:4194:4195:0:0
+APTN:12582:v:1:5632:308:256:0:0
diff --git a/Tools/xtvrc2vdr/xtvrc.hotbird b/Tools/xtvrc2vdr/xtvrc.hotbird
new file mode 100644
index 0000000..c809eee
--- /dev/null
+++ b/Tools/xtvrc2vdr/xtvrc.hotbird
@@ -0,0 +1,1337 @@
+*
+Channel: TV Polonia
+Frequency: 10719
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 163 92 0 10
+
+*
+Channel: Credit Agricole
+Frequency: 10834
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 5321 5333 0 10
+
+*
+Channel: La Chaine Parlementaire
+Frequency: 10873
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 1020 1030 0 10
+
+*
+Channel: TMT
+Frequency: 10892
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 163 92 0 10
+
+*
+Channel: Multivision Accueil
+Frequency: 10911
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 320 330 0 10
+
+*
+Channel: RTL
+Frequency: 11054
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 160 80 0 10
+
+*
+Channel: VOX
+Frequency: 11054
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 500 501 0 10
+
+*
+Channel: Sat 1 A
+Frequency: 11054
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 511 512 0 10
+
+*
+Channel: RTL II Austria
+Frequency: 11054
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 520 521 0 10
+
+*
+Channel: NBC Europe
+Frequency: 11054
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 550 551 0 10
+
+*
+Channel: ZDF
+Frequency: 11054
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 570 571 0 10
+
+*
+Channel: K-T9
+Frequency: 11054
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 580 581 0 10
+
+*
+Channel: Sat 1 Schweiz
+Frequency: 11604
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 101 102 0 10
+
+*
+Channel: MKT9
+Frequency: 11623
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 222 242 0 10
+
+*
+Channel: Olisat TV Promo
+Frequency: 11623
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 226 246 0 10
+
+*
+Channel: Bloomberg TV Germany
+Frequency: 11642
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1460 1420 0 10
+
+*
+Channel: Bloomberg TV UK
+Frequency: 11642
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1560 1520 0 10
+
+*
+Channel: SAT 7
+Frequency: 11642
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1660 1620 0 10
+
+*
+Channel: Multivision 1
+Frequency: 11662
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 120 130 0 10
+
+*
+Channel: Dubai EDT9
+Frequency: 11746
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4130 4131 0 10
+
+*
+Channel: Dubai Sport Channel
+Frequency: 11746
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4386 4387 0 10
+
+*
+Channel: Dubai Business Channel
+Frequency: 11746
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4642 4643 0 10
+
+*
+Channel: Dubai EDT9
+Frequency: 11746
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4898 4899 0 10
+
+*
+Channel: RAI Uno
+Frequency: 11766
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 160 80 0 10
+
+*
+Channel: RAI Due
+Frequency: 11766
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 161 84 0 10
+
+*
+Channel: RAI Tre
+Frequency: 11766
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 162 88 0 10
+
+*
+Channel: RAI Mosaico
+Frequency: 11766
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 518 8191 0 10
+
+*
+Channel: RAI SportSat
+Frequency: 11804
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 512 650 0 10
+
+*
+Channel: RAI Nettuno Sat 2
+Frequency: 11804
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 513 651 0 10
+
+*
+Channel: RAI Educational
+Frequency: 11804
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 514 652 0 10
+
+*
+Channel: TelePace
+Frequency: 11804
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 515 653 0 10
+
+*
+Channel: RAI News24
+Frequency: 11804
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 516 654 0 10
+
+*
+Channel: Camera dei Deputati
+Frequency: 11804
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 517 655 0 10
+
+*
+Channel: SAT 2000
+Frequency: 11804
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 518 656 0 10
+
+*
+Channel: RAI NettunoSat 1
+Frequency: 11804
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 519 657 0 10
+
+*
+Channel: ERT Sat
+Frequency: 11823
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 521 740 0 10
+
+*
+Channel: INT9
+Frequency: 11843
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2324 2325 0 10
+
+*
+Channel: TVL
+Frequency: 11843
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2441 2442 0 10
+
+*
+Channel: Team TV
+Frequency: 11881
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2305 2306 0 10
+
+*
+Channel: Ante Prima
+Frequency: 11881
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2435 2436 0 10
+
+*
+Channel: SNAI
+Frequency: 11881
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2561 2562 0 10
+
+*
+Channel: Italia 1
+Frequency: 11919
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 512 650 0 10
+
+*
+Channel: Canale 5
+Frequency: 11919
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 513 660 0 10
+
+*
+Channel: Rete 4
+Frequency: 11919
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 514 670 0 10
+
+*
+Channel: ART Europe
+Frequency: 12015
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 164 96 0 10
+
+*
+Channel: ESC 2
+Frequency: 12015
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 166 104 0 10
+
+*
+Channel: ART Iqra
+Frequency: 12015
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 168 112 0 10
+
+*
+Channel: Vetrina D+
+Frequency: 12034
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 166 105 0 10
+
+*
+Channel: D+ Info
+Frequency: 12073
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 160 80 0 10
+
+*
+Channel: Palco Promo
+Frequency: 12073
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 161 84 0 10
+
+*
+Channel: Vacaciones T9
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4112 4113 0 10
+
+*
+Channel: TvL - TV Locale
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4160 4161 0 10
+
+*
+Channel: Satisfaction T9
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4192 4193 0 10
+
+*
+Channel: TVE Internacional
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4208 4209 0 10
+
+*
+Channel: TVG - TV de Galicia
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4224 4225 0 10
+
+*
+Channel: La Cadena Del Milagro
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4368 4369 0 10
+
+*
+Channel: Fiesta
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4432 4433 0 10
+
+*
+Channel: Visions Europe
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4416 4417 0 10
+
+*
+Channel: SateliTV/TV Sex Channel
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4480 4481 0 10
+
+*
+Channel: Krisma
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 200 201 0 10
+
+*
+Channel: NT9
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 210 211 0 10
+
+*
+Channel: Armenia TV 1
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 240 241 0 10
+
+*
+Channel: SMAU Channel
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 260 261 0 10
+
+*
+Channel: JSC - Al Jazeera Satellite Ch
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 270 271 0 10
+
+*
+Channel: Il Tirreno Sat
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 280 301 0 10
+
+*
+Channel: Coming Soon T9
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 310 311 0 10
+
+*
+Channel: Alice
+Frequency: 12149
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 160 161 0 10
+
+*
+Channel: Nuvolari Promo
+Frequency: 12149
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 176 177 0 10
+
+*
+Channel: CCTV 4
+Frequency: 12169
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 516 690 0 10
+
+*
+Channel: Kanali Vuolis
+Frequency: 12169
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 517 700 0 10
+
+*
+Channel: Nova Promo
+Frequency: 12169
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 521 740 0 10
+
+*
+Channel: ERT Sat
+Frequency: 12188
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 514 652 0 10
+
+*
+Channel: Kanali Voulis
+Frequency: 12188
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 515 653 0 10
+
+*
+Channel: OTE Promo
+Frequency: 12188
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 517 655 0 10
+
+*
+Channel: TV 5 Europe
+Frequency: 12245
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 121 131 0 10
+
+*
+Channel: Fashion T9
+Frequency: 12245
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 123 133 0 10
+
+*
+Channel: TV Ajara
+Frequency: 12245
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 127 137 0 10
+
+*
+Channel: Telekom T9
+Frequency: 12265
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 1460 1420 0 10
+
+*
+Channel: SLO-TV1
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 200 201 0 10
+
+*
+Channel: Polonia 1
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 205 206 0 10
+
+*
+Channel: Super 1
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 207 208 0 10
+
+*
+Channel: Sicilia Internacional
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 210 211 0 10
+
+*
+Channel: SicilSat
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 225 226 0 10
+
+*
+Channel: TBNE Italy
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 230 231 0 10
+
+*
+Channel: Countdown T9
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 235 236 0 10
+
+*
+Channel: Napoli International
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 240 241 0 10
+
+*
+Channel: Magic T9
+Frequency: 12303
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 245 246 0 10
+
+*
+Channel: TEST
+Frequency: 12341
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 165 108 0 10
+
+*
+Channel: Colour Bars
+Frequency: 12380
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 3022 3032 0 10
+
+*
+Channel: Tele 24
+Frequency: 12380
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 3023 3033 0 10
+
+*
+Channel: Abu Dhabi TV
+Frequency: 12380
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 3024 3034 0 10
+
+*
+Channel: LCA
+Frequency: 12380
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 3025 3035 0 10
+
+*
+Channel: RTV Montenegro
+Frequency: 12380
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 3026 3036 0 10
+
+*
+Channel: SRG SSR Sat Access
+Frequency: 12399
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 165 98 0 10
+
+*
+Channel: Jam-e-Jam Network 1 (IRIB 1)
+Frequency: 12437
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 160 80 0 10
+
+*
+Channel: Jam-e-Jam Network 2 (IRIB 2)
+Frequency: 12437
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 161 82 0 10
+
+*
+Channel: Sahar University Network
+Frequency: 12437
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 162 84 0 10
+
+*
+Channel: Maharishi Open University
+Frequency: 12476
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 42 43 0 10
+
+*
+Channel: Europe by Satellite
+Frequency: 12476
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 101 201 0 10
+
+*
+Channel: Pink Backup
+Frequency: 12476
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 308 256 0 10
+
+*
+Channel: Mizik Tropical
+Frequency: 12476
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 435 436 0 10
+
+*
+Channel: TLI info card
+Frequency: 12476
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 771 768 0 10
+
+*
+Channel: Liberty T9
+Frequency: 12476
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 941 942 0 10
+
+*
+Channel: HRT TV 1
+Frequency: 12520
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 100 101 0 10
+
+*
+Channel: HRT National
+Frequency: 12520
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 107 108 0 10
+
+*
+Channel: BVN TV
+Frequency: 12520
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 210 211 0 10
+
+*
+Channel: Sicilia International
+Frequency: 12520
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 501 502 0 10
+
+*
+Channel: Sardegna Uno
+Frequency: 12520
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 503 504 0 10
+
+*
+Channel: TGRT
+Frequency: 12520
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 505 506 0 10
+
+*
+Channel: Euro Mediterraneo
+Frequency: 12520
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 510 511 0 10
+
+*
+Channel: WWWTravel T9
+Frequency: 12540
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1180 1183 0 10
+
+*
+Channel: WWWTravel T9
+Frequency: 12540
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1180 1184 0 10
+
+*
+Channel: WWWTravel T9
+Frequency: 12540
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1180 1185 0 10
+
+*
+Channel: Bulgaria T9
+Frequency: 12540
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4612 4613 0 10
+
+*
+Channel: MC Sat Monte Carlo
+Frequency: 12540
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 5126 5122 0 10
+
+*
+Channel: MBC
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 160 80 0 10
+
+*
+Channel: SIMA-YEH-MOGHAVEMENT
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 161 84 0 10
+
+*
+Channel: NITV (National Iran TV )
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 163 92 0 10
+
+*
+Channel: BET International
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 167 108 0 10
+
+*
+Channel: JSTV 2 Info Card
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2011 2012 0 10
+
+*
+Channel: EuroNews
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2221 2231 0 10
+
+*
+Channel: EuroNews
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2221 2232 0 10
+
+*
+Channel: EuroNews
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2221 2233 0 10
+
+*
+Channel: EuroNews
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2221 2234 0 10
+
+*
+Channel: EuroNews
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2221 2235 0 10
+
+*
+Channel: EuroNews
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2221 2236 0 10
+
+*
+Channel: EuroNews
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2221 2237 0 10
+
+*
+Channel: Canal Agro Rual
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2321 2331 0 10
+
+*
+Channel: MMO9
+Frequency: 12616
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 2561 2562 0 10
+
+*
+Channel: Dubai Sport Channel
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1060 1020 0 10
+
+*
+Channel: Sharjah TV
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1160 1120 0 10
+
+*
+Channel: Qatar T9
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1260 1220 0 10
+
+*
+Channel: Saudi Channel 1
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1360 1320 0 10
+
+*
+Channel: Kuwait Space Channel
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1460 1420 0 10
+
+*
+Channel: Libya T9
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1560 1520 0 10
+
+*
+Channel: Sudan T9
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1660 1620 0 10
+
+*
+Channel: Oman T9
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1760 1720 0 10
+
+*
+Channel: Jordan Satellite Channel
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1860 1820 0 10
+
+*
+Channel: Iraq Satellite Channel
+Frequency: 12654
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 1960 1920 0 10
+
+*
+Channel: Thai TV 5 Global Network
+Frequency: 12673
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 200 201 0 10
+
+*
+Channel: DigItaly
+Frequency: 12673
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 220 221 0 10
+
+*
+Channel: Studio Europa
+Frequency: 12673
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 230 231 0 10
+
+*
+Channel: Game Network
+Frequency: 12673
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 291 292 0 10
+
+*
+Channel: Video Italia
+Frequency: 12673
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 340 341 0 10
+
+*
+Channel: Telemarket
+Frequency: 12673
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 350 351 0 10
+
+*
+Channel: Evision
+Frequency: 12673
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 360 361 0 10
+
+*
+Channel: AB Passion
+Frequency: 12692
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 160 80 0 10
+
+*
+Channel: Onyx T9
+Frequency: 12692
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 161 84 0 10
+
+*
+Channel: EWTN
+Frequency: 10723
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 29900 2 1001 1201 0 10
+
+*
+Channel: Test (Newslynx)
+Frequency: 10723
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 29900 2 1002 1202 0 10
+
+*
+Channel: MTA International
+Frequency: 10723
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 29900 2 1004 1204 0 10
+
+*
+Channel: J TV Test
+Frequency: 10992
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 2436 2437 0 10
+
+*
+Channel: Bloomberg UK Test Card
+Frequency: 11242
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 162 88 0 10
+
+*
+Channel: Channel SUN Test (KBT)
+Frequency: 11604
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 4 111 112 0 10
+
+*
+Channel: Racing Channel Test
+Frequency: 11623
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 223 243 0 10
+
+*
+Channel: Test Card (pgm 4)
+Frequency: 11623
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 224 244 0 10
+
+*
+Channel: Olisat TLC test card
+Frequency: 11623
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 225 245 0 10
+
+*
+Channel: Channel SUN Test (KBT)
+Frequency: 11623
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 229 249 0 10
+
+*
+Channel: Rai way 3 test card
+Frequency: 11766
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 164 96 0 10
+
+*
+Channel: Rai way 1 test card
+Frequency: 11766
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 515 653 0 10
+
+*
+Channel: Rai way 2 test card
+Frequency: 11766
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 1 516 654 0 10
+
+*
+Channel: Test (Local Satellite)
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4176 4177 0 10
+
+*
+Channel: Retelsat Test
+Frequency: 12092
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 4464 4465 0 10
+
+*
+Channel: AIT Test Card
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 220 221 0 10
+
+*
+Channel: Fucino Test Card
+Frequency: 12111
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 230 231 0 10
+
+*
+Channel: Espresso(Antenna Hungaria Test Card)
+Frequency: 12149
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 36 37 0 10
+
+*
+Channel: Antenna Hungaria Test Card
+Frequency: 12149
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 96 97 0 10
+
+*
+Channel: Antenna Hungaria Test Card
+Frequency: 12149
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 112 113 0 10
+
+*
+Channel: Leonardo (Antenna Hungaria Test)
+Frequency: 12149
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 128 129 0 10
+
+*
+Channel: Test (Sahar)
+Frequency: 12437
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 163 86 0 10
+
+*
+Channel: Test 1
+Frequency: 12437
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 164 88 0 10
+
+*
+Channel: Test 2
+Frequency: 12437
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 27500 2 165 90 0 10
+
+*
+Channel: CNES-Toulouse test
+Frequency: 12558
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 6143 6142 0 10
+
+*
+Channel: Test Card
+Frequency: 12597
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 161 84 0 10
+
+*
+Channel: FEED
+Frequency: 11242
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 167 108 0 10
+
+*
+Channel: Feed
+Frequency: 11623
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 27500 2 221 241 0 10
+
+*
+Channel: Quantum 24
+Frequency: 10913
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 3998 0 1160 1120 0 10
+
+*
+Channel: Quantum 24
+Frequency: 10913
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 3998 0 1160 1220 0 10
+
+*
+Channel: VIVA Polska
+Frequency: 11131
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 4340 2 98 99 0 10
+
+*
+Channel: Deutsche Welle T9
+Frequency: 11196
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 9096 0 101 102 0 10
+
+*
+Channel: Canal 24 Horas
+Frequency: 11205
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 4000 2 4130 4131 0 10
+
+*
+Channel: TV 5 Asie
+Frequency: 11338
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 5632 2 512 640 0 10
+
+*
+Channel: RAI4IFA
+Frequency: 11548
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 4398 6 512 650 0 10
+
+*
+Channel: Pro TV International
+Frequency: 12201
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 5632 6 1160 1120 0 10
+
+*
+Channel: TVN Polnoc
+Frequency: 12211
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 5632 2 4194 4195 0 10
+
+*
+Channel: WorldNet Europe
+Frequency: 12484
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 8298 2 4260 4220 0 10
+
+*
+Channel: WorldNet Europe
+Frequency: 12484
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 8298 2 4360 4320 0 10
+
+*
+Channel: WorldNet Europe
+Frequency: 12484
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 8298 2 4460 4420 0 10
+
+*
+Channel: WorldNet Europe
+Frequency: 12484
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 9 8298 2 4560 4520 0 10
+
+*
+Channel: TVN Polnoc
+Frequency: 12573
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 5632 2 4194 4195 0 10
+
+*
+Channel: APTN
+Frequency: 12582
+CBHC: 255 0 0 255
+NI: -1 0
+SAT: 10 5632 2 308 256 0 10
+
diff --git a/Tools/xtvrc2vdr/xtvrc2vdr.c b/Tools/xtvrc2vdr/xtvrc2vdr.c
new file mode 100644
index 0000000..772db66
--- /dev/null
+++ b/Tools/xtvrc2vdr/xtvrc2vdr.c
@@ -0,0 +1,146 @@
+/*
+ * * xtvrc2vdr.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;
+} CHANNEL_DATA ;
+
+void strlwr( char *s ){
+ while ( s && *s ){
+ *s = tolower(*s);
+ s++;
+ }
+}
+
+int ReadChannel( FILE *f, CHANNEL_DATA *channel ) {
+ static char s[MAX_LINE_LEN+1];
+ char *p;
+
+ memset( channel, sizeof( CHANNEL_DATA ), 0 ) ;
+
+ while ((p=fgets( s, MAX_LINE_LEN, f ))!=NULL){
+// printf("%s", s ) ;
+ if (s[0] == '*')
+ break ;
+ }
+
+ if ( !p ) { /* EOF? */
+// printf("EOF\n");
+ return 0 ;
+ }
+
+ while (fgets( s, MAX_LINE_LEN, f )){
+ if ( s[0] == '\n' )
+ return channel->freq ? 1 : 0;
+ p = strtok( s, TOKS ) ;
+ if ( !p ) {
+ return 0;
+ }
+ strlwr( p ) ;
+ if ( !strcmp( p, "channel" )){
+ p=strtok( NULL, NAMETOKS );
+ while ( p && *p==' ')
+ p++;
+ strcpy( channel->Name, p );
+// printf("%d ", channel->freq ) ;
+ } else if ( !strcmp( p, "frequency")) {
+ channel->freq = atoi( p=strtok( NULL, TOKS ));
+// printf("%d ", channel->freq ) ;
+ } else if ( !strcmp( p, "cbhc")) {
+ channel->color = atoi(p=strtok(NULL,TOKS));
+ channel->hue = atoi(p=strtok(NULL,TOKS));
+ channel->bright = atoi(p=strtok(NULL,TOKS));
+ channel->saturation = atoi(p=strtok(NULL,TOKS));
+ } else if ( !strcmp( p, "ni")) {
+ channel->nitv = atoi(p=strtok(NULL,TOKS));
+ channel->input = atoi(p=strtok(NULL,TOKS));
+ } else if ( !strcmp( p, "sat")) {
+ channel->pol = atoi(p=strtok(NULL,TOKS));
+ channel->srate = atoi(p=strtok(NULL,TOKS));
+ channel->fec = atoi(p=strtok(NULL,TOKS));
+ channel->vpid = atoi(p=strtok(NULL,TOKS));
+ channel->apid = atoi(p=strtok(NULL,TOKS));
+ channel->lnbnum = atoi(p=strtok(NULL,TOKS));
+ channel->type = atoi(p=strtok(NULL,TOKS));
+ } else
+ printf("Unknown token %s\n", p ) ;
+ }
+ return 1 ;
+}
+
+int main ( int argc, char *argv[] ){
+ FILE *f, *fo ;
+ int cnt = 0;
+ CHANNEL_DATA channel ;
+
+ if ( argc != 3 ){
+ printf("USAGE: %s <xtvrc 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 ,
+ 0 ); //channel.fec ) ;
+ }
+
+ printf( "%d channels read.\n\n", cnt ) ;
+
+ fclose(f);
+ fclose(fo);
+ return 1;
+}