|
SASC
DVBSoftCAM
|
#include <filter.h>
Inheritance diagram for cPidFilter:Public Member Functions | |
| cPidFilter (const char *Id, int Num, cDevice *Device, unsigned int IdleTime) | |
| virtual | ~cPidFilter () |
| void | Flush (void) |
| virtual void | Start (int Pid, int Section, int Mask) |
| void | Stop (void) |
| void | SetBuffSize (int BuffSize) |
| void | Wakeup (void) |
| int | SetIdleTime (unsigned int IdleTime) |
| int | Pid (void) |
| bool | Active (void) |
| cPidFilter (const char *Id, int Num, cDevice *Device, unsigned int IdleTime) | |
| virtual | ~cPidFilter () |
| void | Flush (void) |
| virtual void | Start (int Pid, int Section, int Mask) |
| void | Stop (void) |
| void | SetBuffSize (int BuffSize) |
| void | Wakeup (void) |
| int | SetIdleTime (unsigned int IdleTime) |
| int | Pid (void) |
| bool | Active (void) |
Public Attributes | |
| void * | userData |
Protected Attributes | |
| char * | id |
| int | fd |
| int | pid |
Friends | |
| class | cAction |
| cPidFilter::cPidFilter | ( | const char * | Id, |
| int | Num, | ||
| cDevice * | Device, | ||
| unsigned int | IdleTime | ||
| ) |
| cPidFilter::~cPidFilter | ( | ) | [virtual] |
Definition at line 48 of file filter.c.
References free, L_CORE_ACTION, PRINTF, and Stop().
{
cMutexLock lock(this);
Stop();
PRINTF(L_CORE_ACTION,"filter '%s' removed",id);
free(id);
}
| cPidFilter::cPidFilter | ( | const char * | Id, |
| int | Num, | ||
| cDevice * | Device, | ||
| unsigned int | IdleTime | ||
| ) |
| virtual cPidFilter::~cPidFilter | ( | ) | [virtual] |
| bool cPidFilter::Active | ( | void | ) | [inline] |
Definition at line 81 of file filter.h.
References fd.
Referenced by cAction::Action(), cAction::IdleFilter(), and Pid().
{ return fd>=0; }
| bool cPidFilter::Active | ( | void | ) | [inline] |
| void cPidFilter::Flush | ( | void | ) |
Definition at line 56 of file filter.c.
References fd, and MAX_SECT_SIZE.
Referenced by cAction::Action(), cTpsAuHook::Process(), and cEcmHandler::Process().
{
cMutexLock lock(this);
if(fd>=0) {
unsigned char buff[MAX_SECT_SIZE];
while(read(fd,buff,sizeof(buff))>0);
}
}
| void cPidFilter::Flush | ( | void | ) |
| int cPidFilter::Pid | ( | void | ) |
Definition at line 118 of file filter.c.
References Active().
Referenced by cEcmHandler::Process(), cLogger::Process(), cHookManager::Process(), and Start().
| int cPidFilter::Pid | ( | void | ) |
| void cPidFilter::SetBuffSize | ( | int | BuffSize | ) |
| void cPidFilter::SetBuffSize | ( | int | BuffSize | ) |
| int cPidFilter::SetIdleTime | ( | unsigned int | IdleTime | ) |
| int cPidFilter::SetIdleTime | ( | unsigned int | IdleTime | ) |
| void cPidFilter::Start | ( | int | Pid, |
| int | Section, | ||
| int | Mask | ||
| ) | [virtual] |
Definition at line 65 of file filter.c.
References fd, i, L_CORE_ACTION, LBEND, LBPUT, LBSTART, cDevice::OpenFilter(), Pid(), and Stop().
Referenced by cTpsAuHook::Process().
{
cMutexLock lock(this);
Stop();
fd=device->OpenFilter(Pid,Section,Mask);
if(fd>=0) {
pid=Pid;
LBSTART(L_CORE_ACTION);
LBPUT("filter '%s' -> pid=0x%04x sct=0x%02x/0x%02x matching",id,Pid,Section,Mask);
int Mode=0;
int mam =Mask & (~Mode);
int manm=Mask & ~(~Mode);
for(int i=0; i<256; i++) {
int xxxor=Section ^ i;
if((mam&xxxor) || (manm && !(manm&xxxor))) {}
else
LBPUT(" 0x%02x",i);
}
LBEND();
}
}
| virtual void cPidFilter::Start | ( | int | Pid, |
| int | Section, | ||
| int | Mask | ||
| ) | [virtual] |
| void cPidFilter::Stop | ( | void | ) |
| void cPidFilter::Stop | ( | void | ) |
Definition at line 88 of file filter.c.
References cDevice::CloseFilter(), and fd.
Referenced by SetBuffSize(), Start(), and ~cPidFilter().
{
cMutexLock lock(this);
if(fd>=0) { device->CloseFilter(fd); fd=-1; }
}
| void cPidFilter::Wakeup | ( | void | ) |
Definition at line 111 of file filter.c.
References L_CORE_ACTION, and PRINTF.
Referenced by cEcmHandler::SetPrg(), cEcmHandler::ShiftCwIndex(), and cEcmHandler::Stop().
{
cMutexLock lock(this);
forceRun=true;
PRINTF(L_CORE_ACTION,"filter '%s': wakeup",id);
}
| void cPidFilter::Wakeup | ( | void | ) |
int cPidFilter::fd [protected] |
Definition at line 67 of file filter.h.
Referenced by cAction::Action(), Active(), cPidFilter(), Flush(), SetBuffSize(), Start(), and Stop().
char * cPidFilter::id [protected] |
Definition at line 66 of file filter.h.
Referenced by cAction::Action().
int cPidFilter::pid [protected] |
| void * cPidFilter::userData |
Definition at line 70 of file filter.h.
Referenced by cHookManager::AddHook(), cPidFilter(), cLogger::Process(), and cHookManager::Process().