124 int Put(
const uchar *Data,
int Count);
149#define MTD_DONT_CALL(v) dsyslog("PROGRAMMING ERROR (%s,%d): DON'T CALL %s", __FILE__, __LINE__, __FUNCTION__); return v;
172 virtual bool ProvidesCa(
const int *CaSystemIds);
cCamSlot * MasterSlot(void)
Returns this CAM slot's master slot, or a pointer to itself if it is a master slot.
virtual cCiMenu * GetMenu(void)
Gets a pending menu, or NULL if there is no menu.
virtual void StartDecrypting(void)
Sends all CA_PMT entries to the CAM that have been modified since the last call to this function.
virtual cCamSlot * Spawn(void)
virtual void StopDecrypting(void)
Clears the list of CA_PMT entries and tells the CAM to stop decrypting.
virtual bool TsPostProcess(uchar *Data)
If there is a cCiSession that needs to do additional processing on TS packets (after the CAM has done...
virtual eModuleStatus ModuleStatus(void)
Returns the status of the CAM in this slot.
virtual void SendCaPmt(uint8_t CmdId)
virtual cCiEnquiry * GetEnquiry(void)
Gets a pending enquiry, or NULL if there is no enquiry.
virtual bool CanDecrypt(const cChannel *Channel, cMtdMapper *MtdMapper=NULL)
Returns true if there is a CAM in this slot that is able to decrypt the given Channel (or at least cl...
virtual bool HasMMI(void)
Returns 'true' if the CAM in this slot has an active MMI.
virtual const char * GetCamName(void)
Returns the name of the CAM in this slot, or NULL if there is no ready CAM in this slot.
virtual void InjectEit(int Sid)
Injects a generated EIT with a "present event" for the given Sid into the TS data stream sent to the ...
virtual bool ProvidesCa(const int *CaSystemIds)
Returns true if the CAM in this slot provides one of the given CaSystemIds.
virtual bool EnterMenu(void)
Requests the CAM in this slot to start its menu.
cMtdMapper * MtdMapper(void)
virtual bool RepliesToQuery(void)
Returns true if the CAM in this slot replies to queries and thus supports MCD ("Multi Channel Decrypt...
virtual const int * GetCaSystemIds(void)
virtual uchar * Decrypt(uchar *Data, int &Count)
If this is a CAM slot that can be freely assigned to any device, but will not be directly inserted in...
int PutCat(const uchar *Data, int Count)
virtual bool Ready(void)
Returns 'true' if the CAM in this slot is ready to decrypt.
cRingBufferLinear * mtdBuffer
virtual bool Reset(void)
Resets the CAM in this slot.
int PutData(const uchar *Data, int Count)
virtual bool HasUserIO(void)
Returns true if there is a pending user interaction, which shall be retrieved via GetMenu() or GetEnq...
int Put(const uchar *Data, int Count)
Puts at most Count bytes of Data into the CAM slot which's index is derived from the PID of the TS pa...
bool IsActivating(void)
Returns true if any of the active MTD CAM slots is currently activating.
void StartDecrypting(void)
Tells all active MTD CAM slots to start decrypting.
cMtdHandler(void)
Creates a new MTD handler that distributes TS data received through calls to the Put() function to th...
bool IsDecrypting(void)
Returns true if any of the active MTD CAM slots is currently decrypting.
void CancelActivation(void)
Tells all active MTD CAM slots to cancel activation.
cMtdCamSlot * GetMtdCamSlot(cCamSlot *MasterSlot)
Creates a new MTD CAM slot, or reuses an existing one that is currently unused.
void StopDecrypting(void)
Tells all active MTD CAM slots to stop decrypting.
cVector< cMtdCamSlot * > camSlots
int Priority(void)
Returns the maximum priority of any of the active MTD CAM slots.
void UnAssignAll(void)
Unassigns all MTD CAM slots from their devices.
bool Devices(cVector< int > &DeviceNumbers)
Adds the numbers of the devices of any active MTD CAM slots to the given DeviceNumbers.
void MtdMapPid(uchar *p, cMtdMapper *MtdMapper)
void MtdMapSid(uchar *p, cMtdMapper *MtdMapper)