summaryrefslogtreecommitdiff
path: root/PLUGINS.html
diff options
context:
space:
mode:
Diffstat (limited to 'PLUGINS.html')
-rw-r--r--PLUGINS.html32
1 files changed, 1 insertions, 31 deletions
diff --git a/PLUGINS.html b/PLUGINS.html
index 491399c..0869c38 100644
--- a/PLUGINS.html
+++ b/PLUGINS.html
@@ -6,7 +6,7 @@
<center><h1>The VDR Plugin System</h1></center>
-<center><b>Version 1.3</b></center>
+<center><b>Version 1.4</b></center>
<p>
<center>
Copyright &copy; 2006 Klaus Schmidinger<br>
@@ -14,19 +14,6 @@ Copyright &copy; 2006 Klaus Schmidinger<br>
<a href="http://www.cadsoft.de/vdr">www.cadsoft.de/vdr</a>
</center>
<p>
-<!--X1.3.31--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
-Important modifications introduced in version 1.3.31 are marked like this.
-<!--X1.3.31--></td></tr></table>
-<!--X1.3.37--><table width=100%><tr><td bgcolor=#00AA00>&nbsp;</td><td width=100%>
-Important modifications introduced in version 1.3.37 are marked like this.
-<!--X1.3.37--></td></tr></table>
-<!--X1.3.38--><table width=100%><tr><td bgcolor=#AA0000>&nbsp;</td><td width=100%>
-Important modifications introduced in version 1.3.38 are marked like this.
-<!--X1.3.38--></td></tr></table>
-<!--X1.3.47--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
-Important modifications introduced in version 1.3.46 are marked like this.
-<!--X1.3.47--></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
@@ -62,18 +49,14 @@ structures and allows it to hook itself into specific areas to perform special a
<li><a href="#Main menu entry">Main menu entry</a>
<li><a href="#User interaction">User interaction</a>
<li><a href="#Housekeeping">Housekeeping</a>
-<!--X1.3.47--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
<li><a href="#Main thread hook">Main thread hook</a>
<li><a href="#Activity">Activity</a>
-<!--X1.3.47--></td></tr></table>
<li><a href="#Setup parameters">Setup parameters</a>
<li><a href="#The Setup menu">The Setup menu</a>
<li><a href="#Configuration files">Configuration files</a>
<li><a href="#Internationalization">Internationalization</a>
<li><a href="#Custom services">Custom services</a>
-<!--X1.3.31--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
<li><a href="#SVDRP commands">SVDRP commands</a>
-<!--X1.3.31--></td></tr></table>
<li><a href="#Loading plugins into VDR">Loading plugins into VDR</a>
<li><a href="#Building the distribution package">Building the distribution package</a>
</ul>
@@ -166,7 +149,6 @@ loadable library file for that plugin (we'll get to the details later).
The <tt>lib</tt> directory contains the dynamically loadable libraries of all
available plugins. Note that the names of these files are created by concatenating
<p>
-<!--X1.3.47--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
<table border=2>
<tr><td align=center><b><tt>libvdr-</tt></b></td><td align=center><b><tt>hello</tt></b></td><td align=center><b><tt>.so.</tt></b></td><td align=center><b><tt>1.1.0</tt></b></td></tr>
<tr><td align=center><font size=-1>VDR plugin<br>library prefix</font></td><td align=center><font size=-1>name of<br>the plugin</font></td><td align=center><font size=-1>shared object<br>indicator</font></td><td align=center><font size=-1>API version number<br>this plugin was<br>compiled for</font></td></tr>
@@ -178,7 +160,6 @@ of VDR as long as their plugin API version number is still the same as that of
the current VDR version. That way minor fixes to VDR, that don't require changes
to the VDR header files, can be made without requiring all plugins to be
recompiled.
-<!--X1.3.47--></td></tr></table>
<p>
The plugin library files can be stored in any directory. If the default organization
is not used, the path to the plugin directory has be be given to VDR through the
@@ -620,7 +601,6 @@ interaction is possible. If a specific action takes longer than a few seconds,
the plugin should launch a separate thread to do this.
</b>
-<!--X1.3.47--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
<a name="Main thread hook"><hr><h2>Main thread hook</h2>
<center><i><b>Pushing in...</b></i></center><p>
@@ -677,7 +657,6 @@ the prompt by pressing the "Ok" button, the rest of the plugins will also
be queried, and further prompts may show up. If all prompts have been confirmed,
the shutdown will take place. As soon as one prompt is not confirmed, no
further plugins will be queried and no shutdown will be done.
-<!--X1.3.47--></td></tr></table>
<a name="Setup parameters"><hr><h2>Setup parameters</h2>
@@ -1002,7 +981,6 @@ To send a message to all plugins, a plugin can call the function
<tt>cPluginManager::CallAllServices()</tt>. This function returns <tt>true</tt> if
any plugin handled the request, or <tt>false</tt> if no plugin handled the request.
-<!--X1.3.31--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
<a name="SVDRP commands"><hr><h2>SVDRP commands</h2>
<center><i><b>Infinite Diversity in Infinite Combinations</b></i></center><p>
@@ -1094,8 +1072,6 @@ The returned string may consist of several lines, separated by the newline chara
when presenting them to the caller, and the continuation character ('<tt>-</tt>')
will be set for all but the last one.
-<!--X1.3.31--></td></tr></table>
-
<a name="Loading plugins into VDR"><hr><h2>Loading plugins into VDR</h2>
<center><i><b>Saddling up!</b></i></center><p>
@@ -1329,9 +1305,7 @@ public:
cMyControl(void);
virtual ~cMyControl();
virtual void Hide(void);
-<!--X1.3.38--><table width=100%><tr><td bgcolor=#AA0000>&nbsp;</td><td width=100%>
virtual cOsdObject *GetInfo(void);
-<!--X1.3.38--></td></tr></table>
virtual eOSState ProcessKey(eKeys Key);
};
</pre></td></tr></table><p>
@@ -1361,13 +1335,11 @@ A derived <tt>cControl</tt> <b>must</b> implement the <tt>Hide()</tt> function,
it has to hide itself from the OSD, in case it uses it. <tt>Hide()</tt> may be called at
any time, and it may be called even if the <tt>cControl</tt> is not visible at the moment.
<p>
-<!--X1.3.38--><table width=100%><tr><td bgcolor=#AA0000>&nbsp;</td><td width=100%>
The <tt>GetInfo()</tt> function is called when the user presses the <tt>Info</tt> button,
and shall return a pointer to a <tt>cOsdObject</tt> that contains information
about the currently played programme. The caller takes ownership of the returned
pointer and will delete it when it is no longer used. If no information is available,
<tt>NULL</tt> shall be returned.
-<!--X1.3.38--></td></tr></table>
<p>
Finally, to get things going, a plugin that implements a player (and the surrounding
infrastructure like displaying a list of playable stuff etc) simply has to call the
@@ -1589,7 +1561,6 @@ with the full required resolution. Only if this fails shall it use alternate
areas. Drawing areas are always rectangular and may not overlap (but do not need
to be adjacent).
-<!--X1.3.37--><table width=100%><tr><td bgcolor=#00AA00>&nbsp;</td><td width=100%>
<p>
Directly accessing the OSD is only allowed from the foreground thread, which
restricts this to a <tt>cOsdObject</tt> returned from the plugin's <tt>MainMenuAction()</tt>
@@ -1603,7 +1574,6 @@ int cSkins::QueueMessage(eMessageType Type, const char *s, int Seconds = 0, int
</pre></td></tr></table><p>
to queue that message for display. See <tt>VDR/skins.h</tt> for details.
-<!--X1.3.37--></td></tr></table>
<a name="Skins"><hr><h2>Skins</h2>