51 if (Number == LastNumber)
78 mask = FilterData.
mask;
79 sticky = FilterData.
sticky;
85 return pid == Pid && tid == Tid && mask == Mask;
90 return pid == Pid && tid == (Tid & mask);
97 sectionHandler = NULL;
103 sectionHandler = NULL;
111 sectionHandler->Detach(
this);
116 return sectionHandler ? sectionHandler->Source() : 0;
121 return sectionHandler ? sectionHandler->Transponder() : 0;
126 return sectionHandler ? sectionHandler->Channel() : NULL;
131 if (sectionHandler && on != On) {
135 sectionHandler->Add(fd);
137 sectionHandler->Del(fd);
155 if (fd->Matches(Pid, Tid))
164 Add(Pid, Tid, Mask,
true);
171 if (sectionHandler && on)
172 sectionHandler->Add(fd);
178 if (fd->Is(Pid, Tid, Mask)) {
179 if (sectionHandler && on)
180 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.
cFilterData & operator=(const cFilterData &FilterData)
bool GetSectionFlag(uchar Section)
void SetSectionFlag(uchar Section, bool On)
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.