Support turbo2.
[vuplus_dvbapp] / lib / python / Screens / ScanSetup.py
index fa3126b..87a58f7 100644 (file)
@@ -106,17 +106,24 @@ cable_autoscan_nimtype = {
 'SSH108' : 'ssh108',
 'TT3L10' : 'tt3l10',
 'TURBO' : 'vuplus_turbo_c',
+'TURBO2' : 'vuplus_turbo2_c',
 'TT2L08' : 'tt2l08',
-'BCM3148' : 'bcm3148'
+'BCM3148' : 'bcm3148',
+'BCM3158' : 'bcm3148',
 }
 
 terrestrial_autoscan_nimtype = {
 'SSH108' : 'ssh108_t2_scan',
 'TT3L10' : 'tt3l10_t2_scan',
 'TURBO' : 'vuplus_turbo_t',
-'TT2L08' : 'tt2l08_t2_scan'
+'TURBO2' : 'vuplus_turbo2_t',
+'TT2L08' : 'tt2l08_t2_scan',
+'BCM3466' : 'bcm3466'
 }
 
+dual_tuner_list = ('TT3L10', 'BCM3466')
+vtuner_need_idx_list = ('TURBO2')
+
 def GetDeviceId(filter, nim_idx):
        tuners={}
        device_id = 0
@@ -133,6 +140,17 @@ def GetDeviceId(filter, nim_idx):
                socket_id += 1
        return device_id
 
+def getVtunerId(filter, nim_idx):
+       idx_count = 1
+       for slot in nimmanager.nim_slots:
+               slot_idx = slot.slot
+               if filter in slot.description:
+                       if slot_idx == nim_idx :
+                               return "--idx " + str(idx_count)
+                       else:
+                               idx_count += 1
+       return ""
+
 def GetTerrestrial5VEnable(nim_idx):
        nim = nimmanager.nim_slots[nim_idx]
        return int(nim.config.terrestrial_5V.value)
@@ -227,6 +245,8 @@ class CableTransponderSearchSupport:
                                                        print "GetCommand ->", err
                                                        device_id = "--device=0"
 #                                              print nim_idx, nim_name, cable_autoscan_nimtype[nim_name], device_id
+                                       elif nim_name in vtuner_need_idx_list:
+                                               device_id = getVtunerId(nim_name, nim_idx)
                                        command = "%s %s" % (cable_autoscan_nimtype[nim_name], device_id)
                                        return command
                        except Exception, err:
@@ -450,14 +470,16 @@ class TerrestrialTransponderSearchSupport:
                        if nim_name is not None and nim_name != "":
                                device_id = ""
                                nim_name = nim_name.strip(':VTUNER').split(' ')[-1][4:-1]
-                               if nim_name == 'TT3L10':
+                               if nim_name in dual_tuner_list:
                                        try:
-                                               device_id = GetDeviceId('TT3L10', nim_idx)
+                                               device_id = GetDeviceId(nim_name, nim_idx)
                                                device_id = "--device %s" % (device_id)
                                        except Exception, err:
                                                print "terrestrialTransponderGetCmd ->", err
                                                device_id = "--device 0"
 #                                      print nim_idx, nim_name, terrestrial_autoscan_nimtype[nim_name], device_id
+                               elif nim_name in vtuner_need_idx_list:
+                                       device_id = getVtunerId(nim_name, nim_idx)
                                command = "%s %s" % (terrestrial_autoscan_nimtype[nim_name], device_id)
                                return command
                except Exception, err:
@@ -883,7 +905,11 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
                                (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2")),
                                (eDVBFrontendParametersSatellite.System_DVB_S2X, _("DVB-S2X"))]
 
-                       self.scan_sat.system = ConfigSelection(default = defaultSat["system"], choices = sat_choices)
+                       default_sat_system = defaultSat["system"]
+                       if default_sat_system not in sat_choices:
+                               default_sat_system = eDVBFrontendParametersSatellite.System_DVB_S
+
+                       self.scan_sat.system = ConfigSelection(default = default_sat_system, choices = sat_choices)
                        self.scan_sat.system_dvbs2x = ConfigSelection(default = defaultSat["system"], choices = sat_choices_dvbs2x)
                        self.scan_sat.frequency = ConfigInteger(default = defaultSat["frequency"], limits = (1, 99999))
                        self.scan_sat.inversion = ConfigSelection(default = defaultSat["inversion"], choices = [
@@ -1399,8 +1425,11 @@ class ScanSimple(ConfigListScreen, Screen, CableTransponderSearchSupport, Terres
                self.finished_cb = None
 
                for nim in nimmanager.nim_slots:
-                       # collect networks provided by this tuner
+                       # don't offer to scan nims if nothing is connected
+                       if not nimmanager.somethingConnected(nim.slot):
+                               continue
 
+                       # collect networks provided by this tuner
                        need_scan = False
                        networks = self.getNetworksForNim(nim)
                        
@@ -1414,10 +1443,6 @@ class ScanSimple(ConfigListScreen, Screen, CableTransponderSearchSupport, Terres
                                        need_scan = True
                                        print x, "not in ", known_networks
                                        known_networks.append(x)
-                                       
-                       # don't offer to scan nims if nothing is connected
-                       if not nimmanager.somethingConnected(nim.slot):
-                               need_scan = False                               
 
                        if need_scan:
                                nims_to_scan.append(nim)