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)
return 0;
}
-void eDVBFrontend::closeFrontend()
+int eDVBFrontend::closeFrontend()
{
if (!m_fe && m_data[7] != -1)
{
{
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);
setTone(iDVBFrontend::toneOff);
setVoltage(iDVBFrontend::voltageOff);
+ return 0;
}
eDVBFrontend::~eDVBFrontend()