diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-11-15 23:06:24 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-11-15 23:06:24 +0000 |
| commit | c5a75bf493e9c25857e2790c6240562be401f761 (patch) | |
| tree | bcd31f38c0c643134e6bdb960de0d7dfd4ea4647 /lib | |
| parent | b067ecfa85c92c10bdac90db8bc209274ca2c136 (diff) | |
| download | enigma2-c5a75bf493e9c25857e2790c6240562be401f761.tar.gz enigma2-c5a75bf493e9c25857e2790c6240562be401f761.zip | |
shutdown channel if tune fails
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/dvb/dvb.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 0201b337..32c7ea31 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -491,7 +491,18 @@ RESULT eDVBChannel::setChannel(const eDVBChannelID &channelid) m_channel_id = channelid; m_mgr->addChannel(channelid, this); m_state = state_tuning; - return m_frontend->get().tune(*feparm); + /* if tuning fails, shutdown the channel immediately. */ + int res; + res = m_frontend->get().tune(*feparm); + + if (res) + { + m_state = state_release; + m_stateChanged(this); + return res; + } + + return 0; } RESULT eDVBChannel::connectStateChange(const Slot1<void,iDVBChannel*> &stateChange, ePtr<eConnection> &connection) |
