Go to the documentation of this file.
35 #include <sys/types.h>
36 #include <sys/socket.h>
37 #include <netinet/in.h>
110 bool Reply(
const char *s);
116 #define CPLM_MORE 0x00
117 #define CPLM_FIRST 0x01
118 #define CPLM_LAST 0x02
119 #define CPLM_ONLY 0x03
120 #define CPLM_ADD 0x04
121 #define CPLM_UPDATE 0x05
134 const uint8_t *data);
137 #define MAX_CI_SESSION 16 //XXX
148 virtual bool Process(
void) = 0;
172 bool Send(uint8_t Tag,
int SessionId,
int ResourceId = 0,
int Status = -1);
198 bool Reset(
int Slot);
212 int CommHL(
unsigned tag,
unsigned function,
struct ca_msg *msg)
const;
213 int GetData(
unsigned tag,
struct ca_msg *msg);
214 int SendData(
unsigned tag,
struct ca_msg *msg);
228 bool Reset(
int Slot)
const;
232 int tcp_listen(
struct sockaddr_in *name,
int sckt,
unsigned long address=INADDR_ANY);
233 int accept_tcp(
int ip_sock,
struct sockaddr_in *ip_name);
235 int accept_udp(
int ip_sock,
struct sockaddr_un *ip_name);
bool NeedCaPmt(void) override
void SetTimeOffset(double offset_in_seconds) override
int accept_tcp(int ip_sock, struct sockaddr_in *ip_name)
bool HasUserIO(void) override
void AddCaDescriptor(int ca_system_id, int ca_pid, int data_len, const uint8_t *data)
cLlCiHandler & operator=(const cLlCiHandler &)=delete
virtual bool EnterMenu(int Slot)=0
cCiSession * GetSessionBySessionId(int SessionId)
int CloseAllSessions(int Slot)
virtual bool SetCaPmt(cCiCaPmt &CaPmt, int Slot)=0
std::vector< uint16_t > dvbca_vector
cHlCiHandler(int Fd, int NumSlots)
bool SetCaPmt(cCiCaPmt &CaPmt)
int NumSlots(void) override
int GetData(unsigned tag, struct ca_msg *msg)
virtual cCiEnquiry * GetEnquiry(void)=0
cCiTransportConnection * m_tc
cCiEnquiry * GetEnquiry(void) override
int SendData(unsigned tag, struct ca_msg *msg)
bool Process(void) override
virtual bool Process(void)=0
bool Reply(const char *s)
cMutexLock(cMutex *Mutex=nullptr)
uint8_t m_capmt[2048]
XXX is there a specified maximum?
bool Process(void) override
virtual void SetTimeOffset(double)
cCiSession * m_sessions[MAX_CI_SESSION]
bool EnterMenu(int Slot) override
bool HasUserIO(void) override
virtual int NumSlots(void)=0
bool SetCaPmt(cCiCaPmt &CaPmt)
dvbca_vector GetCaSystemIds(int Slot) override
virtual bool NeedCaPmt(void)=0
bool Send(uint8_t Tag, int SessionId, int ResourceId=0, int Status=-1)
bool CloseSession(int SessionId)
cCiSession * CreateSession(int ResourceId)
virtual bool HasUserIO(void)=0
dvbca_vector m_caSystemIds
bool Reset(int Slot) const
int accept_udp(int ip_sock, struct sockaddr_un *ip_name)
int CommHL(unsigned tag, unsigned function, struct ca_msg *msg) const
int NumSlots(void) override
int tcp_listen(struct sockaddr_in *name, int sckt, unsigned long address=INADDR_ANY)
virtual ~cCiHandler()=default
cCiTransportLayer * m_tpl
dvbca_vector GetCaSystemIds(int Slot) override
int udp_listen(struct sockaddr_un *name, char const *filename)
cLlCiHandler(int Fd, int NumSlots)
bool NeedCaPmt(void) override
bool EnterMenu(int Slot) override
static int ResourceIdToInt(const uint8_t *Data)
static cCiHandler * CreateCiHandler(const char *FileName)
int ExpectedLength(void) const
virtual cCiMenu * GetMenu(void)=0
virtual dvbca_vector GetCaSystemIds(int Slot)=0
cCiSession * GetSessionByResourceId(int ResourceId, int Slot)
cCiCaPmt(int ProgramNumber, uint8_t cplm=CPLM_ONLY)
cCiMenu * GetMenu(void) override
bool OpenSession(int Length, const uint8_t *Data)
cCiMenu * GetMenu(void) override
cCiEnquiry * GetEnquiry(void) override
void AddElementaryStream(int type, int pid)