zapit/src/femanager.cpp: ifdef dynamic demux allocation, it disabled atm

Origin commit data
------------------
Commit: cc2e3862ad
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2013-02-26 (Tue, 26 Feb 2013)
This commit is contained in:
[CST] Focus
2013-02-26 17:19:06 +04:00
parent 80fc03f242
commit 4f7ade8fe7
2 changed files with 13 additions and 0 deletions

View File

@@ -33,6 +33,7 @@
#define MAX_FE 4 #define MAX_FE 4
#define MAX_ADAPTERS 1 #define MAX_ADAPTERS 1
//#define DYNAMIC_DEMUX
//#define MAKE_FE_KEY(adapter, number) ((adapter << 8) | (number & 0xFF)) //#define MAKE_FE_KEY(adapter, number) ((adapter << 8) | (number & 0xFF))
#define FECONFIGFILE CONFIGDIR "/zapit/frontend.conf" #define FECONFIGFILE CONFIGDIR "/zapit/frontend.conf"

View File

@@ -570,6 +570,7 @@ CFrontend * CFEManager::getFrontend(CZapitChannel * channel)
return free_frontend; return free_frontend;
} }
#ifdef DYNAMIC_DEMUX
int CFEManager::getDemux(transponder_id_t id) int CFEManager::getDemux(transponder_id_t id)
{ {
for (unsigned int i = 1; i < dmap.size(); i++) { for (unsigned int i = 1; i < dmap.size(); i++) {
@@ -608,6 +609,7 @@ bool CFEManager::haveFreeDemux()
} }
return false; return false;
} }
#endif // DYNAMIC_DEMUX
CFrontend * CFEManager::allocateFE(CZapitChannel * channel, bool forrecord) CFrontend * CFEManager::allocateFE(CZapitChannel * channel, bool forrecord)
{ {
@@ -616,6 +618,7 @@ CFrontend * CFEManager::allocateFE(CZapitChannel * channel, bool forrecord)
fedebug = 1; fedebug = 1;
CFrontend * frontend = getFrontend(channel); CFrontend * frontend = getFrontend(channel);
if (frontend) { if (frontend) {
#ifdef DYNAMIC_DEMUX
int dnum = getDemux(channel->getTransponderId()); int dnum = getDemux(channel->getTransponderId());
INFO("record demux: %d", dnum); INFO("record demux: %d", dnum);
channel->setRecordDemux(dnum); channel->setRecordDemux(dnum);
@@ -624,6 +627,11 @@ CFrontend * CFEManager::allocateFE(CZapitChannel * channel, bool forrecord)
} else { } else {
cDemux::SetSource(dnum, frontend->fenumber); cDemux::SetSource(dnum, frontend->fenumber);
} }
#else
channel->setRecordDemux(frontend->fenumber+1);
cDemux::SetSource(frontend->fenumber+1, frontend->fenumber);
#endif
} }
return frontend; return frontend;
} }
@@ -675,9 +683,11 @@ bool CFEManager::lockFrontend(CFrontend * frontend, CZapitChannel * channel)
have_locked = true; have_locked = true;
if (channel) { if (channel) {
#ifdef DYNAMIC_DEMUX
int di = channel->getRecordDemux(); int di = channel->getRecordDemux();
if ((unsigned int) di < dmap.size()) if ((unsigned int) di < dmap.size())
dmap[di].Lock(channel->getTransponderId()); dmap[di].Lock(channel->getTransponderId());
#endif
} }
return true; return true;
} }
@@ -688,12 +698,14 @@ bool CFEManager::unlockFrontend(CFrontend * frontend, bool unlock_demux)
have_locked = false; have_locked = false;
frontend->Unlock(); frontend->Unlock();
if (unlock_demux) { if (unlock_demux) {
#ifdef DYNAMIC_DEMUX
for (unsigned int i = 1; i < dmap.size(); i++) { for (unsigned int i = 1; i < dmap.size(); i++) {
if(dmap[i].tpid == frontend->getTsidOnid()) { if(dmap[i].tpid == frontend->getTsidOnid()) {
dmap[i].Unlock(); dmap[i].Unlock();
break; break;
} }
} }
#endif
} }
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;