vdr/sdt.h

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