35 if (Number == LastNumber)
60 return pid == Pid && tid == Tid && mask == Mask;
65 return pid == Pid && tid == (Tid & mask);
72 sectionHandler = NULL;
78 sectionHandler = NULL;
86 sectionHandler->Detach(
this);
91 return sectionHandler ? sectionHandler->Source() : 0;
96 return sectionHandler ? sectionHandler->Transponder() : 0;
101 return sectionHandler ? sectionHandler->Channel() : NULL;
106 if (sectionHandler && on != On) {
110 sectionHandler->Add(fd);
112 sectionHandler->Del(fd);
130 if (fd->Matches(Pid, Tid))
139 Add(Pid, Tid, Mask,
true);
146 if (sectionHandler && on)
147 sectionHandler->Add(fd);
153 if (fd->Is(Pid, Tid, Mask)) {
154 if (sectionHandler && on)
155 sectionHandler->Del(fd);
bool Matches(u_short Pid, u_char Tid)
void Add(u_short Pid, u_char Tid, u_char Mask=0xFF, bool Sticky=false)
Adds the given filter data to this filter.
const cChannel * Channel(void)
Returns the channel of the data delivered to this filter.
bool Sync(uchar Version, int Number, int LastNumber)
bool Matches(u_short Pid, u_char Tid)
Indicates whether this filter wants to receive data from the given Pid/Tid.
void Del(u_short Pid, u_char Tid, u_char Mask=0xFF)
Deletes the given filter data from this filter.
int Source(void)
Returns the source of the data delivered to this filter.
bool Is(u_short Pid, u_char Tid, u_char Mask)
virtual void SetStatus(bool On)
Turns this filter on or off, depending on the value of On.
cListObject * Next(void) const
int Transponder(void)
Returns the transponder of the data delivered to this filter.
void Set(u_short Pid, u_char Tid, u_char Mask=0xFF)
Sets the given filter data by calling Add() with Sticky = true.