diff --git a/displayreplay.c b/displayreplay.c index e1f8246..ac7ad47 100644 --- a/displayreplay.c +++ b/displayreplay.c @@ -91,6 +91,12 @@ void cSDDisplayReplay::SetTimeShiftValues(const cRecording *recording) { int usage = recording->IsInUse(); if (usage & ruTimer) isTimeShift = true; + else { + cGlobalTimers globalTimers; + globalTimers.LoadTimers(); + if (globalTimers.IsRecording(recording)) + isTimeShift = true; + } #endif if (!isTimeShift) return; diff --git a/extensions/globaltimers.c b/extensions/globaltimers.c index c6b483c..1d8092f 100644 --- a/extensions/globaltimers.c +++ b/extensions/globaltimers.c @@ -167,6 +167,22 @@ const char* cGlobalTimers::RemoteHost(int i) { return ""; } +bool cGlobalTimers::IsRecording(const cRecording *rec) { + if (!rec || !rec->Name()) + return false; + std::string recName = rec->Name(); + int size = Size(); + for (int i=0; iFile(); + if (!t->Matches() || !timerFile) + continue; + if (recName.find(timerFile) != std::string::npos) + return true; + } + return false; +} + void cGlobalTimers::ClearTimers(void) { if (isEpg2VdrTimers) { int size = Size(); diff --git a/extensions/globaltimers.h b/extensions/globaltimers.h index 9f722d8..91f3bdc 100644 --- a/extensions/globaltimers.h +++ b/extensions/globaltimers.h @@ -27,6 +27,7 @@ class cGlobalTimers : public cVector { int NumTimerConfilicts(void); bool IsRemoteTimer(int i); const char* RemoteHost(int i); + bool IsRecording(const cRecording *rec); void ClearTimers(void); static void StartRefreshThread(void); static void StopRefreshThread(void);