X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1b74d60d4bff96590c8000be9960b47bfa1a08c7..19e1b120e85f3cf3906c640af47c5084b09dd3be:/lib/python/Screens/InfoBarGenerics.py diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 308dcf1e..0e186fff 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): @@ -740,7 +769,7 @@ class InfoBarSeek: if self.seekstate != self.SEEK_STATE_PLAY: self.setSeekState(self.SEEK_STATE_PAUSE) # HACK - self.getSeek().seekRelative(1, -90000) + #self.getSeek().seekRelative(1, -90000) self.setSeekState(self.SEEK_STATE_PLAY) else: self.setSeekState(self.SEEK_STATE_PAUSE) @@ -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) @@ -1243,7 +1274,7 @@ class InfoBarCueSheetSupport: nearest = cp return nearest - def toggleMark(self): + def toggleMark(self, onlyremove=False, onlyadd=False, tolerance=5*90000): current_pos = self.__getCurrentPosition() if current_pos is None: print "not seekable" @@ -1251,9 +1282,10 @@ class InfoBarCueSheetSupport: nearest_cutpoint = self.getNearestCutPoint(current_pos) - if nearest_cutpoint is not None and abs(nearest_cutpoint[0] - current_pos) < 5*90000: - self.removeMark(nearest_cutpoint) - else: + if nearest_cutpoint is not None and abs(nearest_cutpoint[0] - current_pos) < tolerance: + if not onlyadd: + self.removeMark(nearest_cutpoint) + elif not onlyremove: self.addMark((current_pos, self.CUT_TYPE_MARK)) def addMark(self, point):