vdr  2.2.0
svcsvr.c
Go to the documentation of this file.
1 /*
2  * svcsvr.c: Sample service server plugin
3  *
4  * See the README file for copyright information and how to reach the author.
5  *
6  * $Id: svcsvr.c 3.2 2015/02/17 13:13:09 kls Exp $
7  */
8 
9 #include <stdlib.h>
10 #include <vdr/interface.h>
11 #include <vdr/plugin.h>
12 
13 static const char *VERSION = "2.2.0";
14 static const char *DESCRIPTION = "Service demo server";
15 
16 class cPluginSvcSvr : public cPlugin {
17 public:
18  virtual const char *Version(void) { return VERSION; }
19  virtual const char *Description(void) { return DESCRIPTION; }
20  virtual bool Service(const char *Id, void *Data);
21  };
22 
24  cPlugin *BoredPlugin;
25  };
26 
27 struct AddService_v1_0 {
28  int a, b;
29  int sum;
30  };
31 
32 // --- cPluginSvcSvr ---------------------------------------------------------
33 
34 bool cPluginSvcSvr::Service(const char *Id, void *Data)
35 {
36  if (strcmp(Id,"ReportBoredPlugin-v1.0") == 0) {
37  if (Data) {
39  char s[128];
40  snprintf(s, sizeof(s), "Plugin %s informed server that it is bored.", rbp->BoredPlugin->Name());
41  Interface->Confirm(s);
42  }
43  return true;
44  }
45 
46  if (strcmp(Id,"AddService-v1.0") == 0) {
47  if (Data) {
48  AddService_v1_0 *data = (AddService_v1_0*)Data;
49  data->sum = data->a + data->b;
50  }
51  return true;
52  }
53 
54  return false;
55 }
56 
57 VDRPLUGINCREATOR(cPluginSvcSvr); // Don't touch this!
static const char * DESCRIPTION
Definition: svcsvr.c:14
bool Confirm(const char *s, int Seconds=10, bool WaitForTimeout=false)
Definition: interface.c:67
const char * Name(void)
Definition: plugin.h:34
Definition: plugin.h:20
static const char * VERSION
Definition: svcsvr.c:13
VDRPLUGINCREATOR(cPluginSvcSvr)
cPlugin * BoredPlugin
Definition: svccli.c:27
virtual const char * Description(void)
Definition: svcsvr.c:19
virtual bool Service(const char *Id, void *Data)
Definition: svcsvr.c:34
cInterface * Interface
Definition: interface.c:20
virtual const char * Version(void)
Definition: svcsvr.c:18