diff options
author | Peter Bieringer <pb@bieringer.de> | 2021-02-04 18:30:12 +0100 |
---|---|---|
committer | Peter Bieringer <pb@bieringer.de> | 2021-02-04 18:30:12 +0100 |
commit | 7418af3d9c475be148c0dd3c142749e337bad1e2 (patch) | |
tree | 47073aaf51b12622140fa27653e271b9dbf3cf82 | |
parent | 2a7cc2bfe385cdde0d0e3b4464cda4d51307341d (diff) | |
download | vdr-plugin-graphlcd-7418af3d9c475be148c0dd3c142749e337bad1e2.tar.gz vdr-plugin-graphlcd-7418af3d9c475be148c0dd3c142749e337bad1e2.tar.bz2 |
add support for new feature: NumRecordings and ArrayRecordings
-rw-r--r-- | skinconfig.c | 52 | ||||
-rw-r--r-- | state.c | 22 | ||||
-rw-r--r-- | 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; @@ -951,6 +951,28 @@ std::string cGraphLCDState::Recordings(int CardNumber, int selector) return ret; } +int cGraphLCDState::NumRecordings(int CardNumber) +{ + std::string ret = ""; + std::vector <tRecording>::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; @@ -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(); |