aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-02-25 01:35:04 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-02-25 01:35:04 +0000
commit673d85e4aace04805fe958bbe8cb741b21ccbc1b (patch)
tree52a6cd09cc10134852c8019135a800c39191bf2a /lib/python/Screens
parent4ead4a1affceff4eb642ef333a71235ce6f173e6 (diff)
downloadenigma2-673d85e4aace04805fe958bbe8cb741b21ccbc1b.tar.gz
enigma2-673d85e4aace04805fe958bbe8cb741b21ccbc1b.zip
store a .eit file for each recoring this holds raw eit event informations
including audio track informations, event description, event title...... for information about the file format look in EN300468 (www.etsi.org) make info button useable when playbacking a movie
Diffstat (limited to 'lib/python/Screens')
-rw-r--r--lib/python/Screens/EventView.py22
-rw-r--r--lib/python/Screens/InfoBar.py6
-rw-r--r--lib/python/Screens/InfoBarGenerics.py43
3 files changed, 55 insertions, 16 deletions
diff --git a/lib/python/Screens/EventView.py b/lib/python/Screens/EventView.py
index ba4ea57e..01695dfb 100644
--- a/lib/python/Screens/EventView.py
+++ b/lib/python/Screens/EventView.py
@@ -12,13 +12,17 @@ class EventViewBase:
def __init__(self, Event, Ref, callback=None):
self.cbFunc = callback
self.currentService=Ref
+ self.isRecording = len(Ref.ref.getPath())
self.event = Event
self["epg_description"] = ScrollLabel()
self["datetime"] = Label()
self["channel"] = Label()
self["duration"] = Label()
self["key_red"] = Button("")
- self["key_green"] = Button(_("Add timer"))
+ if self.isRecording:
+ self["key_green"] = Button("")
+ else:
+ self["key_green"] = Button(_("Add timer"))
self["key_yellow"] = Button("")
self["key_blue"] = Button("")
self["actions"] = ActionMap(["OkCancelActions", "EventViewActions"],
@@ -46,8 +50,9 @@ class EventViewBase:
self.cbFunc(self.setEvent, self.setService, +1)
def timerAdd(self):
- newEntry = RecordTimerEntry(self.currentService, *parseEvent(self.event))
- self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry)
+ if not self.isRecording:
+ newEntry = RecordTimerEntry(self.currentService, *parseEvent(self.event))
+ self.session.openWithCallback(self.timerEditFinished, TimerEntry, newEntry)
def timerEditFinished(self, answer):
if (answer[0]):
@@ -57,11 +62,14 @@ class EventViewBase:
def setService(self, service):
self.currentService=service
- name = self.currentService.getServiceName()
- if name is not None:
- self["channel"].setText(name)
+ if self.isRecording:
+ self["channel"].setText(_("Recording"))
else:
- self["channel"].setText(_("unknown service"))
+ name = self.currentService.getServiceName()
+ if name is not None:
+ self["channel"].setText(name)
+ else:
+ self["channel"].setText(_("unknown service"))
def setEvent(self, event):
self.event = event
diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py
index 66996c6a..cfc35294 100644
--- a/lib/python/Screens/InfoBar.py
+++ b/lib/python/Screens/InfoBar.py
@@ -16,7 +16,7 @@ from Screens.InfoBarGenerics import InfoBarShowHide, \
InfoBarEPG, InfoBarEvent, InfoBarServiceName, InfoBarSeek, InfoBarInstantRecord, \
InfoBarAudioSelection, InfoBarAdditionalInfo, InfoBarNotifications, InfoBarDish, \
InfoBarSubserviceSelection, InfoBarTuner, InfoBarShowMovies, InfoBarTimeshift, \
- InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport
+ InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView
from Screens.HelpMenu import HelpableScreen, HelpMenu
@@ -66,7 +66,7 @@ class InfoBar(Screen, InfoBarShowHide, InfoBarPowerKey,
class MoviePlayer(Screen, InfoBarShowHide, InfoBarPowerKey, \
InfoBarMenu, \
InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, InfoBarAudioSelection, HelpableScreen, InfoBarNotifications,
- InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport):
+ InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport, InfoBarSimpleEventView):
def __init__(self, session, service):
Screen.__init__(self, session)
@@ -78,7 +78,7 @@ class MoviePlayer(Screen, InfoBarShowHide, InfoBarPowerKey, \
for x in HelpableScreen, InfoBarShowHide, InfoBarPowerKey, InfoBarMenu, \
InfoBarServiceName, InfoBarSeek, InfoBarShowMovies, \
- InfoBarAudioSelection, InfoBarNotifications, \
+ InfoBarAudioSelection, InfoBarNotifications, InfoBarSimpleEventView, \
InfoBarServiceNotifications, InfoBarPVRState, InfoBarCueSheetSupport:
x.__init__(self)
diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py
index 308dcf1e..195f6d0a 100644
--- a/lib/python/Screens/InfoBarGenerics.py
+++ b/lib/python/Screens/InfoBarGenerics.py
@@ -18,7 +18,7 @@ from EpgSelection import EPGSelection
from Screens.MessageBox import MessageBox
from Screens.Dish import Dish
from Screens.Standby import Standby
-from Screens.EventView import EventViewEPGSelect
+from Screens.EventView import EventViewEPGSelect, EventViewSimple
from Screens.MinuteInput import MinuteInput
from Components.Harddisk import harddiskmanager
@@ -326,6 +326,35 @@ class InfoBarMenu:
assert menu.tagName == "menu", "root element in menu must be 'menu'!"
self.session.open(MainMenu, menu, menu.childNodes)
+class InfoBarSimpleEventView:
+ """ Opens the Eventview for now/next """
+ def __init__(self):
+ self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions",
+ {
+ "showEventInfo": (self.openEventView, _("show event details")),
+ })
+
+ def openEventView(self):
+ self.epglist = [ ]
+ service = self.session.nav.getCurrentService()
+ ref = self.session.nav.getCurrentlyPlayingServiceReference()
+ info = service.info()
+ ptr=info.getEvent(0)
+ if ptr:
+ self.epglist.append(ptr)
+ ptr=info.getEvent(1)
+ if ptr:
+ self.epglist.append(ptr)
+ if len(self.epglist) > 0:
+ self.session.open(EventViewSimple, self.epglist[0], ServiceReference(ref), self.eventViewCallback)
+
+ def eventViewCallback(self, setEvent, setService, val): #used for now/next displaying
+ if len(self.epglist) > 1:
+ tmp = self.epglist[0]
+ self.epglist[0]=self.epglist[1]
+ self.epglist[1]=tmp
+ setEvent(self.epglist[0])
+
class InfoBarEPG:
""" EPG - Opens an EPG list when the showEPGList action fires """
def __init__(self):
@@ -959,17 +988,19 @@ class InfoBarInstantRecord:
event = None
try:
service = self.session.nav.getCurrentService()
- info = service.info()
- ev = info.getEvent(0)
- event = ev
+ epg = eEPGCache.getInstance()
+ event = epg.lookupEventTime(serviceref, -1, 0)
+ if event is None:
+ info = service.info()
+ ev = info.getEvent(0)
+ event = ev
except:
pass
-
+
if event is not None:
data = parseEvent(event)
begin = time.time()
end = begin + 3600 * 10
-
data = (begin, end, data[2], data[3], data[4])
else:
data = (time.time(), time.time() + 3600 * 10, "instant record", "", None)