diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-12-17 02:56:52 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-12-17 02:56:52 +0000 |
| commit | 2601ee77efe1f10be7cbeb8af94e2fb229cc1ec1 (patch) | |
| tree | dee02f1a965266cfc29d96ae664f71ecc889e879 /lib/python | |
| parent | 654f9ddcbd850acbd23cb0b568632268cfd26f22 (diff) | |
| download | enigma2-2601ee77efe1f10be7cbeb8af94e2fb229cc1ec1.tar.gz enigma2-2601ee77efe1f10be7cbeb8af94e2fb229cc1ec1.zip | |
timer: add name/description, factor out "parse from epg event", fix some cases where demux was not available at that time, add timeshift framework, fix movielist (not all movies are great!)
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Components/MovieList.py | 16 | ||||
| -rw-r--r-- | lib/python/Components/TimerList.py | 5 | ||||
| -rw-r--r-- | lib/python/Screens/EpgSelection.py | 21 | ||||
| -rw-r--r-- | lib/python/Screens/EventView.py | 21 | ||||
| -rw-r--r-- | lib/python/Screens/InfoBarGenerics.py | 16 | ||||
| -rw-r--r-- | lib/python/Screens/TimerEdit.py | 38 | ||||
| -rw-r--r-- | lib/python/Screens/TimerEntry.py | 3 |
7 files changed, 50 insertions, 70 deletions
diff --git a/lib/python/Components/MovieList.py b/lib/python/Components/MovieList.py index 9ab58704..2e010ab6 100644 --- a/lib/python/Components/MovieList.py +++ b/lib/python/Components/MovieList.py @@ -1,7 +1,8 @@ from HTMLComponent import * from GUIComponent import * +from Tools.FuzzyDate import FuzzyTime -from enigma import eListboxPythonMultiContent, eListbox, gFont +from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation from enigma import eServiceReference, eServiceCenter, \ eServiceCenterPtr, iListableServicePtr, \ @@ -38,8 +39,17 @@ def MovieListEntry(serviceref, serviceHandler): len = "?:??" res.append((0, 0, 400, 30, 0, RT_HALIGN_LEFT, info.getName(serviceref))) - res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, "Toller Film")) - res.append((0, 50, 200, 20, 1, RT_HALIGN_LEFT, "Aufgenommen: irgendwann")) + + description = info.getInfoString(serviceref, iServiceInformation.sDescription) + begin = info.getInfo(serviceref, iServiceInformation.sTimeCreate) + + begin_string = "" + if begin > 0: + t = FuzzyTime(begin) + begin_string = t[0] + ", " + t[1] + + res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, description)) + res.append((0, 50, 200, 20, 1, RT_HALIGN_LEFT, begin_string)) res.append((200, 50, 200, 20, 1, RT_HALIGN_RIGHT, len)) return res diff --git a/lib/python/Components/TimerList.py b/lib/python/Components/TimerList.py index b1e8bf45..f4176fad 100644 --- a/lib/python/Components/TimerList.py +++ b/lib/python/Components/TimerList.py @@ -26,9 +26,6 @@ RT_WRAP = 32 def TimerEntryComponent(timer, processed): res = [ timer ] - print time.strftime("%c", time.localtime(timer.begin)) - print time.strftime("%c", time.localtime(timer.end)) - res.append((0, 0, 400, 30, 0, RT_HALIGN_LEFT, timer.service_ref.getServiceName())) repeatedtext = "" days = [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ] @@ -46,7 +43,7 @@ def TimerEntryComponent(timer, processed): else: res.append((0, 30, 200, 20, 1, RT_HALIGN_LEFT, repeatedtext + ("%s, %s ... %s" % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:])))) - res.append((300, 0, 200, 20, 1, RT_HALIGN_RIGHT, timer.description)) + res.append((300, 0, 200, 20, 1, RT_HALIGN_RIGHT, timer.name)) if not processed: if timer.state == TimerEntry.StateWait: diff --git a/lib/python/Screens/EpgSelection.py b/lib/python/Screens/EpgSelection.py index db8be2e1..4d288b00 100644 --- a/lib/python/Screens/EpgSelection.py +++ b/lib/python/Screens/EpgSelection.py @@ -5,7 +5,7 @@ from Components.ActionMap import ActionMap from Screens.EventView import EventView from enigma import eServiceReference, eServiceEventPtr from Screens.FixedMenu import FixedMenu -from RecordTimer import RecordTimerEntry +from RecordTimer import RecordTimerEntry, parseEvent from TimerEdit import TimerEditList from TimerEntry import TimerEntry from ServiceReference import ServiceReference @@ -49,24 +49,15 @@ class EPGSelection(Screen): self.session.open(EventView, event, self.currentService, self.eventViewCallback) def timerAdd(self): - epg = self["list"].getCurrent() + event = self["list"].getCurrent() + + if event is None: + return - 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) + newEntry = RecordTimerEntry(serviceref, *parseEvent(event)) self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry) def timerEditFinished(self, answer): diff --git a/lib/python/Screens/EventView.py b/lib/python/Screens/EventView.py index 79d548af..e3585b67 100644 --- a/lib/python/Screens/EventView.py +++ b/lib/python/Screens/EventView.py @@ -4,7 +4,7 @@ from Components.Label import Label from Components.ScrollLabel import ScrollLabel from enigma import eServiceEventPtr from ServiceReference import ServiceReference -from RecordTimer import RecordTimerEntry +from RecordTimer import RecordTimerEntry, parseEvent from TimerEntry import TimerEntry class EventView(Screen): @@ -38,24 +38,7 @@ class EventView(Screen): self.cbFunc(self.setEvent, +1) def timerAdd(self): - epg = self.event - - 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) + newEntry = RecordTimerEntry(self.currentService, *parseEvent(self.event)) self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry) def timerEditFinished(self, answer): diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index efcb0dad..77c4a415 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -562,6 +562,8 @@ class InfoBarPVR: } self.setSeekState(lookup[self.seekstate]); +from RecordTimer import parseEvent + class InfoBarInstantRecord: """Instant Record - handles the instantRecord action in order to start/stop instant records""" @@ -582,19 +584,25 @@ class InfoBarInstantRecord: def startInstantRecording(self): serviceref = self.session.nav.getCurrentlyPlayingServiceReference() - + # try to get event info - epg = None + event = None try: service = self.session.nav.getCurrentService() info = service.info() ev = info.getEvent(0) - epg = ev + event = ev except: pass + if event is not None: + data = parseEvent(event) + data = (data[0], data[1] + 3600 * 10, data[2], data[3], data[4]) + else: + data = (time.time(), time.time() + 3600 * 10, "instant record", "", None) + # fix me, description. - self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 3600 * 10, serviceref, epg, "instant record") + self.recording = self.session.nav.recordWithTimer(serviceref, *data) self.recording.dontSave = True #self["BlinkingPoint"].setConnect(lambda: self.recording.isRunning()) diff --git a/lib/python/Screens/TimerEdit.py b/lib/python/Screens/TimerEdit.py index 5233da9b..73733913 100644 --- a/lib/python/Screens/TimerEdit.py +++ b/lib/python/Screens/TimerEdit.py @@ -6,7 +6,7 @@ from Components.Label import Label from Components.Button import Button from Components.TextInput import TextInput from TimerEntry import TimerEntry -from RecordTimer import RecordTimerEntry +from RecordTimer import RecordTimerEntry, parseEvent from time import * from ServiceReference import ServiceReference from Components.config import * @@ -54,34 +54,22 @@ class TimerEditList(Screen): self["timerlist"].invalidate() def addCurrentTimer(self): - begin = time() - end = time() + 60 - - epg = None - try: - service = self.session.nav.getCurrentService() + event = None + service = self.session.nav.getCurrentService() + if service is not None: info = service.info() - ev = info.getEvent(0) - epg = ev - except: - pass - - if (epg == None): - description = "unknown event" - else: - description = ev.getEventName() - # FIXME we need a timestamp here: - begin = ev.getBeginTime() - - print begin - print ev.getDuration() - end = begin + ev.getDuration() - + if info is not None: + event = info.getEvent(0) # FIXME only works if already playing a service serviceref = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()) - self.addTimer(RecordTimerEntry(begin, end, serviceref, epg, description)) + if event is None: + data = (int(time()), int(time() + 60), "unknown event", "", None) + else: + data = parseEvent(event) + + self.addTimer(RecordTimerEntry(serviceref, *data)) def addTimer(self, timer): self.session.openWithCallback(self.finishedAdd, TimerEntry, timer) @@ -103,4 +91,4 @@ class TimerEditList(Screen): def leave(self): self.session.nav.RecordTimer.saveTimer() - self.close()
\ No newline at end of file + self.close() diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py index a7cbad9b..966bbab4 100644 --- a/lib/python/Screens/TimerEntry.py +++ b/lib/python/Screens/TimerEntry.py @@ -78,6 +78,7 @@ class TimerEntry(Screen): repeated = 0 config.timerentry.type = configElement_nonSave("config.timerentry.type", configSelection, type, (_("once"), _("repeated"))) + config.timerentry.name = configElement_nonSave("config.timerentry.name", configText, self.timer.name, (configText.extendableSize, self.keyRightCallback)) config.timerentry.description = configElement_nonSave("config.timerentry.description", configText, self.timer.description, (configText.extendableSize, self.keyRightCallback)) config.timerentry.repeated = configElement_nonSave("config.timerentry.repeated", configSelection, repeated, (_("daily"), _("weekly"), _("Mon-Fri"), _("user defined"))) @@ -126,6 +127,7 @@ class TimerEntry(Screen): def createSetup(self): self.list = [] + self.list.append(getConfigListEntry(_("Name"), config.timerentry.name)) self.list.append(getConfigListEntry(_("Description"), config.timerentry.description)) self.timerTypeEntry = getConfigListEntry(_("Timer Type"), config.timerentry.type) self.list.append(self.timerTypeEntry) @@ -227,6 +229,7 @@ class TimerEntry(Screen): return int(mktime(dt.timetuple())) def keyGo(self): + self.timer.name = config.timerentry.name.value self.timer.description = config.timerentry.description.value self.timer.resetRepeated() |
