vdr
2.4.7
|
Public Member Functions | |
cCiTransportConnection (cCamSlot *CamSlot, uint8_t Tcid) | |
virtual | ~cCiTransportConnection () |
void | SetTsPostProcessor (cCiSession *CiSession) |
bool | TsPostProcess (uint8_t *TsPacket) |
cCamSlot * | CamSlot (void) |
uint8_t | Tcid (void) const |
void | CreateConnection (void) |
void | DeleteConnection (void) |
const char * | GetCamName (void) |
bool | Ready (void) |
bool | HasUserIO (void) |
void | SendData (int Length, const uint8_t *Data) |
bool | Process (cTPDU *TPDU=NULL) |
cCiSession * | GetSessionByResourceId (uint32_t ResourceId) |
Private Types | |
enum | eState { stIDLE , stCREATION , stACTIVE , stDELETION } |
Private Member Functions | |
void | SendTPDU (uint8_t Tag, int Length=0, const uint8_t *Data=NULL) |
void | SendTag (uint8_t Tag, uint16_t SessionId, uint32_t ResourceId=0, int Status=-1) |
void | Poll (void) |
uint32_t | ResourceIdToInt (const uint8_t *Data) |
cCiSession * | GetSessionBySessionId (uint16_t SessionId) |
void | OpenSession (int Length, const uint8_t *Data) |
void | CloseSession (uint16_t SessionId) |
void | HandleSessions (cTPDU *TPDU) |
Private Attributes | |
cMutex | mutex |
cCamSlot * | camSlot |
uint8_t | tcid |
eState | state |
bool | createConnectionRequested |
bool | deleteConnectionRequested |
bool | hasUserIO |
cTimeMs | alive |
cTimeMs | timer |
cCiSession * | sessions [MAX_SESSIONS_PER_TC+1] |
cCiSession * | tsPostProcessor |
|
private |
cCiTransportConnection::cCiTransportConnection | ( | cCamSlot * | CamSlot, |
uint8_t | Tcid | ||
) |
Definition at line 1807 of file ci.c.
References alive, camSlot, CamSlot(), createConnectionRequested, dbgprotocol, deleteConnectionRequested, hasUserIO, MAX_SESSIONS_PER_TC, sessions, cTimeMs::Set(), cCamSlot::SlotIndex(), cCamSlot::SlotNumber(), state, stIDLE, TC_ALIVE_TIMEOUT, tcid, Tcid(), and tsPostProcessor.
|
virtual |
Definition at line 1822 of file ci.c.
References MAX_SESSIONS_PER_TC, and sessions.
|
inline |
Definition at line 634 of file ci.c.
References camSlot.
Referenced by cCiSession::CamSlot(), and cCiTransportConnection().
|
private |
Definition at line 1942 of file ci.c.
References camSlot, dbgprotocol, esyslog, GetSessionBySessionId(), SendTag(), sessions, cCamSlot::SlotIndex(), cCamSlot::SlotNumber(), SS_NOT_ALLOCATED, SS_OK, ST_CLOSE_SESSION_RESPONSE, and tcid.
Referenced by HandleSessions().
|
inline |
Definition at line 636 of file ci.c.
References createConnectionRequested.
Referenced by cCamSlot::NewConnection().
|
inline |
Definition at line 637 of file ci.c.
References deleteConnectionRequested.
const char * cCiTransportConnection::GetCamName | ( | void | ) |
Definition at line 1847 of file ci.c.
References cCiApplicationInformation::GetMenuString(), GetSessionByResourceId(), and RI_APPLICATION_INFORMATION.
Referenced by cCamSlot::GetCamName().
cCiSession * cCiTransportConnection::GetSessionByResourceId | ( | uint32_t | ResourceId | ) |
Definition at line 1905 of file ci.c.
References MAX_SESSIONS_PER_TC, RESOURCE_CLASS_MASK, and sessions.
Referenced by GetCamName(), cCamSlot::GetSessionByResourceId(), OpenSession(), and Ready().
|
private |
Definition at line 1900 of file ci.c.
References MAX_SESSIONS_PER_TC, and sessions.
Referenced by CloseSession(), and HandleSessions().
|
private |
Definition at line 1957 of file ci.c.
References camSlot, CloseSession(), cTPDU::Data(), esyslog, get_unaligned(), GetSessionBySessionId(), OpenSession(), cCiSession::Process(), cCamSlot::SlotIndex(), cCamSlot::SlotNumber(), ST_CLOSE_SESSION_REQUEST, ST_CLOSE_SESSION_RESPONSE, ST_CREATE_SESSION_RESPONSE, ST_OPEN_SESSION_REQUEST, ST_SESSION_NUMBER, and tcid.
Referenced by Process().
|
inline |
Definition at line 640 of file ci.c.
References hasUserIO.
Referenced by cCamSlot::HasUserIO(), and Process().
|
private |
Definition at line 1919 of file ci.c.
References camSlot, CiResourceHandlers, dbgprotocol, esyslog, cCiResourceHandlers::GetNewCiSession(), GetSessionByResourceId(), MAX_SESSIONS_PER_TC, ResourceIdToInt(), SendTag(), sessions, cCamSlot::SlotIndex(), cCamSlot::SlotNumber(), SS_OK, ST_OPEN_SESSION_RESPONSE, and tcid.
Referenced by HandleSessions().
|
private |
Definition at line 1885 of file ci.c.
References camSlot, dbgprotocol, DumpPolls, DumpTPDUDataTransfer, SendTPDU(), cCamSlot::SlotNumber(), and T_DATA_LAST.
Referenced by Process().
bool cCiTransportConnection::Process | ( | cTPDU * | TPDU = NULL | ) |
Definition at line 1984 of file ci.c.
References alive, camSlot, createConnectionRequested, DATA_INDICATOR, dbgprotocol, deleteConnectionRequested, esyslog, HandleSessions(), hasUserIO, HasUserIO(), MAX_SESSIONS_PER_TC, Poll(), cCiSession::Process(), SendTPDU(), sessions, cTimeMs::Set(), cCamSlot::SlotIndex(), cCamSlot::SlotNumber(), stACTIVE, state, cTPDU::Status(), stCREATION, stDELETION, stIDLE, T_CREATE_TC, T_CTC_REPLY, T_DATA_LAST, T_DATA_MORE, T_DELETE_TC, T_DTC_REPLY, T_NEW_TC, T_RCV, T_REQUEST_TC, T_SB, T_TC_ERROR, cTPDU::Tag(), TC_ALIVE_TIMEOUT, tcid, cTimeMs::TimedOut(), and timer.
Referenced by cCamSlot::Process().
bool cCiTransportConnection::Ready | ( | void | ) |
Definition at line 1841 of file ci.c.
References GetSessionByResourceId(), cCiConditionalAccessSupport::Ready(), and RI_CONDITIONAL_ACCESS_SUPPORT.
Referenced by cCamSlot::Ready().
|
private |
void cCiTransportConnection::SendData | ( | int | Length, |
const uint8_t * | Data | ||
) |
Definition at line 1860 of file ci.c.
References SendTPDU(), stACTIVE, state, and T_DATA_LAST.
Referenced by cCiSession::SendData(), and SendTag().
|
private |
Definition at line 1867 of file ci.c.
References put_unaligned(), and SendData().
Referenced by CloseSession(), and OpenSession().
|
private |
Definition at line 1853 of file ci.c.
References camSlot, cTimeMs::Set(), cCamSlot::SlotIndex(), TC_POLL_TIMEOUT, tcid, timer, and cCamSlot::Write().
Referenced by Poll(), Process(), and SendData().
void cCiTransportConnection::SetTsPostProcessor | ( | cCiSession * | CiSession | ) |
Definition at line 1828 of file ci.c.
References tsPostProcessor.
Referenced by cCiSession::SetTsPostProcessor().
|
inline |
bool cCiTransportConnection::TsPostProcess | ( | uint8_t * | TsPacket | ) |
Definition at line 1833 of file ci.c.
References mutex, cCiSession::TsPostProcess(), and tsPostProcessor.
Referenced by cCamSlot::TsPostProcess().
|
private |
Definition at line 617 of file ci.c.
Referenced by cCiTransportConnection(), and Process().
|
private |
Definition at line 611 of file ci.c.
Referenced by CamSlot(), cCiTransportConnection(), CloseSession(), HandleSessions(), OpenSession(), Poll(), Process(), and SendTPDU().
|
private |
Definition at line 614 of file ci.c.
Referenced by cCiTransportConnection(), CreateConnection(), and Process().
|
private |
Definition at line 615 of file ci.c.
Referenced by cCiTransportConnection(), DeleteConnection(), and Process().
|
private |
Definition at line 616 of file ci.c.
Referenced by cCiTransportConnection(), HasUserIO(), and Process().
|
private |
Definition at line 610 of file ci.c.
Referenced by TsPostProcess().
|
private |
Definition at line 619 of file ci.c.
Referenced by cCiTransportConnection(), CloseSession(), GetSessionByResourceId(), GetSessionBySessionId(), OpenSession(), Process(), and ~cCiTransportConnection().
|
private |
Definition at line 613 of file ci.c.
Referenced by cCiTransportConnection(), Process(), and SendData().
|
private |
Definition at line 612 of file ci.c.
Referenced by cCiTransportConnection(), CloseSession(), HandleSessions(), OpenSession(), Process(), SendTPDU(), and Tcid().
|
private |
Definition at line 618 of file ci.c.
Referenced by Process(), and SendTPDU().
|
private |
Definition at line 620 of file ci.c.
Referenced by cCiTransportConnection(), SetTsPostProcessor(), and TsPostProcess().