1 from components import *
3 from enigma import quitMainloop
7 screen["clock"] = Clock()
9 class Screen(dict, HTMLSkin, GUISkin):
12 def __init__(self, session):
13 self.skinName = self.__class__.__name__
14 self.session = session
15 GUISkin.__init__(self)
18 for (name, val) in self.items():
22 for (name, val) in self.items():
25 # never call this directly - it will be called from the session!
29 for (name, val) in self.items():
30 print "%s -> %d" % (name, sys.getrefcount(val))
33 def close(self, retval=None):
36 class mainMenu(Screen):
39 self["title"].setText("EMUs ARE ILLEGAL AND NOT SUPPORTED!")
41 def goTimeshift(self):
42 self["title"].setText("JUST PRESS THE YELLOW BUTTON!")
45 self["title"].setText("HDTV GREEN FLASHES: ENABLED")
48 self.session.open(serviceScan)
51 self.session.open(clockDisplay, Clock())
53 def okbuttonClick(self):
54 selection = self["menu"].getCurrent()
57 def __init__(self, session):
58 Screen.__init__(self, session)
61 self["actions"] = ActionMap(["OkCancelActions"],
63 "ok": self.okbuttonClick,
67 b.onClick = [ self.okbuttonClick ]
69 self["title"] = Header("Main Menu! - press ok to leave!")
70 self["menu"] = MenuList(
72 ("Close Main Menu", self.close),
73 ("Service Scan", self.goScan),
74 ("Quit", quitMainloop),
75 ("EMU SETUP", self.goEmu),
76 ("TIMESHIFT SETUP", self.goTimeshift),
77 ("HDTV PIP CONFIG", self.goHDTV),
78 ("wie spaet ists?!", self.goClock)
81 #class mainMenu(Screen):
83 # GUISkin.__init__(self)
85 # self["title"] = Header("this is the\nMAIN MENU !!!");
86 # self["okbutton"] = Button("ok")
87 # self["okbutton"].onClick = [ self.close ]
89 class channelSelection(Screen):
90 def __init__(self, session):
91 Screen.__init__(self, session)
93 self["list"] = ServiceList()
94 self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(provider=="ARD") && (type == 1)"""))
96 self["okbutton"] = Button("ok", [self.channelSelected])
98 class ChannelActionMap(ActionMap):
99 def action(self, contexts, action):
100 if action[:7] == "bouquet":
101 print "setting root to " + action[8:]
102 self.csel["list"].setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:" + action[8:]))
104 ActionMap.action(self, contexts, action)
106 self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions"],
108 "cancel": self.close,
109 "ok": self.channelSelected,
112 self["actions"].csel = self
115 ref = self["list"].getCurrent()
116 if self["list"].isMarked(ref):
117 self["list"].removeMarked(ref)
119 self["list"].addMarked(ref)
121 def channelSelected(self):
122 self.session.nav.playService(self["list"].getCurrent())
126 class infoBar(Screen):
127 def __init__(self, session):
128 Screen.__init__(self, session)
130 self["actions"] = ActionMap( [ "InfobarActions" ],
132 "switchChannel": self.switchChannel,
133 "mainMenu": self.mainMenu
135 self["okbutton"] = Button("mainMenu", [self.mainMenu])
137 self["CurrentTime"] = Clock()
139 self["ServiceName"] = ServiceName(self.session.nav)
141 self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
142 self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
144 self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
145 self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
148 self.session.open(mainMenu)
150 def switchChannel(self):
151 self.session.open(channelSelection)
153 # a clock display dialog
154 class clockDisplay(Screen):
158 def __init__(self, session, clock):
159 Screen.__init__(self, session)
160 self["theClock"] = clock
162 b.onClick = [ self.okbutton ]
164 self["title"] = Header("clock dialog: here you see the current uhrzeit!")
166 class serviceScan(Screen):
168 if self["scan"].isDone():
171 def __init__(self, session):
172 Screen.__init__(self, session)
174 self["scan_progress"] = ProgressBar()
175 self["scan_state"] = Label("scan state")
176 self["scan"] = ServiceScan(self["scan_progress"], self["scan_state"])
178 self["okbutton"] = Button("ok", [self.ok])
179 self["okbutton"].disable()