summaryrefslogtreecommitdiff
path: root/stvw_cfg.h
blob: 5f99c2abf88a483b4febba492ec0dacf75547391 (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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
 * stvw_cfg.h: VDR on Smart TV plugin
 *
 * Copyright (C) 2012, 2013 T. Lohmar
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 * Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 *
 */


#ifndef __SMARTTV_CONFIG_H__
#define __SMARTTV_CONFIG_H__

#include <string>
#include <cstring>
#include <vector>
#include <ctime>
#include "log.h"

using namespace std;


enum eGroupSep {
  IGNORE,
  EMPTYIGNORE,
  EMPTYFOLDERDOWN
};

class cWidgetConfigBase {
 private:
  bool mUseDefaultBuffer;
  int mTotalBufferSize;
  int mInitialBufferSize;
  int mPendingBufferSize;
  int mSkipDuration;
  bool mUsePdlForRecordings;
  string mFormat;
  int mLiveChannels;
  int mDirectAccessTimeout;
  int mSortType;
  int mPlayKeyBehavior;
  bool mShowInfoMsgs;
  bool mWidgetdebug;

  char f[400];

  string BoolLine(string name, bool val);
  string IntLine(string name, int val);

 public:
  cWidgetConfigBase();

  string GetWidgetConf();

};

class cPlugin;

class cSmartTvConfig {
 private:
  string mConfigDir;
  Log* mLog;
  FILE *mCfgFile;

  bool mUseVdrSetupConf;
  string mLogFile;
  string mMediaFolder;
  bool mHaveMediaFolder;
  unsigned int mSegmentDuration;
  int mHasMinBufferTime;
  float mHasBitrateCorrection;
  int mLiveChannels;

  eGroupSep mGroupSep;
  string mServerAddress;
  int mServerPort;
  bool mCmds;
  bool mUseStreamDev4Live;
  int mBuiltInLiveStartMode;
  int mBuiltInLivePktBuf4Hd;
  int mBuiltInLivePktBuf4Sd;
  double mBuiltInLiveBufDur;

  bool mAddCorsHeader;
  string mCorsHeaderPyld;

  string mUsageStatsLogFile;
  //  cPlugin* mPlugin;
  cWidgetConfigBase mWidgetConfigBase;
 public:
  cSmartTvConfig();
  ~cSmartTvConfig();

  bool SetupParse(const char *Name, const char *Value);
  void Store(cPlugin *mPlugin);

  void Initialize(string dir);
  void readConfig();
  //  void readPluginConfig();
  void printConfig();

  string getLogFile() { return mLogFile; };
  string getMediaFolder() { return mMediaFolder; };
  bool haveMediaFolder() { return mHaveMediaFolder; };
  unsigned int getSegmentDuration() {return mSegmentDuration; };
  int getHasMinBufferTime() { return mHasMinBufferTime; };
  float getHasBitrateCorrection() { return mHasBitrateCorrection; };
  int getLiveChannels() {return mLiveChannels; };
  eGroupSep getGroupSep() { return mGroupSep; };
  string getServerAddress() { return mServerAddress; };
  int getServerPort() { return mServerPort; };
  bool getCmds() { return mCmds; };
  bool useStreamDev4Live() { return mUseStreamDev4Live; };
  int getBuiltInLiveStartMode() {return mBuiltInLiveStartMode; };
  int getBuiltInLivePktBuf4Hd() { return mBuiltInLivePktBuf4Hd; };
  int getBuiltInLivePktBuf4Sd() { return mBuiltInLivePktBuf4Sd; };
  double getBuiltInLiveBufDur() { return mBuiltInLiveBufDur; };

  bool addCorsHeader() { return mAddCorsHeader; };
  string getCorsHeader() {return mCorsHeaderPyld; };

  string getUsageStatsLogFile() { return mUsageStatsLogFile; };
  string GetWidgetConf() { return mWidgetConfigBase.GetWidgetConf(); };
};


#endif