summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Bieringer <pb@bieringer.de>2021-02-04 18:30:12 +0100
committerPeter Bieringer <pb@bieringer.de>2021-02-04 18:30:12 +0100
commit7418af3d9c475be148c0dd3c142749e337bad1e2 (patch)
tree47073aaf51b12622140fa27653e271b9dbf3cf82
parent2a7cc2bfe385cdde0d0e3b4464cda4d51307341d (diff)
downloadvdr-plugin-graphlcd-7418af3d9c475be148c0dd3c142749e337bad1e2.tar.gz
vdr-plugin-graphlcd-7418af3d9c475be148c0dd3c142749e337bad1e2.tar.bz2
add support for new feature: NumRecordings and ArrayRecordings
-rw-r--r--skinconfig.c52
-rw-r--r--state.c22
-rw-r--r--state.h1
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 <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;
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();