Support turbo2.
[vuplus_dvbapp] / lib / python / Plugins / Extensions / HbbTV / youtube.py
1 from Screens.Screen import Screen
2 from Screens.HelpMenu import HelpableScreen
3 from Components.ActionMap import ActionMap, HelpableActionMap
4 from Components.ConfigList import ConfigListScreen
5 from Components.Label import Label
6 from Components.Sources.StaticText import StaticText
7 from Components.config import config, ConfigSubsection, ConfigYesNo, ConfigText, getConfigListEntry
8
9 import vbcfg
10
11 from __init__ import _
12
13 config.plugins.youtubetv = ConfigSubsection()
14 config.plugins.youtubetv.showhelp = ConfigYesNo(default = False)
15 config.plugins.youtubetv.uri = ConfigText(default = "http://www.youtube.com/tv", visible_width = 50, fixed_size = False)
16
17 vbcfg.g_youtubetv_cfg = config.plugins.youtubetv
18
19 class YoutubeTVWindow(Screen, HelpableScreen):
20         skin =  """
21                 <screen name="YoutubeTVWindow" position="center,center" size="550,160" title="Start YouTube TV" >
22                         <widget name="infomation" position="5,0" size="540,80" valign="center" halign="center" font="Regular;20" />
23                         <widget name="startdesc" position="10,80" size="395,40" valign="center" font="Regular;20" />
24                         <widget name="helpdesc" position="10,120" size="395,40" valign="center" font="Regular;20" />
25                         <ePixmap pixmap="skin_default/buttons/green.png" position="400,80" size="140,40" alphatest="on" />
26                         <ePixmap pixmap="skin_default/buttons/yellow.png" position="400,120" size="140,40" alphatest="on" />
27                         <widget source="key_green" render="Label" position="400,80" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
28                         <widget source="key_yellow" render="Label" position="400,120" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" foregroundColor="#ffffff" transparent="1" />
29                 </screen>
30                 """
31
32         def __init__(self, session):
33                 Screen.__init__(self, session)
34                 HelpableScreen.__init__(self)
35
36                 self["actions"] = ActionMap(["WizardActions", "DirectionActions", "OkCancelActions","ColorActions", "EPGSelectActions",], {
37                         "cancel": self.keyCancel,
38                         "red"   : self.keyCancel,
39                         "green" : self.keyGreen,
40                         "yellow": self.keyYellow,
41                 },-2)
42
43                 self["key_green"]  = StaticText(_("Start"))
44                 self["key_yellow"] = StaticText(_("Help"))
45
46                 self["infomation"] = Label()
47                 self["startdesc"]  = Label()
48                 self["helpdesc"]   = Label()
49
50                 self.onLayoutFinish.append(self.layoutFinished)
51
52         def layoutFinished(self):
53                 self.setTitle(_('Start YouTube TV'))
54                 self["infomation"].setText(_("YouTube TV is a new way to watch YouTube videos on Vu+"))
55                 self["startdesc" ].setText(_("* Start YouTube TV"))
56                 self["helpdesc"  ].setText(_("* RC Help"))
57
58         def setHelpModeActions(self):
59                 self.helpList = []
60                 self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", {
61                         "ok"    : (self.keyPass, _("Play ther selected the video")),
62                         "cancel": (self.keyPass, _("Exit the YouTube TV")),
63                 })
64                 self["EventViewActions"] = HelpableActionMap(self, "EventViewActions", {
65                         "pageUp"    : (self.keyPass, _("Move up")),
66                         "pageDown"  : (self.keyPass, _("Move down")),
67                         "prevEvent" : (self.keyPass, _("Move left")),
68                         "nextEvent" : (self.keyPass, _("Move right")),
69                 })
70                 self["EPGSelectActions"] = HelpableActionMap(self, "EPGSelectActions", {
71                         "info"        : (self.keyPass, _("Search a video")),
72                         "nextService" : (self.keyPass, _("Skip forward 10 sec")),
73                         "prevService" : (self.keyPass, _("Skip backward 10 sec")),
74                 })
75                 self["MediaPlayerActions"] = HelpableActionMap(self, "MediaPlayerActions", {
76                         "play"  : (self.keyPass, _("Play current video")),
77                         "pause" : (self.keyPass, _("Pause current video")),
78                         "stop"  : (self.keyPass, _("Stop current video")),
79                 })
80                 self["ColorActions"] = HelpableActionMap(self, "ColorActions", {
81                         "red"   : (self.keyPass, _("Back")),
82                 })
83                 self.showHelp()
84
85         def keyPass(self):
86                 pass
87
88         def keyCancel(self):
89                 config.plugins.youtubetv.showhelp.cancel()
90                 self.close(False)
91
92         def keyGreen(self):
93                 config.plugins.youtubetv.showhelp.save()
94                 config.plugins.youtubetv.save()
95                 config.plugins.save()
96                 vbcfg.g_youtubetv_cfg = config.plugins.youtubetv
97                 self.close(True)
98
99         def keyYellow(self):
100                 self.setHelpModeActions()
101
102         def keyBlue(self):
103                 if config.plugins.youtubetv.showhelp.value == True :
104                         config.plugins.youtubetv.showhelp.setValue(False)
105                 else:   config.plugins.youtubetv.showhelp.setValue(True)
106
107 class YoutubeTVSettings(ConfigListScreen, Screen):
108         skin=   """
109                 <screen position="center,center" size="600,140" title="YouTube TV Settings">
110                         <widget name="config" position="0,0" size="600,100" scrollbarMode="showOnDemand" />
111
112                         <ePixmap pixmap="skin_default/buttons/red.png" position="310,100" size="140,40" alphatest="on" />
113                         <ePixmap pixmap="skin_default/buttons/green.png" position="150,100" size="140,40" alphatest="on" />
114
115                         <widget source="key_red" render="Label" position="310,100" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" foregroundColor="#ffffff" transparent="1" />
116                         <widget source="key_green" render="Label" position="150,100" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
117                 </screen>
118                 """
119
120         def __init__(self, session):
121                 self.session = session
122                 self.menulist = []
123
124                 Screen.__init__(self, session)
125                 ConfigListScreen.__init__(self, self.menulist)
126
127                 self["actions"] = ActionMap(["OkCancelActions", "ColorActions",], {
128                         "ok"     : self.keyGreen,
129                         "green"  : self.keyGreen,
130                         "red"    : self.keyRed,
131                         "cancel" : self.keyRed,
132                 }, -2)
133                 self["key_red"]   = StaticText(_("Cancel"))
134                 self["key_green"] = StaticText(_("Save"))
135
136                 self.makeConfigList()
137                 self.onLayoutFinish.append(self.layoutFinished)
138
139         def layoutFinished(self):
140                 self.setTitle(_('YouTube TV Settings'))
141
142         def keyGreen(self):
143                 config.plugins.youtubetv.showhelp.save()
144                 config.plugins.youtubetv.uri.save()
145                 config.plugins.youtubetv.save()
146                 config.plugins.save()
147
148                 vbcfg.g_youtubetv_cfg = config.plugins.youtubetv
149                 self.close()
150
151         def keyRed(self):
152                 config.plugins.youtubetv.showhelp.cancel()
153                 config.plugins.youtubetv.uri.cancel()
154                 self.close()
155
156         def keyLeft(self):
157                 ConfigListScreen.keyLeft(self)
158
159         def keyRight(self):
160                 ConfigListScreen.keyRight(self)
161
162         def makeConfigList(self):
163                 self.menulist = []
164
165                 entryUri = getConfigListEntry(_("YouTube TV URL"), config.plugins.youtubetv.uri)
166                 entryShowHelp = getConfigListEntry(_("Do not show YouTube TV Starter again"), config.plugins.youtubetv.showhelp)
167                 self.menulist.append(entryUri)
168                 self.menulist.append(entryShowHelp)
169                 self["config"].list = self.menulist
170                 self["config"].l.setList(self.menulist)
171