void cHookManager::DelHook(cLogHook *hook) { PRINTF(L_CORE_HOOK,"%d: stopping hook '%s' (%04x)",cardNum,hook->name,hook->id); for(cPid *pid=hook->pids.First(); pid; pid=hook->pids.Next(pid)) { cPidFilter *filter=pid->filter; if(filter) { DelFilter(filter); pid->filter=0; } } hooks.Del(hook); }
void cLogger::EcmStatus(const cEcmInfo *ecm, bool on) { Lock(); PRINTF(L_CORE_AUEXTRA,"%d: ecm prgid=%d caid=%04x prov=%.4x %s",cardNum,ecm->prgId,ecm->caId,ecm->provId,on ? "active":"inactive"); source=ecm->source; transponder=ecm->transponder; cEcmInfo *e; if(on) { e=new cEcmInfo(ecm); active.Add(e); if(!up) Up(); } else { for(e=active.First(); e; e=active.Next(e)) if(e->Compare(ecm)) { active.Del(e); break; } } if(prescan>=pmWait) prescan=pmStop; SetChains(); prescan=pmNone; Unlock(); }
cScDevicePlugin::~cScDevicePlugin() { devplugins.Del(this,false); }