diff --git a/HISTORY b/HISTORY index b875e1f7..35377201 100644 --- a/HISTORY +++ b/HISTORY @@ -1294,7 +1294,7 @@ Video Disk Recorder Revision History - Fixed the cutting mechanism to make it re-sync in case a frame is larger than the buffer (thanks to Sven Grothklags). -2002-05-18: Version 1.1.3 +2002-05-19: Version 1.1.3 - Improved the VDR Makefile to avoid a warning if the '.dependencies' file does not exist, and also using $(MAKE) to call recursive makes. @@ -1312,3 +1312,5 @@ Video Disk Recorder Revision History accessed (suggested by Stefan Huelswitt). - Rearranged OSD class names to make 'cOsd' available for the main OSD interface. - Completely moved OSD handling out of the cDvbApi class, into the new cOsd. +- Implemented cStatusMonitor to allow plugins to set up a status monitor. + See PLUGINS.html for details. diff --git a/Makefile b/Makefile index 7e675a9f..8d59074c 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # See the main source file 'vdr.c' for copyright information and # how to reach the author. # -# $Id: Makefile 1.36 2002/05/14 21:12:28 kls Exp $ +# $Id: Makefile 1.37 2002/05/18 15:10:10 kls Exp $ .DELETE_ON_ERROR: @@ -23,7 +23,7 @@ DTVLIB = $(DTVDIR)/libdtv.a OBJS = config.o dvbapi.o dvbosd.o eit.o font.o i18n.o interface.o menu.o\ menuitems.o osdbase.o osd.o plugin.o recording.o remote.o remux.o ringbuffer.o\ - svdrp.o thread.o tools.o vdr.o videodir.o + status.o svdrp.o thread.o tools.o vdr.o videodir.o OSDFONT = -adobe-helvetica-medium-r-normal--23-*-100-100-p-*-iso8859-1 FIXFONT = -adobe-courier-bold-r-normal--25-*-100-100-m-*-iso8859-1 diff --git a/PLUGINS.html b/PLUGINS.html index 6caff0e8..f531f361 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -4,7 +4,7 @@
--This document describes the "outside" interface of the plugin system. -It handles everything necessary for a plugin to get hooked into the core +
+This document is divided into two parts, the first one describing the +outside interface +of the plugin system, and the second one describing the +inside interface. +The outside interface handles everything necessary for a plugin to get hooked into the core VDR program and present itself to the user. +The inside 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.1 are marked like this. @@ -27,6 +34,8 @@ Important modifications introduced in version 1.1.3 are marked like this. |
@@ -840,5 +849,82 @@ vdr-hello-0.0.1.tgz in your source directory, where hello will be replaced with your actual plugin's name, and 0.0.1 will be your plugin's current version number. +
+Part II - The Inside InterfaceStatus monitor+ ++ +If a plugin wants to get informed on various events in VDR, it can derive a class from +cStatusMonitor, as in + +
+ +An object of this class will be informed whenever the channel is switched on one of +the DVB devices. It could be used in a plugin like this: + +
+ +Note that the actual object is created in the Start() function, not in the +constructor! It is also important to delete the object in the destructor, in order to +avoid memory leaks. + +A Plugin can implement any number of cStatusMonitor derived objects, and once +the plugin has been started it may create and delete them as necessary. +No further action apart from creating an object derived from cStatusMonitor +is necessary. VDR will automatically hook it into a list of status monitors, with +their individual virtual member functions being called in the same sequence as the +objects were created. + +See the file status.h for detailed information on which status monitor +member functions are available in cStatusMonitor. You only need to implement +the functions you actually want to use. + |