git.cweiske.de
/
enigma2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
807d980
)
add preStart event and use it to load the cutlist
author
ghost
<andreas.monzner@multimedia-labs.de>
Sun, 13 Dec 2009 11:37:15 +0000
(12:37 +0100)
committer
ghost
<andreas.monzner@multimedia-labs.de>
Sun, 13 Dec 2009 11:37:15 +0000
(12:37 +0100)
lib/dvb/dvb.cpp
patch
|
blob
|
history
lib/dvb/idvb.h
patch
|
blob
|
history
lib/dvb/pmt.cpp
patch
|
blob
|
history
lib/dvb/pmt.h
patch
|
blob
|
history
lib/service/servicedvb.cpp
patch
|
blob
|
history
diff --git
a/lib/dvb/dvb.cpp
b/lib/dvb/dvb.cpp
index 894287e84f18845b6e06d39a467033a1d62688fa..76f6899df31edee6117a0029d8fc875887ff081c 100644
(file)
--- a/
lib/dvb/dvb.cpp
+++ b/
lib/dvb/dvb.cpp
@@
-1771,6
+1771,8
@@
RESULT eDVBChannel::playFile(const char *file)
m_pvr_thread->setStreamMode(1);
m_pvr_thread->setScatterGather(this);
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;
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 cff4dbb97e0c6a24eaf3e40c80fe1389878d4ff9..4ef7efaddbebe9b26cc67c5eff0527b879a183df 100644
(file)
--- a/
lib/dvb/idvb.h
+++ b/
lib/dvb/idvb.h
@@
-522,7
+522,7
@@
public:
virtual RESULT getCurrentFrontendParameters(ePtr<iDVBFrontendParameters> &)=0;
enum
{
virtual RESULT getCurrentFrontendParameters(ePtr<iDVBFrontendParameters> &)=0;
enum
{
- evtEOF, evtSOF, evtFailed
+ evt
PreStart, evt
EOF, 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;
};
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 9bd065b3d075e4ebf90bc8a77909e5902f909a21..ee89a3a43a93a55133f838c2d1aa34e27fdc2798 100644
(file)
--- a/
lib/dvb/pmt.cpp
+++ b/
lib/dvb/pmt.cpp
@@
-75,6
+75,9
@@
void eDVBServicePMTHandler::channelEvent(iDVBChannel *channel, int event)
{
switch (event)
{
{
switch (event)
{
+ case iDVBChannel::evtPreStart:
+ serviceEvent(eventPreStart);
+ break;
case iDVBChannel::evtEOF:
serviceEvent(eventEOF);
break;
case iDVBChannel::evtEOF:
serviceEvent(eventEOF);
break;
diff --git
a/lib/dvb/pmt.h
b/lib/dvb/pmt.h
index a9ca23f246308b44d750fcaee304b7fa99d5dc2b..483c06b15ae3007c06514ca7760d30fdf7a05300 100644
(file)
--- 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
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
eventSOF, // seek pre start
eventEOF, // a file playback did end
diff --git
a/lib/service/servicedvb.cpp
b/lib/service/servicedvb.cpp
index 1a28fbdd17907d2dda1a43403d85abef3df4db58..19bac206d44653065a7907c78b19b2f283b4016f 100644
(file)
--- 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;
}
m_event((iPlayableService*)this, evUpdatedInfo);
break;
}
+ case eDVBServicePMTHandler::eventPreStart:
+ loadCuesheet();
+ break;
case eDVBServicePMTHandler::eventEOF:
m_event((iPlayableService*)this, evEOF);
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);
}
m_event_handler.inject(event, 0);
m_event_handler.inject(empty, 1);
}
- loadCuesheet();
m_event(this, evStart);
}
return 0;
m_event(this, evStart);
}
return 0;