23e6ea555e4e88e3f6fc482961553aa6a124ff40
[vuplus_openvuplus_3.0] / meta-bsp / recipes-vuplus / enigma2 / enigma2 / enigma2_vuplus_zero4k_blindscan.patch
1 diff --git a/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py b/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py
2 index aa80aa2a..d12a67e6 100755
3 --- a/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py
4 +++ b/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py
5 @@ -19,7 +19,7 @@ from Tools.Directories import resolveFilename, SCOPE_DEFAULTPARTITIONMOUNTDIR, S
6  from enigma import eTimer, eDVBFrontendParametersSatellite, eComponentScan, eDVBSatelliteEquipmentControl, eDVBFrontendParametersTerrestrial, eDVBFrontendParametersCable, eConsoleAppContainer, eDVBResourceManager, getDesktop
7  
8  _modelName = file('/proc/stb/info/vumodel').read().strip()
9 -_supportNimType = { 'AVL1208':'', 'AVL6222':'6222_', 'AVL6211':'6211_', 'BCM7356':'bcm7346_'}
10 +_supportNimType = { 'AVL1208':'', 'AVL6222':'6222_', 'AVL6211':'6211_', 'BCM7356':'bcm7346_', 'SI2166':'si2166_'}
11  
12  class Blindscan(ConfigListScreen, Screen):
13         skin =  """
14 @@ -502,57 +502,68 @@ class Blindscan(ConfigListScreen, Screen):
15                 for line in lines:
16                         data = line.split()
17                         print "cnt :", len(data), ", data :", data
18 -                       if len(data) >= 10:
19 -                               if data[0] == 'OK':
20 -                                       parm = eDVBFrontendParametersSatellite()
21 -                                       sys = { "DVB-S" : eDVBFrontendParametersSatellite.System_DVB_S,
22 -                                               "DVB-S2" : eDVBFrontendParametersSatellite.System_DVB_S2,
23 -                                               "DVB-S2X" : eDVBFrontendParametersSatellite.System_DVB_S2X}
24 -                                       qam = { "QPSK" : parm.Modulation_QPSK,
25 -                                               "8PSK" : parm.Modulation_8PSK}
26 -                                       inv = { "INVERSION_OFF" : parm.Inversion_Off,
27 -                                               "INVERSION_ON" : parm.Inversion_On,
28 -                                               "INVERSION_AUTO" : parm.Inversion_Unknown}
29 -                                       fec = { "FEC_AUTO" : parm.FEC_Auto,
30 -                                               "FEC_1_2" : parm.FEC_1_2,
31 -                                               "FEC_2_3" : parm.FEC_2_3,
32 -                                               "FEC_3_4" : parm.FEC_3_4,
33 -                                               "FEC_5_6": parm.FEC_5_6,
34 -                                               "FEC_7_8" : parm.FEC_7_8,
35 -                                               "FEC_8_9" : parm.FEC_8_9,
36 -                                               "FEC_3_5" : parm.FEC_3_5,
37 -                                               "FEC_9_10" : parm.FEC_9_10,
38 -                                               "FEC_NONE" : parm.FEC_None, 
39 -                                               "FEC_13_45" : parm.FEC_13_45, "FEC_9_20" : parm.FEC_9_20, "FEC_11_20" : parm.FEC_11_20, "FEC_23_36" : parm.FEC_23_36, "FEC_25_36" : parm.FEC_25_36,
40 -                                               "FEC_13_18" : parm.FEC_13_18, "FEC_26_45" : parm.FEC_26_45, "FEC_28_45" : parm.FEC_28_45, "FEC_7_9" : parm.FEC_7_9, "FEC_77_90" : parm.FEC_77_90,
41 -                                               "FEC_32_45" : parm.FEC_32_45, "FEC_11_15" : parm.FEC_11_15, "FEC_1_2_L" : parm.FEC_1_2_L, "FEC_8_15_L" : parm.FEC_8_15_L, "FEC_3_5_L" : parm.FEC_3_5_L,
42 -                                               "FEC_2_3_L" : parm.FEC_2_3_L, "FEC_5_9_L" : parm.FEC_5_9_L, "FEC_26_45_L" : parm.FEC_26_45_L}
43 -                                       roll ={ "ROLLOFF_20" : parm.RollOff_alpha_0_20,
44 -                                               "ROLLOFF_25" : parm.RollOff_alpha_0_25,
45 -                                               "ROLLOFF_35" : parm.RollOff_alpha_0_35}
46 -                                       pilot={ "PILOT_ON" : parm.Pilot_On,
47 -                                               "PILOT_OFF" : parm.Pilot_Off,
48 -                                               "PILOT_AUTO" : parm.Pilot_Unknown}
49 -                                       pol = { "HORIZONTAL" : parm.Polarisation_Horizontal,
50 -                                               "VERTICAL" : parm.Polarisation_Vertical}
51 -                                       try :
52 -                                               parm.orbital_position = self.orb_position
53 -                                               parm.polarisation = pol[data[1]]
54 -                                               parm.frequency = int(data[2])
55 -                                               parm.symbol_rate = int(data[3])
56 -                                               parm.system = sys[data[4]]
57 -                                               parm.inversion = inv[data[5]]
58 -                                               parm.pilot = pilot[data[6]]
59 -                                               parm.fec = fec[data[7]]
60 -                                               parm.modulation = qam[data[8]]
61 -                                               parm.rolloff = roll[data[9]]
62 -                                               parm.is_id = -1
63 -                                               parm.pls_mode = eDVBFrontendParametersSatellite.PLS_Unknown
64 -                                               parm.pls_code = 0
65 -                                               self.tmp_tplist.append(parm)
66 -                                       except: pass
67 +                       if len(data) >= 12: # multi stream channel
68 +                               is_id_list = data[11:]
69 +                               for is_id in is_id_list:
70 +                                       self.appendFrontendParams(data[:10] + [is_id])
71 +                       elif len(data) >= 10:
72 +                               self.appendFrontendParams(data + ["-1"])
73 +
74                 self.blindscan_session.close(True)
75  
76 +       def appendFrontendParams(self, data):
77 +               if data[0] == 'OK':
78 +                       parm = eDVBFrontendParametersSatellite()
79 +                       sys = { "DVB-S" : eDVBFrontendParametersSatellite.System_DVB_S,
80 +                               "DVB-S2" : eDVBFrontendParametersSatellite.System_DVB_S2,
81 +                               "DVB-S2X" : eDVBFrontendParametersSatellite.System_DVB_S2X}
82 +                       qam = { "QPSK" : parm.Modulation_QPSK,
83 +                               "8PSK" : parm.Modulation_8PSK,
84 +                               "16APSK" : parm.Modulation_16APSK,
85 +                               "32APSK" : parm.Modulation_32APSK,
86 +                               "8APSK" : parm.Modulation_8APSK}
87 +                       inv = { "INVERSION_OFF" : parm.Inversion_Off,
88 +                               "INVERSION_ON" : parm.Inversion_On,
89 +                               "INVERSION_AUTO" : parm.Inversion_Unknown}
90 +                       fec = { "FEC_AUTO" : parm.FEC_Auto,
91 +                               "FEC_1_2" : parm.FEC_1_2,
92 +                               "FEC_2_3" : parm.FEC_2_3,
93 +                               "FEC_3_4" : parm.FEC_3_4,
94 +                               "FEC_5_6": parm.FEC_5_6,
95 +                               "FEC_7_8" : parm.FEC_7_8,
96 +                               "FEC_8_9" : parm.FEC_8_9,
97 +                               "FEC_3_5" : parm.FEC_3_5,
98 +                               "FEC_9_10" : parm.FEC_9_10,
99 +                               "FEC_NONE" : parm.FEC_None,
100 +                               "FEC_13_45" : parm.FEC_13_45, "FEC_9_20" : parm.FEC_9_20, "FEC_11_20" : parm.FEC_11_20, "FEC_23_36" : parm.FEC_23_36, "FEC_25_36" : parm.FEC_25_36,
101 +                               "FEC_13_18" : parm.FEC_13_18, "FEC_26_45" : parm.FEC_26_45, "FEC_28_45" : parm.FEC_28_45, "FEC_7_9" : parm.FEC_7_9, "FEC_77_90" : parm.FEC_77_90,
102 +                               "FEC_32_45" : parm.FEC_32_45, "FEC_11_15" : parm.FEC_11_15, "FEC_1_2_L" : parm.FEC_1_2_L, "FEC_8_15_L" : parm.FEC_8_15_L, "FEC_3_5_L" : parm.FEC_3_5_L,
103 +                               "FEC_2_3_L" : parm.FEC_2_3_L, "FEC_5_9_L" : parm.FEC_5_9_L, "FEC_26_45_L" : parm.FEC_26_45_L}
104 +                       roll ={ "ROLLOFF_20" : parm.RollOff_alpha_0_20,
105 +                               "ROLLOFF_25" : parm.RollOff_alpha_0_25,
106 +                               "ROLLOFF_35" : parm.RollOff_alpha_0_35}
107 +                       pilot={ "PILOT_ON" : parm.Pilot_On,
108 +                               "PILOT_OFF" : parm.Pilot_Off,
109 +                               "PILOT_AUTO" : parm.Pilot_Unknown}
110 +                       pol = { "HORIZONTAL" : parm.Polarisation_Horizontal,
111 +                               "VERTICAL" : parm.Polarisation_Vertical}
112 +                       try :
113 +                               parm.orbital_position = self.orb_position
114 +                               parm.polarisation = pol[data[1]]
115 +                               parm.frequency = int(data[2])
116 +                               parm.symbol_rate = int(data[3])
117 +                               parm.system = sys[data[4]]
118 +                               parm.inversion = inv[data[5]]
119 +                               parm.pilot = pilot[data[6]]
120 +                               parm.fec = fec[data[7]]
121 +                               parm.modulation = qam[data[8]]
122 +                               parm.rolloff = roll[data[9]]
123 +                               parm.is_id = int(data[10])
124 +                               parm.pls_mode = eDVBFrontendParametersSatellite.PLS_Unknown
125 +                               parm.pls_code = 0
126 +                               self.tmp_tplist.append(parm)
127 +                       except: pass
128 +
129         def blindscanContainerAvail(self, str):
130                 print str
131                 #if str.startswith("OK"):
132 @@ -579,7 +590,7 @@ class Blindscan(ConfigListScreen, Screen):
133  
134                 if self.tmp_tplist != None and self.tmp_tplist != []:
135                         for p in self.tmp_tplist:
136 -                               print "data : [%d][%d][%d][%d][%d][%d][%d][%d][%d][%d]" % (p.orbital_position, p.polarisation, p.frequency, p.symbol_rate, p.system, p.inversion, p.pilot, p.fec, p.modulation, p.modulation)
137 +                               print "data : [%d][%d][%d][%d][%d][%d][%d][%d][%d][%d][%d]" % (p.orbital_position, p.polarisation, p.frequency, p.symbol_rate, p.system, p.inversion, p.pilot, p.fec, p.modulation, p.modulation, p.is_id)
138  
139                         self.startScan(self.tmp_tplist, self.feid)
140                 else: