aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-11-15 23:06:24 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-11-15 23:06:24 +0000
commitc5a75bf493e9c25857e2790c6240562be401f761 (patch)
treebcd31f38c0c643134e6bdb960de0d7dfd4ea4647 /lib
parentb067ecfa85c92c10bdac90db8bc209274ca2c136 (diff)
downloadenigma2-c5a75bf493e9c25857e2790c6240562be401f761.tar.gz
enigma2-c5a75bf493e9c25857e2790c6240562be401f761.zip
shutdown channel if tune fails
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/dvb.cpp13
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)