mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-01 09:51:22 +02:00
zapit/src/femanager.cpp: add fe enabled count, set channel PiP demux
This commit is contained in:
@@ -77,6 +77,7 @@ class CFEManager
|
|||||||
private:
|
private:
|
||||||
fe_map_t femap;
|
fe_map_t femap;
|
||||||
fe_mode_t mode;
|
fe_mode_t mode;
|
||||||
|
int enabled_count;
|
||||||
CConfigFile configfile;
|
CConfigFile configfile;
|
||||||
common_fe_config_t config;
|
common_fe_config_t config;
|
||||||
bool config_exist;
|
bool config_exist;
|
||||||
@@ -117,6 +118,7 @@ class CFEManager
|
|||||||
void setMode(fe_mode_t newmode, bool initial = false);
|
void setMode(fe_mode_t newmode, bool initial = false);
|
||||||
|
|
||||||
int getFrontendCount() { return femap.size(); };
|
int getFrontendCount() { return femap.size(); };
|
||||||
|
int getEnabledCount();
|
||||||
|
|
||||||
CFrontend * getScanFrontend(t_satellite_position satellitePosition);
|
CFrontend * getScanFrontend(t_satellite_position satellitePosition);
|
||||||
bool canTune(CZapitChannel * channel);
|
bool canTune(CZapitChannel * channel);
|
||||||
|
@@ -37,6 +37,7 @@
|
|||||||
#include <zapit/zapit.h>
|
#include <zapit/zapit.h>
|
||||||
#include <zapit/client/zapittools.h>
|
#include <zapit/client/zapittools.h>
|
||||||
#include <zapit/femanager.h>
|
#include <zapit/femanager.h>
|
||||||
|
#include <zapit/capmt.h>
|
||||||
#include <dmx_cs.h>
|
#include <dmx_cs.h>
|
||||||
#include <OpenThreads/ScopedLock>
|
#include <OpenThreads/ScopedLock>
|
||||||
|
|
||||||
@@ -80,6 +81,7 @@ CFEManager::CFEManager() : configfile(',', true)
|
|||||||
mode = FE_MODE_SINGLE;
|
mode = FE_MODE_SINGLE;
|
||||||
config_exist = false;
|
config_exist = false;
|
||||||
have_locked = false;
|
have_locked = false;
|
||||||
|
enabled_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CFEManager::Init()
|
bool CFEManager::Init()
|
||||||
@@ -105,7 +107,7 @@ bool CFEManager::Init()
|
|||||||
dmap.push_back(CFeDmx(i));
|
dmap.push_back(CFeDmx(i));
|
||||||
|
|
||||||
INFO("found %d frontends, %d demuxes\n", (int)femap.size(), (int)dmap.size());
|
INFO("found %d frontends, %d demuxes\n", (int)femap.size(), (int)dmap.size());
|
||||||
if( femap.empty() )
|
if (femap.empty())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -363,6 +365,7 @@ void CFEManager::linkFrontends(bool init)
|
|||||||
{
|
{
|
||||||
INFO("linking..");
|
INFO("linking..");
|
||||||
OpenThreads::ScopedLock<OpenThreads::Mutex> m_lock(mutex);
|
OpenThreads::ScopedLock<OpenThreads::Mutex> m_lock(mutex);
|
||||||
|
enabled_count = 0;
|
||||||
for(fe_map_iterator_t it = femap.begin(); it != femap.end(); it++) {
|
for(fe_map_iterator_t it = femap.begin(); it != femap.end(); it++) {
|
||||||
CFrontend * fe = it->second;
|
CFrontend * fe = it->second;
|
||||||
#if 0
|
#if 0
|
||||||
@@ -414,6 +417,8 @@ void CFEManager::linkFrontends(bool init)
|
|||||||
}
|
}
|
||||||
if (init && femode != CFrontend::FE_MODE_UNUSED)
|
if (init && femode != CFrontend::FE_MODE_UNUSED)
|
||||||
fe->Init();
|
fe->Init();
|
||||||
|
if (femode != CFrontend::FE_MODE_UNUSED)
|
||||||
|
enabled_count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -631,7 +636,16 @@ CFrontend * CFEManager::allocateFE(CZapitChannel * channel, bool forrecord)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
channel->setRecordDemux(frontend->fenumber+1);
|
channel->setRecordDemux(frontend->fenumber+1);
|
||||||
|
channel->setPipDemux(frontend->fenumber+1);
|
||||||
cDemux::SetSource(frontend->fenumber+1, frontend->fenumber);
|
cDemux::SetSource(frontend->fenumber+1, frontend->fenumber);
|
||||||
|
#ifdef ENABLE_PIP
|
||||||
|
/* FIXME until proper demux management */
|
||||||
|
if (enabled_count < 4) {
|
||||||
|
channel->setPipDemux(PIP_DEMUX);
|
||||||
|
cDemux::SetSource(PIP_DEMUX, frontend->fenumber);
|
||||||
|
}
|
||||||
|
INFO("pip demux: %d", channel->getPipDemux());
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -756,3 +770,9 @@ bool CFEManager::haveCable()
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CFEManager::getEnabledCount()
|
||||||
|
{
|
||||||
|
OpenThreads::ScopedLock<OpenThreads::Mutex> m_lock(mutex);
|
||||||
|
return enabled_count;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user