summaryrefslogtreecommitdiff
path: root/PLUGINS/src/servicedemo/svcsvr.c
diff options
context:
space:
mode:
Diffstat (limited to 'PLUGINS/src/servicedemo/svcsvr.c')
-rw-r--r--PLUGINS/src/servicedemo/svcsvr.c57
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!