add basic support for DVB-T

This needs more fine tuning wrt scan setup etc, but should work for now.
This commit is contained in:
Stefan Seyfried
2012-10-07 16:01:19 +02:00
parent 0061aac2b3
commit b02886aa92
17 changed files with 433 additions and 46 deletions

View File

@@ -5,4 +5,4 @@ SUBDIRS += lcd
endif
configdir = $(CONFIGDIR)
config_DATA = cables.xml satellites.xml encoding.conf tobackup.conf providermap.xml
config_DATA = cables.xml satellites.xml encoding.conf tobackup.conf providermap.xml terrestrial.xml

View File

@@ -1187,6 +1187,7 @@ scants.abort_body Scanvorgang wirklich abbrechen?
scants.abort_header breche Scan ab...
scants.actcable Kabelnetz:
scants.actsatellite Satellit:
scants.actterrestrial Terrestrisch:
scants.bouquet Bouquets
scants.bouquet_create neu erstellen
scants.bouquet_erase löschen
@@ -1274,6 +1275,7 @@ stringinput.caps Groß-/Kleinbuchstaben
stringinput.clear Alles löschen
subtitles.head Untertitel
subtitles.stop Untertitel aus
terrestrialsetup.provider DVB-T Region
timer.eventrecord.msg Die Sendung wurde zur Aufnahme vorgemerkt.
timer.eventrecord.title Aufnahme vormerken
timer.eventtimed.msg Die Sendung wurde vorgemerkt.

View File

@@ -1188,6 +1188,7 @@ scants.abort_body Should the search really be aborted?
scants.abort_header Abortion of channel scan
scants.actcable Cable:
scants.actsatellite Satellite:
scants.actterrestrial Terrestrial:
scants.bouquet Bouquet
scants.bouquet_create create new
scants.bouquet_erase erase all
@@ -1275,6 +1276,7 @@ stringinput.caps caps / no caps
stringinput.clear clear all
subtitles.head Subtitles
subtitles.stop Stop subtitles
terrestrialsetup.provider Terrestrial Provider
timer.eventrecord.msg ... TO be DONE, or not to be done
timer.eventrecord.title Schedule Record
timer.eventtimed.msg The event is scheduled.\nThe box will power on and \nswitch to this channel at the given time.

92
data/mk_terrestrial_xml.pl Executable file
View File

@@ -0,0 +1,92 @@
#!/usr/bin/perl -w
#
# create a terrestrial.xml for neutrino from the data installed by the
# dvb utils
# the behaviour is similar to the "scan" program form the dvb utils.
#
# Released under the GPL V2 or later
# (C) 2009-2012 Stefan Seyfried
use strict;
my $srcdir = "/usr/share/dvb/dvb-t";
# can be given as "de-*"
my $scanfile = shift;
$scanfile = "auto-Default" unless (defined $scanfile);
my @sourcefiles = glob($srcdir . "/" . $scanfile);
my ($sourcefile, $basename, $line, $k);
my ($freq, $bw, $cr_hp, $cr_lp, $mod, $tmode, $gint, $hier);
# from /usr/include/linux/dvb/frontend.h
# inversion is not used in the scan files
my %INV = ("INVERSION_OFF" => 0, "INVERSION_ON" => 1, "INVERSION_AUTO" => 2);
my %CODE_RATE = ("NONE" => 0, "1/2" => 1, "2/3" => 2, "3/4" => 3, "4/5" => 4,
"5/6" => 5, "6/7" => 6, "7/8" => 7, "8/9" => 8, "AUTO" => 9);
my %MODULATION = ("QPSK" => 0, "QAM16" => 1, "QAM32" => 2, "QAM64" => 3,
"QAM128" => 4, "QAM256" => 5, "AUTO" => 6);
my %T_MODE = ("2k" => 0, "8k" => 1, "AUTO" => 2);
my %BWIDTH = ("8MHz" => 0, "7MHz" => 1, "6MHz" => 2, "AUTO" => 3);
my %GINTERVAL = ("1/32" => 0, "1/16" => 1, "1/8" => 2, "1/4" => 3, "AUTO" => 4);
my %HIERARCHY = ("NONE" => 0, "1" => 1, "2" => 2, "4" => 3, "AUTO" => 4);
# print the header
print("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
print("<!-- useable flags are
1 - Network Scan
2 - use BAT
4 - use ONIT
8 - skip NITs of known networks
and combinations of this -->\n\n");
print("<!-- this file is autogenerated by mk_terrestrial_xml.pl
WARNING! It is probably unsuitable for enigma! -->\n");
#
# explain the parameters
print("<!-- Parameters are (unfortunately, the neutrino parser does not allow default settings,
the default is always \"0\"):\n");
print("\t* bandwidth:\n\t\t");
foreach $k (sort {$BWIDTH{$a} <=> $BWIDTH{$b}} keys %BWIDTH) { printf("\"%d\"-%s ", $BWIDTH{$k}, $k); }
print("\n\t* constellation:\n\t\t");
foreach $k (sort {$MODULATION{$a} <=> $MODULATION{$b}} keys(%MODULATION)) { printf("\"%d\"-%s ", $MODULATION{$k}, $k); }
print("\n\t* transmission_mode:\n\t\t");
foreach $k (sort {$T_MODE{$a} <=> $T_MODE{$b}} keys(%T_MODE)) { printf("\"%d\"-%s ", $T_MODE{$k}, $k); }
print("\n\t* code_rate_[HL]P:\n\t\t");
foreach $k (sort {$CODE_RATE{$a} <=> $CODE_RATE{$b}} keys(%CODE_RATE)) { printf("\"%d\"-%s ", $CODE_RATE{$k}, $k); }
print("\n\t* guard_interval:\n\t\t");
foreach $k (sort {$GINTERVAL{$a} <=> $GINTERVAL{$b}} keys(%GINTERVAL)) { printf("\"%d\"-%s ", $GINTERVAL{$k}, $k); }
print("\n\t* hierarchy:\n\t\t");
foreach $k (sort {$HIERARCHY{$a} <=> $HIERARCHY{$b}} keys(%HIERARCHY)) { printf("\"%d\"-%s ", $HIERARCHY{$k}, $k); }
print("\t-->\n\n");
# header ends...
print("<locations>\n");
foreach $sourcefile (@sourcefiles)
{
open(FILE, "< $sourcefile") or die "can't open $sourcefile: $!\n";
$basename = $sourcefile;
$basename =~ s#^.*/##;
print("\t<terrestrial name=\"$basename\" flags=\"5\">\n");
while ($line = <FILE>)
{ # T 184500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE
next unless ($line =~ m/^T\s+(\d+)\s+(\dMHz)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/);
$freq = $1; $bw = $2; $cr_hp = $3; $cr_lp = $4; $mod = $5; $tmode = $6; $gint = $7; $hier = $8;
unless (defined($CODE_RATE{$cr_hp})) { warn "$basename: illegal cr_hp: $cr_hp, using AUTO\n"; $cr_hp="AUTO" };
unless (defined($CODE_RATE{$cr_lp})) { warn "$basename: illegal cr_lp: $cr_lp, using AUTO\n"; $cr_lp="AUTO" };
unless (defined($MODULATION{$mod})) { die "$basename: illegal mod: $mod\n" }; # no errors in those (yet).
unless (defined($T_MODE{$tmode})) { die "$basename: illegal tmode: $tmode\n" };
unless (defined($GINTERVAL{$gint})) { die "$basename: illegal gint: $gint\n" };
unless (defined($HIERARCHY{$hier})) { die "$basename: illegal hier: $hier\n" };
unless (defined($BWIDTH{$bw})) { die "$basename: illegal bw: $bw\n" };
if ($cr_hp eq "NONE") { $cr_hp="AUTO" }; # same as scan.c
if ($cr_lp eq "NONE") { $cr_lp="AUTO" }; # same as scan.c
printf("\t\t<transponder frequency=\"%d\" bandwidth=\"%d\" constellation=\"%d\" ".
"transmission_mode=\"%d\" code_rate_HP=\"%d\" code_rate_LP=\"%d\" ".
"guard_interval=\"%d\" hierarchy=\"%d\" />\n",
$freq / 1000, $BWIDTH{$bw}, $MODULATION{$mod},
$T_MODE{$tmode}, $CODE_RATE{$cr_hp}, $CODE_RATE{$cr_lp},
$GINTERVAL{$gint}, $HIERARCHY{$hier});
}
print("\t</terrestrial>\n");
}
print("</locations>\n");

86
data/terrestrial.xml Normal file
View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- useable flags are
1 - Network Scan
2 - use BAT
4 - use ONIT
8 - skip NITs of known networks
and combinations of this -->
<!-- this file is autogenerated by mk_terrestrial_xml.pl
WARNING! It is probably unsuitable for enigma! -->
<!-- Parameters are (unfortunately, the neutrino parser does not allow default settings,
the default is always "0"):
* bandwidth:
"0"-8MHz "1"-7MHz "2"-6MHz "3"-AUTO
* constellation:
"0"-QPSK "1"-QAM16 "2"-QAM32 "3"-QAM64 "4"-QAM128 "5"-QAM256 "6"-AUTO
* transmission_mode:
"0"-2k "1"-8k "2"-AUTO
* code_rate_[HL]P:
"0"-NONE "1"-1/2 "2"-2/3 "3"-3/4 "4"-4/5 "5"-5/6 "6"-6/7 "7"-7/8 "8"-8/9 "9"-AUTO
* guard_interval:
"0"-1/32 "1"-1/16 "2"-1/8 "3"-1/4 "4"-AUTO
* hierarchy:
"0"-NONE "1"-1 "2"-2 "3"-4 "4"-AUTO -->
<locations>
<terrestrial name="auto-Default" flags="5">
<transponder frequency="177500" bandwidth="1" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="184500" bandwidth="1" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="191500" bandwidth="1" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="198500" bandwidth="1" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="205500" bandwidth="1" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="212500" bandwidth="1" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="219500" bandwidth="1" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="226500" bandwidth="1" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="474000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="482000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="490000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="498000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="506000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="514000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="522000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="530000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="538000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="546000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="554000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="562000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="570000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="578000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="586000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="594000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="602000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="610000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="618000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="626000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="634000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="642000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="650000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="658000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="666000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="674000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="682000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="690000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="698000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="706000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="714000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="722000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="730000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="738000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="746000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="754000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="762000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="770000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="778000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="786000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="794000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="802000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="810000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="818000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="826000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="834000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="842000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="850000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
<transponder frequency="858000" bandwidth="0" constellation="6" transmission_mode="2" code_rate_HP="9" code_rate_LP="9" guard_interval="4" hierarchy="0" />
</terrestrial>
</locations>