diff --git a/tv/genconf/gen_conf.py b/tv/genconf/gen_conf.py new file mode 100755 index 00000000..6f9e3c6b --- /dev/null +++ b/tv/genconf/gen_conf.py @@ -0,0 +1,20 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- + +""" Script de lancement de mumudvb + +Auteur : Frederic Pauget + Brice Dubost +Licence : GPLv2 +""" +import sys, getopt, os + +#On importe les cartes +from sat_conf import conf +cartes = conf + +# On genre la conf +for carte in cartes : + eval('carte.start()') + + diff --git a/tv/genconf/sat_base.py b/tv/genconf/sat_base.py new file mode 100755 index 00000000..31158c16 --- /dev/null +++ b/tv/genconf/sat_base.py @@ -0,0 +1,371 @@ +#! /usr/bin/env python +# -*- coding: iso8859-15 -*- + +""" +Configuration de base des différents transpondeurs disponibles +Ce fichier contient la liste des chaines pour chaque transpondeur. + +Pour chaque chaine, on doit indiquer le nom de la chaine et au minimum : +- Le pid audio +- Le pid video +- Le pid PMT, ce pid contient la liste des differents flux associes a une chaine +VLC a besoin de ce PID pour lire le flux + +Les pids facultatifs sont les suivants : +- Le PID PCR qui indique la base de temps (Program Clock Reference) +et permet de mieux reconstituer les flux un peu defecteux, et sert +aussi pour synchroniser les informations teletexte. +Il est conseille de le mettre, et il est souvent present avec le +flux video (cas de la TNT) +- Les PIDs de teletexte +""" + +#Auteur : Frédéric Pauget +#Maintenance et adaptations : DUBOST Brice +#Licence : GPLv2 + +from commands import getoutput +from time import sleep +import os, socket + +IP = socket.gethostbyaddr(socket.gethostname())[-1][0] + +class CarteOqp(Exception) : + """ La carte est déja utilisée """ + +class NotRunning(Exception) : + """ La carte ne diffuse rien """ + +class carte : + """ Classe parent de toute classe de transpondeur """ + # Niveux de verbosite : + # 0 : ne dit rien + # 1 : messages à caractères informatifs + # 2 : messages de debug + # 3 : ne permet pas à mumudvb de daemonizer + verbose = 3 + + CONF_FILE = "/etc/sat/carte%i.conf" # %i : numero de la carte + + timeout_accord=20 #en secondes + timeout_no_diff=60 #en secondes + + entete_conf = """### Fichier généré, NE PAS EDITER +autoconfiguration=1 +sap=1 +sap_organisation=crans +common_port=1234 +freq=%(freq)i +pol=%(pol)s +srate=%(srate)i +card=%(card)i +timeout_accord=%(timeout_accord)i +timeout_no_diff=%(timeout_no_diff)i +#----- +""" + + entete_conf_TNT = """### Fichier généré, NE PAS EDITER +autoconfiguration=1 +sap=1 +sap_organisation=crans +common_port=1234 +freq=%(freq)i +qam=%(qam)s +trans_mode=%(trans_mode)s +bandwidth=%(bandwidth)s +guardinterval=%(guardinterval)s +coderate=%(coderate)s +card=%(card)i +timeout_accord=%(timeout_accord)i +timeout_no_diff=%(timeout_no_diff)i +""" + + chaine_template = """ip=%(ip)s +sap_group=%(sap_group)s +name=%(name)s +pids=%(pids)s +#----- +""" + + autoconf2_template = """common_port=1234 +autoconfiguration=2 +autoconf_ip_header=%(ip)s +sap_default_group=various +#----- +""" + + + def __cmp__(a,b) : + for attr in ( 'card', 'freq', 'chaines' ) : + if getattr(a,attr) != getattr(b,attr) : + return -2 + return 0 + + def __init__(self,card) : + """ Initalisation card est le numéro (entier) de la carte + correspondante """ + try : + self.freq = int(str(self.__class__).split('_')[-1]) + except : + # On ne pourra pas faire grand chose à part killer le flux de la carte + self.freq = '' + pass + self.card = card + + def gen_conf(self) : + """ Génère le fichier de conf """ + if not self.freq : + if self.verbose > 1 : print "Instance ne permettant pas la génération de la conf" + return + + fd = open(self.CONF_FILE % self.card,'w') + # Entète du fichier + try: + fd.write( self.entete_conf_TNT % + { 'qam' : self.qam, 'trans_mode' : self.trans_mode , + 'bandwidth' : self.bandwidth, 'guardinterval' : self.guardinterval , + 'coderate' : self.coderate, + 'freq' : self.freq , 'card' : self.card , + 'timeout_accord' : self.timeout_accord , + 'timeout_no_diff' : self.timeout_no_diff } ) + except: + fd.write( self.entete_conf % + { 'pol' : self.pol, 'srate' : self.srate , + 'freq' : self.freq , 'card' : self.card , + 'timeout_accord' : self.timeout_accord , + 'timeout_no_diff' : self.timeout_no_diff } ) + + # Chaines + n = 0 + for pids, (sap_group, name) in self.chaines.items() : + ip = '239.%s.20%i.2%02i' % ( IP.split('.')[-1], self.card, n) + n += 1 + fd.write(self.chaine_template % vars()) + + #Si pas de chaines, on passe en autoconfiguration=2 + if not n : + ip = '239.%s' % ( IP.split('.')[-1]) + fd.write(self.autoconf2_template % { "ip" : ip}) + + fd.close() + + def start(self) : + """ Lance la diffusion """ + if not self.freq : + if self.verbose > 1 : print "Instance ne permettant pas le lancement d'un flux" + return + + if self.verbose >0 : + print "Generation de la conf de %s sur la carte %i" % (str(self.__class__).split('.')[-1], self.card) + + self.gen_conf() + if self.verbose >0 : print " OK" + + +class Hotbird_10853(carte) : + pol='h' + srate=27500 + chaines = {} + +class Hotbird_11137(carte) : + pol='h' + srate=27500 + chaines = { + '717' : ('fra' , 'fra TV5MONDE FBS'), + '719' : ('fra' , 'fra TV5MONDE Europe'), + '262' : ('ara' , 'ara ANN'), + '263' : ('ara' , 'ara Kurdistan TV'), + '264' : ('ita' , 'ita Videolina')} + +class Hotbird_11200(carte) : #A mettre a jour + pol='V' + srate=27500 + chaines = { + '366 367 2560' : ('ita' , 'ita Elite shopping TV'), + '386 387 512' : ('x-ero' , 'x-ero All Sex'), + '397 398 399' : ('ita' , 'ita StarSat'), + '394 395 4864' : ('ita' , 'ita Play TV'), + '400 404 402' : ('ita' , 'ita People TV'), + '405 406 407' : ('ita' , 'ita Roma Sat')} + +class Hotbird_11240(carte) : + pol='v' + srate=27500 + chaines = { + '244' : ('fra' , 'fra France 24'), + '247' : ('eng' , 'eng France 24'), + '401' : ('fra' , 'fra RTBF sat')} + +class Hotbird_11604(carte) : + pol='h' + srate=27500 + chaines = { + '500' : ('ita' , 'ita TLA'), + '600' : ('ger' , 'ger Das Erste'), + '700' : ('ger' , 'ger DW TV'), + '800' : ('divers' , 'divers DW tv arabic (ara eng ger)'), + '900' : ('ger' , 'ger RTL2 Schweiz'), + '3500' : ('eng' , 'eng Cool TV'), + '2600' : ('ger' , 'ger Erde Mensch'), + '1600' : ('x-ero' , 'x-ero hot arab tv'), + '3200' : ('x-ero' , 'x-ero xxx Action TV')} + +class Hotbird_11623(carte) : + pol='v' + srate=27500 + chaines = {} + +class Hotbird_11642(carte) : + pol='h' + srate=27500 + chaines = { + '1360 1320 5003' : ('eng' , 'eng Bloomberg Europe'), + '1460 1420 5004' : ('ger' , 'ger Bloomberg TV Deutschland'), + '1560 1520 5005' : ('eng' , 'eng Bloomberg U.K.'), + '2101 2111 256 128 2121' : ('gr' , 'gr ERT Sat')} + +class Hotbird_11727(carte) : + pol='v' + srate=27500 + chaines = { + '2711 2712 257 2710' : ('fra' , 'fra La Locale'), + '2791 2792 269' : ('ita' , 'ita Sicilia International (SET)'), + '2751 2752 266' : ('ita' , 'ita Sardegna Uno Sat'), + '6507 6662' : ('radios' , 'rad eng BBC English (Europe)'), + '6510 6692' : ('radios' , 'rad eng BBC English News'), + '7302 6571' : ('radios' , 'rad eng BBC Feed 1'), + '7312 6572' : ('radios' , 'rad eng BBC Feed 2'), + '7322 6573' : ('radios' , 'rad eng BBC Feed 3'), + '7332 6574' : ('radios' , 'rad eng BBC Feed 4'), + '7342 6575' : ('radios' , 'rad eng BBC Feed 5'), + '7352 6576' : ('radios' , 'rad eng BBC Feed 6')} + +# Pour remplacer 10796 +class Hotbird_11766(carte) : + pol='v' + srate=27500 + chaines = { + '1104' : ('ita' , 'ita Rai Uno'), + '1105' : ('ita' , 'ita Rai Duo'), + '1106' : ('ita' , 'ita Rai Tre'), + '260' : ('ita' , 'ita Rai Med'), + '1107' : ('ita' , 'ita eng Senato italiano'), + '1107' : ('eng' , 'eng ita Senato italiano'), + '261' : ('ita' , 'ita Rai Edu2')} + +class Hotbird_11727(carte) : + pol='v' + srate=27500 + chaines = {} + +class Hotbird_11054(carte) : + pol='h' + srate=27500 + chaines = {} + +class Hotbird_12111(carte) : + pol='v' + srate=27500 + chaines = { + '1028' : ('ara' , 'ara Al Jazeera Documentary'), + '1029' : ('ara' , 'ara Al Jazeera Mubasher'), + '1030' : ('ita' , 'ita ACM - Architecture Construction Materials'), + '1031' : ('ara' , 'ara Al Jazeera Satellite Channel'), + '1032' : ('ita' , 'ita Silicia Channel'), + '1034' : ('ita' , 'ita High life TV'), + '1040' : ('ita' , 'ita Radio Radio TV'), + '1042' : ('ita' , 'ita MediterraneoSat 1')} + +class Hotbird_12476(carte) : + pol='h' + srate=27500 + chaines = { + #2M don't support autoconfiguration + '600 601 602' : ('ara' , 'ara fra 2M'), + '600 603' : ('ara' , 'ara radio 2M'), + '550' : ('x-ero' , 'x-ero X Stream')} + +class Hotbird_12558(carte) : #outdated + pol='v' + srate=27500 + chaines = { + '6660 6661 6659' : ('ita' , 'ita Administra.it'), + '6916 6917 6915 6930' : ('ita' , 'ita 24 Ore')} + +class Hotbird_12597(carte) : + pol='v' + srate=27500 + chaines = { + '1024' : ('rus' , 'rus sport planeta'), + '1027' : ('eng' , 'eng BBC World'), + '1031' : ('rus' , 'rus ORT International'), + '1032' : ('eng' , 'eng CNN'), + '1034' : ('fra' , 'fra autres Euronews'), + '1034 2221 2232 768' : ('eng' , 'eng Euronews')} + +class Hotbird_12673(carte) : #outdated + pol='v' + srate=27500 + chaines = { + '308 309 306 307' : ('ara' , 'ara Al Maghribiyah'), + '35 36 33 34 38' : ('ara' , 'ara TVM inter l'), + '46 47 44 45' : ('ara' , 'ara Arabiaa')} + +class TNT_base(carte) : + qam="auto" + trans_mode="auto" + guardinterval="auto" + coderate="auto" + bandwidth="8MHz" + +class TNT_R1_586000(TNT_base) : + chaines = { + '110' : ('fra' , 'fra TNT02 France 2'), + '210' : ('fra' , 'fra TNT03 France 3'), + '310' : ('fra' , 'fra TNT05 France 5'), + '510' : ('fra' , 'fra TNT07 Arte'), + '510 520 531 542' : ('ger' , 'ger Arte'), + '610' : ('fra' , 'fra TNT13 LCP Public Senat'), + '710' : ('fra' , 'fra TNT20 France O')} + +class TNT_R2_474000(TNT_base) : + chaines = { + '1280' : ('fra' , 'fra TNT08 Direct 8'), + '1282' : ('fra' , 'fra TNT15 BFM TV'), + '1283' : ('fra' , 'fra TNT16 i tele'), + '1284' : ('fra' , 'fra TNT17 Virgin17'), + '1286' : ('fra' , 'fra TNT14 France 4'), + '1285' : ('fra' , 'fra TNT18 Gulli')} + +#les pids ont tendance a changer souvent pour canal, on en met le plus possible +class TNT_R3_522000(TNT_base) : + chaines = { + '1280 80 81 83 32 33 170 120 121 123 62 52' : ('fra' , 'fra TNT04 Canal')} + +class TNT_R4_498000(TNT_base) : + chaines = { + '110' : ('fra' , 'fra TNT06 M6'), + '210' : ('fra' , 'fra TNT09 W9'), + '310' : ('fra' , 'fra TNT11 NT1'), + '710' : ('fra' , 'fra TNT57 Arte HD')} + +class TNT_R5_538000(TNT_base) : + chaines = { + '110' : ('fra' , 'fra TNT51 TF1 HD'), + '210' : ('fra' , 'fra TNT52 France 2 HD'), + '310' : ('fra' , 'fra TNT56 M6 HD')} + +class TNT_R6_562000(TNT_base) : + chaines = { + '100' : ('fra' , 'fra TNT01 TF1'), + '600' : ('fra' , 'fra TNT10 TMC'), + '200' : ('fra' , 'fra TNT12 NRJ12')} + +class TNT_R7_490000(TNT_base) : + chaines = { + '4321' : ('fra' , 'fra TNT21 Canal 21 : Cinaps TV, BDM TV, Bocal TV, Demain TV'), + '4322' : ('fra' , 'fra TNT22 IDF1'), + '4323' : ('fra' , 'fra TNT23 NRJ Paris'), + '4324' : ('fra' , 'fra TNT24 Cap 24')} + + diff --git a/tv/sat_conf.py b/tv/genconf/sat_conf.py old mode 100644 new mode 100755 similarity index 100% rename from tv/sat_conf.py rename to tv/genconf/sat_conf.py diff --git a/tv/genconf/sat_genconf.py b/tv/genconf/sat_genconf.py new file mode 100755 index 00000000..9851d26e --- /dev/null +++ b/tv/genconf/sat_genconf.py @@ -0,0 +1,371 @@ +#! /usr/bin/env python +# -*- coding: iso8859-15 -*- + +""" +Configuration de base des différents transpondeurs disponibles +Ce fichier contient la liste des chaines pour chaque transpondeur. + +Pour chaque chaine, on doit indiquer le nom de la chaine et au minimum : +- Le pid audio +- Le pid video +- Le pid PMT, ce pid contient la liste des differents flux associes a une chaine +VLC a besoin de ce PID pour lire le flux + +Les pids facultatifs sont les suivants : +- Le PID PCR qui indique la base de temps (Program Clock Reference) +et permet de mieux reconstituer les flux un peu defecteux, et sert +aussi pour synchroniser les informations teletexte. +Il est conseille de le mettre, et il est souvent present avec le +flux video (cas de la TNT) +- Les PIDs de teletexte +""" + +#Auteur : Frédéric Pauget +#Maintenance et adaptations : DUBOST Brice +#Licence : GPLv2 + +from commands import getoutput +from time import sleep +import os, socket + +IP = socket.gethostbyaddr(socket.gethostname())[-1][0] + +class CarteOqp(Exception) : + """ La carte est déja utilisée """ + +class NotRunning(Exception) : + """ La carte ne diffuse rien """ + +class carte : + """ Classe parent de toute classe de transpondeur """ + # Niveux de verbosite : + # 0 : ne dit rien + # 1 : messages à caractères informatifs + # 2 : messages de debug + # 3 : ne permet pas à mumudvb de daemonizer + verbose = 3 + + CONF_FILE = "/etc/sat/carte%i.conf" # %i : numero de la carte + + timeout_accord=20 #en secondes + timeout_no_diff=60 #en secondes + + entete_conf = """### Fichier généré, NE PAS EDITER +autoconfiguration=1 +sap=1 +sap_organisation=crans +common_port=1234 +freq=%(freq)i +pol=%(pol)s +srate=%(srate)i +card=%(card)i +timeout_accord=%(timeout_accord)i +timeout_no_diff=%(timeout_no_diff)i +#----- +""" + + entete_conf_TNT = """### Fichier généré, NE PAS EDITER +autoconfiguration=1 +sap=1 +sap_organisation=crans +common_port=1234 +freq=%(freq)i +qam=%(qam)s +trans_mode=%(trans_mode)s +bandwidth=%(bandwidth)s +guardinterval=%(guardinterval)s +coderate=%(coderate)s +card=%(card)i +timeout_accord=%(timeout_accord)i +timeout_no_diff=%(timeout_no_diff)i +""" + + chaine_template = """ip=%(ip)s +sap_group=%(sap_group)s +name=%(name)s +pids=%(pids)s +#----- +""" + + autoconf2_template = """common_port=1234 +autoconfiguration=2 +autoconf_ip_header=%(ip)s +sap_default_group=various +#----- +""" + + + def __cmp__(a,b) : + for attr in ( 'card', 'freq', 'chaines' ) : + if getattr(a,attr) != getattr(b,attr) : + return -2 + return 0 + + def __init__(self,card) : + """ Initalisation card est le numéro (entier) de la carte + correspondante """ + try : + self.freq = int(str(self.__class__).split('_')[-1]) + except : + # On ne pourra pas faire grand chose à part killer le flux de la carte + self.freq = '' + pass + self.card = card + + def gen_conf(self) : + """ Génère le fichier de conf """ + if not self.freq : + if self.verbose > 1 : print "Instance ne permettant pas la génération de la conf" + return + + fd = open(self.CONF_FILE % self.card,'w') + # Entète du fichier + try: + fd.write( self.entete_conf_TNT % + { 'qam' : self.qam, 'trans_mode' : self.trans_mode , + 'bandwidth' : self.bandwidth, 'guardinterval' : self.guardinterval , + 'coderate' : self.coderate, + 'freq' : self.freq , 'card' : self.card , + 'timeout_accord' : self.timeout_accord , + 'timeout_no_diff' : self.timeout_no_diff } ) + except: + fd.write( self.entete_conf % + { 'pol' : self.pol, 'srate' : self.srate , + 'freq' : self.freq , 'card' : self.card , + 'timeout_accord' : self.timeout_accord , + 'timeout_no_diff' : self.timeout_no_diff } ) + + # Chaines + n = 0 + for pids, (sap_group, name) in self.chaines.items() : + ip = '239.%s.20%i.2%02i' % ( IP.split('.')[-1], self.card, n) + n += 1 + fd.write(self.chaine_template % vars()) + + #Si pas de chaines, on passe en autoconfiguration=2 + if not n : + ip = '239.%s' % ( IP.split('.')[-1]) + fd.write(self.autoconf2_template % { "ip" : ip}) + + fd.close() + + def start(self) : + """ Lance la diffusion """ + if not self.freq : + if self.verbose > 1 : print "Instance ne permettant pas le lancement d'un flux" + return + + if self.verbose >0 : + print "Generation de la conf de %s sur la carte %i" % (str(self.__class__).split('.')[-1], self.card) + + self.gen_conf() + if self.verbose >0 : print "OK" + + +class Hotbird_10853(carte) : + pol='h' + srate=27500 + chaines = {} + +class Hotbird_11137(carte) : + pol='h' + srate=27500 + chaines = { + '717' : ('fra' , 'fra TV5MONDE FBS'), + '719' : ('fra' , 'fra TV5MONDE Europe'), + '262' : ('ara' , 'ara ANN'), + '263' : ('ara' , 'ara Kurdistan TV'), + '264' : ('ita' , 'ita Videolina')} + +class Hotbird_11200(carte) : #A mettre a jour + pol='V' + srate=27500 + chaines = { + '366 367 2560' : ('ita' , 'ita Elite shopping TV'), + '386 387 512' : ('x-ero' , 'x-ero All Sex'), + '397 398 399' : ('ita' , 'ita StarSat'), + '394 395 4864' : ('ita' , 'ita Play TV'), + '400 404 402' : ('ita' , 'ita People TV'), + '405 406 407' : ('ita' , 'ita Roma Sat')} + +class Hotbird_11240(carte) : + pol='v' + srate=27500 + chaines = { + '244' : ('fra' , 'fra France 24'), + '247' : ('eng' , 'eng France 24'), + '401' : ('fra' , 'fra RTBF sat')} + +class Hotbird_11604(carte) : + pol='h' + srate=27500 + chaines = { + '500' : ('ita' , 'ita TLA'), + '600' : ('ger' , 'ger Das Erste'), + '700' : ('ger' , 'ger DW TV'), + '800' : ('divers' , 'divers DW tv arabic (ara eng ger)'), + '900' : ('ger' , 'ger RTL2 Schweiz'), + '3500' : ('eng' , 'eng Cool TV'), + '2600' : ('ger' , 'ger Erde Mensch'), + '1600' : ('x-ero' , 'x-ero hot arab tv'), + '3200' : ('x-ero' , 'x-ero xxx Action TV')} + +class Hotbird_11623(carte) : + pol='v' + srate=27500 + chaines = {} + +class Hotbird_11642(carte) : + pol='h' + srate=27500 + chaines = { + '1360 1320 5003' : ('eng' , 'eng Bloomberg Europe'), + '1460 1420 5004' : ('ger' , 'ger Bloomberg TV Deutschland'), + '1560 1520 5005' : ('eng' , 'eng Bloomberg U.K.'), + '2101 2111 256 128 2121' : ('gr' , 'gr ERT Sat')} + +class Hotbird_11727(carte) : + pol='v' + srate=27500 + chaines = { + '2711 2712 257 2710' : ('fra' , 'fra La Locale'), + '2791 2792 269' : ('ita' , 'ita Sicilia International (SET)'), + '2751 2752 266' : ('ita' , 'ita Sardegna Uno Sat'), + '6507 6662' : ('radios' , 'rad eng BBC English (Europe)'), + '6510 6692' : ('radios' , 'rad eng BBC English News'), + '7302 6571' : ('radios' , 'rad eng BBC Feed 1'), + '7312 6572' : ('radios' , 'rad eng BBC Feed 2'), + '7322 6573' : ('radios' , 'rad eng BBC Feed 3'), + '7332 6574' : ('radios' , 'rad eng BBC Feed 4'), + '7342 6575' : ('radios' , 'rad eng BBC Feed 5'), + '7352 6576' : ('radios' , 'rad eng BBC Feed 6')} + +# Pour remplacer 10796 +class Hotbird_11766(carte) : + pol='v' + srate=27500 + chaines = { + '1104' : ('ita' , 'ita Rai Uno'), + '1105' : ('ita' , 'ita Rai Duo'), + '1106' : ('ita' , 'ita Rai Tre'), + '260' : ('ita' , 'ita Rai Med'), + '1107' : ('ita' , 'ita eng Senato italiano'), + '1107' : ('eng' , 'eng ita Senato italiano'), + '261' : ('ita' , 'ita Rai Edu2')} + +class Hotbird_11727(carte) : + pol='v' + srate=27500 + chaines = {} + +class Hotbird_11054(carte) : + pol='h' + srate=27500 + chaines = {} + +class Hotbird_12111(carte) : + pol='v' + srate=27500 + chaines = { + '1028' : ('ara' , 'ara Al Jazeera Documentary'), + '1029' : ('ara' , 'ara Al Jazeera Mubasher'), + '1030' : ('ita' , 'ita ACM - Architecture Construction Materials'), + '1031' : ('ara' , 'ara Al Jazeera Satellite Channel'), + '1032' : ('ita' , 'ita Silicia Channel'), + '1034' : ('ita' , 'ita High life TV'), + '1040' : ('ita' , 'ita Radio Radio TV'), + '1042' : ('ita' , 'ita MediterraneoSat 1')} + +class Hotbird_12476(carte) : + pol='h' + srate=27500 + chaines = { + #2M don't support autoconfiguration + '600 601 602' : ('ara' , 'ara fra 2M'), + '600 603' : ('ara' , 'ara radio 2M'), + '550' : ('x-ero' , 'x-ero X Stream')} + +class Hotbird_12558(carte) : #outdated + pol='v' + srate=27500 + chaines = { + '6660 6661 6659' : ('ita' , 'ita Administra.it'), + '6916 6917 6915 6930' : ('ita' , 'ita 24 Ore')} + +class Hotbird_12597(carte) : + pol='v' + srate=27500 + chaines = { + '1024' : ('rus' , 'rus sport planeta'), + '1027' : ('eng' , 'eng BBC World'), + '1031' : ('rus' , 'rus ORT International'), + '1032' : ('eng' , 'eng CNN'), + '1034' : ('fra' , 'fra autres Euronews'), + '1034 2221 2232 768' : ('eng' , 'eng Euronews')} + +class Hotbird_12673(carte) : #outdated + pol='v' + srate=27500 + chaines = { + '308 309 306 307' : ('ara' , 'ara Al Maghribiyah'), + '35 36 33 34 38' : ('ara' , 'ara TVM inter l'), + '46 47 44 45' : ('ara' , 'ara Arabiaa')} + +class TNT_base(carte) : + qam="auto" + trans_mode="auto" + guardinterval="auto" + coderate="auto" + bandwidth="8MHz" + +class TNT_R1_586000(TNT_base) : + chaines = { + '110' : ('fra' , 'fra TNT02 France 2'), + '210' : ('fra' , 'fra TNT03 France 3'), + '310' : ('fra' , 'fra TNT05 France 5'), + '510' : ('fra' , 'fra TNT07 Arte'), + '510 520 531 542' : ('ger' , 'ger Arte'), + '610' : ('fra' , 'fra TNT13 LCP Public Senat'), + '710' : ('fra' , 'fra TNT20 France O')} + +class TNT_R2_474000(TNT_base) : + chaines = { + '1280' : ('fra' , 'fra TNT08 Direct 8'), + '1282' : ('fra' , 'fra TNT15 BFM TV'), + '1283' : ('fra' , 'fra TNT16 i tele'), + '1284' : ('fra' , 'fra TNT17 Virgin17'), + '1286' : ('fra' , 'fra TNT14 France 4'), + '1285' : ('fra' , 'fra TNT18 Gulli')} + +#les pids ont tendance a changer souvent pour canal, on en met le plus possible +class TNT_R3_522000(TNT_base) : + chaines = { + '1280 80 81 83 32 33 170 120 121 123 62 52' : ('fra' , 'fra TNT04 Canal')} + +class TNT_R4_498000(TNT_base) : + chaines = { + '110' : ('fra' , 'fra TNT06 M6'), + '210' : ('fra' , 'fra TNT09 W9'), + '310' : ('fra' , 'fra TNT11 NT1'), + '710' : ('fra' , 'fra TNT57 Arte HD')} + +class TNT_R5_538000(TNT_base) : + chaines = { + '110' : ('fra' , 'fra TNT51 TF1 HD'), + '210' : ('fra' , 'fra TNT52 France 2 HD'), + '310' : ('fra' , 'fra TNT56 M6 HD')} + +class TNT_R6_562000(TNT_base) : + chaines = { + '100' : ('fra' , 'fra TNT01 TF1'), + '600' : ('fra' , 'fra TNT10 TMC'), + '200' : ('fra' , 'fra TNT12 NRJ12')} + +class TNT_R7_490000(TNT_base) : + chaines = { + '4321' : ('fra' , 'fra TNT21 Canal 21 : Cinaps TV, BDM TV, Bocal TV, Demain TV'), + '4322' : ('fra' , 'fra TNT22 IDF1'), + '4323' : ('fra' , 'fra TNT23 NRJ Paris'), + '4324' : ('fra' , 'fra TNT24 Cap 24')} + + diff --git a/tv/launch_sat.py b/tv/old/launch_sat.py similarity index 100% rename from tv/launch_sat.py rename to tv/old/launch_sat.py diff --git a/tv/sap.py b/tv/old/sap.py similarity index 100% rename from tv/sap.py rename to tv/old/sap.py diff --git a/tv/sat_base.py b/tv/old/sat_base.py similarity index 100% rename from tv/sat_base.py rename to tv/old/sat_base.py diff --git a/tv/old/sat_conf.py b/tv/old/sat_conf.py new file mode 100644 index 00000000..690376b5 --- /dev/null +++ b/tv/old/sat_conf.py @@ -0,0 +1,39 @@ +#! /usr/bin/env python +# -*- coding: iso-8859-15 -*- + +""" Défini les transpondeurs à associer à chacune des cartes """ + +from sat_base import * +from socket import gethostname + +host = gethostname() + +transpondeurs = { 'canard' : [ Hotbird_12476(0) , + Hotbird_11240(1) , + Hotbird_12597(2) , + TNT_R4_498000(4) , + Hotbird_11604(3) ], + 'lapin' : [ Hotbird_11727(0) , +# Hotbird_11623(1) , #Cette carte capte tres mal + TNT_R1_586000(2) , + TNT_R6_562000(3) , + TNT_R2_474000(4) ], + 'oie' : [ Hotbird_10853(0) , + Hotbird_11766(1) , + Hotbird_12111(2) , + Hotbird_11137(3) , + TNT_R7_490000(4) , +# TNT_R5_538000(4) , + TNT_R3_522000(5) ] + } + +conf = transpondeurs.get(host,[]) + +if __name__ == '__main__' : + import sys + if len(sys.argv) == 2 : + conf = transpondeurs.get(sys.argv[1],[]) + for t in conf : + print t, "sur la carte", t.card + for (sap_group, chaine) in t.chaines.values() : + print '\t%s\t: \t%s' % (sap_group,chaine)