vdr  2.6.1
pat.h
Go to the documentation of this file.
1 /*
2  * pat.h: PAT section filter
3  *
4  * See the main source file 'vdr.c' for copyright information and
5  * how to reach the author.
6  *
7  * $Id: pat.h 5.3 2021/06/21 20:13:55 kls Exp $
8  */
9 
10 #ifndef __PAT_H
11 #define __PAT_H
12 
13 #include <stdint.h>
14 #include "filter.h"
15 #include "thread.h"
16 
17 class cPmtPidEntry;
18 class cPmtSidEntry;
19 class cPmtSidRequest;
20 
21 class cPatFilter : public cFilter {
22 private:
30  int source;
33  bool TransponderChanged(void);
34  bool PmtPidComplete(int PmtPid);
35  void PmtPidReset(int PmtPid);
36  bool PmtVersionChanged(int PmtPid, int Sid, int Version, bool SetNewVersion = false);
37  int NumSidRequests(int Sid);
38  void SwitchToNextPmtPid(void);
39 protected:
40  virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length);
41 public:
42  cPatFilter(void);
43  virtual void SetStatus(bool On);
44  void Trigger(int = 0); // triggers reading the PMT PIDs that are currently not requested (dummy parameter for backwards compatibility, value is ignored)
45  void Request(int Sid); // requests permanent reading of the PMT PID for this SID
46  void Release(int Sid); // releases permanent reading of the PMT PID for this SID
47  };
48 
49 void GetCaDescriptors(int Source, int Transponder, int ServiceId, const int *CaSystemIds, cDynamicBuffer &Buffer, int EsPid);
55 
56 int GetCaPids(int Source, int Transponder, int ServiceId, const int *CaSystemIds, int BufSize, int *Pids);
64 
65 int GetPmtPid(int Source, int Transponder, int ServiceId);
67 
68 #endif //__PAT_H
cPatFilter::pmtPidList
cList< cPmtPidEntry > pmtPidList
Definition: pat.h:27
cPatFilter::pmtSidRequestList
cList< cPmtSidRequest > pmtSidRequestList
Definition: pat.h:29
cFilter
Definition: filter.h:80
filter.h
GetPmtPid
int GetPmtPid(int Source, int Transponder, int ServiceId)
Gets the Pid of the PMT in which the CA descriptors for this channel are defined.
Definition: pat.c:278
cPatFilter
Definition: pat.h:21
cPmtPidEntry
Definition: pat.c:285
cPatFilter::timer
cTimeMs timer
Definition: pat.h:24
cPatFilter::Release
void Release(int Sid)
Definition: pat.c:431
cSectionSyncer
Definition: filter.h:18
cPatFilter::TransponderChanged
bool TransponderChanged(void)
Definition: pat.c:389
cPatFilter::patVersion
int patVersion
Definition: pat.h:25
SI::u_char
unsigned char u_char
Definition: headers.h:24
GetCaDescriptors
void GetCaDescriptors(int Source, int Transponder, int ServiceId, const int *CaSystemIds, cDynamicBuffer &Buffer, int EsPid)
Gets all CA descriptors for a given channel.
Definition: pat.c:268
cPatFilter::PmtVersionChanged
bool PmtVersionChanged(int PmtPid, int Sid, int Version, bool SetNewVersion=false)
Definition: pat.c:483
cMutex
Definition: thread.h:67
cPatFilter::PmtPidComplete
bool PmtPidComplete(int PmtPid)
Definition: pat.c:464
GetCaPids
int GetCaPids(int Source, int Transponder, int ServiceId, const int *CaSystemIds, int BufSize, int *Pids)
Gets all CA pids for a given channel.
Definition: pat.c:273
cPatFilter::Request
void Request(int Sid)
Definition: pat.c:408
cTimeMs
Definition: tools.h:401
cPatFilter::SwitchToNextPmtPid
void SwitchToNextPmtPid(void)
Definition: pat.c:504
cList< cPmtPidEntry >
cPmtSidRequest
Definition: pat.c:344
cPatFilter::Trigger
void Trigger(int=0)
Definition: pat.c:400
cPatFilter::activePmt
cPmtPidEntry * activePmt
Definition: pat.h:26
cPatFilter::cPatFilter
cPatFilter(void)
Definition: pat.c:365
cPatFilter::source
int source
Definition: pat.h:30
cPatFilter::pmtSidList
cList< cPmtSidEntry > pmtSidList
Definition: pat.h:28
cPatFilter::mutex
cMutex mutex
Definition: pat.h:23
cPatFilter::PmtPidReset
void PmtPidReset(int PmtPid)
Definition: pat.c:473
cPatFilter::transponder
int transponder
Definition: pat.h:31
cPatFilter::NumSidRequests
int NumSidRequests(int Sid)
Definition: pat.c:455
cPatFilter::SetStatus
virtual void SetStatus(bool On)
Turns this filter on or off, depending on the value of On.
Definition: pat.c:374
cDynamicBuffer
Definition: tools.h:873
cPatFilter::Process
virtual void Process(u_short Pid, u_char Tid, const u_char *Data, int Length)
Processes the data delivered to this filter.
Definition: pat.c:522
cPmtSidEntry
Definition: pat.c:315
cPatFilter::sectionSyncer
cSectionSyncer sectionSyncer
Definition: pat.h:32
thread.h