From: Andreas Monzner Date: Wed, 12 Jul 2006 11:03:52 +0000 (+0000) Subject: fix non working timeshift stop when press the TV Button X-Git-Tag: 2.6.0~3178 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/9e0783f71e37ee01c3e4861392234221cec323ce?ds=sidebyside fix non working timeshift stop when press the TV Button --- diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py index 5d6e32a5..9d3e327c 100644 --- a/lib/python/Screens/InfoBar.py +++ b/lib/python/Screens/InfoBar.py @@ -45,7 +45,7 @@ class InfoBar(InfoBarShowHide, "showMovies": (self.showMovies, _("Play recorded movies...")), "showRadio": (self.showRadio, _("Show the radio player...")), "showTv": (self.showTv, _("Show the tv player...")), - }) + }, prio=2) for x in HelpableScreen, \ InfoBarShowHide, \ diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 99819fae..7f9cafee 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -903,9 +903,9 @@ class InfoBarTimeshift: print "enable timeshift" ts = self.getTimeshift() if ts is None: - self.session.open(MessageBox, _("Timeshift not possible!"), MessageBox.TYPE_ERROR) - print "no ts interface" - return +# self.session.open(MessageBox, _("Timeshift not possible!"), MessageBox.TYPE_ERROR) +# print "no ts interface" + return 0; if self.timeshift_enabled: print "hu, timeshift already enabled?" @@ -913,7 +913,7 @@ class InfoBarTimeshift: if not ts.startTimeshift(): import time self.timeshift_enabled = 1 - + # we remove the "relative time" for now. #self.pvrStateDialog["timeshift"].setRelative(time.time()) @@ -928,11 +928,11 @@ class InfoBarTimeshift: def stopTimeshift(self): if not self.timeshift_enabled: - return + return 0 print "disable timeshift" ts = self.getTimeshift() if ts is None: - return + return 0 self.session.openWithCallback(self.stopTimeshiftConfirmed, MessageBox, _("Stop Timeshift?"), MessageBox.TYPE_YESNO) def stopTimeshiftConfirmed(self, confirmed): @@ -1187,7 +1187,7 @@ class InfoBarInstantRecord: except: self.session.open(MessageBox, _("No HDD found or HDD not initialized!"), MessageBox.TYPE_ERROR) return - + if self.isInstantRecordRunning(): self.session.openWithCallback(self.recordQuestionCallback, ChoiceBox, title=_("A recording is currently running.\nWhat do you want to do?"), list=[(_("stop recording"), "stop"), (_("change recording (duration)"), "changeduration"), (_("add recording (indefinitely)"), "indefinitely"), (_("add recording (stop after current event)"), "event"), (_("add recording (enter recording duration)"), "manualduration"), (_("do nothing"), "no")]) else: diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 7d737c22..8f288982 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -630,7 +630,7 @@ RESULT eServiceFactoryDVB::lookupService(ePtr &service, const eServ } eDVBServicePlay::eDVBServicePlay(const eServiceReference &ref, eDVBService *service): - m_reference(ref), m_dvb_service(service), m_is_paused(0) + m_reference(ref), m_dvb_service(service), m_have_video_pid(0), m_is_paused(0) { m_is_primary = 1; m_is_pvr = !m_reference.path.empty(); @@ -1031,7 +1031,8 @@ RESULT eDVBServicePlay::subServices(ePtr &ptr) RESULT eDVBServicePlay::timeshift(ePtr &ptr) { ptr = 0; - if (m_timeshift_enabled || !m_is_pvr) + if (m_have_video_pid && // HACK !!! FIXMEE !! temporary no timeshift on radio services !! + (m_timeshift_enabled || !m_is_pvr)) { if (!m_timeshift_enabled) { @@ -1774,6 +1775,7 @@ void eDVBServicePlay::updateDecoder() m_dvb_service->setCacheEntry(eDVBService::cTPID, tpid); } } + m_have_video_pid = (vpid > 0 && vpid < 0x2000); } void eDVBServicePlay::loadCuesheet() diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h index 29cff4d3..8026d655 100644 --- a/lib/service/servicedvb.h +++ b/lib/service/servicedvb.h @@ -161,6 +161,7 @@ private: ePtr m_decoder; int m_is_primary; + int m_have_video_pid; /* in timeshift mode, we essentially have two channels, and thus pmt handlers. */ eDVBServicePMTHandler m_service_handler_timeshift;