blob: f18949cb61c5654846dc107ffca3af9acf1c9e0b (
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
|
/*
* httpd.c: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
* $Id: live.cpp,v 1.17 2007/09/17 22:23:40 tadi Exp $
*/
#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"
namespace vdrlive {
using namespace std;
const char *Plugin::VERSION = LIVEVERSION;
const char *Plugin::DESCRIPTION = LIVESUMMARY;
std::string Plugin::m_configDirectory;
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 = cPlugin::ConfigDirectory( PLUGIN_NAME_I18N );
#if VDRVERSNUM < 10507
RegisterI18n( vdrlive::Phrases );
#endif
// force status monitor startup
LiveStatusMonitor();
// preload files into file Cache
PreLoadFileCache(m_configDirectory);
// 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!
|