X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4739f2d47dc8e6aee519f90e00e011659adf47ed..90d9f3e7624282749eb59b57d4996f5d1d06c6b1:/lib/python/Screens/EpgSelection.py diff --git a/lib/python/Screens/EpgSelection.py b/lib/python/Screens/EpgSelection.py index aeab4f03..db8be2e1 100644 --- a/lib/python/Screens/EpgSelection.py +++ b/lib/python/Screens/EpgSelection.py @@ -2,37 +2,81 @@ from Screen import Screen from Components.Button import Button from Components.EpgList import EPGList from Components.ActionMap import ActionMap - -from enigma import eServiceReference - +from Screens.EventView import EventView +from enigma import eServiceReference, eServiceEventPtr from Screens.FixedMenu import FixedMenu +from RecordTimer import RecordTimerEntry +from TimerEdit import TimerEditList +from TimerEntry import TimerEntry +from ServiceReference import ServiceReference import xml.dom.minidom class EPGSelection(Screen): - def __init__(self, session): + def __init__(self, session, root): Screen.__init__(self, session) self["list"] = EPGList() -# self["list"].setRoot(root) class ChannelActionMap(ActionMap): def action(self, contexts, action): ActionMap.action(self, contexts, action) + + self["key_red"] = Button("") + self["key_green"] = Button(_("Add timer")) + self["key_yellow"] = Button("") + self["key_blue"] = Button("") - self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions"], + self["actions"] = ChannelActionMap(["EPGSelectActions", "OkCancelActions"], { "cancel": self.close, "ok": self.eventSelected, + "timerAdd": self.timerAdd }) self["actions"].csel = self + self.setRoot(root) + + def eventViewCallback(self, setEvent, val): + if val == -1: + self.moveUp() + setEvent(self["list"].getCurrent()) + elif val == +1: + self.moveDown() + setEvent(self["list"].getCurrent()) def eventSelected(self): - ref = self["list"].getCurrent() -# open eventdetail view... not finished yet - self.close() + event = self["list"].getCurrent() + self.session.open(EventView, event, self.currentService, self.eventViewCallback) + def timerAdd(self): + epg = self["list"].getCurrent() + + if (epg == None): + description = "unknown event" + else: + description = epg.getEventName() + # FIXME we need a timestamp here: + begin = epg.getBeginTime() + + print begin + print epg.getDuration() + end = begin + epg.getDuration() + + + # FIXME only works if already playing a service + serviceref = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()) + + newEntry = RecordTimerEntry(begin, end, serviceref, epg, description) + self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry) + + def timerEditFinished(self, answer): + if (answer[0]): + self.session.nav.RecordTimer.record(answer[1]) + else: + print "Timeredit aborted" + def setRoot(self, root): + self.currentService=ServiceReference(root) self["list"].setRoot(root) def moveUp(self):