124 int Put(
const uchar *Data,
int Count);
147 #define MTD_DONT_CALL(v) dsyslog("PROGRAMMING ERROR (%s,%d): DON'T CALL %s", __FILE__, __LINE__, __FUNCTION__); return v;
170 virtual bool ProvidesCa(
const int *CaSystemIds);
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 ...
bool Devices(cVector< int > &CardIndexes)
Adds the card indexes of the devices of any active MTD CAM slots to the given CardIndexes.
int PutData(const uchar *Data, int Count)
virtual const int * GetCaSystemIds(void)
cMtdCamSlot(cCamSlot *MasterSlot, int Index)
Creates a new "Multi Transponder Decryption" CAM slot, connected to the given physical MasterSlot...
virtual eModuleStatus ModuleStatus(void)
Returns the status of the CAM in this slot.
cMtdHandler(void)
Creates a new MTD handler that distributes TS data received through calls to the Put() function to th...
void CancelActivation(void)
Tells all active MTD CAM slots to cancel activation.
void MtdMapPid(uchar *p, cMtdMapper *MtdMapper)
virtual bool Ready(void)
Returns 'true' if the CAM in this slot is ready to decrypt.
virtual bool EnterMenu(void)
Requests the CAM in this slot to start its menu.
cVector< cMtdCamSlot * > camSlots
virtual void StartDecrypting(void)
Sends all CA_PMT entries to the CAM that have been modified since the last call to this function...
cRingBufferLinear * mtdBuffer
void StartDecrypting(void)
Tells all active MTD CAM slots to start decrypting.
virtual bool HasUserIO(void)
Returns true if there is a pending user interaction, which shall be retrieved via GetMenu() or GetEnq...
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...
virtual cCamSlot * Spawn(void)
virtual bool ProvidesCa(const int *CaSystemIds)
Returns true if the CAM in this slot provides one of the given CaSystemIds.
cMtdCamSlot * GetMtdCamSlot(cCamSlot *MasterSlot)
Creates a new MTD CAM slot, or reuses an existing one that is currently unused.
virtual bool Reset(void)
Resets the CAM in this slot.
virtual void StopDecrypting(void)
Clears the list of CA_PMT entries and tells the CAM to stop decrypting.
cCamSlot * MasterSlot(void)
Returns this CAM slot's master slot, or a pointer to itself if it is a master slot.
int PutCat(const uchar *Data, int Count)
virtual bool HasMMI(void)
Returns 'true' if the CAM in this slot has an active MMI.
virtual cCiMenu * GetMenu(void)
Gets a pending menu, or NULL if there is no menu.
bool IsDecrypting(void)
Returns true if any of the active MTD CAM slots is currently decrypting.
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 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...
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...
void MtdMapSid(uchar *p, cMtdMapper *MtdMapper)
virtual cCiEnquiry * GetEnquiry(void)
Gets a pending enquiry, or NULL if there is no enquiry.
void UnAssignAll(void)
Unassigns all MTD CAM slots from their devices.
bool IsActivating(void)
Returns true if any of the active MTD CAM slots is currently activating.
cMtdMapper * MtdMapper(void)
virtual void SendCaPmt(uint8_t CmdId)
int Priority(void)
Returns the maximum priority of any of the active MTD CAM slots.
virtual bool RepliesToQuery(void)
Returns true if the CAM in this slot replies to queries and thus supports MCD ("Multi Channel Decrypt...