From: Andreas Monzner Date: Fri, 27 Jun 2008 20:11:13 +0000 (+0000) Subject: rewrite ServiceEventTracker and PerServiceBase service event handle code X-Git-Tag: 2.6.0~1090 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/640a60618e00639f02c546f021ba67c454a49428 rewrite ServiceEventTracker and PerServiceBase service event handle code --- diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp index 7ad1a25d..44031726 100644 --- a/lib/dvb/decoder.cpp +++ b/lib/dvb/decoder.cpp @@ -1007,7 +1007,12 @@ RESULT eTSMPEGDecoder::setSyncMaster(int who) RESULT eTSMPEGDecoder::start() { + timespec now, tmp; + extern timespec service_start; RESULT r; + clock_gettime(CLOCK_MONOTONIC, &now); + tmp = now - service_start; + eDebug("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! %d:%d", tmp.tv_sec, tmp.tv_nsec); r = setState(); if (r) return r; diff --git a/lib/python/Components/Makefile.am b/lib/python/Components/Makefile.am index d3c51ab2..df8cf9fe 100644 --- a/lib/python/Components/Makefile.am +++ b/lib/python/Components/Makefile.am @@ -18,4 +18,4 @@ install_PYTHON = \ MultiContent.py MediaPlayer.py TunerInfo.py VideoWindow.py ChoiceList.py \ Element.py Playlist.py ParentalControl.py ParentalControlList.py \ Ipkg.py SelectionList.py Scanner.py SystemInfo.py DreamInfoHandler.py \ - Task.py + Task.py Thread.py diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 64ae5492..57870212 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -1086,7 +1086,7 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect "keyTV": self.setModeTv, }) - self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + self.__event_tracker = ServiceEventTracker(screen=self, in_thread=True, eventmap= { iPlayableService.evStart: self.__evServiceStart, iPlayableService.evEnd: self.__evServiceEnd @@ -1356,7 +1356,7 @@ class ChannelSelectionRadio(ChannelSelectionBase, ChannelSelectionEdit, ChannelS "ok": self.channelSelected, }) - self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + self.__event_tracker = ServiceEventTracker(screen=self, in_thread=True, eventmap= { iPlayableService.evStart: self.__evServiceStart, iPlayableService.evEnd: self.__evServiceEnd diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 2227f8b9..9d257858 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -62,7 +62,7 @@ class InfoBarShowHide: "hide": self.hide, }, 1) # lower prio to make it possible to override ok and cancel.. - self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + self.__event_tracker = ServiceEventTracker(screen=self, in_thread=True, eventmap= { iPlayableService.evStart: self.serviceStarted, }) diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 307c317f..f13ae50e 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -939,6 +939,8 @@ RESULT eDVBServiceList::setListName(const std::string &name) return m_bouquet->setListName(name); } +timespec service_start; + RESULT eServiceFactoryDVB::play(const eServiceReference &ref, ePtr &ptr) { ePtr service; @@ -946,6 +948,7 @@ RESULT eServiceFactoryDVB::play(const eServiceReference &ref, ePtr