summaryrefslogtreecommitdiff
path: root/PLUGINS.html
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2007-10-14 18:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2007-10-14 18:00:00 +0200
commitdbf38b7c68911187b6a48688b738c31612d35984 (patch)
tree4cc72f28e78f4a8dd63a63c5236bcbb77502073b /PLUGINS.html
parent46c882c04d5200cc97262b15db2e4841b305664d (diff)
downloadvdr-patch-lnbsharing-dbf38b7c68911187b6a48688b738c31612d35984.tar.gz
vdr-patch-lnbsharing-dbf38b7c68911187b6a48688b738c31612d35984.tar.bz2
Version 1.5.10vdr-1.5.10
- Implemented handling DVB subtitles (thanks to Marco Schlüßler, and also to Pekka Virtanen for writing the subtitle plugin, which helped in implementing subtitle handling in VDR). - The new remote control key "Subtitles" can be used to bring up the list of available subtitles. - The new setup option "DVB/Subtitle languages" can be used to define the preferred languages for subtitles. - Fixed selecting the audio track when pressing Ok in the Audio menu (thanks to Marco Schlüßler). - Implemented display of DVB subtitles in live viewing mode. - Implemented subtitle track selection. - Implemented bitmap color reduction and shrinking to display subtitles even on devices that can't display the necessary number of colors. - Added compatibility mode for playback of recordings made with the subtitles plugin (with some help from Rolf Ahrenberg). - The new setup option "DVB/Subtitle offset" can be used to shift the location of the subtitles in the vertical direction. - The new setup options "DVB/Subtitle foreground/background transparency" define an additional level of transparency for the foreground and background color of subtitles. - Existing recordings made with the subtitle plugin can be given an 'X' record in their info.vdr file, so that subtitles can be automatically selected upon replay, according to the preferred language setup, as in X 3 03 ger deutsch (see vdr.5). Note that these entries need to be added in the proper sequence, so that they correspond with the actual track languages in the recording. - Now generating translation files without line numbers to avoid unnecessarily large diffs. Plugin authors may want to replace the -F option with --no-location in the xgettext and msgmerge calls in their Makefiles. - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Added a missing Channels.SetModified(true) call when deleting or moving a channel in the Channels menu (reported by Halim Sahin). - Fixed a missing '-' at the next to last line of SVDRP help texts (reported by Denis Knauf). - Added a missing SetVolumeDevice() call in cDevice::SetPrimaryDevice() (reported by Reinhard Nissl). - Fixed a crash when pressing Left while at the first character of a cMenuEditStrItem (thanks to Christian Wieninger). - Only creating a new cDvbOsdProvider in cDvbDevice::MakePrimaryDevice() if 'On' is true (i.e. this device is being made the primary device). - Updated the Italian OSD texts (thanks to Diego Pierotto). - Fixed handling reallocated memory in cCharSetConv::Convert() (reported by Udo Richter). - Fixed a new[]/delete mismatch in cMenuEditStrItem::LeaveEditMode() (thanks to Udo Richter). - Implemented sending all frames to devices that can handle them in fast forward trick speeds (thanks to Timo Eskola). - Updated the Hungarian language texts (thanks to Thomas Günther). - Fixed description of DeviceSetAvailableTrack() and cReceiver(), and added an example ~cMyReceiver() in PLUGINS.html (thanks to Marco Schlüßler). - Improved the description of where logging goes in the INSTALL file (thanks to Elias Luttinen). - Added a note about how to initiate internationalization support to the README.i18n file. The Makefile generated by the 'newplugin' script now has the 'i18n' target automatically create an initial 'po/pluginname.pot' file. Plugin authors may want to add the '$(I18Npot)' dependency to the 'i18n' target in their Makefiles, as in i18n: $(I18Npot) $(I18Nmo) (based on a suggestion by Torsten Kunkel). - Removed a duplicate ',' from the ca_ES.po file (thanks to Thomas Günther). - Added the 'ß' character to the "allowed characters" in the de_DE.po file (suggested by Thomas Günther). - Made the default copy ctor of cRecording private (thanks to Markus Hahn). Same for the assign operator. - Added cRecording::Undelete() (based on a patch from Markus Hahn). - Added cDevice::CloseFilter() to allow a device to have complete control over both opening and closing section filters (thanks to Rolf Ahrenberg). - Some fixes to PLUGINS.html (thanks to Rolf Ahrenberg).
Diffstat (limited to 'PLUGINS.html')
-rw-r--r--PLUGINS.html54
1 files changed, 34 insertions, 20 deletions
diff --git a/PLUGINS.html b/PLUGINS.html
index 0b0b495..e34ab0e 100644
--- a/PLUGINS.html
+++ b/PLUGINS.html
@@ -14,18 +14,18 @@ Copyright &copy; 2006 Klaus Schmidinger<br>
<a href="http://www.cadsoft.de/vdr">www.cadsoft.de/vdr</a>
</center>
<p>
-<!--X1.5.1--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
-Important modifications introduced in version 1.5.1 are marked like this.
-<!--X1.5.1--></td></tr></table>
-<!--X1.5.3--><table width=100%><tr><td bgcolor=#00AA00>&nbsp;</td><td width=100%>
+<!--X1.5.3--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
Important modifications introduced in version 1.5.3 are marked like this.
<!--X1.5.3--></td></tr></table>
-<!--X1.5.7--><table width=100%><tr><td bgcolor=#AA0000>&nbsp;</td><td width=100%>
+<!--X1.5.7--><table width=100%><tr><td bgcolor=#00AA00>&nbsp;</td><td width=100%>
Important modifications introduced in version 1.5.7 are marked like this.
<!--X1.5.7--></td></tr></table>
-<!--X1.5.8--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
+<!--X1.5.8--><table width=100%><tr><td bgcolor=#AA0000>&nbsp;</td><td width=100%>
Important modifications introduced in version 1.5.8 are marked like this.
<!--X1.5.8--></td></tr></table>
+<!--X1.5.10--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
+Important modifications introduced in version 1.5.10 are marked like this.
+<!--X1.5.10--></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.
@@ -64,9 +64,7 @@ structures and allows it to hook itself into specific areas to perform special a
<li><a href="#Housekeeping">Housekeeping</a>
<li><a href="#Main thread hook">Main thread hook</a>
<li><a href="#Activity">Activity</a>
-<!--X1.5.1--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
<li><a href="#Wakeup">Wakeup</a>
-<!--X1.5.1--></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>
@@ -685,7 +683,6 @@ 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.5.1--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
<a name="Wakeup"><hr><h2>Wakeup</h2>
<center><i><b>Wake me up before you go-go</b></i></center><p>
@@ -718,7 +715,6 @@ After wakeup, the plugin shall continue to return the wakeup time and shall
return a string when <tt>Active()</tt> is called at that time, otherwise VDR may shut down
again instantly. If <tt>WakeupTime()</tt> returns a time that is not in
the future, the time will be ignored.
-<!--X1.5.1--></td></tr></table>
<a name="Setup parameters"><hr><h2>Setup parameters</h2>
@@ -910,7 +906,7 @@ const char *MyConfigDir = cPlugin::ConfigDirectory();
<center><i><b>Welcome to Babylon!</b></i></center><p>
-<!--X1.5.7--><table width=100%><tr><td bgcolor=#AA0000>&nbsp;</td><td width=100%>
+<!--X1.5.7--><table width=100%><tr><td bgcolor=#00AA00>&nbsp;</td><td width=100%>
If a plugin displays texts to the user, it should prepare for internationalization
of these texts. All that is necessary for this is to mark every text that is
presented to the user as translatable, as in
@@ -921,7 +917,7 @@ const char *s = tr("Hello world!");
The text given here must be the English version, and the returned pointer is either
a translated version (if available) or the original string.
-<!--X1.5.8--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
+<!--X1.5.8--><table width=100%><tr><td bgcolor=#AA0000>&nbsp;</td><td width=100%>
Texts are searched for in the domain registered for this plugin.
If a plugin wants to make use of texts defined by the core VDR code, it can use
the special <tt>trVDR()</tt> macro to mark these texts without having them
@@ -944,7 +940,7 @@ for (int i = 0; i &lt; 3; i++)
</pre></td></tr></table><p>
<p>
-<!--X1.5.3--><table width=100%><tr><td bgcolor=#00AA00>&nbsp;</td><td width=100%>
+<!--X1.5.3--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
The system VDR is running on may use a character encoding where a single character
(or <i>symbol</i>) consists of more than one byte (UTF-8, as opposed to, for instance,
ISO8859-1, where every character is represented by a single byte in memory).
@@ -1332,7 +1328,9 @@ A player that has special requirements about audio tracks should announce its
available audio tracks by calling
<p><table><tr><td bgcolor=#F0F0F0><pre>
-bool DeviceSetAvailableTrack(eTrackType Type, int Index, uint16_t Id, const char *Language = NULL, uint32_t Flags = 0)
+<!--X1.5.10--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
+bool DeviceSetAvailableTrack(eTrackType Type, int Index, uint16_t Id, const char *Language = NULL, const char *Description = NULL)
+<!--X1.5.10--></td></tr></table>
</pre></td></tr></table><p>
See <tt>device.h</tt> for details about the parameters for track handling.
@@ -1458,10 +1456,20 @@ public:
};
cMyReceiver::cMyReceiver(int Pid)
-:cReceiver(0, -1, Pid)
+<!--X1.5.10--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
+:cReceiver(tChannelID(), -1, Pid)
+<!--X1.5.10--></td></tr></table>
{
}
+<!--X1.5.10--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%><pre>
+cMyReceiver::~cMyReceiver()
+{
+ cReceiver::Detach();
+ ...
+}
+<!--X1.5.10--></pre></td></tr></table>
+
void cMyReceiver::Activate(bool On)
{
// start your own thread for processing the received data
@@ -1606,7 +1614,7 @@ 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).
<p>
-<!--X1.5.3--><table width=100%><tr><td bgcolor=#00AA00>&nbsp;</td><td width=100%>
+<!--X1.5.3--><table width=100%><tr><td bgcolor=#0000AA>&nbsp;</td><td width=100%>
Special consideration may have to be given to color usage if the OSD provides
8bpp (256 colors). In that case, fonts may be drawn using <i>anti-aliasing</i>,
which requires several blended color values between the foreground and background
@@ -1778,7 +1786,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 ProvidesChannel(const cChannel *Channel, int Priority = -1, bool *NeedsDetachReceivers = NULL) const;
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
</pre></td></tr></table><p>
@@ -1824,6 +1832,9 @@ virtual bool HasDecoder(void) const;
virtual bool CanReplay(void) const;
virtual bool SetPlayMode(ePlayMode PlayMode);
virtual int64_t GetSTC(void);
+<!--X1.5.10--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
+virtual bool HasIBPTrickSpeed(void);
+<!--X1.5.10--></td></tr></table>
virtual void TrickSpeed(int Speed);
virtual void Clear(void);
virtual void Play(void);
@@ -1838,7 +1849,7 @@ In addition, the following functions may be implemented to provide further
functionality:
<p><table><tr><td bgcolor=#F0F0F0><pre>
-virtual bool GrabImage(const char *FileName, bool Jpeg = true, int Quality = -1, int Si
+virtual bool GrabImage(const char *FileName, bool Jpeg = true, int Quality = -1, int SizeX = -1, int SizeY = -1);
virtual void SetVideoFormat(bool VideoFormat16_9);
virtual void SetVolumeDevice(int Volume);
</pre></td></tr></table><p>
@@ -1847,13 +1858,16 @@ virtual void SetVolumeDevice(int Volume);
<b>Section Filtering</b>
<p>
If your device provides section filtering capabilities it can implement
-the function
+the functions
<p><table><tr><td bgcolor=#F0F0F0><pre>
virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask);
+<!--X1.5.10--><table width=100%><tr><td bgcolor=#FF0000>&nbsp;</td><td width=100%>
+virtual void CloseFilter(int Handle);
+<!--X1.5.10--></td></tr></table>
</pre></td></tr></table><p>
-which must open a file handle that delivers section data for the given
+which must open and close a file handle that delivers section data for the given
filter parameters.
<p>
In order to actually start section handling, the