X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3c2c648735df18576453aa52f0d8441793619dc7..9d1ad359d7baaa92ebd79b1aaa774c39a1d06163:/lib/dvb/dvb.cpp diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 8feb3c18..0a5bb45e 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -18,12 +18,12 @@ DEFINE_REF(eDVBAllocatedFrontend); eDVBAllocatedFrontend::eDVBAllocatedFrontend(eDVBRegisteredFrontend *fe): m_fe(fe) { - m_fe->m_inuse++; + m_fe->inc_use(); } eDVBAllocatedFrontend::~eDVBAllocatedFrontend() { - --m_fe->m_inuse; + m_fe->dec_use(); } DEFINE_REF(eDVBAllocatedDemux); @@ -200,8 +200,6 @@ void eDVBResourceManager::addAdapter(iDVBAdapter *adapter) if (!adapter->getFrontend(frontend, i)) { - frontend->setTone(iDVBFrontend::toneOff); - frontend->setVoltage(iDVBFrontend::voltageOff); frontend->setSEC(m_sec); m_frontend.push_back(new eDVBRegisteredFrontend(frontend, adapter)); } @@ -365,6 +363,9 @@ RESULT eDVBResourceManager::allocateRawChannel(eUsePtr &channel, in { ePtr fe; + if (m_cached_channel) + m_cached_channel=0; + if (allocateFrontendByIndex(fe, frontend_index)) return errNoFrontend; @@ -379,7 +380,10 @@ RESULT eDVBResourceManager::allocateRawChannel(eUsePtr &channel, in RESULT eDVBResourceManager::allocatePVRChannel(eUsePtr &channel) { ePtr demux; - + + if (m_cached_channel) + m_cached_channel=0; + eDVBChannel *ch; ch = new eDVBChannel(this, 0);