diff options
author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2019-06-21 14:07:00 +0200 |
---|---|---|
committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2019-06-21 14:07:00 +0200 |
commit | 8a04a17fc0a48f99903c3f5d2a0a30b238cbd7f7 (patch) | |
tree | c039b70b7a5d54f11104271212dc40035bc1d84c /coreengine | |
parent | 9278f18cb95c1fe417668d9ae790398698d3c907 (diff) | |
download | vdr-plugin-skindesigner-8a04a17fc0a48f99903c3f5d2a0a30b238cbd7f7.tar.gz vdr-plugin-skindesigner-8a04a17fc0a48f99903c3f5d2a0a30b238cbd7f7.tar.bz2 |
Eliminate a look sequence report in displayreplay
Diffstat (limited to 'coreengine')
-rw-r--r-- | coreengine/viewdisplayreplay.c | 40 | ||||
-rw-r--r-- | coreengine/viewdisplayreplay.h | 6 |
2 files changed, 45 insertions, 1 deletions
diff --git a/coreengine/viewdisplayreplay.c b/coreengine/viewdisplayreplay.c index 28373b6..0e4328b 100644 --- a/coreengine/viewdisplayreplay.c +++ b/coreengine/viewdisplayreplay.c @@ -157,6 +157,8 @@ void cViewReplay::ClearVariables(void) { veEndTime->Set(cString("")); if (veCutMarks) veCutMarks->Reset(); + timersLoaded = false; + globalTimers.ClearTimers(); } void cViewReplay::SetTimeShift(int framesTotal, int timeShiftLength) { @@ -180,6 +182,44 @@ void cViewReplay::SetRecording(const cRecording *recording) { } } +void cViewReplay::GetTimers(void) { + if (!timersLoaded) { + timersLoaded = true; + globalTimers.LoadTimers(); + } +} + +void cViewReplay::SetTimeShiftValues(const cRecording *recording) { + //check for instant recording + const char *recName = recording->Name(); + if (recName && *recName == '@') + return; + bool isTimeShift = false; +#if APIVERSNUM >= 20101 + int usage = recording->IsInUse(); + if (usage & ruTimer) + isTimeShift = true; + else { + if (globalTimers.IsRecording(recording)) + isTimeShift = true; + } +#endif + if (!isTimeShift) + return; + const cRecordingInfo *recInfo = recording->Info(); + if (!recInfo) + return; + const cEvent *event = recInfo->GetEvent(); + if (!event) + return; + double fps = recording->FramesPerSecond(); + time_t liveEventStop = event->EndTime(); + time_t recordingStart = time(0) - recording->LengthInSeconds(); + int framesTotal = (liveEventStop - recordingStart)*fps; + int recLength = liveEventStop - recordingStart; + SetTimeShift(framesTotal, recLength); +} + void cViewReplay::SetTitle(const char *title) { if (veRecTitle) { veRecTitle->Set(title); diff --git a/coreengine/viewdisplayreplay.h b/coreengine/viewdisplayreplay.h index 162d63e..9098275 100644 --- a/coreengine/viewdisplayreplay.h +++ b/coreengine/viewdisplayreplay.h @@ -30,6 +30,8 @@ private: int timeShiftFramesTotal; int timeShiftLength; cString timeShiftDuration; + bool timersLoaded; + cGlobalTimers globalTimers; void SetViewElements(void); void ClearVariables(void); void SetViewElementObjects(void); @@ -43,6 +45,8 @@ public: void SetTimeShift(int framesTotal, int timeShiftLength); void SetRecording(const cRecording *recording); void SetTitle(const char *title); + void GetTimers(void); + void SetTimeShiftValues(const cRecording *recording); void SetCurrent(const char *current); void SetTotal(const char *total); void SetEndTime(int current, int total); @@ -57,4 +61,4 @@ public: void Flush(void); }; -#endif //__VIEWDISPLAYREPLAY_H1
\ No newline at end of file +#endif //__VIEWDISPLAYREPLAY_H1 |