diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-01-17 00:22:47 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-01-17 00:22:47 +0000 |
| commit | 721f838966ed31bde07d08792154e0750d6dd9ae (patch) | |
| tree | 325bed60e0d7eb7a41c3d702ed99d43ab8d93969 /lib/dvb | |
| parent | 8eadc0e09e19713d6c2b1c12aa2946042cfafabe (diff) | |
| download | enigma2-721f838966ed31bde07d08792154e0750d6dd9ae.tar.gz enigma2-721f838966ed31bde07d08792154e0750d6dd9ae.zip | |
handle EOF event in pmt handler
Diffstat (limited to 'lib/dvb')
| -rw-r--r-- | lib/dvb/pmt.cpp | 16 | ||||
| -rw-r--r-- | lib/dvb/pmt.h | 7 |
2 files changed, 22 insertions, 1 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index 8c56589c..2455b95f 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -64,6 +64,18 @@ void eDVBServicePMTHandler::channelStateChanged(iDVBChannel *channel) } } +void eDVBServicePMTHandler::channelEvent(iDVBChannel *channel, int event) +{ + switch (event) + { + case iDVBChannel::evtEOF: + serviceEvent(eventEOF); + break; + default: + break; + } +} + void eDVBServicePMTHandler::PMTready(int error) { if (error) @@ -370,6 +382,10 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux) m_channelStateChanged_connection); m_last_channel_state = -1; channelStateChanged(m_channel); + + m_channel->connectEvent( + slot(*this, &eDVBServicePMTHandler::channelEvent), + m_channelEvent_connection); } else { serviceEvent(eventTuneFailed); diff --git a/lib/dvb/pmt.h b/lib/dvb/pmt.h index 995cc9be..aabac24d 100644 --- a/lib/dvb/pmt.h +++ b/lib/dvb/pmt.h @@ -61,11 +61,14 @@ class eDVBServicePMTHandler: public Object void channelStateChanged(iDVBChannel *); ePtr<eConnection> m_channelStateChanged_connection; + void channelEvent(iDVBChannel *, int event); + ePtr<eConnection> m_channelEvent_connection; void PMTready(int error); void PATready(int error); int m_use_decode_demux; + public: eDVBServicePMTHandler(); ~eDVBServicePMTHandler(); @@ -78,7 +81,9 @@ public: eventNoPATEntry, // no pat entry for the corresponding SID could be found eventNoPMT, // no pmt could be received (timeout) eventNewProgramInfo, // we just received a PMT - eventTuned // a channel was sucessfully (re-)tuned in, you may start additional filters now + eventTuned, // a channel was sucessfully (re-)tuned in, you may start additional filters now + + eventEOF, // a file playback did end }; Signal1<void,int> serviceEvent; |
