mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
/*
|
|
* sdt.h: SDT section filter
|
|
*
|
|
* See the main source file 'vdr.c' for copyright information and
|
|
* how to reach the author.
|
|
*
|
|
* $Id: sdt.h 4.1 2020/05/04 08:50:20 kls Exp $
|
|
*/
|
|
|
|
#ifndef __SDT_H
|
|
#define __SDT_H
|
|
|
|
#include "filter.h"
|
|
#include "pat.h"
|
|
|
|
class cSdtFilter : public cFilter {
|
|
private:
|
|
enum eTransponderState { tsUnknown, tsWrong, tsAccepted, tsVerified };
|
|
cMutex mutex;
|
|
cSectionSyncer sectionSyncer;
|
|
int source;
|
|
int lastSource;
|
|
int lastTransponder;
|
|
int lastNid;
|
|
int lastTid;
|
|
cPatFilter *patFilter;
|
|
enum eTransponderState transponderState;
|
|
protected:
|
|
virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length);
|
|
public:
|
|
cSdtFilter(cPatFilter *PatFilter);
|
|
virtual void SetStatus(bool On);
|
|
void Trigger(int Source);
|
|
bool TransponderVerified(void) const { return transponderState == tsVerified; } // returns true if the expected NIT/TID have been received in the SDT
|
|
bool TransponderWrong(void) const { return transponderState == tsWrong; } // returns true if an expected change of NIT/TID has not happened
|
|
};
|
|
|
|
#endif //__SDT_H
|