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 | |
parent | 9278f18cb95c1fe417668d9ae790398698d3c907 (diff) | |
download | vdr-plugin-skindesigner-8a04a17fc0a48f99903c3f5d2a0a30b238cbd7f7.tar.gz vdr-plugin-skindesigner-8a04a17fc0a48f99903c3f5d2a0a30b238cbd7f7.tar.bz2 |
Eliminate a look sequence report in displayreplay
-rw-r--r-- | coreengine/viewdisplayreplay.c | 40 | ||||
-rw-r--r-- | coreengine/viewdisplayreplay.h | 6 | ||||
-rw-r--r-- | displayreplay.c | 36 | ||||
-rw-r--r-- | displayreplay.h | 1 |
4 files changed, 47 insertions, 36 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 diff --git a/displayreplay.c b/displayreplay.c index 7e2fe72..3472548 100644 --- a/displayreplay.c +++ b/displayreplay.c @@ -18,7 +18,7 @@ void cSDDisplayReplay::SetRecording(const cRecording *Recording) { view->SetRecording(Recording); if (init) { view->SetRecordingLength(Recording->LengthInSeconds()); - SetTimeShiftValues(Recording); + view->SetTimeShiftValues(Recording); init = false; } } @@ -78,38 +78,6 @@ void cSDDisplayReplay::SetMessage(eMessageType Type, const char *Text) { void cSDDisplayReplay::Flush(void) { if (!ok) return; + view->GetTimers(); view->Flush(); } - -void cSDDisplayReplay::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 { - cGlobalTimers globalTimers; - globalTimers.LoadTimers(); - 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; - view->SetTimeShift(framesTotal, recLength); -} diff --git a/displayreplay.h b/displayreplay.h index 2c4fa77..1ee635d 100644 --- a/displayreplay.h +++ b/displayreplay.h @@ -10,7 +10,6 @@ private: bool ok; bool init; cViewReplay *view; - void SetTimeShiftValues(const cRecording *recording); public: cSDDisplayReplay(cViewReplay *replayView, bool ModeOnly); virtual ~cSDDisplayReplay(); |