diff options
author | thlo <smarttv640@gmail.com> | 2013-03-17 09:41:35 +0100 |
---|---|---|
committer | thlo <t.lohmar@gmx.de> | 2013-03-17 09:41:35 +0100 |
commit | b183afb04050143a3f9faccf6ff52219e60c34d6 (patch) | |
tree | 7c32b63c7f5c175005186e68ff55edafc1ac36e3 /stvw_cfg.c | |
parent | d48d64273d5da9bf596b239bb0aec622086655f0 (diff) | |
download | vdr-plugin-smarttvweb-b183afb04050143a3f9faccf6ff52219e60c34d6.tar.gz vdr-plugin-smarttvweb-b183afb04050143a3f9faccf6ff52219e60c34d6.tar.bz2 |
First step of repo restructuring
Diffstat (limited to 'stvw_cfg.c')
-rwxr-xr-x | stvw_cfg.c | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/stvw_cfg.c b/stvw_cfg.c new file mode 100755 index 0000000..75b8de6 --- /dev/null +++ b/stvw_cfg.c @@ -0,0 +1,196 @@ +/* + * 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 + * + */ + +#include "stvw_cfg.h" + +#ifndef STANDALONE +#include <vdr/plugin.h> +#endif + +#include <iostream> +#include <fstream> +#include <cstdio> +#include <cstdlib> + +cSmartTvConfig::cSmartTvConfig(string d): mConfigDir(d), mLog(NULL), mCfgFile(NULL), + mLogFile(), mMediaFolder(), mSegmentDuration(), mHasMinBufferTime(), mHasBitrateCorrection(), + mLiveChannels(), mGroupSep(IGNORE), mServerAddress("") { + +#ifndef STANDALONE + mLogFile= ""; +#else + mLogFile= "./smartvvweblog-standalone.txt"; +#endif + + // Defaults + mMediaFolder= "/hd2/mpeg"; + mSegmentDuration = 10; + mHasMinBufferTime = 40; + mHasBitrateCorrection = 1.1; + mLiveChannels = 30; + + readConfig(); +} + +cSmartTvConfig::~cSmartTvConfig() { +} + +void cSmartTvConfig::printConfig() { + mLog = Log::getInstance(); + + + *(mLog->log()) << "printConfig: " << endl; + *(mLog->log()) << " ConfigDir: " << mConfigDir << endl; + *(mLog->log()) << " LogFile: " << mLogFile << endl; + *(mLog->log()) << " MediaFolder:" << mMediaFolder << endl; + *(mLog->log()) << " SegmentDuration: " << mSegmentDuration << endl; + *(mLog->log()) << " HasMinBufferTime: " << mHasMinBufferTime << endl; + *(mLog->log()) << " HasBitrateCorrection: " << mHasBitrateCorrection << endl; + *(mLog->log()) << " LiveChannels: " << mLiveChannels << endl; + *(mLog->log()) << " GroupSeparators: " << ((mGroupSep==IGNORE)? "Ignore" : ((mGroupSep==EMPTYIGNORE)? "EmptyIgnore": "EmptyFolderDown")) << endl; + *(mLog->log()) << " ServerAddress: " << mServerAddress << endl; +} + + +void cSmartTvConfig::readConfig() { + string line; + char attr[200]; + char value[200]; + + ifstream myfile ((mConfigDir +"/smarttvweb.conf").c_str()); + + if (!myfile.is_open()) { +#ifndef STANDALONE + esyslog ("ERROR in SmartTvWeb: Cannot open config file. Expecting %s", (mConfigDir +"/smarttvweb.conf").c_str() ); +#else + cout << "ERROR: Cannot open config file. Expecting "<< (mConfigDir +"/smarttvweb.conf") << endl; +#endif + return; + } + + while ( myfile.good() ) { + getline (myfile, line); + + if ((line == "") or (line[0] == '#')) + continue; + + sscanf(line.c_str(), "%s %s", attr, value); + + if (strcmp(attr, "LogFile")==0) { + mLogFile = string(value); + // cout << " Found mLogFile= " << mLogFile << endl; + continue; + } + + if (strcmp(attr, "MediaFolder") == 0) { + mMediaFolder = string (value); + // cout << " Found mMediaFolder= " << mMediaFolder << endl; + continue; + } + if (strcmp(attr, "SegmentDuration") == 0) { + mSegmentDuration = atoi(value); + // cout << " Found mSegmentDuration= " << mSegmentDuration << endl; + continue; + } + + if (strcmp(attr, "HasMinBufferTime") == 0) { + mHasMinBufferTime = atoi(value); + // cout << " Found mHasMinBufferTime= " << mHasMinBufferTime << endl; + continue; + } + if (strcmp(attr, "HasBitrateCorrection") == 0) { + mHasBitrateCorrection = atof(value); + // cout << " Found mHasBitrate= " <<mHasBitrate << endl; + continue; + } + if (strcmp(attr, "LiveChannels") == 0) { + mLiveChannels = atoi(value); + // cout << " Found mLiveChannels= " <<mLiveChannels << endl; + continue; + } + + if (strcmp(attr, "GroupSeparators") == 0) { + if (strcmp (value, "EmptyIgnore") == 0) { + mGroupSep = EMPTYIGNORE; + } + else if ( strcmp(value, "EmptyFolderDown") == 0) { + mGroupSep = EMPTYFOLDERDOWN; + } + continue; + } + + if (strcmp(attr, "ServerAddress") == 0) { + mServerAddress = value; + // cout << " Found mLiveChannels= " <<mLiveChannels << endl; + continue; + } + + +#ifndef STANDALONE + esyslog("WARNING in SmartTvWeb: Attribute= %s with value= %s was not processed, thus ignored.", attr, value); +#else + cout << "WARNING: Attribute= "<< attr << " with value= " << value << " was not processed, thus ignored." << endl; +#endif + } + myfile.close(); +} + + /* +cResumes* cSmartTvConfig::readConfig(string f) { + + + string line; + ifstream myfile ("example.txt"); + + if (myfile.is_open()) { + while ( myfile.good() ) { + getline (myfile,line); + *(mLog->log()) << " readConfig: " << line << endl; + if (line == "") + continue; + + string t; + time_t st; + int r; + time_t lv; + int count = scanf (line.c_str(), "%s %lld %d %lld", &t, &st, &r, &lv); + if (count == 4) { + *(mLog->log()) << " read: " << t << " st= " << st << " r= " << r << " lv= " << lv << endl; + } + // first title + + + } + myfile.close(); + } + + else { + *(mLog->log()) << " readConfig: Cannot open file " << f << endl; + return NULL; + } + + + // open the file + // read the lines + return NULL; +} +*/ |