vdr
2.4.1
PLUGINS
src
servicedemo
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 4.1 2018/04/10 13:00:57 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.4.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
23
struct
ReportBoredPlugin_v1_0
{
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) {
38
ReportBoredPlugin_v1_0
*rbp = (
ReportBoredPlugin_v1_0
*)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!
cPluginSvcSvr::Description
virtual const char * Description(void)
Definition:
svcsvr.c:19
Interface
cInterface * Interface
Definition:
interface.c:20
VERSION
static const char * VERSION
Definition:
svcsvr.c:13
AddService_v1_0::b
int b
Definition:
svccli.c:31
cPluginSvcSvr::Version
virtual const char * Version(void)
Definition:
svcsvr.c:18
cPlugin
Definition:
plugin.h:20
ReportBoredPlugin_v1_0::BoredPlugin
cPlugin * BoredPlugin
Definition:
svccli.c:27
cPlugin::Name
const char * Name(void)
Definition:
plugin.h:34
AddService_v1_0
Definition:
svccli.c:30
AddService_v1_0::sum
int sum
Definition:
svccli.c:32
cPluginSvcSvr::Service
virtual bool Service(const char *Id, void *Data)
Definition:
svcsvr.c:34
cInterface::Confirm
bool Confirm(const char *s, int Seconds=10, bool WaitForTimeout=false)
Definition:
interface.c:59
ReportBoredPlugin_v1_0
Definition:
svccli.c:26
DESCRIPTION
static const char * DESCRIPTION
Definition:
svcsvr.c:14
AddService_v1_0::a
int a
Definition:
svccli.c:31
VDRPLUGINCREATOR
VDRPLUGINCREATOR(cPluginSvcSvr)
cPluginSvcSvr
Definition:
svcsvr.c:16
Generated by
1.8.18