From 3bd9a7ccf355e445685ff115464a4e684a8c4211 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 18 May 2003 18:00:00 +0200 Subject: =?UTF-8?q?Version=201.1.32=20-=20Removed=20a=20faulty=20parameter?= =?UTF-8?q?=20initialization=20in=20menu.c=20(thanks=20to=20Lauri=20Tischl?= =?UTF-8?q?er=20for=20=20=20reporting=20this=20one).=20-=20Re-implemented?= =?UTF-8?q?=20the=20WaitForPut/WaitForGet=20stuff=20in=20cRingBuffer,=20si?= =?UTF-8?q?nce=20some=20plugins=20=20=20actually=20need=20this.=20By=20def?= =?UTF-8?q?ault=20the=20buffer=20does=20not=20wait;=20if=20a=20plugin=20ne?= =?UTF-8?q?eds=20the=20=20=20waiting=20functionality=20it=20can=20call=20t?= =?UTF-8?q?he=20new=20SetTimeouts()=20function.=20-=20Moved=20the=20call?= =?UTF-8?q?=20to=20cPlugin::Start()=20further=20up=20in=20vdr.c,=20to=20ma?= =?UTF-8?q?ke=20sure=20it=20gets=20=20=20called=20before=20trying=20to=20l?= =?UTF-8?q?earn=20the=20keys=20(problem=20reported=20by=20Oliver=20Endriss?= =?UTF-8?q?).=20-=20No=20longer=20starting=20the=20editing=20process=20if?= =?UTF-8?q?=20no=20marks=20have=20been=20set=20(thanks=20to=20=20=20Matthi?= =?UTF-8?q?as=20Raus=20for=20reporting=20this=20one).=20-=20Added=20Catala?= =?UTF-8?q?nian=20language=20texts=20(thanks=20to=20Marc=20Rovira=20Vall?= =?UTF-8?q?=20and=20Ramon=20Roca).=20=20=20Plugin=20authors=20may=20want?= =?UTF-8?q?=20to=20add=20the=20new=20entries=20to=20their=20I18N=20texts?= =?UTF-8?q?=20and=20contact=20=20=20the=20translators=20to=20have=20their?= =?UTF-8?q?=20texts=20translated.=20Note=20that=20there=20are=20now=2016?= =?UTF-8?q?=20=20=20different=20OSD=20languages,=20so=20please=20make=20su?= =?UTF-8?q?re=20you=20have=2016=20versions=20for=20each=20of=20=20=20your?= =?UTF-8?q?=20texts.=20-=20Moved=20the=20detection=20of=20a=20broken=20vid?= =?UTF-8?q?eo=20data=20stream=20from=20the=20cDevice=20into=20the=20=20=20?= =?UTF-8?q?cRecorder=20to=20avoid=20problems=20with=20cReceivers=20that=20?= =?UTF-8?q?want=20to=20receive=20from=20PIDs=20=20=20that=20are=20currentl?= =?UTF-8?q?y=20not=20transmitting=20(thanks=20to=20Marcel=20Wiesweg=20for?= =?UTF-8?q?=20reporting=20=20=20this=20one).=20-=20Fixed=20setting=20the?= =?UTF-8?q?=20locking=20pid=20after=20a=20timed=20wait=20(thanks=20to=20An?= =?UTF-8?q?dreas=20Schultz).=20-=20Avoiding=20spurious=20section=20filter?= =?UTF-8?q?=20settings=20after=20a=20channel=20switch.=20-=20Updated=20'ch?= =?UTF-8?q?annels.conf.cable'=20(thanks=20to=20Stefan=20Hu=C3=9Ffeldt).=20?= =?UTF-8?q?-=20Fixed=20reading=20'epg.data'=20for=20channels=20with=20non-?= =?UTF-8?q?zero=20RID=20(thanks=20to=20Oliver=20=20=20Endriss=20for=20repo?= =?UTF-8?q?rting=20this=20one).=20-=20Fixed=20EPG=20bugfix=20statistics=20?= =?UTF-8?q?to=20avoid=20log=20entires=20for=20undefined=20channels=20(than?= =?UTF-8?q?ks=20=20=20to=20Lars=20Bl=C3=A4ser=20for=20reporting=20this=20o?= =?UTF-8?q?ne).=20-=20No=20longer=20waiting=20inside=20cIndexFile::CatchUp?= =?UTF-8?q?()=20to=20avoid=20shortly=20blocking=20replay=20=20=20at=20the?= =?UTF-8?q?=20end=20of=20a=20recording.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PLUGINS.html | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) (limited to 'PLUGINS.html') diff --git a/PLUGINS.html b/PLUGINS.html index bd1a0d0..b632b61 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -21,18 +21,18 @@ VDR program and present itself to the user. The internal interface provides the plugin code access to VDR's internal data structures and allows it to hook itself into specific areas to perform special actions.

-
  -Important modifications introduced in version 1.1.15 are marked like this. -
-
  +
  Important modifications introduced in version 1.1.17 are marked like this.
-
  +
  Important modifications introduced in version 1.1.27 are marked like this.
-
  +
  Important modifications introduced in version 1.1.31 are marked like this.
+
  +Important modifications introduced in version 1.1.32 are marked like this. +

Table Of Contents

@@ -284,7 +284,7 @@ The constructor shall initialize any member variables the plugin defines, must not access any global structures of VDR. It also must not create any threads or other large data structures. These things are done in the -
  +
  Initialize() or Start()
@@ -460,18 +460,20 @@ thread of its own), or wants to make use of inte it needs to implement one of the functions


-
 
+
 
 virtual bool Initialize(void);
 
virtual bool Start(void);

which are called once for each plugin at program startup. -
  +
  +
  The difference between these two functions is that Initialize() is -called early at program startup, while Start() is called after everything -else has been set up, right before the main program loop is entered. Inside the -Start() function of any plugin it is guaranteed that the Initialize() +called early at program startup, while Start() is called after the primary +device and user interface has been set up, but before the main program loop is entered. +
+Inside the Start() function of any plugin it is guaranteed that the Initialize() functions of all plugins have already been called. For many plugins it probably doesn't matter which of these functions they implement, but it may be of importance for, e.g., plugins that implement devices. Such plugins should create their cDevice @@ -527,7 +529,7 @@ in the call to VDR. If the user selects the main menu entry of a plugin, VDR calls the function -
  +
 


virtual cOsdObject *MainMenuAction(void);

@@ -1044,7 +1046,6 @@ virtual void SetAudioTrack(int Index);

-
  If there is an additional audio track that has to be replayed with external hardware, the player shall call its member function @@ -1053,7 +1054,6 @@ void PlayAudio(const uchar *Data, int Length);

where Data points to a complete audio PES packet of Length bytes. -

The second part needed here is a control object that receives user input from the main program loop and reacts on this by telling the player what to do: @@ -1200,7 +1200,7 @@ a cDevice:


cMyReceiver *Receiver = new cMyReceiver(123); -
  +
  cDevice::ActualDevice()->AttachReceiver(Receiver);

@@ -1372,7 +1372,7 @@ needed.

Initializing new devices

-
  +
  A derived cDevice class shall implement a static function in which it determines whether the necessary hardware to run this sort of device is actually present in this machine (or whatever other prerequisites @@ -1391,7 +1391,6 @@ shut down (delete) all devices when the program terminates. It is therefore important that the devices are created on the heap, using the new operator! -
 

Dolby Digital

"The stereo effect may only be experienced if stereo equipment is used!"

@@ -1434,7 +1433,6 @@ will need to copy it for later processing in your thread.

The Mute() and Clear() functions will be called whenever the audio shall be muted, or any buffered data shall be cleared, respectively. -


Remote Control

@@ -1502,7 +1500,7 @@ the incoming data (by calling your Action() function). In case you need to do any other setup steps, like opening a file or initializing member variables, you should do so before calling Start().

-
  +
  If your remote control for some reason can't work (maybe because it was unable to open some file handle it requires) it can implement the virtual function -- cgit v1.2.3