diff options
| author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-05-04 13:58:03 +0200 |
|---|---|---|
| committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-05-04 13:58:03 +0200 |
| commit | 4b2861e030d7207a3182f02072adda098fa993fe (patch) | |
| tree | 0458c754f5f440a1532a8aaaf24af9215449b1a0 | |
| parent | 0aeb15d03a617c1249ebada42f9caeffee88afc9 (diff) | |
| parent | 0ca96e8b3ad3021a3e5bc1701e7a91f96e79f980 (diff) | |
| download | vdr-plugin-skindesigner-4b2861e030d7207a3182f02072adda098fa993fe.tar.gz vdr-plugin-skindesigner-4b2861e030d7207a3182f02072adda098fa993fe.tar.bz2 | |
Merge branch 'pbiering/recIsInUse-vdrIsRecording'
| -rw-r--r-- | HISTORY | 4 | ||||
| -rw-r--r-- | coreengine/definitions.h | 12 | ||||
| -rw-r--r-- | coreengine/listelements.c | 2 | ||||
| -rw-r--r-- | coreengine/viewdetail.c | 2 | ||||
| -rw-r--r-- | coreengine/viewdisplaymenu.c | 17 | ||||
| -rw-r--r-- | coreengine/viewdisplaymenu.h | 3 | ||||
| -rw-r--r-- | coreengine/viewelement.c | 2 | ||||
| -rw-r--r-- | coreengine/viewelementsdisplaymenu.c | 32 | ||||
| -rw-r--r-- | coreengine/viewelementsdisplaymenu.h | 14 | ||||
| -rw-r--r-- | coreengine/viewelementsdisplayreplay.c | 2 | ||||
| -rw-r--r-- | dtd/displaymenu.dtd | 18 | ||||
| -rw-r--r-- | skinskeleton/xmlfiles/displaymenumain.xml | 7 |
12 files changed, 111 insertions, 4 deletions
@@ -503,3 +503,7 @@ Version 1.2.15 - [kamel5] Update Update italian tanslation in metrixhd and estuary4vdr - [pbiering] fix tuner device mapping in case tuners are not starting as first device - [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 diff --git a/coreengine/definitions.h b/coreengine/definitions.h index 678c54f..3a0353a 100644 --- a/coreengine/definitions.h +++ b/coreengine/definitions.h @@ -79,6 +79,7 @@ enum class eVeDisplayMenuMain { systemmemory, temperatures, vdrstatistics, + vdrstatus, lastrecordings, customtokens, count @@ -735,6 +736,12 @@ enum class eDMVdrstatisticsIT { count = 0 }; +enum class eDMVdrstatusIT { + vdrIsRecordingsHandlersActive, + vdrIsRecording, + count +}; + enum class eDMTemperaturesST { count = 0 }; @@ -1176,6 +1183,7 @@ enum class eLeMenuRecordingsIT { isUHD, isRadio, isRecording, + isInUse, count }; @@ -1226,6 +1234,7 @@ enum class eCeMenuRecordingsIT { isUHD, isRadio, isRecording, + isInUse, count }; @@ -1341,6 +1350,7 @@ enum class eDmDetailedHeaderRecIT { isUHD, isRadio, isRecording, + isInUse, count }; @@ -1453,6 +1463,7 @@ enum class eDmDetailedRecIT { isUHD, isRadio, isRecording, + isInUse, count }; @@ -1514,6 +1525,7 @@ enum class eDRRecInfoIT { isHD, isUHD, isRecording, + isInUse, isWideScreen, count }; diff --git a/coreengine/listelements.c b/coreengine/listelements.c index 0bc6816..d74a734 100644 --- a/coreengine/listelements.c +++ b/coreengine/listelements.c @@ -151,6 +151,7 @@ tokenContainer->DefineIntToken("{isUHD}", (int)token_it::isUHD); \ tokenContainer->DefineIntToken("{isRadio}", (int)token_it::isRadio); \ tokenContainer->DefineIntToken("{isRecording}", (int)token_it::isRecording); \ + tokenContainer->DefineIntToken("{isInUse}", (int)token_it::isInUse); \ tokenContainer->DefineStringToken("{recchannelname}", (int)token_st::recchannelname); \ tokenContainer->DefineStringToken("{recchannelid}", (int)token_st::recchannelid); \ } @@ -209,6 +210,7 @@ tokenContainer->AddIntToken((int)token_it::isUHD, RecordingIsUHD(event)); /* detect UHD from 'info' */ \ tokenContainer->AddIntToken((int)token_it::isRadio, RecordingIsRadio(event, info->FramesPerSecond())); /* detect Radio from 'info' and FPS */ \ tokenContainer->AddIntToken((int)token_it::isRecording, usedRecording->IsInUse() & ruTimer); \ + tokenContainer->AddIntToken((int)token_it::isInUse, usedRecording->IsInUse()); \ SetScraperRecordingPoster(tokenContainer, usedRecording, true); \ } diff --git a/coreengine/viewdetail.c b/coreengine/viewdetail.c index 31a4f4b..d52219d 100644 --- a/coreengine/viewdetail.c +++ b/coreengine/viewdetail.c @@ -608,6 +608,7 @@ void cViewDetailRec::SetTokenContainer(void) { tokenContainer->DefineIntToken("{isUHD}", (int)eDmDetailedRecIT::isUHD);
tokenContainer->DefineIntToken("{isRadio}", (int)eDmDetailedRecIT::isRadio);
tokenContainer->DefineIntToken("{isRecording}", (int)eDmDetailedRecIT::isRecording);
+ tokenContainer->DefineIntToken("{isInUse}", (int)eDmDetailedRecIT::isInUse);
tokenContainer->DefineIntToken("{ismovie}", (int)eScraperIT::ismovie);
tokenContainer->DefineIntToken("{moviebudget}", (int)eScraperIT::moviebudget);
tokenContainer->DefineIntToken("{movierevenue}", (int)eScraperIT::movierevenue);
@@ -701,6 +702,7 @@ bool cViewDetailRec::Parse(bool forced) { tokenContainer->AddIntToken((int)eDmDetailedRecIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info'
tokenContainer->AddIntToken((int)eDmDetailedRecIT::isRadio, RecordingIsRadio(event, info->FramesPerSecond())); // detect Radio from 'info' and FPS
tokenContainer->AddIntToken((int)eDmDetailedRecIT::isRecording, recording->IsInUse() & ruTimer);
+ tokenContainer->AddIntToken((int)eDmDetailedRecIT::isInUse, recording->IsInUse());
}
}
SetRecInfos();
diff --git a/coreengine/viewdisplaymenu.c b/coreengine/viewdisplaymenu.c index c1373ef..44f2ce4 100644 --- a/coreengine/viewdisplaymenu.c +++ b/coreengine/viewdisplaymenu.c @@ -1059,6 +1059,7 @@ cViewMenuMain::cViewMenuMain(const char *name) : cSubView(name) { load = NULL; memory = NULL; vdrstats = NULL; + vdrstatus = NULL; temperatures = NULL; currentSchedule = NULL; lastRecordings = NULL; @@ -1084,6 +1085,7 @@ void cViewMenuMain::SetViewElements(void) { viewElementNames.insert(pair<string, int>("systemload", (int)eVeDisplayMenuMain::systemload)); viewElementNames.insert(pair<string, int>("systemmemory", (int)eVeDisplayMenuMain::systemmemory)); viewElementNames.insert(pair<string, int>("vdrstatistics", (int)eVeDisplayMenuMain::vdrstatistics)); + viewElementNames.insert(pair<string, int>("vdrstatus", (int)eVeDisplayMenuMain::vdrstatus)); viewElementNames.insert(pair<string, int>("temperatures", (int)eVeDisplayMenuMain::temperatures)); viewElementNames.insert(pair<string, int>("lastrecordings", (int)eVeDisplayMenuMain::lastrecordings)); viewElementNames.insert(pair<string, int>("customtokens", (int)eVeDisplayMenuMain::customtokens)); @@ -1133,6 +1135,11 @@ void cViewMenuMain::SetViewElementObjects(void) { else if (viewElements[(int)eVeDisplayMenuMain::vdrstatistics]) vdrstats = dynamic_cast<cVeDmVdrstatistics*>(viewElements[(int)eVeDisplayMenuMain::vdrstatistics]); + if (orientation == eOrientation::horizontal && viewElementsHorizontal[(int)eVeDisplayMenuMain::vdrstatus]) + vdrstatus = dynamic_cast<cVeDmVdrstatus*>(viewElementsHorizontal[(int)eVeDisplayMenuMain::vdrstatus]); + else if (viewElements[(int)eVeDisplayMenuMain::vdrstatus]) + vdrstatus = dynamic_cast<cVeDmVdrstatus*>(viewElements[(int)eVeDisplayMenuMain::vdrstatus]); + if (orientation == eOrientation::horizontal && viewElementsHorizontal[(int)eVeDisplayMenuMain::temperatures]) temperatures = dynamic_cast<cVeDmTemperatures*>(viewElementsHorizontal[(int)eVeDisplayMenuMain::temperatures]); else if (viewElements[(int)eVeDisplayMenuMain::temperatures]) @@ -1154,6 +1161,7 @@ void cViewMenuMain::SetViewElementObjects(void) { if (load) load->SetDetached(); if (memory) memory->SetDetached(); if (vdrstats) vdrstats->SetDetached(); + if (vdrstatus) vdrstatus->SetDetached(); if (temperatures) temperatures->SetDetached(); if (timers) timers->SetDetached(); if (currentSchedule) currentSchedule->SetDetached(); @@ -1190,6 +1198,10 @@ void cViewMenuMain::Clear(void) { vdrstats->Reset(); vdrstats->Hide(); } + + if (vdrstatus) { + vdrstatus->Hide(); + } if (temperatures) { temperatures->Reset(); @@ -1283,6 +1295,11 @@ void cViewMenuMain::DrawDynamicVEs(void) { if (vdrstats->Parse()) vdrstats->Render(); } + if (vdrstatus) { + vdrstatus->Show(); + if (vdrstatus->Parse()) + vdrstatus->Render(); + } if (temperatures) { temperatures->Show(); if (temperatures->Parse()) diff --git a/coreengine/viewdisplaymenu.h b/coreengine/viewdisplaymenu.h index b50bdb0..c20f3c0 100644 --- a/coreengine/viewdisplaymenu.h +++ b/coreengine/viewdisplaymenu.h @@ -188,6 +188,7 @@ private: cVeDmSystemload *load; cVeDmSystemmemory *memory; cVeDmVdrstatistics *vdrstats; + cVeDmVdrstatus *vdrstatus; cVeDmTemperatures *temperatures; cVeDmCurrentschedule *currentSchedule; cVeDmLastrecordings *lastRecordings; @@ -322,4 +323,4 @@ public: void SetTransparency(int transparency, bool forceDetached = false); }; -#endif //__VIEWDISPLAYMENU_H
\ No newline at end of file +#endif //__VIEWDISPLAYMENU_H diff --git a/coreengine/viewelement.c b/coreengine/viewelement.c index abd5562..a9405cd 100644 --- a/coreengine/viewelement.c +++ b/coreengine/viewelement.c @@ -147,6 +147,8 @@ cViewElement *cViewElement::CreateViewElement(const char *name, const char *view e = new cVeDmTemperatures(); else if (!strcmp(name, "vdrstatistics")) e = new cVeDmVdrstatistics(); + else if (!strcmp(name, "vdrstatus")) + e = new cVeDmVdrstatus(); else if (!strcmp(name, "lastrecordings")) e = new cVeDmLastrecordings(); else if (!strcmp(name, "detailheaderepg")) diff --git a/coreengine/viewelementsdisplaymenu.c b/coreengine/viewelementsdisplaymenu.c index 972e4f3..d1312d8 100644 --- a/coreengine/viewelementsdisplaymenu.c +++ b/coreengine/viewelementsdisplaymenu.c @@ -867,6 +867,36 @@ bool cVeDmVdrstatistics::Parse(bool forced) { return true; } /****************************************************************** +* cVeDmVdrstatus +******************************************************************/ +cVeDmVdrstatus::cVeDmVdrstatus(void) { +} + +cVeDmVdrstatus::~cVeDmVdrstatus(void) { +} + +void cVeDmVdrstatus::Close(void) { + cViewElement::Close(); +} + +void cVeDmVdrstatus::SetTokenContainer(void) { + tokenContainer = new skindesignerapi::cTokenContainer(); + tokenContainer->DefineIntToken("{vdrIsRecordingsHandlersActive}", (int)eDMVdrstatusIT::vdrIsRecordingsHandlersActive); + tokenContainer->DefineIntToken("{vdrIsRecording}", (int)eDMVdrstatusIT::vdrIsRecording); + InheritTokenContainer(); +} + +bool cVeDmVdrstatus::Parse(bool forced) { + if (!cViewElement::Parse(forced)) + return false; + + tokenContainer->Clear(); + tokenContainer->AddIntToken((int)eDMVdrstatusIT::vdrIsRecordingsHandlersActive, RecordingsHandler.Active()); + tokenContainer->AddIntToken((int)eDMVdrstatusIT::vdrIsRecording, cRecordControls::Active()); + SetDirty(); + return true; +} +/****************************************************************** * cVeDmLastrecordings ******************************************************************/ cVeDmLastrecordings::cVeDmLastrecordings(void) { @@ -1171,6 +1201,7 @@ void cVeDmDetailheaderRec::SetTokenContainer(void) { tokenContainer->DefineIntToken("{isUHD}", (int)eDmDetailedHeaderRecIT::isUHD); tokenContainer->DefineIntToken("{isRadio}", (int)eDmDetailedHeaderRecIT::isRadio); tokenContainer->DefineIntToken("{isRecording}", (int)eDmDetailedHeaderRecIT::isRecording); + tokenContainer->DefineIntToken("{isInUse}", (int)eDmDetailedHeaderRecIT::isInUse); InheritTokenContainer(); } @@ -1220,6 +1251,7 @@ bool cVeDmDetailheaderRec::Parse(bool forced) { tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isUHD, RecordingIsUHD(event)); // detect UHD from 'info' tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isRadio, RecordingIsRadio(event, info->FramesPerSecond())); // detect Radio from 'info' and FPS tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isRecording, recording->IsInUse() & ruTimer); + tokenContainer->AddIntToken((int)eDmDetailedHeaderRecIT::isInUse, recording->IsInUse()); } if (info->ChannelName() && (strlen(info->ChannelName()) > 0)) { diff --git a/coreengine/viewelementsdisplaymenu.h b/coreengine/viewelementsdisplaymenu.h index 59ce03d..011b72f 100644 --- a/coreengine/viewelementsdisplaymenu.h +++ b/coreengine/viewelementsdisplaymenu.h @@ -179,6 +179,18 @@ public: }; /****************************************************************** +* cVeDmVdrstatus +******************************************************************/ +class cVeDmVdrstatus : public cViewElement { +public: + cVeDmVdrstatus(void); + virtual ~cVeDmVdrstatus(void); + void Close(void); + void SetTokenContainer(void); + bool Parse(bool forced = false); +}; + +/****************************************************************** * cVeDmLastrecordings ******************************************************************/ class cVeDmLastrecordings : public cViewElement, public cScrapManager { @@ -253,4 +265,4 @@ public: void SetActiveTab(int activeTab) { SetDirty(); this->activeTab = activeTab; }; bool Parse(bool forced = false); }; -#endif //__VIEWELEMENTSDM_H
\ No newline at end of file +#endif //__VIEWELEMENTSDM_H diff --git a/coreengine/viewelementsdisplayreplay.c b/coreengine/viewelementsdisplayreplay.c index 09ac47a..cf36506 100644 --- a/coreengine/viewelementsdisplayreplay.c +++ b/coreengine/viewelementsdisplayreplay.c @@ -120,6 +120,7 @@ void cVeDrRecInfo::SetTokenContainer(void) { tokenContainer->DefineIntToken("{isHD}", (int)eDRRecInfoIT::isHD); tokenContainer->DefineIntToken("{isUHD}", (int)eDRRecInfoIT::isUHD); tokenContainer->DefineIntToken("{isRecording}", (int)eDRRecInfoIT::isRecording); + tokenContainer->DefineIntToken("{isInUse}", (int)eDRRecInfoIT::isInUse); tokenContainer->DefineIntToken("{isWideScreen}", (int)eDRRecInfoIT::isWideScreen); InheritTokenContainer(); } @@ -150,6 +151,7 @@ bool cVeDrRecInfo::Parse(bool force) { tokenContainer->AddIntToken((int)eDRRecInfoIT::isHD, isHD); tokenContainer->AddIntToken((int)eDRRecInfoIT::isUHD, isUHD); tokenContainer->AddIntToken((int)eDRRecInfoIT::isRecording, recording->IsInUse() & ruTimer); + tokenContainer->AddIntToken((int)eDRRecInfoIT::isInUse, recording->IsInUse()); tokenContainer->AddIntToken((int)eDRRecInfoIT::isWideScreen, isWideScreen); tokenContainer->AddStringToken((int)eDRRecInfoST::resolution, resName.c_str()); tokenContainer->AddStringToken((int)eDRRecInfoST::aspect, aspectName.c_str()); diff --git a/dtd/displaymenu.dtd b/dtd/displaymenu.dtd index 0333b9b..0c36848 100644 --- a/dtd/displaymenu.dtd +++ b/dtd/displaymenu.dtd @@ -218,6 +218,20 @@ condition CDATA #IMPLIED
>
+<!ELEMENT vdrstatus (areacontainer|area|areascroll)*>
+<!ATTLIST vdrstatus
+ delay CDATA #IMPLIED
+ orientation CDATA #IMPLIED
+ fadetime CDATA #IMPLIED
+ shifttime CDATA #IMPLIED
+ shifttype CDATA #IMPLIED
+ shiftmode CDATA #IMPLIED
+ startx CDATA #IMPLIED
+ starty CDATA #IMPLIED
+ debug CDATA #IMPLIED
+ condition CDATA #IMPLIED
+>
+
<!ELEMENT currentschedule (areacontainer|area|areascroll)*>
<!ATTLIST currentschedule
delay CDATA #IMPLIED
@@ -316,7 +330,7 @@ >
<!ELEMENT menumain (background | header | datetime | time | colorbuttons | scrollbar | sortmode | timers |
- discusage | devices | systemload | systemmemory | vdrstatistics | temperatures | currentschedule |
+ discusage | devices | systemload | systemmemory | vdrstatistics | vdrstatus | temperatures | currentschedule |
currentweather | lastrecordings | customtokens | menuitems)*>
<!ATTLIST menumain
x CDATA #REQUIRED
@@ -501,4 +515,4 @@ debug (true|false) #IMPLIED
>
-%functions;
\ No newline at end of file +%functions;
diff --git a/skinskeleton/xmlfiles/displaymenumain.xml b/skinskeleton/xmlfiles/displaymenumain.xml index a0a3284..a12e3be 100644 --- a/skinskeleton/xmlfiles/displaymenumain.xml +++ b/skinskeleton/xmlfiles/displaymenumain.xml @@ -91,6 +91,13 @@ <vdrstatistics> </vdrstatistics> + <!-- Available Variables vdrstatus + {vdrIsRecordingsHandlersActive} true if active RecordingsHandlers (cut,copy,move) aka "busy" + {vdrIsRecording} true if active recording + --> + <vdrstatus> + </vdrstatus> + <!-- Available Variables tempreatures: {cputemp} current cpu temperature in °C {gputemp} current gpu temperature in °C |
