4.4.2r2
[enigma2.git] / usr / share / enigma2 / startwizard.xml
1 <wizard nextstepanimation="wizard_next" previousstepanimation="wizard_previous">
2         <step id="start" nextstep="modeselection" timeout="20" timeoutaction="selectnext">
3                 <condition>
4 self.condition = self.videoWizardAvailable and (len(self.listPorts()) > 1 or self.selectHDMI())
5                 </condition>
6                 <text value="Video input selection\n\nPlease press OK if you can see this page on your TV (or select a different input port).\n\nThe next input port will be automatically probed in 20 seconds." />
7                 <short_title value="Video Input\nUse up/down buttons." />
8                 <list type="dynamic" source="listPorts" evaluation="portSelectionMade" onselect="portSelectionMoved" />
9                 <code>
10 self["portpic"].show()
11 self.clearSelectedKeys()
12 self.selectKey("OK")
13                 </code>
14         </step>
15         <step id="modeselection" nextstep="rateselection" timeout="20" timeoutaction="selectnext">
16                 <condition>
17 self.condition = self.videoWizardAvailable
18                 </condition>
19                 <text value="Video mode selection\n\nPlease press OK if you can see this page on your TV (or select a different video mode).\n\nThe next video mode will be automatically probed in 20 seconds." />
20                 <short_title value="Video Mode\nUse up/down buttons." />
21                 <list type="dynamic" source="listModes" evaluation="modeSelectionMade" onselect="modeSelectionMoved" />
22                 <code>
23 self.clearSelectedKeys()
24 self.selectKey("UP")
25 self.selectKey("DOWN")
26 self["portpic"].hide()
27                 </code>
28         </step>
29         <step id="rateselection" nextstep="end" timeout="20" timeoutaction="selectnext">
30                 <condition>
31 self.condition = self.videoWizardAvailable and (self.port != "HDMI" or self.mode == "HDMI-PC")
32                 </condition>
33                 <text value="Refresh rate selection." />
34                 <short_title value="Select refresh rate" />
35                 <list type="dynamic" source="listRates" evaluation="rateSelectionMade" onselect="rateSelectionMoved" />
36                 <code>
37 self.clearSelectedKeys()
38 self.selectKey("UP")
39 self.selectKey("DOWN")
40                 </code>
41         </step>
42         <step id="videoend">
43                 <condition>
44 self.condition = self.videoWizardAvailable
45                 </condition>
46                 <code>
47 self.hw.saveMode(self.port, self.mode, self.rate)
48 from Components.config import configfile
49 configfile.save()
50                 </code>
51                 <text value="You have successfully finished the video setup. If you want to change the settings later, you can do this in the settings menu."/>
52                 <short_title value="No picture on TV? Press EXIT and retry." />
53         </step>
54
55                 <step id="languageselection" nextstep="introduction">
56                         <short_title value="Language selection" />
57                         <text value="Please use the UP and DOWN keys to select your language. Afterwards press the OK button." />
58                         <multicontentlist type="dynamic" setfunction="setLanguageList" onselect="onLanguageSelect" evaluation="languageSave" />
59                         <code>
60 self.clearSelectedKeys()
61 self.selectKey("UP")
62 self.selectKey("DOWN")
63                         </code>
64                 </step>
65                 <step id="introduction" >
66                         <short_title value="Startwizard" />
67                         <text value="Welcome.\n\nThis start wizard will guide you through the basic setup of your Dreambox.\n\nUse the up/down keys on your remote control to select an option. After that, press OK." />
68                         <list>
69                                 <listentry caption="Use wizard to set up basic features" step="inputdevicesfirmware" />
70                                 <listentry caption="Exit wizard" step="final" />
71                         </list>
72                         <code>
73 self.clearSelectedKeys()
74 self.selectKey("UP")
75 self.selectKey("DOWN")
76                         </code>
77                 </step>
78                 <step id="inputdevicesfirmware">
79                         <condition>
80 self.condition = self.inputDeviceFirmwareMissing
81                         </condition>
82                         <short_title value="Flash Bluetooth Receiver Firmware?" />
83                         <text value="Your Dreambox bluetooth receiver has no firmware installed.\nInstall the latest firmware now?" />
84                         <list>
85                                 <listentry caption="Yes, install the latest bluetooth receiver firmware"  step="inputdevicesflashadapter"/>
86                                 <listentry caption="No, continue without bluetooth remote setup" step="nima"/>
87                         </list>
88                         <code>
89 self.showState()
90 self.showHideButtons()
91 self.clearSelectedKeys()
92 self.selectKey("UP")
93 self.selectKey("DOWN")
94                         </code>
95                         <code pos="after">
96 self.showState()
97 self.showHideButtons()
98                         </code>
99                 </step>
100                 <step id="inputdevicesflashadapter" nextstep="inputdevices">
101                         <condition>
102 self.condition = self.inputDeviceFirmwareMissing
103                         </condition>
104                         <short_title value="Flashing Bluetooth Receiver" />
105                         <text value="Flashing Bluetooth Receiver" />
106                         <code async="yes">
107 self.flashInputDeviceAdapterFirmware()
108                         </code>
109                 </step>
110                 <step id="inputdevices" nextstep="nima">
111                         <condition>
112 self.condition = self.inputDeviceWizardAvailable
113                         </condition>
114                         <short_title value="Input Devices" />
115                         <text value="Press Yellow to connect the selected remote control." />
116                         <list type="dynamic" source="_getInputDevices" buildfunction="_inputDeviceBuildFunc" style="inputdevice"/>
117                         <code>
118 self.showState(True)
119 self.showHideButtons(False, True)
120 self.clearSelectedKeys()
121 self.selectKey("UP")
122 self.selectKey("DOWN")
123                         </code>
124                         <code pos="after">
125 self.showState()
126 self.showHideButtons()
127                         </code>
128                 </step>
129
130                 <step id="nima">
131                         <condition>
132 from Components.config import config
133 from Components.NimManager import nimmanager
134 slot = len(nimmanager.nim_slots) &gt; 0 and nimmanager.nim_slots[0]
135 self.condition = slot and not slot.empty and config.misc.startwizard.shownimconfig.value and (slot.inputs is None or slot.channel &lt; len(slot.inputs))
136                         </condition>
137                         <text dynamictext="setTunerText" />
138                         <short_title value="Tuner A" />
139                         <config screen="NimSetup" module="Satconfig" args="64" type="ConfigList" />
140                         <code>
141 self.clearSelectedKeys()
142 self.selectKey("LEFT")
143 self.selectKey("RIGHT")
144                         </code>
145                 </step>
146                 <step id="nimb">
147                         <condition>
148 from Components.config import config
149 from Components.NimManager import nimmanager
150 slot = len(nimmanager.nim_slots) &gt; 1 and nimmanager.nim_slots[1]
151 self.condition = slot and not slot.empty and config.misc.startwizard.shownimconfig.value and (slot.inputs is None or slot.channel &lt; len(slot.inputs))
152                         </condition>
153                         <text dynamictext="setTunerText" />
154                         <short_title value="Tuner B" />
155                         <config screen="NimSetup" module="Satconfig" args="65" type="ConfigList" />
156                         <code>
157 self.clearSelectedKeys()
158 self.selectKey("LEFT")
159 self.selectKey("RIGHT")
160                         </code>
161                 </step>
162                 <step id="nimc">
163                         <condition>
164 from Components.config import config
165 from Components.NimManager import nimmanager
166 visible_slot = -1
167 sl = 0
168 slots = len(nimmanager.nim_slots)
169 while sl &lt; slots and visible_slot &lt; 2:
170         slot = nimmanager.nim_slots[sl]
171         if slot.inputs is None or slot.channel &lt; len(slot.inputs):
172                 visible_slot += 1
173         sl += 1
174 self.condition = visible_slot == 2 and not slot.empty
175                         </condition>
176                         <text dynamictext="setTunerText" />
177                         <short_title value="Tuner C" />
178                         <config screen="NimSetup" module="Satconfig" args="66" type="ConfigList" />
179                         <code>
180 self.clearSelectedKeys()
181 self.selectKey("LEFT")
182 self.selectKey("RIGHT")
183                         </code>
184                 </step>
185                 <step id="nimd">
186                         <condition>
187 from Components.config import config
188 from Components.NimManager import nimmanager
189 visible_slot = -1
190 sl = 0
191 slots = len(nimmanager.nim_slots)
192 while sl &lt; slots and visible_slot &lt; 3:
193         slot = nimmanager.nim_slots[sl]
194         if slot.inputs is None or slot.channel &lt; len(slot.inputs):
195                 visible_slot += 1
196         sl += 1
197 self.condition = visible_slot == 3 and not slot.empty
198                         </condition>
199                         <text dynamictext="setTunerText" />
200                         <short_title value="Tuner D" />
201                         <config screen="NimSetup" module="Satconfig" args="67" type="ConfigList" />
202                         <code>
203 self.clearSelectedKeys()
204 self.selectKey("LEFT")
205 self.selectKey("RIGHT")
206                         </code>
207                 </step>
208                 <step id="satlistsquestion">
209                         <text value="Do you want to install default sat lists?" />
210                         <short_title value="Sat lists" />
211                         <condition>
212 from Components.config import config
213 from Components.NimManager import nimmanager
214 self.condition = config.misc.startwizard.doservicescan.value and nimmanager.somethingConnected()
215                         </condition>
216                         <code>
217 self.hideRc()
218                         </code>
219                         <list>
220                                 <listentry caption="Yes, install default servicelists" step="startdefaultlists" />
221                                 <listentry caption="No, but do an automatic scan now" step="scan" />
222                                 <listentry caption="No, but do a manual scan now" step="manualscan" />
223                                 <listentry caption="No, proceed with empty service list" step="setautomaticstandby" />
224                         </list>
225                 </step>
226                 <step id="finisheddefaultsatlists" nextstep="setautomaticstandby">
227                         <!-- dummy screen to continue after default sat lists installation -->
228                         <condition>
229 self.currStep = self.getStepWithID("setautomaticstandby")
230 self.condition = False
231                         </condition>
232                 </step>
233                 <step id="scan" nextstep="setautomaticstandby">
234                         <condition>
235 from Components.config import config
236 from Components.NimManager import nimmanager
237 self.condition = config.misc.startwizard.doservicescan.value and nimmanager.somethingConnected()
238                         </condition>                    
239                         <text value="What do you want to scan?" />
240                         <short_title value="Simple Scan" />
241                         <config screen="ScanSimple" module="ScanSetup" type="ConfigList" />
242                 </step>
243                 <step id="manualscan">
244                         <condition>
245 from Components.config import config
246 from Components.NimManager import nimmanager
247 self.condition = config.misc.startwizard.doservicescan.value and nimmanager.somethingConnected()
248                         </condition>
249                         <text value="What do you want to scan?" />
250                         <short_title value="Manual scan" />
251                         <config screen="ScanSetup" module="ScanSetup" type="ConfigList" />
252                 </step>
253                 <step id="nextscan">
254                         <condition>
255 from Components.config import config
256 from Components.NimManager import nimmanager
257 self.condition = config.misc.startwizard.doservicescan.value and nimmanager.somethingConnected()
258                         </condition>
259                         <text value="Do you want to do another manual service scan?" />
260                         <short_title value="Manual scan" />
261                         <list>
262                                 <listentry caption="Yes, do another manual scan now" step="manualscan" />
263                                 <listentry caption="No, scan later manually" step="setautomaticstandby" />
264                         </list>
265                 </step>
266                 <step id="setautomaticstandby">
267                         <text value="Automatic standby mode\n\nIf you don't press any button on the remote control, your Dreambox can enter the standby mode automatically. You can choose the period after which the standby mode will be activated or disable this functionality now." />
268                         <short_title value="Auto Standby" />
269                         <list type="config" configelement="config.usage.inactivity_shutdown" />
270                         <code pos="after">
271 config.usage.inactivity_shutdown_initialized.value = True
272 config.usage.inactivity_shutdown_initialized.save()
273                         </code>
274                 </step>
275                 <step id="enableparentalcontrol">
276                         <text value="Do you want to enable the parental control feature on your dreambox?" />
277                         <short_title value="ParentControl" />
278                         <list>
279                                 <listentry caption="Disable Parental Control" step="expert" />
280                                 <listentry caption="Enable Parental Control" step="parentalsetup" />
281                         </list>
282                         <code pos="after">
283 from Components.config import config
284 if self["list"].index == 0:
285         config.ParentalControl.configured.value = False
286 else:
287         config.ParentalControl.configured.value = True
288 config.ParentalControl.configured.save()
289                         </code>
290                 </step>
291                 <step id="parentalsetup">
292                         <text value="You need to set a PIN code and hide it from your children.\n\nDo you want to set the pin now?" />
293                         <short_title value="Parent PIN" />
294                         <list>
295                                 <listentry caption="Yes" step="finishparentalsetup" />
296                                 <listentry caption="No" step="warnpin" />
297                         </list>
298                         <code pos="after">
299 from Components.config import config
300 from ParentalControlSetup import ParentalControlChangePin
301 if self["list"].index == 0:
302         from Components.config import config
303         config.ParentalControl.configured.value = True
304         config.ParentalControl.configured.save()
305         self.openScreen(ParentalControlChangePin, config.ParentalControl.servicepin[0], _("parental control pin"))
306                         </code>
307                 </step>
308                 <step id="warnpin">
309                         <text value="Please be aware, that anyone can disable the parental control, if you have not set a PIN." />
310                         <short_title value="PIN WARNING" />
311                 </step>
312                 <step id="finishparentalsetup">
313                         <code>
314 from Components.config import config
315 if config.ParentalControl.setuppin.value == -1:
316         config.ParentalControl.setuppinactive.value = False
317 else:
318         config.ParentalControl.setuppinactive.value = True
319 config.ParentalControl.setuppinactive.save()
320 config.ParentalControl.servicepinactive.value = True
321 config.ParentalControl.servicepinactive.save()
322 config.ParentalControl.setuppin.value = config.ParentalControl.servicepin[0].value
323 config.ParentalControl.setuppin.save()
324                         </code>
325
326                         <text value="After the start wizard is completed, you need to protect single services. Refer to your dreambox's manual on how to do that." />
327                         <short_title value="ParentControl Finished" />
328                 </step>
329                 <step id="expert">
330                         <text value="Your Dreambox offers three levels of configuration options:\n\nSimple - We suggest this level if this is your first contact with a Dreambox.\nIntermediate - This level enables you to change some more options, mainly the graphical user interface and the behaviour of your Dreambox.\nExpert - This gives you full control over all available settings of your Dreambox.\n\nWarning: Higher levels may lead to increased usage complexity." />
331                         <short_title value="User level" />
332                         <list type="config" configelement="config.usage.setup_level" />
333                 </step>
334                 <step id="multibouquets">
335                         <condition>
336 from Components.config import config
337 self.condition = config.usage.setup_level.value != "simple" 
338                         </condition>
339                         <text value="Multiple Favourites\n\nYour Dreambox offers a multiple favourites feature. If this feature is active, you can manage multiple favourite lists of TV and radio services. If deactivated, only one favourite list is available which makes navigation a bit easier.\n\nWould you like to activate the multiple favourites feature now?" />
340                         <short_title value="Favourites" />
341                         <list type="config" configelement="config.usage.multibouquet" />
342                 </step>
343                 <step id="end">
344                         <condition>
345 self.condition = self.isLastWizard
346                         </condition>
347                         <text value="Thank you for using the wizard. Your box is now ready to use.\nPlease press OK to start using your Dreambox." />
348                         <short_title value="Finished" />
349                 </step>
350
351                 <step id="startnetwork" nextstep="alreadyconnected">
352                         <text value="Welcome.\n\nIf you want to connect your Dreambox to a network and/or the Internet, this wizard will guide you through the basic network setup of your Dreambox.\n\nPress OK to start configuring your network" />
353                         <short_title value="Network connection" />
354                         <code>
355 self.showState(True)
356 self.clearSelectedKeys()
357 self.selectKey("OK")
358                         </code>
359                         <condition>
360 self.condition = self.networkWizardAvailable and not self.isNetworkConnected()
361                         </condition>
362         </step>
363         <step id="alreadyconnected">
364                 <text value="Your Dreambox is already connected to the Internet.\nThere is no network configuration required." />
365                 <short_title value="Connected" />
366                 <list>
367                         <listentry caption="Skip network configuration" step="automaticupdatecheck" />
368                         <listentry caption="Adjust network settings" step="technologies" />
369                 </list>
370                 <condition>
371 self.condition = self.networkWizardAvailable and self.isNetworkConnected()
372                 </condition>
373                 <code>
374 self.showState(True)
375                 </code>
376         </step>
377         <step id="technologies" nextstep="services">
378                 <condition>
379 self.condition = self.networkWizardAvailable 
380                 </condition>
381                 <code>
382 self.showHideButtons()
383 self.clearSelectedKeys()
384 self.selectKey("RIGHT")
385 self.selectKey("LEFT")
386                 </code>
387                 <code pos="after">
388 self.showHideButtons()
389                 </code>
390                         <text value="Please select one or more network technologies that should be used to connect your Dreambox to a Network and/or the Internet.\n\nYou may want to plug in USB Networking devices now (if you want to use any)." />
391                 <short_title value="Network technologies" />
392                 <config type="dynamic" source="getTechnologyConfig" evaluation="technologiesSet" />
393         </step>
394         <step id="services" nextstep="noconnection">
395                 <condition>
396 self.condition = self.networkWizardAvailable 
397                 </condition>
398                 <text value="Please select the network service(s) you want to connect your Dreambox to.\nIt may take a few moments before wireless networks show up in the list below!" />
399                 <short_title value="Network services" />
400                 <list type="dynamic" source="getServiceList" style="networkservice" buildfunction="_buildServiceListEntry" />
401                 <code>
402 self.checkButtons()
403 self.showHideButtons(True, True)
404 self.clearSelectedKeys()
405 self.selectKey("GREEN")
406 self.selectKey("YELLOW")
407                 </code>
408                 <code pos="after">
409 self.showHideButtons()
410                 </code>
411         </step>
412         <step id="noconnection">
413                 <text value="There is no active connection." />
414                 <short_title value="No Connection" />
415                 <list>
416                         <listentry caption="Start over" step="technologies" />
417                         <listentry caption="Exit wizard" step="networkend" />
418                 </list>
419                 <condition>
420 self.condition = self.networkWizardAvailable and not self.isNetworkConnected()
421                 </condition>
422         </step>
423         <step id="addressconfig" nextstep="dnsconfig">
424                 <text value="Please configure at least on set of IP Addresses (IPv4 or IPv6)." />
425                 <short_title value="IP Addresses" />
426                 <config type="dynamic" source="getAddressConfig" evaluation="saveAddressConfig" />
427                 <condition>
428 self.condition = self.networkWizardAvailable and self.ipConfigurationRequired()
429                 </condition>
430         </step>
431         <step id="dnsconfig" nextstep="networkend">
432                 <text value="Please configure at least one valid name server (DNS)." />
433                 <short_title value="DNS Addresses" />
434                 <config type="dynamic" source="getNameserverConfig" evaluation="saveNameserverConfig" />
435                 <condition>
436 self.condition = self.networkWizardAvailable and not self.isOnline()
437                 </condition>
438         </step>
439         <step id="networkend" nextstep="automaticupdatecheck">
440                 <condition>
441 self.condition = self.networkWizardAvailable and not self.isNetworkConnected()
442                 </condition>
443                 <text value="Your Network connection is NOT set up!\nPlease go back to reconfigure or press OK to continue anyways." />
444                 <short_title value="No network" />
445         </step>
446         <step id="automaticupdatecheck" laststep="true">
447                 <text value="Automatically check for new updates.\nPlease select the interval for automated update checks." />
448                 <short_title value="Automatic Update Check" />
449                 <list type="config" configelement="config.plugins.updatechecker.interval" />
450         </step>
451         <step id="final" laststep="true">
452                 <condition>
453 self.condition = False
454                 </condition>
455         </step>
456 </wizard>
457