vdr 2.6.1
|
#include <filter.h>
Public Member Functions | |
cSectionSyncer (bool Random=false) | |
void | Reset (void) |
bool | Check (uchar Version, int SectionNumber) |
bool | Processed (int SectionNumber, int LastSectionNumber, int SegmentLastSectionNumber=-1) |
bool | Complete (void) |
void | Repeat (void) |
bool | Sync (uchar Version, int Number, int LastNumber) |
cSectionSyncer (bool Random=false) | |
void | Reset (void) |
bool | Check (uchar Version, int SectionNumber) |
bool | Processed (int SectionNumber, int LastSectionNumber, int SegmentLastSectionNumber=-1) |
bool | Complete (void) |
void | Repeat (void) |
bool | Sync (uchar Version, int Number, int LastNumber) |
Private Member Functions | |
void | SetSectionFlag (uchar Section, bool On) |
bool | GetSectionFlag (uchar Section) |
void | SetSectionFlag (uchar Section, bool On) |
bool | GetSectionFlag (uchar Section) |
Private Attributes | |
int | currentVersion |
int | currentSection |
bool | random |
bool | synced |
bool | complete |
uint32_t | segments |
uchar | sections [32] |
cSectionSyncer::cSectionSyncer | ( | bool | Random = false | ) |
Sets up a new section syncer.
Call Check() to see whether a given section needs processing. Once the section has been processed, call Processed() to mark it as such. If, for any reason, processing is not completed after calling Check(), nothing special needs to be done. Just don't call Processed() and a later call to Check() with the same SectionNumber will return true again. If Random is true, sections can be processed in random order, not necessarily starting with section 0.
cSectionSyncer::cSectionSyncer | ( | bool | Random = false | ) |
Sets up a new section syncer.
Call Check() to see whether a given section needs processing. Once the section has been processed, call Processed() to mark it as such. If, for any reason, processing is not completed after calling Check(), nothing special needs to be done. Just don't call Processed() and a later call to Check() with the same SectionNumber will return true again. If Random is true, sections can be processed in random order, not necessarily starting with section 0.
bool cSectionSyncer::Check | ( | uchar | Version, |
int | SectionNumber | ||
) |
Returns true if Version is not the current version, or the given SectionNumber has not been marked as processed, yet.
Sections are handled in ascending order, starting at 0, unless Random is true in the constructor call.
Definition at line 31 of file filter.c.
References complete, currentSection, currentVersion, GetSectionFlag(), random, Reset(), and synced.
Referenced by cEitTables::Check(), cNitFilter::Process(), cPatFilter::Process(), and cSdtFilter::Process().
bool cSectionSyncer::Check | ( | uchar | Version, |
int | SectionNumber | ||
) |
Returns true if Version is not the current version, or the given SectionNumber has not been marked as processed, yet.
Sections are handled in ascending order, starting at 0, unless Random is true in the constructor call.
|
inline |
|
inline |
Returns true if all sections have been processed.
Definition at line 50 of file include/vdr/filter.h.
References complete.
|
inlineprivate |
|
inlineprivate |
Definition at line 28 of file include/vdr/filter.h.
References sections.
bool cSectionSyncer::Processed | ( | int | SectionNumber, |
int | LastSectionNumber, | ||
int | SegmentLastSectionNumber = -1 |
||
) |
Marks the given SectionNumber as processed.
LastSectionNumber is used to determine whether all sections have been processed. SegmentLastSectionNumber can be given to handle partially filled segments (like, for instance in the EIT). Returns true if all sections have been processed.
Definition at line 54 of file filter.c.
References complete, currentSection, random, sections, segments, and SetSectionFlag().
Referenced by cNitFilter::Process(), cPatFilter::Process(), and cSdtFilter::Process().
bool cSectionSyncer::Processed | ( | int | SectionNumber, |
int | LastSectionNumber, | ||
int | SegmentLastSectionNumber = -1 |
||
) |
Marks the given SectionNumber as processed.
LastSectionNumber is used to determine whether all sections have been processed. SegmentLastSectionNumber can be given to handle partially filled segments (like, for instance in the EIT). Returns true if all sections have been processed.
void cSectionSyncer::Repeat | ( | void | ) |
Definition at line 77 of file filter.c.
References complete, currentSection, SetSectionFlag(), and synced.
void cSectionSyncer::Repeat | ( | void | ) |
void cSectionSyncer::Reset | ( | void | ) |
Definition at line 21 of file filter.c.
References complete, currentSection, currentVersion, sections, segments, and synced.
Referenced by Check(), cSectionSyncer(), cPatFilter::Process(), cNitFilter::SetStatus(), cSdtFilter::SetStatus(), Sync(), and cPatFilter::Trigger().
void cSectionSyncer::Reset | ( | void | ) |
|
inlineprivate |
|
inlineprivate |
Definition at line 27 of file include/vdr/filter.h.
References sections.
bool cSectionSyncer::Sync | ( | uchar | Version, |
int | Number, | ||
int | LastNumber | ||
) |
Definition at line 84 of file filter.c.
References complete, currentSection, currentVersion, GetSectionFlag(), Reset(), SetSectionFlag(), and synced.
bool cSectionSyncer::Sync | ( | uchar | Version, |
int | Number, | ||
int | LastNumber | ||
) |
|
private |
Definition at line 24 of file filter.h.
Referenced by Check(), Complete(), Processed(), Repeat(), Reset(), and Sync().
|
private |
|
private |
|
private |
Definition at line 22 of file filter.h.
Referenced by Check(), cSectionSyncer(), and Processed().
|
private |
Definition at line 26 of file filter.h.
Referenced by GetSectionFlag(), Processed(), Reset(), and SetSectionFlag().
|
private |
Definition at line 25 of file filter.h.
Referenced by Processed(), and Reset().
|
private |