From 87dd5139ff6666d64e7e343bcff632b342c4c814 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 7 Jan 2007 14:46:14 +0100 Subject: CAM handling refactored; multiple recordings with one CAM; automatic CAM selection --- PLUGINS.html | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'PLUGINS.html') diff --git a/PLUGINS.html b/PLUGINS.html index 51424ce3..71c1b77e 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -6,7 +6,7 @@

The VDR Plugin System

-
Version 1.4.1
+
Version 1.5.0

Copyright © 2006 Klaus Schmidinger
@@ -14,6 +14,10 @@ Copyright © 2006 Klaus Schmidinger
www.cadsoft.de/vdr

+
  +Important modifications introduced in version 1.5.0 are marked like this. +
+

VDR provides an easy to use plugin interface that allows additional functionality to be added to the program by implementing a dynamically loadable library file. This interface allows programmers to develop additional functionality for VDR completely @@ -72,6 +76,9 @@ structures and allows it to hook itself into specific areas to perform special a

  • Devices
  • Audio
  • Remote Control +
      +
  • Conditional Access +
  • @@ -1727,6 +1734,7 @@ selecting which channel it shall tune to:

     virtual bool ProvidesSource(int Source) const;
    +virtual bool ProvidesTransponder(const cChannel *Channel) const;
     virtual bool ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL);
     virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
     

    @@ -2038,5 +2046,42 @@ Put(uint64 Code, bool Repeat = false, bool Release = false); The other parameters have the same meaning as in the first version of this function. +
      +

    Conditional Access

    + +
    Members only!

    + +Pay TV providers usually encrypt their broadcasts, so that only viewers who +have the proper smart card can watch them. Such a smart card needs to be inserted +into a CAM (Conditional Access Module), which in turn goes into a CI (Common +Interface) slot. +

    +VDR's mechanisms for supporting Conditional Access are mainly the two classes +cCiAdapter and cCamSlot. A cCiAdapter handles exactly +one CI, and can provide several CAM slots, represented by the appropriate +number of cCamSlot objects. +

    +In order to decrypt a particular channel, a cCiAdapter with a cCamSlot +that contains the necessary CAM will be assigned to a cDevice, and exactly +one of its CAM slots will be activated. Whether or not a cCiAdapter can +be assigned to a particular device depends on the hardware implementation. +Some devices (like the Siemens/Technotrend DVB cards) are hardwired with their +CI adapters, so the cCiAdapter for these can only be used with one device. +Other hardware implementations may allow CI adapters and devices to be connected +through some sort of matrix switch. When trying to decrypt an encrypted channel, +VDR will automatically select a useful combination of device and CAM slot. +

    +If a plugin implements a derived cCiAdapter, it has to implement +several low level functions that handle the actual data transfer (see dvbci.c +for example). The decision whether the adapter can actually be assigned to different +devices is made in the function + +

    +virtual bool Assign(cDevice *Device, bool Query = false);
    +

    + +See the description of this function in ci.h for details. +

    + -- cgit v1.2.3