blob: 65e16462f217f4b7ececb90ef1dbc6e82b5b99a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/*
* vdrmon.c: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id$
*/
#include <vdr/plugin.h>
#include <vdr/thread.h>
#include <vdr/status.h>
#include <vdr/device.h>
#include <vdr/player.h>
#include "androvdrthread.h"
#define ANDROVDR_PORT 6420
const char *VERSION = "0.1";
static const char *DESCRIPTION = "Andro-VDR support plugin";
class cPluginAndroVdr : public cPlugin {
private:
// Add any member variables or functions you may need here.
cAndroVdrThread * Thread;
int port;
const char * password;
protected:
public:
cPluginAndroVdr(void);
virtual ~cPluginAndroVdr();
virtual const char *Version(void) { return VERSION; }
virtual const char *Description(void) { return DESCRIPTION; }
virtual const char *CommandLineHelp(void);
virtual bool Initialize(void);
virtual bool Start(void);
virtual void Stop(void);
virtual void Housekeeping(void);
virtual const char *MainMenuEntry(void) { return NULL; }
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool ProcessArgs(int argc, char *argv[]);
};
cPluginAndroVdr::cPluginAndroVdr(void)
{
// Initialize any member variables here.
// DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
// VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
Thread = NULL;
port = ANDROVDR_PORT;
password = "";
}
cPluginAndroVdr::~cPluginAndroVdr()
{
// Clean up after yourself!
}
cOsdObject * cPluginAndroVdr::MainMenuAction(void)
{
return NULL;
}
cMenuSetupPage * cPluginAndroVdr::SetupMenu(void)
{
return NULL;
}
const char * cPluginAndroVdr::CommandLineHelp(void)
{
return " -p port port number to listen to\n"
" -P password password (none if not given)";
}
bool cPluginAndroVdr::ProcessArgs(int argc, char *argv[])
{
for(int i = 1; i < argc; i++) {
if (i < argc - 1) {
if (strcmp(argv[i], "-p") == 0) {
port = atoi(argv[++i]);
} else if (strcmp(argv[i], "-P") == 0) {
password = argv[++i];
}
}
}
// default port
if (port <= 0)
port = ANDROVDR_PORT;
return true;
}
bool cPluginAndroVdr::Initialize(void)
{
// Initialize any background activities the plugin shall perform.
// Start any background activities the plugin shall perform.
Thread = new cAndroVdrThread(port, password);
return Thread != NULL;
}
bool cPluginAndroVdr::Start(void)
{
Thread->Start();
return true;
}
void cPluginAndroVdr::Stop(void)
{
// Stop any background activities the plugin shall perform.
Thread->Shutdown();
}
void cPluginAndroVdr::Housekeeping(void)
{
// Perform any cleanup or other regular tasks.
}
VDRPLUGINCREATOR(cPluginAndroVdr); // Don't touch this!
|