From 7418af3d9c475be148c0dd3c142749e337bad1e2 Mon Sep 17 00:00:00 2001 From: Peter Bieringer Date: Thu, 4 Feb 2021 18:30:12 +0100 Subject: add support for new feature: NumRecordings and ArrayRecordings --- skinconfig.c | 52 ++++++++++------------------------------------------ state.c | 22 ++++++++++++++++++++++ state.h | 1 + 3 files changed, 33 insertions(+), 42 deletions(-) diff --git a/skinconfig.c b/skinconfig.c index f5ada81..d9fee5d 100644 --- a/skinconfig.c +++ b/skinconfig.c @@ -55,13 +55,9 @@ typedef enum _eTokenId tokPrivateRecordingStart, tokIsRecording, - tokIsRecording1, - tokIsRecording2, - tokIsRecording3, tokRecordings, - tokRecording1, - tokRecording2, - tokRecording3, + tokArrayRecordings, + tokNumRecordings, tokPrivateRecordingEnd, // present event @@ -214,13 +210,9 @@ static const std::string Tokens[tokCountToken] = "privateRecordingStart", "IsRecording", - "IsRecording1", - "IsRecording2", - "IsRecording3", "Recordings", - "Recording1", - "Recording2", - "Recording3", + "ArrayRecordings", + "NumRecordings", "privateRecordingEnd", "privatePresentStart", @@ -481,47 +473,23 @@ GLCD::cType cGraphLCDSkinConfig::GetToken(const GLCD::tSkinToken & Token) return mState->IsRecording(Token.Attrib.Number, 0); return mState->IsRecording(-1, 0); } - case tokIsRecording1: - { - if (Token.Attrib.Type == GLCD::aNumber) - return mState->IsRecording(Token.Attrib.Number, 1); - return mState->IsRecording(-1, 1); - } - case tokIsRecording2: - { - if (Token.Attrib.Type == GLCD::aNumber) - return mState->IsRecording(Token.Attrib.Number, 2); - return mState->IsRecording(-1, 2); - } - case tokIsRecording3: - { - if (Token.Attrib.Type == GLCD::aNumber) - return mState->IsRecording(Token.Attrib.Number, 3); - return mState->IsRecording(-1, 3); - } case tokRecordings: { if (Token.Attrib.Type == GLCD::aNumber) return mState->Recordings(Token.Attrib.Number, 0); return mState->Recordings(-1, 0); } - case tokRecording1: - { - if (Token.Attrib.Type == GLCD::aNumber) - return mState->Recordings(Token.Attrib.Number, 1); - return mState->Recordings(-1, 1); - } - case tokRecording2: + case tokArrayRecordings: { if (Token.Attrib.Type == GLCD::aNumber) - return mState->Recordings(Token.Attrib.Number, 2); - return mState->Recordings(-1, 2); + return mState->Recordings(-1, Token.Attrib.Number); + return false; } - case tokRecording3: + case tokNumRecordings: { if (Token.Attrib.Type == GLCD::aNumber) - return mState->Recordings(Token.Attrib.Number, 3); - return mState->Recordings(-1, 3); + return mState->NumRecordings(Token.Attrib.Number); + return mState->NumRecordings(-1); } default: break; diff --git a/state.c b/state.c index d3233ce..6045a03 100644 --- a/state.c +++ b/state.c @@ -951,6 +951,28 @@ std::string cGraphLCDState::Recordings(int CardNumber, int selector) return ret; } +int cGraphLCDState::NumRecordings(int CardNumber) +{ + std::string ret = ""; + std::vector ::iterator it; + int count = 0; + + mutex.Lock(); + // dsyslog("%s/%s: called CardNumber=%d", PLUGIN_NAME_I18N, __FUNCTION__, CardNumber); + it = mRecordings.begin(); + while (it != mRecordings.end()) + { + if (CardNumber == -1 || it->deviceNumber == CardNumber) + { + count++; + } + it++; + } + mutex.Unlock(); + + return count; +} + tOsdState cGraphLCDState::GetOsdState() { tOsdState ret; diff --git a/state.h b/state.h index 553ba6d..0198029 100644 --- a/state.h +++ b/state.h @@ -160,6 +160,7 @@ public: tReplayState GetReplayState(); bool IsRecording(int CardNumber, int selector); std::string Recordings(int CardNumber, int selector); + int NumRecordings(int CardNumber); tOsdState GetOsdState(); void ResetOsdStateScroll(); tVolumeState GetVolumeState(); -- cgit v1.2.3