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; }
148 const int *GetCaSystemIds(
void);
149 void SendCaPmt(uint8_t CmdId);
150 void NewConnection(
void);
151 void DeleteAllConnections(
void);
153 void Write(
cTPDU *TPDU);
164 bool Assign(
cDevice *Device,
bool Query =
false);
184 virtual bool Reset(
void);
187 virtual bool CanActivate(
void);
190 virtual void StartActivation(
void);
200 virtual void CancelActivation(
void);
202 virtual bool IsActivating(
void);
209 virtual bool Ready(
void);
211 virtual bool HasMMI(
void);
216 virtual bool EnterMenu(
void);
218 virtual cCiMenu *GetMenu(
void);
225 virtual bool ProvidesCa(
const int *CaSystemIds);
232 virtual void AddPid(
int ProgramNumber,
int Pid,
int StreamType);
235 virtual void SetPid(
int Pid,
bool Active);
239 virtual void AddChannel(
const cChannel *Channel);
244 virtual bool CanDecrypt(
const cChannel *Channel);
255 virtual void StartDecrypting(
void);
258 virtual void StopDecrypting(
void);
260 virtual bool IsDecrypting(
void);
262 virtual uchar *Decrypt(
uchar *Data,
int &Count);
298 bool WaitForAllCamSlotsReady(
int Timeout = 0);
319 void Reset(
int CamSlotNumber);
320 bool CamChecked(
tChannelID ChannelID,
int CamSlotNumber);
321 bool CamDecrypt(
tChannelID ChannelID,
int CamSlotNumber);
322 void SetChecked(
tChannelID ChannelID,
int CamSlotNumber);
323 void SetDecrypt(
tChannelID ChannelID,
int CamSlotNumber);
324 void ClrChecked(
tChannelID ChannelID,
int CamSlotNumber);
325 void ClrDecrypt(
tChannelID ChannelID,
int CamSlotNumber);
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 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.