aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-12-23 16:21:59 +0100
committerghost <andreas.monzner@multimedia-labs.de>2009-12-23 16:21:59 +0100
commitb209ca0ac28a2e1ddc1f27642b0dec0f376b0ad2 (patch)
tree922b78774d8f36ff2768231e4970161c2660ff47 /lib
parentee9a89efd6533997e3dc9a4e8adcb360333d01d9 (diff)
parent94b346a792a343858948de8c6db1301592af5986 (diff)
downloadenigma2-b209ca0ac28a2e1ddc1f27642b0dec0f376b0ad2.tar.gz
enigma2-b209ca0ac28a2e1ddc1f27642b0dec0f376b0ad2.zip
Merge branch 'bug_352_fix_some_cutlist_bugs'
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/dvb.cpp2
-rw-r--r--lib/dvb/idvb.h2
-rw-r--r--lib/dvb/pmt.cpp3
-rw-r--r--lib/dvb/pmt.h1
-rw-r--r--lib/python/Plugins/Extensions/CutListEditor/plugin.py2
-rw-r--r--lib/service/servicedvb.cpp4
6 files changed, 11 insertions, 3 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp
index a8dfb193..6eaadb04 100644
--- a/lib/dvb/dvb.cpp
+++ b/lib/dvb/dvb.cpp
@@ -1766,6 +1766,8 @@ RESULT eDVBChannel::playFile(const char *file)
m_pvr_thread->setStreamMode(1);
m_pvr_thread->setScatterGather(this);
+ m_event(this, evtPreStart);
+
if (m_pvr_thread->start(file, m_pvr_fd_dst))
{
delete m_pvr_thread;
diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h
index cff4dbb9..4ef7efad 100644
--- a/lib/dvb/idvb.h
+++ b/lib/dvb/idvb.h
@@ -522,7 +522,7 @@ public:
virtual RESULT getCurrentFrontendParameters(ePtr<iDVBFrontendParameters> &)=0;
enum
{
- evtEOF, evtSOF, evtFailed
+ evtPreStart, evtEOF, evtSOF, evtFailed
};
virtual RESULT connectStateChange(const Slot1<void,iDVBChannel*> &stateChange, ePtr<eConnection> &connection)=0;
virtual RESULT connectEvent(const Slot2<void,iDVBChannel*,int> &eventChange, ePtr<eConnection> &connection)=0;
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp
index 9bd065b3..ee89a3a4 100644
--- a/lib/dvb/pmt.cpp
+++ b/lib/dvb/pmt.cpp
@@ -75,6 +75,9 @@ void eDVBServicePMTHandler::channelEvent(iDVBChannel *channel, int event)
{
switch (event)
{
+ case iDVBChannel::evtPreStart:
+ serviceEvent(eventPreStart);
+ break;
case iDVBChannel::evtEOF:
serviceEvent(eventEOF);
break;
diff --git a/lib/dvb/pmt.h b/lib/dvb/pmt.h
index a9ca23f2..483c06b1 100644
--- a/lib/dvb/pmt.h
+++ b/lib/dvb/pmt.h
@@ -123,6 +123,7 @@ public:
eventNewProgramInfo, // we just received a PMT
eventTuned, // a channel was sucessfully (re-)tuned in, you may start additional filters now
+ eventPreStart, // before start filepush thread
eventSOF, // seek pre start
eventEOF, // a file playback did end
diff --git a/lib/python/Plugins/Extensions/CutListEditor/plugin.py b/lib/python/Plugins/Extensions/CutListEditor/plugin.py
index efe9f761..abd606d6 100644
--- a/lib/python/Plugins/Extensions/CutListEditor/plugin.py
+++ b/lib/python/Plugins/Extensions/CutListEditor/plugin.py
@@ -195,7 +195,7 @@ class CutListEditor(Screen, InfoBarBase, InfoBarSeek, InfoBarCueSheetSupport, He
self.onClose.append(self.__onClose)
def __onClose(self):
- self.session.nav.playService(self.old_service)
+ self.session.nav.playService(self.old_service, forceRestart=True)
def updateStateLabel(self, state):
self["SeekState"].setText(state[3].strip())
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index a6b6cc6f..b5e2651f 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1029,6 +1029,9 @@ void eDVBServicePlay::serviceEvent(int event)
m_event((iPlayableService*)this, evUpdatedInfo);
break;
}
+ case eDVBServicePMTHandler::eventPreStart:
+ loadCuesheet();
+ break;
case eDVBServicePMTHandler::eventEOF:
m_event((iPlayableService*)this, evEOF);
break;
@@ -1095,7 +1098,6 @@ RESULT eDVBServicePlay::start()
m_event_handler.inject(event, 0);
m_event_handler.inject(empty, 1);
}
- loadCuesheet();
m_event(this, evStart);
}
return 0;