diff options
author | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2015-02-13 22:49:59 +0100 |
---|---|---|
committer | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2015-02-13 22:49:59 +0100 |
commit | 3b052e1cf70a494cfd12d486ba960accf8326523 (patch) | |
tree | e1918aeead8ce0c1ae55e75b9e03ec498c566535 | |
parent | 31ebc4f713817de853334f8157974ac44eb8c7c0 (diff) | |
download | vdr-plugin-live-3b052e1cf70a494cfd12d486ba960accf8326523.tar.gz vdr-plugin-live-3b052e1cf70a494cfd12d486ba960accf8326523.tar.bz2 |
Show correct end time and progress while replaying (Patch provided by user
'zimuland' of projects.vdr-developer.de). Closes bugtracker entry #1549.
-rw-r--r-- | epg_events.cpp | 30 | ||||
-rw-r--r-- | epg_events.h | 2 |
2 files changed, 31 insertions, 1 deletions
diff --git a/epg_events.cpp b/epg_events.cpp index cd4996e..1bf8935 100644 --- a/epg_events.cpp +++ b/epg_events.cpp @@ -1,6 +1,7 @@ #include <time.h> #include <glob.h> #include <algorithm> +#include <vdr/player.h> #include "tools.h" #include "recman.h" @@ -194,8 +195,35 @@ namespace vdrlive #if VDRVERSNUM < 10726 return m_recording ? m_recording->start : 0; #else - return m_recording ? m_recording->Start() : 0; + time_t endTime = 0; + if (m_recording) + { + time_t startTime = m_recording->Start(); + int length = m_recording->LengthInSeconds(); + + endTime = (length < 0) ? startTime : startTime + length; + } + return endTime; +#endif + } + + int EpgRecording::Elapsed() const + { +#if VDRVERSNUM >= 10726 + cControl* pControl = cControl::Control(); + if (pControl) + { + int current, total; + if (pControl->GetIndex(current,total)) + { + if (total) + { + return (100 * current) / total; + } + } + } #endif + return 0; } const string EpgRecording::Name() const diff --git a/epg_events.h b/epg_events.h index 7d05b45..3417f6a 100644 --- a/epg_events.h +++ b/epg_events.h @@ -234,6 +234,8 @@ namespace vdrlive virtual time_t GetEndTime() const; + virtual int Elapsed() const; + private: const cRecording* m_recording; bool m_ownCaption; |