forked from vdr-projects/vdr-plugin-live
-
Notifications
You must be signed in to change notification settings - Fork 0
/
live.cpp
93 lines (72 loc) · 1.79 KB
/
live.cpp
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
/*
* live.cpp: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*/
#include <vdr/config.h>
#include <vdr/plugin.h>
#include "i18n.h"
#include "live.h"
#include "setup.h"
#include "status.h"
#include "tasks.h"
#include "thread.h"
#include "timers.h"
#include "preload.h"
#include "users.h"
namespace vdrlive {
using namespace std;
const char *Plugin::VERSION = LIVEVERSION;
const char *Plugin::DESCRIPTION = LIVESUMMARY;
std::string Plugin::m_configDirectory;
std::string Plugin::m_resourceDirectory;
cUsers Users;
Plugin::Plugin(void)
{
}
const char *Plugin::CommandLineHelp(void)
{
return LiveSetup().CommandLineHelp();
}
bool Plugin::ProcessArgs(int argc, char *argv[])
{
return LiveSetup().ParseCommandLine( argc, argv );
}
bool Plugin::Start(void)
{
m_configDirectory = canonicalize_file_name(cPlugin::ConfigDirectory( PLUGIN_NAME_I18N ));
m_resourceDirectory = canonicalize_file_name(cPlugin::ResourceDirectory( PLUGIN_NAME_I18N ));
// force status monitor startup
LiveStatusMonitor();
// preload files into file Cache
PreLoadFileCache(m_resourceDirectory);
// load users
Users.Load(AddDirectory(m_configDirectory.c_str(), "users.conf"), true);
// XXX error handling
m_thread.reset( new ServerThread );
m_thread->Start();
return true;
}
void Plugin::Stop(void)
{
m_thread->Stop();
}
void Plugin::MainThreadHook(void)
{
LiveTimerManager().DoPendingWork();
LiveTaskManager().DoScheduledTasks();
}
cString Plugin::Active(void)
{
return NULL;
}
cMenuSetupPage *Plugin::SetupMenu(void)
{
return new cMenuSetupLive();
}
bool Plugin::SetupParse(const char *Name, const char *Value)
{
return LiveSetup().ParseSetupEntry( Name, Value );
}
} // namespace vdrlive
VDRPLUGINCREATOR(vdrlive::Plugin); // Don't touch this!