19 #define MAX_CAM_SLOTS_PER_ADAPTER 8 // maximum possible value is 255 20 #define MAX_CONNECTIONS_PER_CAM_SLOT 8 // maximum possible value is 254 21 #define CAM_READ_TIMEOUT 50 // ms 45 const char *
Entry(
int n) {
return n < numEntries ? entries[n] : NULL; }
66 const char *
Text(
void) {
return text; }
67 bool Blind(
void) {
return blind; }
69 void Reply(
const char *s);
90 virtual void Action(
void);
94 virtual int Read(uint8_t *Buffer,
int MaxLength) {
return 0; }
99 virtual void Write(
const uint8_t *Buffer,
int Length) {}
101 virtual bool Reset(
int Slot) {
return false; }
119 virtual bool SetIdle(
bool Idle,
bool TestOnly) {
return false; }
120 virtual bool IsIdle(
void)
const {
return false; }
150 const int *GetCaSystemIds(
void);
151 void SendCaPmt(uint8_t CmdId);
152 void NewConnection(
void);
153 void DeleteAllConnections(
void);
155 void Write(
cTPDU *TPDU);
166 bool Assign(
cDevice *Device,
bool Query =
false);
186 virtual bool Reset(
void);
189 virtual bool CanActivate(
void);
192 virtual void StartActivation(
void);
202 virtual void CancelActivation(
void);
204 virtual bool IsActivating(
void);
211 virtual bool Ready(
void);
213 virtual bool HasMMI(
void);
218 virtual bool EnterMenu(
void);
220 virtual cCiMenu *GetMenu(
void);
227 virtual bool ProvidesCa(
const int *CaSystemIds);
234 virtual void AddPid(
int ProgramNumber,
int Pid,
int StreamType);
237 virtual void SetPid(
int Pid,
bool Active);
241 virtual void AddChannel(
const cChannel *Channel);
246 virtual bool CanDecrypt(
const cChannel *Channel);
257 virtual void StartDecrypting(
void);
260 virtual void StopDecrypting(
void);
262 virtual bool IsDecrypting(
void);
264 virtual uchar *Decrypt(
uchar *Data,
int &Count);
300 bool WaitForAllCamSlotsReady(
int Timeout = 0);
321 void Reset(
int CamSlotNumber);
322 bool CamChecked(
tChannelID ChannelID,
int CamSlotNumber);
323 bool CamDecrypt(
tChannelID ChannelID,
int CamSlotNumber);
324 void SetChecked(
tChannelID ChannelID,
int CamSlotNumber);
325 void SetDecrypt(
tChannelID ChannelID,
int CamSlotNumber);
326 void ClrChecked(
tChannelID ChannelID,
int CamSlotNumber);
327 void ClrDecrypt(
tChannelID ChannelID,
int CamSlotNumber);
virtual bool SetIdle(bool Idle, bool TestOnly)
bool Process(cTPDU *TPDU=NULL)
virtual void Write(const uint8_t *Buffer, int Length)
Writes Length bytes of the given Buffer.
#define MAX_CONNECTIONS_PER_CAM_SLOT
cChannelCamRelations ChannelCamRelations
#define MAX_CAM_SLOTS_PER_ADAPTER
cCiSession * GetSessionByResourceId(uint32_t ResourceId)
int SlotIndex(void)
Returns the index of this CAM slot within its CI adapter.
bool WantsTsData(void) const
Returns true if this CAM slot wants to receive the TS data through its Decrypt() function.
virtual bool Reset(int Slot)
Resets the CAM in the given Slot.
cCaActivationReceiver * caActivationReceiver
cList< cCiCaProgramData > caProgramList
virtual int Read(uint8_t *Buffer, int MaxLength)
Reads one chunk of data into the given Buffer, up to MaxLength bytes.
eModuleStatus lastModuleStatus
const char * GetCamName(void)
virtual bool IsIdle(void) const
virtual eModuleStatus ModuleStatus(int Slot)
Returns the status of the CAM in the given Slot.
cCaPidReceiver * caPidReceiver
virtual bool Assign(cDevice *Device, bool Query=false)
Assigns this adapter to the given Device, if this is possible.
int SlotNumber(void)
Returns the number of this CAM slot within the whole system.
The cDevice class is the base from which actual devices can be derived.
cDevice * Device(void)
Returns the device this CAM slot is currently assigned to.