summaryrefslogtreecommitdiff
path: root/ci.h
diff options
context:
space:
mode:
Diffstat (limited to 'ci.h')
-rw-r--r--ci.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/ci.h b/ci.h
index 78d4087d..0e8253d9 100644
--- a/ci.h
+++ b/ci.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: ci.h 4.4 2017/03/19 10:48:14 kls Exp $
+ * $Id: ci.h 4.5 2017/03/23 14:23:33 kls Exp $
*/
#ifndef __CI_H
@@ -314,7 +314,7 @@ public:
///< If the source or transponder of the channel are different than
///< what was given in a previous call to AddChannel(), any previously
///< added PIDs will be cleared.
- virtual bool CanDecrypt(const cChannel *Channel);
+ 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 claims to be able to do so).
///< Since the QUERY/REPLY mechanism for CAMs is pretty unreliable (some
@@ -325,11 +325,18 @@ public:
///< to the initial QUERY will perform this check at all. CAMs that never
///< replied to the initial QUERY are assumed not to be able to handle
///< more than one channel at a time.
+ ///< If MtdMapper is given, all SIDs and PIDs will be mapped accordingly.
virtual void StartDecrypting(void);
- ///< Triggers sending all currently active CA_PMT entries to the CAM,
- ///< so that it will start decrypting.
+ ///< Sends all CA_PMT entries to the CAM that have been modified since the
+ ///< last call to this function. This includes CA_PMTs that have been
+ ///< added or activated, as well as ones that have been deactivated.
+ ///< StartDecrypting() will be called whenever a PID is activated or
+ ///< deactivated.
virtual void StopDecrypting(void);
///< Clears the list of CA_PMT entries and tells the CAM to stop decrypting.
+ ///< Note that this function is only called when there are no more PIDs for
+ ///< the CAM to decrypt. There is no symmetry between StartDecrypting() and
+ ///< StopDecrypting().
virtual bool IsDecrypting(void);
///< Returns true if the CAM in this slot is currently used for decrypting.
virtual uchar *Decrypt(uchar *Data, int &Count);