summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
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;
+}