diff options
Diffstat (limited to 'PLUGINS.html')
-rw-r--r-- | PLUGINS.html | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/PLUGINS.html b/PLUGINS.html index 51424ce3..71c1b77e 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -6,7 +6,7 @@ <center><h1>The VDR Plugin System</h1></center> -<center><b>Version 1.4.1</b></center> +<center><b>Version 1.5.0</b></center> <p> <center> Copyright © 2006 Klaus Schmidinger<br> @@ -14,6 +14,10 @@ Copyright © 2006 Klaus Schmidinger<br> <a href="http://www.cadsoft.de/vdr">www.cadsoft.de/vdr</a> </center> <p> +<!--X1.5.0--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%> +Important modifications introduced in version 1.5.0 are marked like this. +<!--X1.5.0--></td></tr></table> +<p> 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 <li><a href="#Devices">Devices</a> <li><a href="#Audio">Audio</a> <li><a href="#Remote Control">Remote Control</a> +<!--X1.5.0--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%> +<li><a href="#Conditional Access">Conditional Access</a> +<!--X1.5.0--></td></tr></table> </ul> </ul> @@ -1727,6 +1734,7 @@ selecting which channel it shall tune to: <p><table><tr><td bgcolor=#F0F0F0><pre> 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); </pre></td></tr></table><p> @@ -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. +<!--X1.5.0--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%> +<a name="Conditional Access"><hr><h2>Conditional Access</h2> + +<center><i><b>Members only!</b></i></center><p> + +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. +<p> +VDR's mechanisms for supporting Conditional Access are mainly the two classes +<tt>cCiAdapter</tt> and <tt>cCamSlot</tt>. A <tt>cCiAdapter</tt> handles exactly +one CI, and can provide several CAM slots, represented by the appropriate +number of <tt>cCamSlot</tt> objects. +<p> +In order to decrypt a particular channel, a <tt>cCiAdapter</tt> with a <tt>cCamSlot</tt> +that contains the necessary CAM will be assigned to a <tt>cDevice</tt>, and exactly +one of its CAM slots will be activated. Whether or not a <tt>cCiAdapter</tt> 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 <tt>cCiAdapter</tt> 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. +<p> +If a plugin implements a derived <tt>cCiAdapter</tt>, it has to implement +several low level functions that handle the actual data transfer (see <tt>dvbci.c</tt> +for example). The decision whether the adapter can actually be assigned to different +devices is made in the function + +<p><table><tr><td bgcolor=#F0F0F0><pre> +virtual bool Assign(cDevice *Device, bool Query = false); +</pre></td></tr></table><p> + +See the description of this function in <tt>ci.h</tt> for details. +<!--X1.5.0--></td></tr></table> + </body> </html> |