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; }
120 virtual bool SetIdle(
bool Idle,
bool TestOnly) {
return false; }
121 virtual bool IsIdle(
void)
const {
return false; }
151 const int *GetCaSystemIds(
void);
152 void SendCaPmt(uint8_t CmdId);
153 void NewConnection(
void);
154 void DeleteAllConnections(
void);
156 void Write(
cTPDU *TPDU);
167 bool Assign(
cDevice *Device,
bool Query =
false);
187 virtual bool Reset(
void);
190 virtual bool CanActivate(
void);
193 virtual void StartActivation(
void);
203 virtual void CancelActivation(
void);
205 virtual bool IsActivating(
void);
212 virtual bool Ready(
void);
214 virtual bool HasMMI(
void);
219 virtual bool EnterMenu(
void);
221 virtual cCiMenu *GetMenu(
void);
228 virtual bool ProvidesCa(
const int *CaSystemIds);
235 virtual void AddPid(
int ProgramNumber,
int Pid,
int StreamType);
238 virtual void SetPid(
int Pid,
bool Active);
242 virtual void AddChannel(
const cChannel *Channel);
247 virtual bool CanDecrypt(
const cChannel *Channel);
258 virtual void StartDecrypting(
void);
261 virtual void StopDecrypting(
void);
263 virtual bool IsDecrypting(
void);
265 virtual uchar *Decrypt(
uchar *Data,
int &Count);
301 bool WaitForAllCamSlotsReady(
int Timeout = 0);
322 void Reset(
int CamSlotNumber);
323 bool CamChecked(
tChannelID ChannelID,
int CamSlotNumber);
324 bool CamDecrypt(
tChannelID ChannelID,
int CamSlotNumber);
325 void SetChecked(
tChannelID ChannelID,
int CamSlotNumber);
326 void SetDecrypt(
tChannelID ChannelID,
int CamSlotNumber);
327 void ClrChecked(
tChannelID ChannelID,
int CamSlotNumber);
328 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.