summaryrefslogtreecommitdiff
path: root/receiver.h
diff options
context:
space:
mode:
Diffstat (limited to 'receiver.h')
-rw-r--r--receiver.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/receiver.h b/receiver.h
index e123499..e223274 100644
--- a/receiver.h
+++ b/receiver.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: receiver.h 1.4 2006/05/27 09:04:22 kls Exp $
+ * $Id: receiver.h 1.5 2007/01/05 11:00:36 kls Exp $
*/
#ifndef __RECEIVER_H
@@ -18,7 +18,7 @@ class cReceiver {
friend class cDevice;
private:
cDevice *device;
- int ca;
+ tChannelID channelID;
int priority;
int pids[MAXRECEIVEPIDS];
int numPids;
@@ -38,8 +38,8 @@ protected:
///< will be delivered only ONCE, so the cReceiver must make sure that
///< it will be able to buffer the data if necessary.
public:
- cReceiver(int Ca, int Priority, int Pid, const int *Pids1 = NULL, const int *Pids2 = NULL, const int *Pids3 = NULL);
- ///< Creates a new receiver that requires conditional access Ca and has
+ cReceiver(tChannelID ChannelID, int Priority, int Pid, const int *Pids1 = NULL, const int *Pids2 = NULL, const int *Pids3 = NULL);
+ ///< Creates a new receiver for the channel with the given ChannelID with
///< the given Priority. Pid is a single PID (typically the video PID), while
///< Pids1...Pids3 are pointers to zero terminated lists of PIDs.
///< If any of these PIDs are 0, they will be silently ignored.
@@ -47,7 +47,18 @@ public:
///< Priority may be any value in the range -99..99. Negative values indicate
///< that this cReceiver may be detached at any time (without blocking the
///< cDevice it is attached to).
+ ///< The ChannelID is necessary to allow the device that will be used for this
+ ///< receiver to detect and store whether the channel can be decrypted in case
+ ///< this is an encrypted channel. If the channel is not encrypted or this
+ ///< detection is not wanted, an invalid tChannelID may be given.
virtual ~cReceiver();
+ tChannelID ChannelID(void) { return channelID; }
+ bool IsAttached(void) { return device != NULL; }
+ ///< Returns true if this receiver is (still) attached to a device.
+ ///< A receiver may be automatically detached from its device in
+ ///< case the device is needed otherwise, so code that uses a cReceiver
+ ///< should repeatedly check whether it is still attached, and if
+ ///< it isn't, delete it (or take any other appropriate measures).
};
#endif //__RECEIVER_H