diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-08-21 18:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-08-21 18:00:00 +0200 |
commit | dab203efe9e24f1dade33ee1da6a39b26f8501f0 (patch) | |
tree | 9399cbee3798f5232eddca484e118275fe8e472e /PLUGINS/src/servicedemo/svcsvr.c | |
parent | ddd1e13e53c4970058884e2af31c2681617e7bf3 (diff) | |
download | vdr-patch-lnbsharing-dab203efe9e24f1dade33ee1da6a39b26f8501f0.tar.gz vdr-patch-lnbsharing-dab203efe9e24f1dade33ee1da6a39b26f8501f0.tar.bz2 |
Version 1.3.30vdr-1.3.30
- Improved responsiveness inside CAM menus.
- Added handling of the 'Close MMI' tag to avoid error log messages with CAMs
that actually use it.
- Now waiting at startup until all DVB devices are ready. This includes having
all CAMs initialized and ready to decrypt, so that no more "channel not
available" happens if VDR is started with the current channel being an encrypted
one, or a timer on such a channel hits right after starting VDR.
- Fixed cVideoRepacker to better handle errors in data (thanks to Reinhard Nissl).
- Fixed cDvbTuner to avoid lockups on NPTL systems (thanks to Marcel Wiesweg).
- Added 'Service' functions to the plugin interface (thanks to Udo Richter).
See PLUGINS.html, section "Custom services" for details.
- Replaced the get/put_unaligned() macros from <asm/unaligned.h> with own inline
functions to avoid problems on platforms that don't provide these (thanks to
David Woodhouse for his help).
Diffstat (limited to 'PLUGINS/src/servicedemo/svcsvr.c')
-rw-r--r-- | PLUGINS/src/servicedemo/svcsvr.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/PLUGINS/src/servicedemo/svcsvr.c b/PLUGINS/src/servicedemo/svcsvr.c new file mode 100644 index 0000000..7aff2b9 --- /dev/null +++ b/PLUGINS/src/servicedemo/svcsvr.c @@ -0,0 +1,57 @@ +/* + * svcsvr.c: Sample service server plugin + * + * See the README file for copyright information and how to reach the author. + * + * $Id: svcsvr.c 1.1 2005/08/21 10:44:24 kls Exp $ + */ + +#include <stdlib.h> +#include <vdr/interface.h> +#include <vdr/plugin.h> + +static const char *VERSION = "0.1.1"; +static const char *DESCRIPTION = "Service demo server"; + +class cPluginSvcSvr : public cPlugin { +public: + virtual const char *Version(void) { return VERSION; } + virtual const char *Description(void) { return DESCRIPTION; } + virtual bool Service(const char *Id, void *Data); + }; + +struct ReportBoredPlugin_v1_0 { + cPlugin *BoredPlugin; + }; + +struct AddService_v1_0 { + int a, b; + int sum; + }; + +// --- cPluginSvcSvr ---------------------------------------------------------- + +bool cPluginSvcSvr::Service(const char *Id, void *Data) +{ + if (strcmp(Id,"ReportBoredPlugin-v1.0") == 0) { + if (Data) { + ReportBoredPlugin_v1_0 *rbp = (ReportBoredPlugin_v1_0*)Data; + char s[128]; + snprintf(s, sizeof(s), "Plugin %s informed server that it is bored.", rbp->BoredPlugin->Name()); + Interface->Confirm(s); + } + return true; + } + + if (strcmp(Id,"AddService-v1.0") == 0) { + if (Data) { + AddService_v1_0 *data = (AddService_v1_0*)Data; + data->sum = data->a + data->b; + } + return true; + } + + return false; +} + +VDRPLUGINCREATOR(cPluginSvcSvr); // Don't touch this! |