forked from MarkusEh/vdr-plugin-live
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.h
214 lines (186 loc) · 8.58 KB
/
setup.h
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
#ifndef VDR_LIVE_SETUP_H
#define VDR_LIVE_SETUP_H
// STL headers need to be before VDR tools.h (included by <vdr/menuitems.h>)
#include <list>
#include <limits>
#include <string>
#if TNTVERSION >= 30000
#include <cxxtools/log.h> // must be loaded before any vdr include because of duplicate macros (LOG_ERROR, LOG_DEBUG, LOG_INFO)
#endif
#include <vdr/menuitems.h>
#define LIVEVERSION "3.3.4"
#define LIVEVERSNUM 30304
#define LIVESUMMARY trNOOP("Live Interactive VDR Environment")
namespace vdrlive {
// forward declaration, see below
class cMenuSetupLive;
class Setup
{
friend Setup& LiveSetup();
friend class cMenuSetupLive; // friend declaration is not forward
// declaration, although gcc 3.3 claims so
public:
typedef std::list<std::string> IpList;
// commandline
int GetServerPort() const { return m_serverPort; }
int GetServerSslPort() const { return m_serverSslPort; }
std::string GetServerSslCert() const { return m_serverSslCert; }
std::string GetServerSslKey() const { return m_serverSslKey; }
const std::string &GetServerUrl() const { return m_serverUrl; }
const std::string &GetServerUrlImages() const { return m_serverUrlImages; }
IpList const& GetServerIps() const { return m_serverIps; }
// vdr-setup
int GetLastChannel() const { return m_lastChannel == 0 ? std::numeric_limits<int>::max() : m_lastChannel; }
int GetScreenshotInterval() const { return m_screenshotInterval; }
std::string const GetAdminLogin() const { return m_adminLogin; }
std::string const GetMD5HashAdminPassword() const;
int GetAdminPasswordLength() const;
bool GetUseAuth() const { return m_useAuth; }
bool UseAuth() const;
std::string const GetTimes() const { return m_times; }
std::string const GetChannelGroups() const { return m_channelGroups; }
std::string const GetScheduleDuration() const { return m_scheduleDuration; }
std::string const GetStartScreen() const { return m_startscreen; }
std::string const GetStartScreenLink() const;
std::string const GetTheme() const { return m_theme; }
std::string const GetThemedLink(std::string const & type, const std::string& name) const { return GetThemedLinkPrefix() + type + "/" + name; }
std::string const GetThemedLinkPrefix() const { return m_themedLinkPrefix ; }
std::string const GetThemedLinkPrefixImg() const { return m_themedLinkPrefixImg ; }
std::string const GetLocalNetMask() const { return m_localnetmask; };
bool GetIsLocalNet() const { return m_islocalnet; };
std::string const GetLastWhatsOnListMode() const { return m_lastwhatsonlistmode; }
std::string const GetLastSortingMode() const { return m_lastsortingmode; }
std::string const GetTntnetLogLevel() const { return m_tntnetloglevel; }
bool GetShowLogo() const { return m_showLogo != 0; }
bool GetUseArchive() const { return false; }
bool GetShowInfoBox() const { return m_showInfoBox != 0; }
bool GetUseStreamdev() const { return m_useStreamdev != 0; }
int GetStreamdevPort() const { return m_streamdevPort; }
std::string const GetStreamdevType() const { return m_streamdevType; }
bool GetMarkNewRec() const { return m_markNewRec != 0; }
std::string const GetStreamVideoOpt0() const { return m_streamVopt0; }
std::string const GetStreamVideoOpt1() const { return m_streamVopt1; }
std::string const GetStreamVideoOpt2() const { return m_streamVopt2; }
std::string const GetStreamVideoOpt3() const { return m_streamVopt3; }
bool GetShowIMDb() const { return m_showIMDb != 0; }
bool GetShowPlayMediaplayer() const { return m_showPlayMediaplayer != 0; }
std::string const GetEpgImageDir() { return m_epgimagedir; }
const std::string &GetTvscraperImageDir() const { return m_tvscraperimagedir; }
cPlugin *GetPluginTvscraper() { return m_p_tvscraper; } // tvscraper
cPlugin *GetPluginScraper() { return m_p_scraper; } // tvscraper. Or, if not available, scraper2vdr
void SetTvscraperImageDir(const std::string &dir);
const std::string &GetChanLogoDir() const { return m_chanlogodir; }
bool GetShowChannelsWithoutEPG() const { return m_showChannelsWithoutEPG != 0; }
int GetMaxTooltipChars() const { return m_maxTooltipChars; }
void SetLastChannel(int lastChannel) { m_lastChannel = lastChannel; }
void SetAdminLogin(std::string const & login) { m_adminLogin = login; }
std::string SetAdminPassword(std::string password);
void SetUseAuth(int auth) { m_useAuth = auth; }
void SetScreenshotInterval(int interval) { m_screenshotInterval = interval; }
void SetTimes(std::string const & times) { m_times = times; }
void SetChannelGroups(std::string const & channelGroups) { m_channelGroups = channelGroups; }
void SetScheduleDuration(std::string const & scheduleDuration) { m_scheduleDuration = scheduleDuration; }
void SetStartScreen(std::string const & startscreen) { m_startscreen = startscreen; }
void SetTheme(std::string const & theme) { m_theme = theme; m_themedLinkPrefix = "themes/" + theme + "/"; m_themedLinkPrefixImg = m_themedLinkPrefix + "img/"; }
void SetLocalNetMask(std::string const & localnetmask) { m_localnetmask = localnetmask; }
void SetIsLocalNet(bool islocalnet) { m_islocalnet = islocalnet; }
void SetLastWhatsOnListMode(std::string const & mode) { m_lastwhatsonlistmode = mode; SaveSetup(); }
void SetLastSortingMode(std::string const & mode) { m_lastsortingmode = mode; SaveSetup(); }
void SetShowLogo(bool show) { m_showLogo = show ? 1 : 0; }
void SetShowInfoBox(bool show) { m_showInfoBox = show ? 1 : 0; }
void SetUseStreamdev(bool use) { m_useStreamdev = use ? 1 : 0; }
void SetStreamdevPort(int port) { m_streamdevPort = port; }
void SetStreamdevType(std::string const & type) { m_streamdevType = type; }
void SetMarkNewRec(bool show) { m_markNewRec = show ? 1 : 0; }
void SetStreamVideoOpt0(std::string const & opt) { m_streamVopt0 = opt; }
void SetStreamVideoOpt1(std::string const & opt) { m_streamVopt1 = opt; }
void SetStreamVideoOpt2(std::string const & opt) { m_streamVopt2 = opt; }
void SetStreamVideoOpt3(std::string const & opt) { m_streamVopt3 = opt; }
void SetShowIMDb(bool show) { m_showIMDb = show ? 1 : 0; }
void SetShowPlayMediaplayer(bool show) { m_showPlayMediaplayer = show ? 1 : 0; }
void SetShowChannelsWithoutEPG(bool show) { m_showChannelsWithoutEPG = show ? 1 : 0; }
bool SaveSetup();
bool ParseCommandLine( int argc, char* argv[] );
bool Initialize( void );
char const* CommandLineHelp() const;
bool ParseSetupEntry( char const* name, char const* value );
bool CheckLocalNet(std::string const & ip);
time_t GetVdrStart() { return m_vdr_start; }
private:
Setup();
Setup( Setup const& );
// me
cPlugin* liveplugin;
mutable std::string m_helpString;
// commandline options
int m_serverPort;
int m_serverSslPort;
std::string m_serverSslCert;
std::string m_serverSslKey;
std::string m_serverUrl;
std::string m_serverUrlImages;
static std::string m_configDirectory;
IpList m_serverIps;
std::string m_epgimagedir;
std::string m_tvscraperimagedir;
cPlugin *m_p_tvscraper;
cPlugin *m_p_scraper;
std::string m_chanlogodir;
// setup options
int m_lastChannel;
int m_screenshotInterval;
int m_useAuth;
std::string m_adminLogin;
std::string m_adminPasswordMD5;
std::string m_times;
std::string m_channelGroups;
std::string m_scheduleDuration;
std::string m_startscreen;
std::string m_theme;
std::string m_themedLinkPrefix;
std::string m_themedLinkPrefixImg;
std::string m_localnetmask;
bool m_islocalnet;
std::string m_lastwhatsonlistmode;
std::string m_lastsortingmode;
std::string m_tntnetloglevel;
int m_showLogo;
int m_showInfoBox;
int m_useStreamdev;
int m_streamdevPort;
std::string m_streamdevType;
int m_markNewRec;
std::string m_streamVopt0;
std::string m_streamVopt1;
std::string m_streamVopt2;
std::string m_streamVopt3;
int m_showIMDb;
int m_showPlayMediaplayer;
int m_showChannelsWithoutEPG;
const int m_maxTooltipChars = 300; // maximum number of characters to be displayed in Tooltips
bool CheckServerPort();
bool CheckServerIps();
bool CheckServerSslPort();
time_t m_vdr_start = 0;
};
Setup& LiveSetup();
class cMenuSetupLive : public cMenuSetupPage {
protected:
virtual void Store(void);
virtual eOSState ProcessKey(eKeys Key);
public:
cMenuSetupLive();
private:
int m_lastChannel;
int m_screenshotInterval;
int m_useAuth;
char m_adminLogin[20];
char m_adminPassword[20];
char m_tmpPassword[20];
std::string m_oldpasswordMD5;
std::string m_newpasswordMD5;
void Set(void);
bool InEditMode(const char* ItemText, const char* ItemName, const char* ItemValue);
};
} // namespace vdrlive
#endif // VDR_LIVE_SETUP_H