From 5aa23d261eab1a1eec1405e7bce058bf2c70f0fb Mon Sep 17 00:00:00 2001 From: louis Date: Sat, 16 May 2015 11:02:09 +0200 Subject: [PATCH] timeshift support --- displayreplay.c | 8 ++++++-- skins/metrixhd/xmlfiles/displayreplay.xml | 22 +++++++++++++++++++++- skinskeleton/xmlfiles/displayreplay.xml | 6 ++++++ views/displayreplayview.c | 13 ++++++++----- 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/displayreplay.c b/displayreplay.c index 8cf3f1f..7ae5e69 100644 --- a/displayreplay.c +++ b/displayreplay.c @@ -115,10 +115,14 @@ void cSDDisplayReplay::Flush(void) { } void cSDDisplayReplay::SetTimeShiftValues(const cRecording *recording) { + bool isTimeShift = false; +#if APIVERSNUM >= 20101 int usage = recording->IsInUse(); - if (!(usage & ruTimer)) + if (usage & ruTimer) + isTimeShift = true; +#endif + if (!isTimeShift) return; - const cRecordingInfo *recInfo = recording->Info(); if (!recInfo) return; diff --git a/skins/metrixhd/xmlfiles/displayreplay.xml b/skins/metrixhd/xmlfiles/displayreplay.xml index 907ea79..6993f9a 100644 --- a/skins/metrixhd/xmlfiles/displayreplay.xml +++ b/skins/metrixhd/xmlfiles/displayreplay.xml @@ -149,15 +149,17 @@ - + @@ -175,6 +177,24 @@ + + + + + + + + + + + + + + + + + + @@ -83,15 +85,19 @@ diff --git a/views/displayreplayview.c b/views/displayreplayview.c index 3e2fd28..400807f 100644 --- a/views/displayreplayview.c +++ b/views/displayreplayview.c @@ -271,7 +271,6 @@ void cDisplayReplayView::DrawProgressBar(int current, int total) { intTokens.insert(pair("current", current)); intTokens.insert(pair("total", total)); intTokens.insert(pair("timeshift", timeShiftActive)); - if (timeShiftActive) { intTokens.insert(pair("timeshifttotal", timeShiftFramesTotal)); } @@ -288,13 +287,14 @@ void cDisplayReplayView::DrawMarks(const cMarks *marks, int current, int total) map < string, string > stringTokens; map < string, int > intTokens; + intTokens.insert(pair("timeshift", timeShiftActive)); + map < string, vector< map< string, string > > > loopTokens; vector< map< string, string > > markTokens; stringstream tot; - if (!timeShiftActive) - tot << total; - else - tot << timeShiftFramesTotal; + tot << total; + stringstream timeshifttot; + timeshifttot << timeShiftFramesTotal; bool isStartMark = true; for (const cMark *m = marks->First(); m; m = marks->Next(m)) { @@ -303,6 +303,9 @@ void cDisplayReplayView::DrawMarks(const cMarks *marks, int current, int total) pos << m->Position(); markVals.insert(pair< string, string >("marks[position]", pos.str())); markVals.insert(pair< string, string >("marks[total]", tot.str())); + if (timeShiftActive) { + markVals.insert(pair< string, string >("marks[timeshifttotal]", timeshifttot.str())); + } markVals.insert(pair< string, string >("marks[startmark]", isStartMark ? "1" : "0")); markVals.insert(pair< string, string >("marks[active]", (m->Position() == current) ? "1" : "0")); const cMark *m2 = marks->Next(m);