vdr
2.8.4
sdt.h
Go to the documentation of this file.
1
/*
2
* sdt.h: SDT section filter
3
*
4
* See the main source file 'vdr.c' for copyright information and
5
* how to reach the author.
6
*
7
* $Id: sdt.h 5.1 2025/03/02 11:03:35 kls Exp $
8
*/
9
10
#ifndef __SDT_H
11
#define __SDT_H
12
13
#include <atomic>
14
#include "
filter.h
"
15
#include "
pat.h
"
16
17
class
cSdtFilter
:
public
cFilter
{
18
private
:
19
enum
eTransponderState
{
tsUnknown
,
tsWrong
,
tsAccepted
,
tsVerified
};
20
cMutex
mutex
;
21
cSectionSyncer
sectionSyncer
;
22
int
source
;
23
int
lastSource
;
24
int
lastTransponder
;
25
int
lastNid
;
26
int
lastTid
;
27
cPatFilter
*
patFilter
;
28
std::atomic<eTransponderState>
transponderState
;
// set by the section handler thread, read by the tuner thread
29
protected
:
30
virtual
void
Process
(u_short Pid, u_char Tid,
const
u_char *Data,
int
Length)
override
;
31
public
:
32
cSdtFilter
(
cPatFilter
*PatFilter);
33
virtual
void
SetStatus
(
bool
On)
override
;
34
void
Trigger
(
int
Source
);
35
bool
TransponderVerified
(
void
)
const
{
return
transponderState
==
tsVerified
; }
// returns true if the expected NIT/TID have been received in the SDT
36
bool
TransponderWrong
(
void
)
const
{
return
transponderState
==
tsWrong
; }
// returns true if an expected change of NIT/TID has not happened
37
};
38
39
#endif
//__SDT_H
cFilter::Source
int Source(void)
Returns the source of the data delivered to this filter.
Definition
filter.c:134
cFilter::cFilter
cFilter(void)
Definition
filter.c:115
cMutex
Definition
thread.h:68
cPatFilter
Definition
pat.h:21
cSdtFilter::SetStatus
virtual void SetStatus(bool On) override
Turns this filter on or off, depending on the value of On.
Definition
sdt.c:35
cSdtFilter::TransponderVerified
bool TransponderVerified(void) const
Definition
sdt.h:35
cSdtFilter::mutex
cMutex mutex
Definition
sdt.h:20
cSdtFilter::Process
virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length) override
Processes the data delivered to this filter.
Definition
sdt.c:51
cSdtFilter::Trigger
void Trigger(int Source)
Definition
sdt.c:45
cSdtFilter::patFilter
cPatFilter * patFilter
Definition
sdt.h:27
cSdtFilter::eTransponderState
eTransponderState
Definition
sdt.h:19
cSdtFilter::tsVerified
@ tsVerified
Definition
sdt.h:19
cSdtFilter::tsUnknown
@ tsUnknown
Definition
sdt.h:19
cSdtFilter::tsAccepted
@ tsAccepted
Definition
sdt.h:19
cSdtFilter::tsWrong
@ tsWrong
Definition
sdt.h:19
cSdtFilter::cSdtFilter
cSdtFilter(cPatFilter *PatFilter)
Definition
sdt.c:23
cSdtFilter::TransponderWrong
bool TransponderWrong(void) const
Definition
sdt.h:36
cSdtFilter::source
int source
Definition
sdt.h:22
cSdtFilter::transponderState
std::atomic< eTransponderState > transponderState
Definition
sdt.h:28
cSdtFilter::lastTransponder
int lastTransponder
Definition
sdt.h:24
cSdtFilter::sectionSyncer
cSectionSyncer sectionSyncer
Definition
sdt.h:21
cSdtFilter::lastSource
int lastSource
Definition
sdt.h:23
cSdtFilter::lastNid
int lastNid
Definition
sdt.h:25
cSdtFilter::lastTid
int lastTid
Definition
sdt.h:26
cSectionSyncer
Definition
filter.h:16
filter.h
pat.h
Generated by
1.18.0