From 41f718987d625d2938c6ed0827759b217fda63a2 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 27 Nov 2005 15:57:03 +0100 Subject: Implemented message queueing --- PLUGINS.html | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) (limited to 'PLUGINS.html') diff --git a/PLUGINS.html b/PLUGINS.html index d1c787b3..bdaf1efb 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -14,18 +14,18 @@ Copyright © 2005 Klaus Schmidinger
www.cadsoft.de/vdr

-
  -Important modifications introduced in version 1.3.20 are marked like this. -
-
  +
  Important modifications introduced in version 1.3.21 are marked like this.
-
  +
  Important modifications introduced in version 1.3.30 are marked like this.
-
  +
  Important modifications introduced in version 1.3.31 are marked like this.
+
  +Important modifications introduced in version 1.3.37 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. @@ -58,9 +58,7 @@ structures and allows it to hook itself into specific areas to perform special a

  • Command line arguments
  • Command line help
  • Getting started -
     
  • Shutting down -
  • Main menu entry
  • User interaction
  • Housekeeping @@ -68,10 +66,10 @@ structures and allows it to hook itself into specific areas to perform special a
  • The Setup menu
  • Configuration files
  • Internationalization -
      +
     
  • Custom services
  • -
      +
     
  • SVDRP commands
  • Loading plugins into VDR @@ -87,7 +85,7 @@ structures and allows it to hook itself into specific areas to perform special a
  • Skins
  • Themes
  • Devices -
      +
     
  • Audio
  • Remote Control @@ -314,10 +312,8 @@ since VDR, for instance, has to create the plugin objects in order to get their command line help - and after that immediately destroys them again.

    The destructor has to clean up any data created by the plugin. -
      Any threads the plugin may have created shall be stopped in the Stop() function. -

    Of course, if your plugin doesn't define any member variables that need to be initialized (and deleted), you don't need to implement either of these functions. @@ -512,7 +508,6 @@ VDR to exit. If the plugin doesn't implement any background functionality or internationalized texts, it doesn't need to implement either of these functions. -
     

    Shutting down

    Stop it, right there!

    @@ -529,7 +524,6 @@ The Stop() function will only be called if a previous call to the Start() function of that plugin has returned true. The Stop() functions are called in the reverse order as the Start() functions were called. -


    Main menu entry

    @@ -872,7 +866,7 @@ Texts are first searched for in the Phrases registered for this plugin (i and then in the global VDR texts. So a plugin can make use of texts defined by the core VDR code. -
      +
     

    Custom services

    What can I do for you?

    @@ -943,7 +937,7 @@ any plugin handled the request, or false if no plugin handled the reque

    -
      +
     

    SVDRP commands

    Infinite Diversity in Infinite Combinations

    @@ -1521,6 +1515,22 @@ 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). +
      +

    +Directly accessing the OSD is only allowed from the foreground thread, which +restricts this to a cOsdObject returned from the plugin's MainMenuAction() +function, or any of the skin classes a plugin might implement. +

    +If a plugin runs a separate thread and wants to issue a message directly from +within that tread, it can call + +

    +int cSkins::QueueMessage(eMessageType Type, const char *s, int Seconds = 0, int Timeout = 0);
    +

    + +to queue that message for display. See VDR/skins.h for details. +

    +


    Skins

    The emperor's new clothes

    @@ -1830,7 +1840,7 @@ private: virtual void Action(void); public: cMyAudio(void); -
      +
      virtual void Play(const uchar *Data, int Length, uchar Id);
    virtual void Mute(bool On); -- cgit v1.2.3