update dvbapp.
[vuplus_dvbapp] / lib / python / Plugins / Extensions / MiniTV / plugin.py
1 from Plugins.Plugin import PluginDescriptor
2 from Components.PluginComponent import plugins
3 from Components.config import config, ConfigSubsection, ConfigSelection
4 from enigma import eDBoxLCD
5
6 config.plugins.minitv = ConfigSubsection()
7 config.plugins.minitv.enable = ConfigSelection(default = "disable", choices = [ ("enable", "enable"), ("disable", "disable")])
8
9 class MiniTV:
10         def __init__(self):
11                 config.plugins.minitv.enable.addNotifier(self.miniTVChanged, initial_call = True)
12                 config.misc.standbyCounter.addNotifier(self.standbyCounterChanged, initial_call = False)
13
14         def getExtensionName(self):
15                 if config.plugins.minitv.enable.value == "enable":
16                         return _("Disable MiniTV")
17
18                 return _("Enable MiniTV")
19
20         def showMiniTV(self):
21                 old_value = config.plugins.minitv.enable.value
22                 config.plugins.minitv.enable.value = (old_value == "enable") and "disable" or "enable"
23                 config.plugins.minitv.enable.save()
24
25         def miniTVChanged(self, configElement):
26                 self.setMiniTV(configElement.value)
27
28         def setMiniTV(self, value):
29                 cur_value = open("/proc/stb/lcd/live_enable", "r").read().strip()
30                 if cur_value != value:
31                         open("/proc/stb/lcd/live_enable", "w").write(value)
32
33         def standbyCounterChanged(self, configElement):
34                 from Screens.Standby import inStandby
35                 if self.leaveStandby not in inStandby.onClose:
36                         inStandby.onClose.append(self.leaveStandby)
37
38                 self.setMiniTV("disable")
39
40         def leaveStandby(self):
41                 self.setMiniTV(config.plugins.minitv.enable.value)
42
43 minitv_instance = MiniTV()
44
45 def addExtentions(infobarExtensions):
46         infobarExtensions.addExtension((minitv_instance.getExtensionName, minitv_instance.showMiniTV, lambda: True), None)
47
48 def autoStart(reason, **kwargs):
49         if reason == 1:
50                 minitv_instance.setMiniTV("standby")
51
52 def Plugins(**kwargs):
53         list = []
54         list.append(
55                 PluginDescriptor(name="MiniTV",
56                 description="MiniTV",
57                 where = [PluginDescriptor.WHERE_EXTENSIONSINGLE],
58                 fnc = addExtentions))
59
60         list.append(
61                 PluginDescriptor(
62                 where = [PluginDescriptor.WHERE_AUTOSTART],
63                 fnc = autoStart))
64
65         return list
66