summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2015-02-13 22:49:59 +0100
committerDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2015-02-13 22:49:59 +0100
commit3b052e1cf70a494cfd12d486ba960accf8326523 (patch)
treee1918aeead8ce0c1ae55e75b9e03ec498c566535
parent31ebc4f713817de853334f8157974ac44eb8c7c0 (diff)
downloadvdr-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.cpp30
-rw-r--r--epg_events.h2
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;