diff options
| author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-05-06 10:55:25 +0200 |
|---|---|---|
| committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-05-06 10:55:25 +0200 |
| commit | 596c86c780f6eb832f333b704ebf9d6da5fbc548 (patch) | |
| tree | a5a2aecae1dc31c3982745064ce6f2dc4a5018c0 | |
| parent | 0159d536d05473e66e4727bab8a5fc2cc4183df3 (diff) | |
| parent | d6f5e6808ba93ecad0a6912909784f06203a0a9a (diff) | |
| download | vdr-plugin-skindesigner-596c86c780f6eb832f333b704ebf9d6da5fbc548.tar.gz vdr-plugin-skindesigner-596c86c780f6eb832f333b704ebf9d6da5fbc548.tar.bz2 | |
Merge branch 'pbiering/vdrstatus-displaymenu'
| -rw-r--r-- | HISTORY | 7 | ||||
| -rw-r--r-- | coreengine/definitions.h | 1 | ||||
| -rw-r--r-- | coreengine/viewdisplaymenu.c | 27 | ||||
| -rw-r--r-- | coreengine/viewdisplaymenu.h | 1 | ||||
| -rw-r--r-- | dtd/displaymenu.dtd | 2 | ||||
| -rw-r--r-- | skinskeleton/xmlfiles/displaymenu.xml | 9 |
6 files changed, 43 insertions, 4 deletions
@@ -505,9 +505,10 @@ Version 1.2.15 - [kamel5] Fix cutting marks wasn't updated Upcoming for Version 1.2.16+ -- [pbiering] add additional recording flag "isInUse" - can be used in skins for e.g. records in cutting/copy(queue) -- [pbiering] add additional vdrstatus exposing "vdrIsRecordingsHandlersActive" and "vdrIsRecording" - can be used in skins for e.g. IDLE/BUSY REC/FREE +- [pbiering] add additional recording flag {isInUse} - can be used in skins for e.g. records in cutting/copy(queue) +- [pbiering] add additional <vdrstatus> exposing {vdrIsRecordingsHandlersActive} and {vdrIsRecording} - can be used in skins for e.g. IDLE/BUSY REC/FREE - [kamel5] Fix Incorrect detection of a recording that is currently running - [kamel5] Fix segfault with mpv plugin (thx to @lnj at vdr-portal.de) - [kamel5] Update skin estuary4vdr -- [pbiering] add {vdrHasTimers} to vdrstatus - can be used in skins for e.g. REC/SCHED/FREE (in combination with {vdrIsRecording}) +- [pbiering] add {vdrHasTimers} to <vdrstatus> - can be used in skins for e.g. REC/SCHED/FREE (in combination with {vdrIsRecording}) +- [pbiering] add <vdrstatus> also to displaymenu.xml to be able to display in header diff --git a/coreengine/definitions.h b/coreengine/definitions.h index 61a52d6..ffc4efb 100644 --- a/coreengine/definitions.h +++ b/coreengine/definitions.h @@ -62,6 +62,7 @@ enum class eVeDisplayMenu { header, datetime, time, + vdrstatus, sortmode, colorbuttons, message, diff --git a/coreengine/viewdisplaymenu.c b/coreengine/viewdisplaymenu.c index 44f2ce4..c87370e 100644 --- a/coreengine/viewdisplaymenu.c +++ b/coreengine/viewdisplaymenu.c @@ -108,6 +108,7 @@ void cViewMenu::SetViewElements(void) { viewElementNames.insert(pair<string, int>("header", (int)eVeDisplayMenu::header)); viewElementNames.insert(pair<string, int>("datetime", (int)eVeDisplayMenu::datetime)); viewElementNames.insert(pair<string, int>("time", (int)eVeDisplayMenu::time)); + viewElementNames.insert(pair<string, int>("vdrstatus", (int)eVeDisplayMenu::vdrstatus)); viewElementNames.insert(pair<string, int>("colorbuttons", (int)eVeDisplayMenu::colorbuttons)); viewElementNames.insert(pair<string, int>("message", (int)eVeDisplayMenu::message)); viewElementNames.insert(pair<string, int>("scrollbar", (int)eVeDisplayMenu::scrollbar)); @@ -629,6 +630,7 @@ cSubView::cSubView(const char *name) { header = NULL; datetime = NULL; time = NULL; + vdrstatus = NULL; message = NULL; sortmode = NULL; colorbuttons = NULL; @@ -693,6 +695,10 @@ void cSubView::SetViewElement(eVeDisplayMenu ve, cViewElement *viewElement) { if (!time) time = dynamic_cast<cVeTime*>(viewElement); break; + case eVeDisplayMenu::vdrstatus: + if (!vdrstatus) + vdrstatus = dynamic_cast<cVeDmVdrstatus*>(viewElement); + break; case eVeDisplayMenu::message: if (!message) message = dynamic_cast<cVeMessage*>(viewElement); @@ -735,6 +741,10 @@ void cSubView::SetViewElementHorizontal(eVeDisplayMenu ve, cViewElement *viewEle if (!time) time = dynamic_cast<cVeTime*>(viewElement); break; + case eVeDisplayMenu::vdrstatus: + if (!vdrstatus) + vdrstatus = dynamic_cast<cVeDmVdrstatus*>(viewElement); + break; case eVeDisplayMenu::message: if (!message) message = dynamic_cast<cVeMessage*>(viewElement); @@ -866,6 +876,7 @@ void cSubView::Clear(void) { if (background) background->Hide(); if (datetime) datetime->Hide(); if (time) time->Hide(); + if (vdrstatus) vdrstatus->Hide(); if (header) header->Hide(); if (colorbuttons) colorbuttons->Hide(); if (scrollbar) scrollbar->Hide(); @@ -902,6 +913,11 @@ void cSubView::DrawDynamicVEs(void) { time->Render(); } } + if (vdrstatus) { + vdrstatus->Show(); + if (vdrstatus->Parse()) + vdrstatus->Render(); + } } void cSubView::DrawList(void) { @@ -949,6 +965,11 @@ void cSubView::SetViewElementObjects(void) { else if (viewElements[(int)eVeDisplayMenu::time]) time = dynamic_cast<cVeTime*>(viewElements[(int)eVeDisplayMenu::time]); + if (orientation == eOrientation::horizontal && viewElementsHorizontal[(int)eVeDisplayMenu::vdrstatus]) + vdrstatus = dynamic_cast<cVeDmVdrstatus*>(viewElementsHorizontal[(int)eVeDisplayMenu::vdrstatus]); + else if (viewElements[(int)eVeDisplayMenu::vdrstatus]) + vdrstatus = dynamic_cast<cVeDmVdrstatus*>(viewElements[(int)eVeDisplayMenu::vdrstatus]); + if (orientation == eOrientation::horizontal && viewElementsHorizontal[(int)eVeDisplayMenu::message]) message = dynamic_cast<cVeMessage*>(viewElementsHorizontal[(int)eVeDisplayMenu::message]); else if (viewElements[(int)eVeDisplayMenu::message]) @@ -986,6 +1007,7 @@ void cSubView::SetViewElements(void) { viewElementNames.insert(pair<string, int>("background", (int)eVeDisplayMenu::background)); viewElementNames.insert(pair<string, int>("header", (int)eVeDisplayMenu::header)); viewElementNames.insert(pair<string, int>("datetime", (int)eVeDisplayMenu::datetime)); + viewElementNames.insert(pair<string, int>("vdrstatus", (int)eVeDisplayMenu::vdrstatus)); viewElementNames.insert(pair<string, int>("time", (int)eVeDisplayMenu::time)); viewElementNames.insert(pair<string, int>("colorbuttons", (int)eVeDisplayMenu::colorbuttons)); viewElementNames.insert(pair<string, int>("message", (int)eVeDisplayMenu::message)); @@ -1625,6 +1647,11 @@ void cViewMenuDetail::DrawDynamicVEs(void) { if (time->Parse()) time->Render(); } + if (vdrstatus) { + vdrstatus->Show(); + if (vdrstatus->Parse()) + vdrstatus->Render(); + } } void cViewMenuDetail::DrawDetailedView(void) { diff --git a/coreengine/viewdisplaymenu.h b/coreengine/viewdisplaymenu.h index c20f3c0..73b01a3 100644 --- a/coreengine/viewdisplaymenu.h +++ b/coreengine/viewdisplaymenu.h @@ -120,6 +120,7 @@ protected: cVeDmHeader *header; cVeDateTime *datetime; cVeTime *time; + cVeDmVdrstatus *vdrstatus; cVeMessage *message; cVeDmSortmode *sortmode; cVeDmColorbuttons *colorbuttons; diff --git a/dtd/displaymenu.dtd b/dtd/displaymenu.dtd index 0c36848..b856c0b 100644 --- a/dtd/displaymenu.dtd +++ b/dtd/displaymenu.dtd @@ -2,7 +2,7 @@ <!ENTITY % functions SYSTEM "functions.dtd">
-<!ELEMENT displaymenu (background,header,datetime,time*,message,sortmode*,colorbuttons,scrollbar*,
+<!ELEMENT displaymenu (background,header,datetime,time*,vdrstatus*,message,sortmode*,colorbuttons,scrollbar*,
menudefault,menumain*,menusetup*,menuschedules*,
menutimers*,menuchannels*,menurecordings*,
menudetailedepg,menudetailedrecording,
diff --git a/skinskeleton/xmlfiles/displaymenu.xml b/skinskeleton/xmlfiles/displaymenu.xml index eadc5a8..5374fa0 100644 --- a/skinskeleton/xmlfiles/displaymenu.xml +++ b/skinskeleton/xmlfiles/displaymenu.xml @@ -55,6 +55,15 @@ --> <time> </time> + + <!-- Available Variables vdrstatus + {vdrIsRecordingsHandlersActive} true if active RecordingsHandlers (cut,copy,move) aka "busy" + {vdrIsRecording} true if active recording + {vdrHasTimers} true if numtimers > 0 + --> + <vdrstatus> + </vdrstatus> + <!-- Available Variables sortmode: {sortnumber} true if menu is sorted by number {sortname} true if menu is sorted alphabetical |
