summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-05-06 10:55:25 +0200
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-05-06 10:55:25 +0200
commit596c86c780f6eb832f333b704ebf9d6da5fbc548 (patch)
treea5a2aecae1dc31c3982745064ce6f2dc4a5018c0
parent0159d536d05473e66e4727bab8a5fc2cc4183df3 (diff)
parentd6f5e6808ba93ecad0a6912909784f06203a0a9a (diff)
downloadvdr-plugin-skindesigner-596c86c780f6eb832f333b704ebf9d6da5fbc548.tar.gz
vdr-plugin-skindesigner-596c86c780f6eb832f333b704ebf9d6da5fbc548.tar.bz2
Merge branch 'pbiering/vdrstatus-displaymenu'
-rw-r--r--HISTORY7
-rw-r--r--coreengine/definitions.h1
-rw-r--r--coreengine/viewdisplaymenu.c27
-rw-r--r--coreengine/viewdisplaymenu.h1
-rw-r--r--dtd/displaymenu.dtd2
-rw-r--r--skinskeleton/xmlfiles/displaymenu.xml9
6 files changed, 43 insertions, 4 deletions
diff --git a/HISTORY b/HISTORY
index 28949fd..24a0f8b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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