+
+ self["config"] = ConfigList(
+ [
+ configEntry("HKEY_LOCAL_ENIGMA/IMPORTANT/USER_ANNOYING_STUFF/SDTV/FLASHES/GREEN"),
+ configEntry("HKEY_LOCAL_ENIGMA/IMPORTANT/USER_ANNOYING_STUFF/HDTV/FLASHES/GREEN"),
+ ])
+
+ self["actions"] = ActionMap(["OkCancelActions"],
+ {
+ "ok": self["config"].toggle,
+ "cancel": self.close
+ })
+
+
+class Menu(Screen):
+ #add file load functions for the xml-file
+ #remove old code (i.e. goScan / goClock...)
+
+ def openDialog(self, dialog):
+ self.session.open(dialog)
+
+ def goSetup(self):
+ self.session.open(configTest)
+
+ def setModeTV(self):
+ print "set Mode to TV"
+ pass
+
+ def setModeRadio(self):
+ print "set Mode to Radio"
+ pass
+
+ def setModeFile(self):
+ print "set Mode to File"
+ pass
+
+ def goScan(self):
+ self.session.open(serviceScan)
+
+ def goClock(self):
+ self.session.open(clockDisplay, Clock())
+
+ def okbuttonClick(self):
+ selection = self["menu"].getCurrent()
+ selection[1]()
+
+ def evalText(self, text):
+ eval(text)
+
+ def nothing(self): #dummy
+ pass
+
+ def addMenu(self, destList, node):
+ MenuTitle = getValbyAttr(node, "text")
+ if MenuTitle != "": #check for title
+ a = boundFunction(self.session.open, Menu, node, node.childNodes)
+ #TODO add check if !empty(node.childNodes)
+ destList.append((MenuTitle, a))
+
+ def addItem(self, destList, node):
+ ItemText = getValbyAttr(node, "text")
+ if ItemText != "": #check for name
+ b = getText(node.childNodes)
+ if b != "": #check for function
+ destList.append((ItemText,boundFunction(self.evalText,b)))
+ else:
+ destList.append((ItemText,self.nothing)) #use dummy as function
+
+ def __init__(self, session, parent, childNode):
+ Screen.__init__(self, session)
+
+ list = []
+
+ for x in childNode: #walk through the actual nodelist
+ if x.nodeType != xml.dom.minidom.Element.nodeType:
+ continue
+ elif x.tagName == 'item':
+ self.addItem(list, x)
+ elif x.tagName == 'menu':
+ self.addMenu(list, x)
+
+ self["menu"] = MenuList(list)
+
+ self["actions"] = ActionMap(["OkCancelActions"],
+ {
+ "ok": self.okbuttonClick,
+ "cancel": self.close
+ })
+
+ a = getValbyAttr(parent, "title")
+ if a == "": #if empty use name
+ a = getValbyAttr(parent, "text")
+ self["title"] = Header(a)
+
+class channelSelection(Screen):
+ def __init__(self, session):
+ Screen.__init__(self, session)
+
+ self["key_red"] = Button("red")
+ self["key_green"] = Button("green")
+ self["key_yellow"] = Button("yellow")
+ self["key_blue"] = Button("blue")
+
+ self["list"] = ServiceList()
+ self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(provider=="ARD") && (type == 1)"""))
+
+ #self["okbutton"] = Button("ok", [self.channelSelected])
+
+ class ChannelActionMap(ActionMap):
+ def action(self, contexts, action):
+ if action[:7] == "bouquet":
+ print "setting root to " + action[8:]
+ self.csel["list"].setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:" + action[8:]))
+ else:
+ ActionMap.action(self, contexts, action)
+
+ self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions"],
+ {
+ "cancel": self.close,
+ "ok": self.channelSelected,
+ "mark": self.doMark
+ })
+ self["actions"].csel = self
+
+ def doMark(self):
+ ref = self["list"].getCurrent()
+ if self["list"].isMarked(ref):
+ self["list"].removeMarked(ref)
+ else:
+ self["list"].addMarked(ref)
+
+ def channelSelected(self):
+ self.session.nav.playService(self["list"].getCurrent())
+ self.close()
+
+ #called from infoBar
+ def zapUp(self):
+ self["list"].moveUp()
+ self.session.nav.playService(self["list"].getCurrent())
+
+ def zapDown(self):
+ self["list"].moveDown()
+ self.session.nav.playService(self["list"].getCurrent())
+
+class infoBar(Screen):
+ def __init__(self, session):
+ Screen.__init__(self, session)
+
+ #instantiate forever
+ self.servicelist = self.session.instantiateDialog(channelSelection)
+
+ self["actions"] = ActionMap( [ "InfobarActions" ],
+ {
+ "switchChannel": self.switchChannel,
+ "mainMenu": self.mainMenu,
+ "zapUp": self.zapUp,
+ "zapDown": self.zapDown
+ })
+ self["okbutton"] = Button("mainMenu", [self.mainMenu])
+
+ self["CurrentTime"] = Clock()
+
+ self["ServiceName"] = ServiceName(self.session.nav)
+
+ self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
+ self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
+
+ self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
+ self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
+
+ def mainMenu(self):
+ print "loading mainmenu XML..."
+ menu = mdom.childNodes[0]
+ assert menu.tagName == "menu", "root element in menu must be 'menu'!"
+ self.session.open(Menu, menu, menu.childNodes)
+
+ def switchChannel(self):
+ self.session.execDialog(self.servicelist)
+
+ def zapUp(self):
+ self.servicelist.zapUp()
+
+ def zapDown(self):
+ self.servicelist.zapDown()