summaryrefslogtreecommitdiff
path: root/menu.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2015-01-26 10:20:51 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2015-01-26 10:20:51 +0100
commit4fcd3ba56e37ced65a7591d9165322154ed86fce (patch)
tree64aa2a908cb80591e5823fbfeef46f960f445b2e /menu.c
parent77c0de71c48759c9eb7b9e23e409cdf965075d40 (diff)
downloadvdr-4fcd3ba56e37ced65a7591d9165322154ed86fce.tar.gz
vdr-4fcd3ba56e37ced65a7591d9165322154ed86fce.tar.bz2
Added functionality based on the "jumpplay" patch
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/menu.c b/menu.c
index a48bfdaf..7231e129 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 3.28 2015/01/15 11:14:21 kls Exp $
+ * $Id: menu.c 3.29 2015/01/25 15:21:42 kls Exp $
*/
#include "menu.h"
@@ -3571,6 +3571,9 @@ cMenuSetupReplay::cMenuSetupReplay(void)
Add(new cMenuEditBoolItem(tr("Setup.Replay$Show remaining time"), &data.ShowRemainingTime));
Add(new cMenuEditIntItem( tr("Setup.Replay$Progress display time (s)"), &data.ProgressDisplayTime, 0, 60));
Add(new cMenuEditBoolItem(tr("Setup.Replay$Pause replay when setting mark"), &data.PauseOnMarkSet));
+ Add(new cMenuEditBoolItem(tr("Setup.Replay$Pause replay when jumping to a mark"), &data.PauseOnMarkJump));
+ Add(new cMenuEditBoolItem(tr("Setup.Replay$Skip edited parts"), &data.SkipEdited));
+ Add(new cMenuEditBoolItem(tr("Setup.Replay$Pause replay at last mark"), &data.PauseAtLastMark));
Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99));
}
@@ -5223,6 +5226,15 @@ void cReplayControl::MarkJump(bool Forward)
if (GetIndex(Current, Total)) {
if (marks.Count()) {
if (cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current)) {
+ if (!Setup.PauseOnMarkJump) {
+ bool Playing, Fwd;
+ int Speed;
+ if (GetReplayMode(Playing, Fwd, Speed) && Playing && Forward && m->Position() < Total - SecondsToFrames(3, FramesPerSecond())) {
+ Goto(m->Position());
+ Play();
+ return;
+ }
+ }
Goto(m->Position(), true);
displayFrames = true;
return;
@@ -5287,7 +5299,7 @@ void cReplayControl::EditTest(void)
if (!m)
m = marks.GetNext(Current);
if (m) {
- if ((m->Index() & 0x01) != 0)
+ if ((m->Index() & 0x01) == 0) // this is a "start" mark, so get the next "end" mark
m = marks.Next(m);
if (m) {
Goto(m->Position() - SecondsToFrames(3, FramesPerSecond()));