mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 15:58:31 +00:00
added viewelement <vdrstatistics> in main menu
This commit is contained in:
@@ -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;
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user