summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-06-27 20:11:13 (GMT)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-06-27 20:11:13 (GMT)
commit640a60618e00639f02c546f021ba67c454a49428 (patch)
tree6698b9ba64b33d8361c7d7813177ba8fb5967ff0
parentd6aaba4ddb2053bc56b1ff9e52bb227fc88c1ac1 (diff)
rewrite ServiceEventTracker and PerServiceBase service event handle code
-rw-r--r--lib/dvb/decoder.cpp5
-rw-r--r--lib/python/Components/Makefile.am2
-rw-r--r--lib/python/Screens/ChannelSelection.py4
-rw-r--r--lib/python/Screens/InfoBarGenerics.py2
-rw-r--r--lib/service/servicedvb.cpp3
5 files changed, 12 insertions, 4 deletions
diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp
index 7ad1a25..4403172 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 d3c51ab..df8cf9f 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 64ae549..5787021 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 2227f8b..9d25785 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 307c317..f13ae50 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<iPlayableService> &ptr)
{
ePtr<eDVBService> service;
@@ -946,6 +948,7 @@ RESULT eServiceFactoryDVB::play(const eServiceReference &ref, ePtr<iPlayableServ
if (r)
service = 0;
// check resources...
+ clock_gettime(CLOCK_MONOTONIC, &service_start);
ptr = new eDVBServicePlay(ref, service);
return 0;
}