- for line in lines:
- data = line.split()
- if len(data):
- print data
- if data[0] == 'OK':
- parm = eDVBFrontendParametersSatellite()
- sys = { "DVB-S" : eDVBFrontendParametersSatellite.System_DVB_S,
- "DVB-S2" : eDVBFrontendParametersSatellite.System_DVB_S2 }
- qam = { "QPSK" : parm.Modulation_QPSK,
- "8PSK" : parm.Modulation_8PSK }
- inv = { "INVERSION_OFF" : parm.Inversion_Off,
- "INVERSION_ON" : parm.Inversion_On,
- "INVERSION_AUTO" : parm.Inversion_Unknown }
- fec = { "FEC_AUTO" : parm.FEC_Auto,
- "FEC_1_2" : parm.FEC_1_2,
- "FEC_2_3" : parm.FEC_2_3,
- "FEC_3_4" : parm.FEC_3_4,
- "FEC_5_6": parm.FEC_5_6,
- "FEC_7_8" : parm.FEC_7_8,
- "FEC_8_9" : parm.FEC_8_9,
- "FEC_3_5" : parm.FEC_3_5,
- "FEC_9_10" : parm.FEC_9_10,
- "FEC_NONE" : parm.FEC_None }
- roll = { "ROLLOFF_20" : parm.RollOff_alpha_0_20,
- "ROLLOFF_25" : parm.RollOff_alpha_0_25,
- "ROLLOFF_35" : parm.RollOff_alpha_0_35 }
- pilot = { "PILOT_ON" : parm.Pilot_On,
- "PILOT_OFF" : parm.Pilot_Off }
- pol = { "HORIZONTAL" : parm.Polarisation_Horizontal,
- "VERTICAL" : parm.Polarisation_Vertical }
-
- sat = self.satList[0][self.scan_satselection[0].index]
- parm.orbital_position = sat[0]
-
- parm.polarisation = pol[data[1]]
- parm.frequency = int(data[2])
- parm.symbol_rate = int(data[3])
- parm.system = sys[data[4]]
- parm.inversion = inv[data[5]]
- parm.pilot = pilot[data[6]]
- parm.fec = fec[data[7]]
- parm.modulation = qam[data[8]]
- parm.rolloff = roll[data[9]]
- self.__tlist.append(parm)
- flags = None
+ <widget name="config" position="5,70" size="550,280" scrollbarMode="showOnDemand" />
+ <widget name="introduction" position="0,365" size="560,20" font="Regular;20" halign="center" />
+ </screen>
+ """
+
+ def __init__(self, session):
+ Screen.__init__(self, session)
+
+ self.current_play_service = self.session.nav.getCurrentlyPlayingServiceReference()
+
+ # update sat list
+ self.satList = []
+ for slot in nimmanager.nim_slots:
+ if slot.isCompatible("DVB-S"):
+ self.satList.append(nimmanager.getSatListForNim(slot.slot))
+ else:
+ self.satList.append(None)
+
+ # make config
+ self.createConfig()
+
+ self.list = []
+ self.status = ""
+
+ ConfigListScreen.__init__(self, self.list)
+ if self.scan_nims.value != None and self.scan_nims.value != "" :
+ self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions", "WizardActions", "ColorActions", "SetupActions", ],
+ {
+ "red": self.keyCancel,
+ "green": self.keyGo,
+ "blue":self.keyGoAll,
+ "ok": self.keyGo,
+ "cancel": self.keyCancel,
+ }, -2)
+ self["key_red"] = StaticText(_("Exit"))
+ self["key_green"] = StaticText("Scan")
+ self["key_blue"] = StaticText("Scan All")
+ self["introduction"] = Label(_("Press Green/OK to start the scan"))
+ self.createSetup()
+ else :
+ self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions", "WizardActions", "ColorActions", "SetupActions", ],
+ {
+ "red": self.keyCancel,
+ "green": self.keyNone,
+ "blue":self.keyNone,
+ "ok": self.keyNone,
+ "cancel": self.keyCancel,
+ }, -2)
+ self["key_red"] = StaticText(_("Exit"))
+ self["key_green"] = StaticText(" ")
+ self["key_blue"] = StaticText(" ")
+ self["introduction"] = Label(_("Please setup your tuner configuration."))
+
+ self.i2c_mapping_table = None
+ self.nimSockets = self.ScanNimsocket()
+ self.makeNimSocket()
+
+ def ScanNimsocket(self, filepath = '/proc/bus/nim_sockets'):
+ _nimSocket = {}
+ fp = file(filepath)
+
+ sNo, sName, sI2C = -1, "", -1
+ for line in fp:
+ line = line.strip()
+ if line.startswith('NIM Socket'):
+ sNo, sName, sI2C = -1, '', -1
+ try: sNo = line.split()[2][:-1]
+ except: sNo = -1
+ elif line.startswith('I2C_Device:'):
+ try: sI2C = line.split()[1]
+ except: sI2C = -1
+ elif line.startswith('Name:'):
+ splitLines = line.split()
+ try:
+ if splitLines[1].startswith('BCM'):
+ sName = splitLines[1]
+ else:
+ sName = splitLines[3][4:-1]
+ except: sName = ""
+ if sNo >= 0 and sName != "":
+ if sName.startswith('BCM'):
+ sI2C = sNo
+ if sI2C != -1:
+ _nimSocket[sNo] = [sName, sI2C]
+ else: _nimSocket[sNo] = [sName]
+ fp.close()
+ print "parsed nimsocket :", _nimSocket
+ return _nimSocket
+
+ def makeNimSocket(self, nimname=""):
+ is_exist_i2c = False
+ self.i2c_mapping_table = {0:2, 1:3, 2:1, 3:0}
+ if self.nimSockets is not None:
+ for XX in self.nimSockets.keys():
+ nimsocket = self.nimSockets[XX]
+ if len(nimsocket) > 1:
+ try: self.i2c_mapping_table[int(XX)] = int(nimsocket[1])
+ except: continue
+ is_exist_i2c = True
+ print "i2c_mapping_table :", self.i2c_mapping_table, ", is_exist_i2c :", is_exist_i2c
+ if is_exist_i2c: return
+
+ if nimname == "AVL6222":
+ model = _modelName #file('/proc/stb/info/vumodel').read().strip()
+ if model == "uno":
+ self.i2c_mapping_table = {0:3, 1:3, 2:1, 3:0}
+ elif model == "duo2":
+ nimdata = self.nimSockets['0']
+ try:
+ if nimdata[0] == "AVL6222":
+ self.i2c_mapping_table = {0:2, 1:2, 2:4, 3:4}
+ else: self.i2c_mapping_table = {0:2, 1:4, 2:4, 3:0}
+ except: self.i2c_mapping_table = {0:2, 1:4, 2:4, 3:0}
+ else: self.i2c_mapping_table = {0:2, 1:4, 2:0, 3:0}
+ else: self.i2c_mapping_table = {0:2, 1:3, 2:1, 3:0}
+
+ def getNimSocket(self, slot_number):
+ if slot_number < 0 or slot_number > 3:
+ return -1
+ return self.i2c_mapping_table[slot_number]
+
+ def keyNone(self):
+ None
+ def callbackNone(self, *retval):
+ None