cPatFilter Class Reference

#include <pat.h>

Inheritance diagram for cPatFilter:

Inheritance graph
[legend]
Collaboration diagram for cPatFilter:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 cPatFilter (void)
virtual void SetStatus (bool On)
void Trigger (void)

Protected Member Functions

virtual void Process (u_short Pid, u_char Tid, const u_char *Data, int Length)

Private Member Functions

bool PmtVersionChanged (int PmtPid, int Sid, int Version)

Private Attributes

time_t lastPmtScan
int pmtIndex
int pmtPid
int pmtSid
uint64_t pmtVersion [MAXPMTENTRIES]
int numPmtEntries


Detailed Description

Definition at line 18 of file pat.h.


Constructor & Destructor Documentation

cPatFilter::cPatFilter ( void   ) 

Definition at line 231 of file pat.c.

References lastPmtScan, numPmtEntries, pmtIndex, pmtPid, pmtSid, and cFilter::Set().

Here is the call graph for this function:


Member Function Documentation

bool cPatFilter::PmtVersionChanged ( int  PmtPid,
int  Sid,
int  Version 
) [private]

Definition at line 256 of file pat.c.

References MAXPMTENTRIES, numPmtEntries, and pmtVersion.

Referenced by Process().

void cPatFilter::Process ( u_short  Pid,
u_char  Tid,
const u_char *  Data,
int  Length 
) [protected, virtual]

Processes the data delivered to this filter. Pid and Tid is one of the combinations added to this filter by a previous call to Add(), Data is a pointer to Length bytes of data. This function will be called from the section handler's thread, so it has to use proper locking mechanisms in case it accesses any global data. It is guaranteed that if several cFilters are attached to the same cSectionHandler, only _one_ of them has its Process() function called at any given time. It is allowed that more than one cFilter are set up to receive the same Pid/Tid. The Process() function must return as soon as possible.

Implements cFilter.

Definition at line 274 of file pat.c.

References SI::AC3DescriptorTag, cFilter::Add(), cCaDescriptors::AddCaDescriptor(), cCaDescriptorHandler::AddCaDescriptors(), SI::PAT::associationLoop, SI::CaDescriptorTag, cCaDescriptors::CaIds(), cFilter::Channel(), Channels, SI::CRCSection::CheckCRCAndParse(), SI::PMT::commonDescriptors, cFilter::Del(), cChannels::GetByServiceID(), SI::Descriptor::getDescriptorTag(), SI::PMT::getPCRPid(), SI::PMT::Stream::getPid(), SI::PAT::Association::getPid(), SI::PMT::getServiceId(), SI::PAT::Association::getServiceId(), SI::PMT::Stream::getStreamType(), SI::NumberedSection::getTableIdExtension(), SI::NumberedSection::getVersionNumber(), I18nNormalizeLanguageCode(), cListObject::Index(), SI::PAT::Association::isNITPid(), SI::ISO639LanguageDescriptorTag, SI::SubtitlingDescriptor::Subtitling::languageCode, SI::ISO639LanguageDescriptor::Language::languageCode, SI::ISO639LanguageDescriptor::languageCode, SI::ISO639LanguageDescriptor::languageLoop, lastPmtScan, cRwLock::Lock(), MAXAPIDS, MAXDPIDS, MAXLANGCODE1, MAXLANGCODE2, MAXSPIDS, numPmtEntries, PMT_SCAN_TIMEOUT, pmtIndex, pmtPid, pmtSid, PmtVersionChanged(), cChannel::SetCaDescriptors(), cChannel::SetCaIds(), cChannel::SetPids(), Setup, cChannel::Sid(), cChannel::Source(), cFilter::Source(), SI::PMT::Stream::streamDescriptors, SI::PMT::streamLoop, strn0cpy(), SI::SubtitlingDescriptorTag, SI::SubtitlingDescriptor::subtitlingLoop, SI::TableIdPMT, SI::TeletextDescriptorTag, cChannel::Transponder(), cFilter::Transponder(), cRwLock::Unlock(), and cSetup::UpdateChannels.

Here is the call graph for this function:

void cPatFilter::SetStatus ( bool  On  )  [virtual]

Turns this filter on or off, depending on the value of On. If the filter is turned off, any filter data that has been added without the Sticky parameter set to 'true' will be automatically deleted. Those parameters that have been added with Sticky set to 'true' will be automatically reused when SetStatus(true) is called.

Reimplemented from cFilter.

Definition at line 241 of file pat.c.

References lastPmtScan, numPmtEntries, pmtIndex, pmtPid, pmtSid, and cFilter::SetStatus().

Here is the call graph for this function:

void cPatFilter::Trigger ( void   ) 

Definition at line 251 of file pat.c.

References numPmtEntries.

Referenced by cSdtFilter::Process().


Member Data Documentation

time_t cPatFilter::lastPmtScan [private]

Definition at line 20 of file pat.h.

Referenced by cPatFilter(), Process(), and SetStatus().

int cPatFilter::pmtIndex [private]

Definition at line 21 of file pat.h.

Referenced by cPatFilter(), Process(), and SetStatus().

int cPatFilter::pmtPid [private]

Definition at line 22 of file pat.h.

Referenced by cPatFilter(), Process(), and SetStatus().

int cPatFilter::pmtSid [private]

Definition at line 23 of file pat.h.

Referenced by cPatFilter(), Process(), and SetStatus().

uint64_t cPatFilter::pmtVersion[MAXPMTENTRIES] [private]

Definition at line 24 of file pat.h.

Referenced by PmtVersionChanged().

Definition at line 25 of file pat.h.

Referenced by cPatFilter(), PmtVersionChanged(), Process(), SetStatus(), and Trigger().


The documentation for this class was generated from the following files:

Generated on Tue Jan 13 14:30:49 2009 for VDR by  doxygen 1.5.6