added viewelement <vdrstatistics> in main menu

This commit is contained in:
louis
2015-05-14 16:55:56 +02:00
parent af59c465aa
commit 5a0155d1e9
12 changed files with 140 additions and 18 deletions

View File

@@ -299,9 +299,10 @@ void cDisplayMenuMainView::DrawStaticViewElements(void) {
bool cDisplayMenuMainView::DrawDynamicViewElements(void) {
bool loadChanged = DrawLoad();
bool memChanged = DrawMemory();
bool vdrChanged = DrawVdrStats();
bool devicesChanged = DrawDevices();
initial = false;
return loadChanged || memChanged || devicesChanged;
return loadChanged || memChanged || vdrChanged || devicesChanged;
}
@@ -445,6 +446,35 @@ bool cDisplayMenuMainView::DrawMemory(void) {
return changed;
}
bool cDisplayMenuMainView::DrawVdrStats(void) {
if (!ExecuteViewElement(veVDRStats)) {
return false;
}
bool changed = false;
if (DetachViewElement(veVDRStats)) {
cViewElement *viewElement = GetViewElement(veVDRStats);
if (!viewElement) {
viewElement = new cViewElement(tmplView->GetViewElement(veVDRStats), this);
viewElement->SetCallback(veVDRStats, &cDisplayMenuMainView::SetVDRStats);
AddViewElement(veVDRStats, viewElement);
viewElement->Start();
changed = true;
} else {
if (!viewElement->Starting())
changed = viewElement->Render();
}
} else {
map < string, string > stringTokens;
map < string, int > intTokens;
changed = SetVDRStats(false, stringTokens, intTokens);
if (changed) {
ClearViewElement(veVDRStats);
DrawViewElement(veVDRStats, &stringTokens, &intTokens);
}
}
return changed;
}
void cDisplayMenuMainView::DrawTemperatures(void) {
if (!ExecuteViewElement(veTemperatures)) {
return;

View File

@@ -57,6 +57,7 @@ private:
void DrawDiscUsage(void);
bool DrawLoad(void);
bool DrawMemory(void);
bool DrawVdrStats(void);
void DrawTemperatures(void);
bool DrawDevices(void);
void DrawCurrentSchedule(void);

View File

@@ -26,6 +26,8 @@ cViewHelpers::cViewHelpers(void) {
lastEcmInfo.caid = -1;
lastEcmInfo.pid = -1;
lastEcmInfo.prid = -1;
lastVdrCPU = "undefined";
lastVdrMEM = "undefined";
}
cViewHelpers::~cViewHelpers() {
@@ -257,6 +259,42 @@ bool cViewHelpers::SetSystemTemperatures(bool forced, stringmap &stringTokens, i
return true;
}
bool cViewHelpers::SetVDRStats(bool forced, stringmap &stringTokens, intmap &intTokens) {
cString execCommand = cString::sprintf("cd \"%s/\"; \"%s/vdrstats\"", SCRIPTFOLDER, SCRIPTFOLDER);
system(*execCommand);
string vdrCPU = "";
string vdrMEM = "";
cString itemFilename = cString::sprintf("%s/vdrcpu", SCRIPTOUTPUTPATH );
ifstream file(*itemFilename, ifstream::in);
if( file.is_open() ) {
std::getline(file, vdrCPU);
file.close();
}
itemFilename = cString::sprintf("%s/vdrmem", SCRIPTOUTPUTPATH );
ifstream file2(*itemFilename, ifstream::in);
if( file2.is_open() ) {
std::getline(file2, vdrMEM);
file2.close();
}
if (vdrCPU.size() == 0 || vdrMEM.size() == 0)
return false;
if (!lastVdrCPU.compare(vdrCPU) && !lastVdrMEM.compare(vdrMEM)) {
return false;
}
lastVdrCPU = vdrCPU;
lastVdrMEM = vdrMEM;
stringTokens.insert(pair<string,string>("vdrcpu", vdrCPU));
stringTokens.insert(pair<string,string>("vdrmem", vdrMEM));
return true;
}
bool cViewHelpers::SetDummy(bool forced, stringmap &stringTokens, intmap &intTokens) {
return true;
}

View File

@@ -20,6 +20,8 @@ private:
int lastMinute;
double lastSystemLoad;
int lastMemUsage;
string lastVdrCPU;
string lastVdrMEM;
sDVBAPIEcmInfo lastEcmInfo;
void RecName(string &path, string &name, string &folder);
void RecPoster(const cRecording *rec, int &posterWidth, int &posterHeight, string &path, bool &hasPoster);
@@ -49,6 +51,7 @@ public:
bool SetSystemLoad (bool forced, stringmap &stringTokens, intmap &intTokens);
bool SetSystemMemory (bool forced, stringmap &stringTokens, intmap &intTokens);
bool SetSystemTemperatures (bool forced, stringmap &stringTokens, intmap &intTokens);
bool SetVDRStats (bool forced, stringmap &stringTokens, intmap &intTokens);
bool SetDummy (bool forced, stringmap &stringTokens, intmap &intTokens);
};