[videomode] fix dependency
[vuplus_dvbapp] / lib / python / Plugins / SystemPlugins / Videomode / VideoWizard.py
1 from Screens.Wizard import WizardSummary
2 from Screens.WizardLanguage import WizardLanguage
3 from Screens.Rc import Rc
4 from Components.Pixmap import Pixmap
5 from Components.config import config, configfile, ConfigBoolean
6 from Tools.Directories import resolveFilename, SCOPE_PLUGINS
7
8 from VideoHardware import video_hw
9
10 config.misc.showtestcard = ConfigBoolean(default = False)
11
12 class VideoWizard(WizardLanguage, Rc):
13         skin = """
14                 <screen name="VideoWizard" position="0,0" size="720,576" title="Welcome..." flags="wfNoBorder" >
15                         <widget name="text" position="153,50" size="340,270" font="Regular;23" />
16                         <widget source="list" render="Listbox" position="50,300" size="440,200" scrollbarMode="showOnDemand" >
17                                 <convert type="StringList" />
18                         </widget>
19                         <widget name="config" position="50,300" size="440,200" scrollbarMode="showOnDemand" zPosition="1" transparent="1" />
20                         <ePixmap pixmap="skin_default/buttons/button_red.png" position="40,225" size="15,16" alphatest="on" />
21                         <widget name="languagetext" position="55,225" size="95,30" font="Regular;18" />
22                         <widget name="wizard" pixmap="skin_default/wizard.png" position="40,50" zPosition="10" size="110,174" alphatest="on"/>
23                         <widget name="rc" pixmaps="skin_default/rc.png,skin_default/rcold.png" position="500,50" zPosition="10" size="154,500" alphatest="on"/>
24                         <widget name="arrowdown" pixmap="skin_default/arrowdown.png" position="-100,-100" zPosition="11" size="37,70" alphatest="on"/>
25                         <widget name="arrowdown2" pixmap="skin_default/arrowdown.png" position="-100,-100" zPosition="11" size="37,70" alphatest="on"/>
26                         <widget name="arrowup" pixmap="skin_default/arrowup.png" position="-100,-100" zPosition="11" size="37,70" alphatest="on"/>
27                         <widget name="arrowup2" pixmap="skin_default/arrowup.png" position="-100,-100" zPosition="11" size="37,70" alphatest="on"/>
28                 </screen>
29         """
30
31         def __init__(self, session):
32                 self.xmlfile = resolveFilename(SCOPE_PLUGINS, "SystemPlugins/Videomode/videowizard.xml")
33                 self.video_cfg = video_hw
34
35                 WizardLanguage.__init__(self, session)
36                 Rc.__init__(self)
37
38                 self["wizard"] = Pixmap()
39                 self["portpic"] = Pixmap()
40
41                 self.port = None
42                 self.mode = None
43                 self.rate = None
44         
45         def createSummary(self):
46                 from Screens.Wizard import WizardSummary
47                 return WizardSummary 
48         
49         def markDone(self):
50                 config.misc.videowizardenabled.setValue(False)
51                 config.misc.videowizardenabled.save()
52                 configfile.save()
53         
54         def portList(self):
55                 hw_type = self.video_cfg.getDeviceName()
56                 list = [ ]
57
58                 for port in self.video_cfg.getPortList():
59                         if self.video_cfg.isPortUsed(port):
60                                 desc = port
61                                 if desc == "DVI" and self.video_cfg.isHDMIAvailable(hw_type):
62                                         desc = "HDMI"
63                                 
64                                 if port != "DVI-PC":
65                                         list.append( (desc, port))
66
67                 list.sort(key = lambda x: x[0])
68                 return list
69
70         def portSelectionMade(self, index):
71                 self.port = index
72                 self.video_cfg.setVideomode(self.port, self.mode, self.rate)
73         
74         def portSelectionMoved(self):
75                 self.video_cfg.setVideomode(self.selection, self.mode, self.rate)
76
77         def modeList(self):
78                 list = [ ]
79                 for mode in self.video_cfg.getModeList(self.port):
80                         list.append( (mode[0], mode[0]))
81                 
82                 return list
83
84         def modeSelectionMade(self, index):
85                 self.mode = index
86                 self.modeSelect(self.mode)
87         
88         def modeSelectionMoved(self):
89                 self.modeSelect(self.selection)
90         
91         def modeSelect(self, mode):
92                 if self.port == "DVI" and self.video_cfg.isWidescreenMode(mode):
93                         self.rate = "multi"
94                 else:
95                         self.rate = None
96                 self.video_cfg.setVideomode(self.port, mode, self.rate)
97
98         def rateList(self):
99                 list = [ ]
100                 for rate in self.video_cfg.getRateList(self.port, self.mode):
101                         list.append( (rate, rate))
102                 
103                 return list
104
105         def rateSelectionMade(self, index):
106                 self.rate = index
107                 self.video_cfg.setVideomode(self.port, self.mode, self.rate)
108         
109         def rateSelectionMoved(self):
110                 self.video_cfg.setVideomode(self.port, self.mode, self.selection)
111
112         def showVideoTune(self, selection = None):
113                 if selection is None:
114                         selection = self.selection
115
116                 if selection == "yes":
117                         config.misc.showtestcard.value = True
118                 else:
119                         config.misc.showtestcard.value = False
120