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.
cListObject * Next(void) const
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.
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.