From: Andreas Monzner Date: Wed, 7 Dec 2005 02:36:34 +0000 (+0000) Subject: retry frontend close every 60 seconds when frontend is busy X-Git-Tag: 2.6.0~4798 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/d2c297e62af0b7325ae058fdd5656044f0917bdd?hp=2e3ac8d64148ce6fd4d932e882e89d9c6305e500 retry frontend close every 60 seconds when frontend is busy --- diff --git a/lib/dvb/dvb.h b/lib/dvb/dvb.h index 71c6a6c1..a7be0a71 100644 --- a/lib/dvb/dvb.h +++ b/lib/dvb/dvb.h @@ -21,8 +21,8 @@ class eDVBRegisteredFrontend: public iObject, public Object eTimer *disable; void closeFrontend() { - if (!m_inuse) - m_frontend->closeFrontend(); + if (!m_inuse && m_frontend->closeFrontend()) // frontend busy + disable->start(60000, true); // retry close in 60secs } public: eDVBRegisteredFrontend(eDVBFrontend *fe, iDVBAdapter *adap) diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index 1cafcec4..a3483904 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -313,7 +313,7 @@ int eDVBFrontend::openFrontend() return 0; } -void eDVBFrontend::closeFrontend() +int eDVBFrontend::closeFrontend() { if (!m_fe && m_data[7] != -1) { @@ -323,7 +323,7 @@ void eDVBFrontend::closeFrontend() { eDebug("dont close frontend %d until the linked frontend %d is still in use", m_fe, linked_fe->m_frontend->getID()); - return; + return -1; } } eDebug("close frontend %d", m_fe); @@ -344,6 +344,7 @@ void eDVBFrontend::closeFrontend() setTone(iDVBFrontend::toneOff); setVoltage(iDVBFrontend::voltageOff); + return 0; } eDVBFrontend::~eDVBFrontend() diff --git a/lib/dvb/frontend.h b/lib/dvb/frontend.h index 7862e2ea..c702970b 100644 --- a/lib/dvb/frontend.h +++ b/lib/dvb/frontend.h @@ -100,7 +100,7 @@ public: int getID() { return m_fe; } int openFrontend(); - void closeFrontend(); + int closeFrontend(); }; #endif