r2419 - in vdr/vdr/trunk/debian: . patches

Thomas Günther tom-guest at costa.debian.org
Mon Apr 17 23:58:19 UTC 2006


Author: tom-guest
Date: 2006-04-17 23:58:18 +0000 (Mon, 17 Apr 2006)
New Revision: 2419

Added:
   vdr/vdr/trunk/debian/patches/opt-24_jumpplay-0.7.dpatch
Removed:
   vdr/vdr/trunk/debian/patches/16_vdr-1.3.46_menuitems.c-fix.dpatch
   vdr/vdr/trunk/debian/patches/opt-24_jumpplay-0.6.dpatch
Modified:
   vdr/vdr/trunk/debian/changelog
   vdr/vdr/trunk/debian/patches/00list
   vdr/vdr/trunk/debian/patches/10_dd-record-option.dpatch
Log:
New upstream release 1.3.47

Modified: vdr/vdr/trunk/debian/changelog
===================================================================
--- vdr/vdr/trunk/debian/changelog	2006-04-17 16:24:39 UTC (rev 2418)
+++ vdr/vdr/trunk/debian/changelog	2006-04-17 23:58:18 UTC (rev 2419)
@@ -1,3 +1,15 @@
+vdr (1.3.47-1) UNRELEASED; urgency=low
+
+  * NOT RELEASED YET
+
+  * New upstream release
+  * Thomas Günther <tom at toms-cafe.de>
+    - Updated 10_dd-record-option.dpatch
+    - Removed 16_vdr-1.3.46_menuitems.c-fix.dpatch
+    - Upgraded opt-24_jumpplay-0.6.dpatch to opt-24_jumpplay-0.7.dpatch
+
+ -- Debian VDR Team <pkg-vdr-dvb-devel at lists.alioth.debian.org>  Tue, 18 Apr 2006 00:53:07 +0200
+
 vdr (1.3.46-1) UNRELEASED; urgency=low
 
   * NOT RELEASED YET

Modified: vdr/vdr/trunk/debian/patches/00list
===================================================================
--- vdr/vdr/trunk/debian/patches/00list	2006-04-17 16:24:39 UTC (rev 2418)
+++ vdr/vdr/trunk/debian/patches/00list	2006-04-17 23:58:18 UTC (rev 2419)
@@ -9,10 +9,9 @@
 12_osdbase-maxitems
 14_cap-memsize
 15_dvbplayer
-16_vdr-1.3.46_menuitems.c-fix
 
 # Patch needed for DVB subtitles or ttxtsubs (does not work with AC3-patch)
 # opt-21_subtitles_and_ttxtsubs
 
 # The Jump patch allows automatic jumping over cutting marks.
-# opt-24_jumpplay-0.6
+# opt-24_jumpplay-0.7

Modified: vdr/vdr/trunk/debian/patches/10_dd-record-option.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/10_dd-record-option.dpatch	2006-04-17 16:24:39 UTC (rev 2418)
+++ vdr/vdr/trunk/debian/patches/10_dd-record-option.dpatch	2006-04-17 23:58:18 UTC (rev 2419)
@@ -1,25 +1,26 @@
 #! /bin/sh /usr/share/dpatch/dpatch-run
-
 ## 10_dd_replay_option.dpatch by Thomas Schmidt <tschmidt at debian.org>
 ##
+## Thomas Günther <tom at toms-cafe.de>:
+##   - adapted to VDR-1.3.47
+##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Allowes to choose if to record and to replay Dolby Digital 
 ## DP: independently (to work around some audio issues with the 
 ## DP: dvd-plugin)
 
 @DPATCH@
-diff -urNad vdr-1.3.32/config.c /tmp/dpep.7sbpO9/vdr-1.3.32/config.c
---- vdr-1.3.32/config.c	2005-09-11 18:11:45.024178024 +0200
-+++ /tmp/dpep.7sbpO9/vdr-1.3.32/config.c	2005-09-11 18:11:45.795060832 +0200
-@@ -365,6 +365,7 @@
+--- vdr-1.3.47/config.c
++++ vdr-1.3.47/config.c
+@@ -252,6 +252,7 @@
    VideoDisplayFormat = 1;
    VideoFormat = 0;
-   UpdateChannels = 4;
+   UpdateChannels = 5;
 +  RecordDolbyDigital = 1;
    UseDolbyDigital = 1;
    ChannelInfoPos = 0;
    ChannelInfoTime = 5;
-@@ -523,6 +524,7 @@
+@@ -413,6 +414,7 @@
    else if (!strcasecmp(Name, "VideoDisplayFormat"))  VideoDisplayFormat = atoi(Value);
    else if (!strcasecmp(Name, "VideoFormat"))         VideoFormat        = atoi(Value);
    else if (!strcasecmp(Name, "UpdateChannels"))      UpdateChannels     = atoi(Value);
@@ -27,7 +28,7 @@
    else if (!strcasecmp(Name, "UseDolbyDigital"))     UseDolbyDigital    = atoi(Value);
    else if (!strcasecmp(Name, "ChannelInfoPos"))      ChannelInfoPos     = atoi(Value);
    else if (!strcasecmp(Name, "ChannelInfoTime"))     ChannelInfoTime    = atoi(Value);
-@@ -588,6 +590,7 @@
+@@ -481,6 +483,7 @@
    Store("VideoDisplayFormat", VideoDisplayFormat);
    Store("VideoFormat",        VideoFormat);
    Store("UpdateChannels",     UpdateChannels);
@@ -35,10 +36,9 @@
    Store("UseDolbyDigital",    UseDolbyDigital);
    Store("ChannelInfoPos",     ChannelInfoPos);
    Store("ChannelInfoTime",    ChannelInfoTime);
-diff -urNad vdr-1.3.32/config.h /tmp/dpep.7sbpO9/vdr-1.3.32/config.h
---- vdr-1.3.32/config.h	2005-09-11 18:11:45.025177872 +0200
-+++ /tmp/dpep.7sbpO9/vdr-1.3.32/config.h	2005-09-11 18:11:45.795060832 +0200
-@@ -257,6 +257,7 @@
+--- vdr-1.3.47/config.h
++++ vdr-1.3.47/config.h
+@@ -235,6 +235,7 @@
    int VideoDisplayFormat;
    int VideoFormat;
    int UpdateChannels;
@@ -46,12 +46,11 @@
    int UseDolbyDigital;
    int ChannelInfoPos;
    int ChannelInfoTime;
-diff -urNad vdr-1.3.32/i18n.c /tmp/dpep.7sbpO9/vdr-1.3.32/i18n.c
---- vdr-1.3.32/i18n.c	2005-09-11 18:02:41.692776952 +0200
-+++ /tmp/dpep.7sbpO9/vdr-1.3.32/i18n.c	2005-09-11 18:11:45.799060224 +0200
-@@ -3262,8 +3262,29 @@
-     "TV külgsuhe",
+--- vdr-1.3.47/i18n.c
++++ vdr-1.3.47/i18n.c
+@@ -3656,8 +3656,29 @@
      "Video format",
+     "Formát videa",
    },
 +  { "Setup.DVB$Record Dolby Digital",
 +    "Dolby Digital Ton aufzeichnen",
@@ -80,22 +79,20 @@
      "Uporabljaj Dolby Digital",
      "",//TODO
      "Dolby Digital gebruiken",
-diff -urNad vdr-1.3.32/menu.c /tmp/dpep.7sbpO9/vdr-1.3.32/menu.c
---- vdr-1.3.32/menu.c	2005-09-11 18:11:45.266141240 +0200
-+++ /tmp/dpep.7sbpO9/vdr-1.3.32/menu.c	2005-09-11 18:11:45.801059920 +0200
-@@ -2039,7 +2039,8 @@
+--- vdr-1.3.47/menu.c
++++ vdr-1.3.47/menu.c
+@@ -2339,7 +2339,8 @@
    Add(new cMenuEditBoolItem(tr("Setup.DVB$Video format"),          &data.VideoFormat, "4:3", "16:9"));
    if (data.VideoFormat == 0)
       Add(new cMenuEditStraItem(tr("Setup.DVB$Video display format"), &data.VideoDisplayFormat, 3, videoDisplayFormatTexts));
 -  Add(new cMenuEditBoolItem(tr("Setup.DVB$Use Dolby Digital"),     &data.UseDolbyDigital));
 +  Add(new cMenuEditBoolItem(tr("Setup.DVB$Record Dolby Digital"),  &data.RecordDolbyDigital));
 +  Add(new cMenuEditBoolItem(tr("Setup.DVB$Replay Dolby Digital"),  &data.UseDolbyDigital));
-   Add(new cMenuEditStraItem(tr("Setup.DVB$Update channels"),       &data.UpdateChannels, 5, updateChannelsTexts));
+   Add(new cMenuEditStraItem(tr("Setup.DVB$Update channels"),       &data.UpdateChannels, 6, updateChannelsTexts));
    Add(new cMenuEditIntItem( tr("Setup.DVB$Audio languages"),       &numAudioLanguages, 0, I18nNumLanguages));
    for (int i = 0; i < numAudioLanguages; i++)
-diff -urNad vdr-1.3.32/recorder.c /tmp/dpep.7sbpO9/vdr-1.3.32/recorder.c
---- vdr-1.3.32/recorder.c	2005-09-11 18:02:41.696776344 +0200
-+++ /tmp/dpep.7sbpO9/vdr-1.3.32/recorder.c	2005-09-11 18:11:45.802059768 +0200
+--- vdr-1.3.47/recorder.c
++++ vdr-1.3.47/recorder.c
 @@ -122,7 +122,7 @@
  }
  

Deleted: vdr/vdr/trunk/debian/patches/16_vdr-1.3.46_menuitems.c-fix.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/16_vdr-1.3.46_menuitems.c-fix.dpatch	2006-04-17 16:24:39 UTC (rev 2418)
+++ vdr/vdr/trunk/debian/patches/16_vdr-1.3.46_menuitems.c-fix.dpatch	2006-04-17 23:58:18 UTC (rev 2419)
@@ -1,18 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 16_vdr-1.3.46_menuitems.c-fix.dpatch by Klaus Schmidinger <Klaus.Schmidinger at cadsoft.de>
-## http://article.gmane.org/gmane.linux.vdr/28702
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Fixes set time transponder crash.
-
- at DPATCH@
---- vdr-1.3.46/menuitems.c 2006/04/09 13:10:02     1.36
-+++ vdr-1.3.46/menuitems.c 2006/04/10 06:31:02
-@@ -572,7 +572,7 @@
-      snprintf(buf, sizeof(buf), "%d %s", *value, channel ? channel->Name() : "");
-      SetValue(buf);
-      }
--  else
-+  else if (noneString)
-      SetValue(noneString);
- }

Deleted: vdr/vdr/trunk/debian/patches/opt-24_jumpplay-0.6.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/opt-24_jumpplay-0.6.dpatch	2006-04-17 16:24:39 UTC (rev 2418)
+++ vdr/vdr/trunk/debian/patches/opt-24_jumpplay-0.6.dpatch	2006-04-17 23:58:18 UTC (rev 2419)
@@ -1,524 +0,0 @@
-#!/bin/sh /usr/share/dpatch/dpatch-run
-
-## opt-24_jumpplay-0.6.dpatch by Torsten Kunkel, Thomas Günther
-##
-## version 0.6 for vdr-1.3.29 - see README.jumpplay for details
-## http://toms-cafe.de/vdr/download/vdr-jumpplay-0.6-1.3.29.diff
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Authors: Torsten Kunkel <vdr at tkunkel.de> (initial version), 
-## DP:          Thomas Günther <tom at toms-cafe.de> (current version).
-## DP: Play after jump to next mark. Automatically jump over commercial breaks.
-
- at DPATCH@
-diff -Naur vdr-1.3.29/README.jumpplay vdr-1.3.29-jumpplay-0.6/README.jumpplay
---- vdr-1.3.29/README.jumpplay	1970-01-01 01:00:00.000000000 +0100
-+++ vdr-1.3.29-jumpplay-0.6/README.jumpplay	2005-08-15 21:33:56.000000000 +0200
-@@ -0,0 +1,89 @@
-+JumpPlay patch for VDR
-+----------------------
-+
-+This patch changes the replay behaviour for recordings that contain editing
-+marks. It allows to immediately continue the replay after jumping forward to
-+the next mark, and to automatically jump over the commercial break to the next
-+"start" mark, if an "end" mark is reached.
-+
-+The features of this patch can be turned on or off with the following entries
-+in the replay setup.
-+
-+
-+* Parameters in the "Setup" menu "Replay"
-+
-+  Jump&Play = yes|no     Turns playing on or off after jumping forward to the
-+                         next editing mark with the '9' key.
-+
-+  Play&Jump = yes|no     Turns automatic jumping over commercial breaks on or
-+                         off. This includes jumping to the first mark, if the
-+                         replay starts at the beginning of a recording - and
-+                         stopping the replay at the last mark.
-+                         With this setting enabled, the behaviour of the '8'
-+                         key during replay is changed too. It moves the actual
-+                         replay position not only three seconds before the
-+                         next "start" mark, but also before the next "end"
-+                         mark. This can be used to test, if the editing marks
-+                         are correctly positioned for a "smooth" jump over a
-+                         commercial break.
-+
-+  Load marks interval (s) = 0
-+                         Set the load marks interval in seconds. This can be
-+                         used if an external programme adjusts the cutting
-+                         marks, e.g. noad in online mode.
-+                         A value of '0' disables the cyclic reloading of
-+                         cutting marks.
-+
-+
-+* History
-+
-+  2003-07-04: jumpandrun.diff - the Noad <theNoad at SoftHome.net>
-+    Jump&Play
-+
-+  2003-12-06: Version 0.0 - Torsten Kunkel <vdr at tkunkel.de>
-+    Play&Jump (only if progressbar is visible)
-+    Setup parameters Jump&Play and Play&Jump in the replay setup
-+
-+  2004-01-20: Version 0.1 - Thomas Günther <tom at toms-cafe.de>
-+    Jump&Play:
-+      - fixed speed after jump
-+      - fixed removing of marks
-+    Play&Jump:
-+      - jump only on "end" marks
-+
-+  2004-01-27: Version 0.2 - Thomas Günther <tom at toms-cafe.de>
-+    Jump&Play:
-+      - fixed double jump
-+    Play&Jump:
-+      - fixed mark detection: fuzzy detection (until 3 seconds after mark)
-+      - jump without progressbar
-+      - mode "progressbar only" for old behaviour
-+
-+  2004-01-31: Version 0.3 - Thomas Günther <tom at toms-cafe.de>
-+    Jump&Play:
-+      - fixed display frames
-+    Play&Jump:
-+      - fixed end of playing at last mark
-+
-+  2004-07-11: Version 0.4 - Thomas Günther <tom at toms-cafe.de>
-+    Jump&Play:
-+      - don't play after jump to end
-+    Play&Jump:
-+      - don't prevent jumping after hide or show
-+    Less conflicts with other patches (Elchi/AutoPID)
-+
-+  2004-08-21: Version 0.5 - Thomas Günther <tom at toms-cafe.de>
-+    Play&Jump:
-+      - exact jumps, replay like edited recording (no fuzzy mark detection)
-+      - jump to first mark if replay starts at the beginning
-+      - check jump marks with '8' key
-+      - mode "progressbar only" removed
-+    Description in README.jumpplay
-+
-+  2004-12-28: Version 0.6 - Thomas Günther <tom at toms-cafe.de>
-+    Adapted noad extensions (from the Noad <theNoad at SoftHome.net>) to
-+    jumpplay-0.5:
-+      - cyclic reloading of marks found by noad online-scan
-+      - don't stop after the last mark in case of live-recordings
-+    New setup parameter "Load marks interval (s)"
-+    Updated description in README.jumpplay
-diff -Naur vdr-1.3.29/config.c vdr-1.3.29-jumpplay-0.6/config.c
---- vdr-1.3.29/config.c	2005-08-13 15:47:08.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/config.c	2005-08-15 20:02:01.000000000 +0200
-@@ -299,6 +299,9 @@
-   MultiSpeedMode = 0;
-   ShowReplayMode = 0;
-   ResumeID = 0;
-+  JumpPlay = 0;
-+  PlayJump = 0;
-+  LoadMarksInterval = 0;
-   CurrentChannel = -1;
-   CurrentVolume = MAXVOLUME;
-   CurrentDolby = 0;
-@@ -457,6 +460,9 @@
-   else if (!strcasecmp(Name, "MultiSpeedMode"))      MultiSpeedMode     = atoi(Value);
-   else if (!strcasecmp(Name, "ShowReplayMode"))      ShowReplayMode     = atoi(Value);
-   else if (!strcasecmp(Name, "ResumeID"))            ResumeID           = atoi(Value);
-+  else if (!strcasecmp(Name, "JumpPlay"))            JumpPlay           = atoi(Value);
-+  else if (!strcasecmp(Name, "PlayJump"))            PlayJump           = atoi(Value);
-+  else if (!strcasecmp(Name, "LoadMarksInterval"))   LoadMarksInterval  = atoi(Value);
-   else if (!strcasecmp(Name, "CurrentChannel"))      CurrentChannel     = atoi(Value);
-   else if (!strcasecmp(Name, "CurrentVolume"))       CurrentVolume      = atoi(Value);
-   else if (!strcasecmp(Name, "CurrentDolby"))        CurrentDolby       = atoi(Value);
-@@ -522,6 +528,9 @@
-   Store("MultiSpeedMode",     MultiSpeedMode);
-   Store("ShowReplayMode",     ShowReplayMode);
-   Store("ResumeID",           ResumeID);
-+  Store("JumpPlay",           JumpPlay);
-+  Store("PlayJump",           PlayJump);
-+  Store("LoadMarksInterval",  LoadMarksInterval);
-   Store("CurrentChannel",     CurrentChannel);
-   Store("CurrentVolume",      CurrentVolume);
-   Store("CurrentDolby",       CurrentDolby);
-diff -Naur vdr-1.3.29/config.h vdr-1.3.29-jumpplay-0.6/config.h
---- vdr-1.3.29/config.h	2005-08-13 11:43:27.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/config.h	2005-08-15 20:02:01.000000000 +0200
-@@ -90,7 +90,7 @@
-   cConfig(void) { fileName = NULL; }
-   virtual ~cConfig() { free(fileName); }
-   const char *FileName(void) { return fileName; }
--  bool Load(const char *FileName = NULL, bool AllowComments = false, bool MustExist = false)
-+  bool Load(const char *FileName = NULL, bool AllowComments = false, bool MustExist = false, bool SupressMessage = false)
-   {
-     Clear();
-     if (FileName) {
-@@ -100,7 +100,8 @@
-        }
-     bool result = !MustExist;
-     if (fileName && access(fileName, F_OK) == 0) {
--       isyslog("loading %s", fileName);
-+       if (!SupressMessage)
-+         isyslog("loading %s", fileName);
-        FILE *f = fopen(fileName, "r");
-        if (f) {
-           int line = 0;
-@@ -253,6 +254,9 @@
-   int MultiSpeedMode;
-   int ShowReplayMode;
-   int ResumeID;
-+  int JumpPlay;
-+  int PlayJump;
-+  int LoadMarksInterval;
-   int CurrentChannel;
-   int CurrentVolume;
-   int CurrentDolby;
-diff -Naur vdr-1.3.29/dvbplayer.c vdr-1.3.29-jumpplay-0.6/dvbplayer.c
---- vdr-1.3.29/dvbplayer.c	2005-08-14 12:52:45.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/dvbplayer.c	2005-08-15 20:02:01.000000000 +0200
-@@ -179,6 +179,7 @@
-   cNonBlockingFileReader *nonBlockingFileReader;
-   cRingBufferFrame *ringBuffer;
-   cBackTrace *backTrace;
-+  cMarks *marks;
-   cFileName *fileName;
-   cIndexFile *index;
-   int replayFile;
-@@ -199,7 +200,7 @@
-   virtual void Activate(bool On);
-   virtual void Action(void);
- public:
--  cDvbPlayer(const char *FileName);
-+  cDvbPlayer(const char *FileName, cMarks *Marks = NULL);
-   virtual ~cDvbPlayer();
-   bool Active(void) { return cThread::Running(); }
-   void Pause(void);
-@@ -219,7 +220,7 @@
- #define SPEED_MULT   12 // the speed multiplier
- int cDvbPlayer::Speeds[] = { 0, -2, -4, -8, 1, 2, 4, 12, 0 };
- 
--cDvbPlayer::cDvbPlayer(const char *FileName)
-+cDvbPlayer::cDvbPlayer(const char *FileName, cMarks *Marks)
- :cThread("dvbplayer")
- {
-   nonBlockingFileReader = NULL;
-@@ -249,6 +250,7 @@
-      index = NULL;
-      }
-   backTrace = new cBackTrace;
-+  marks = Marks;
- }
- 
- cDvbPlayer::~cDvbPlayer()
-@@ -354,11 +356,25 @@
-   uchar *b = NULL;
-   uchar *p = NULL;
-   int pc = 0;
-+  bool cutIn = false;
-+  int total = -1;
- 
-   readIndex = Resume();
-   if (readIndex >= 0)
-      isyslog("resuming replay at index %d (%s)", readIndex, *IndexToHMSF(readIndex, true));
- 
-+  if (Setup.PlayJump && readIndex <= 0 && marks->First() && index) {
-+     int Index = marks->First()->position;
-+     uchar FileNumber;
-+     int FileOffset;
-+     if (index->Get(Index, &FileNumber, &FileOffset) &&
-+         NextFile(FileNumber, FileOffset)) {
-+        isyslog("PlayJump: start replay at first mark %d (%s)",
-+                Index, *IndexToHMSF(Index, true));
-+        readIndex = Index;
-+        }
-+     }
-+
-   nonBlockingFileReader = new cNonBlockingFileReader;
-   int Length = 0;
-   bool Sleep = false;
-@@ -405,6 +421,36 @@
-                        uchar FileNumber;
-                        int FileOffset;
-                        readIndex++;
-+                       if (Setup.PlayJump && marks) {
-+                          // check for end mark - jump to next start mark
-+                          cMark *m = marks->Get(readIndex);
-+                          if (m && (m->Index() & 0x01) != 0) {
-+                             m = marks->Next(m);
-+                             int Index;
-+                             if (m)
-+                                Index = m->position;
-+                             else if (total == index->Last())
-+                                // on last mark jump to end of recording
-+                                Index = index->Last() - 1;
-+                             else
-+                                // jump but stay off end of live-recordings
-+                                Index = index->GetNextIFrame(index->Last() - 150, true);
-+                             // don't jump in edited recordings
-+                             if (Index > readIndex &&
-+                                 Index > index->GetNextIFrame(readIndex, true)) {
-+                                isyslog("PlayJump: %d frames to %d (%s)",
-+                                        Index - readIndex, Index,
-+                                        *IndexToHMSF(Index, true));
-+                                readIndex = Index;
-+                                cutIn = true;
-+                                }
-+                             }
-+                          }
-+                       // for detecting growing length of live-recordings
-+                       uchar PictureType;
-+                       if (index->Get(readIndex, &FileNumber, &FileOffset, &PictureType) &&
-+                           PictureType == I_FRAME)
-+                          total = index->Last();
-                        if (!(index->Get(readIndex, &FileNumber, &FileOffset, NULL, &Length) && NextFile(FileNumber, FileOffset))) {
-                           readIndex = -1;
-                           eof = true;
-@@ -437,6 +483,10 @@
-               // Store the frame in the buffer:
- 
-               if (readFrame) {
-+                 if (cutIn) {
-+                    cRemux::SetBrokenLink(readFrame->Data(), readFrame->Count());
-+                    cutIn = false;
-+                    }
-                  if (ringBuffer->Put(readFrame))
-                     readFrame = NULL;
-                  }
-@@ -729,6 +779,11 @@
- {
- }
- 
-+cDvbPlayerControl::cDvbPlayerControl(const char *FileName, cMarks *Marks)
-+:cControl(player = new cDvbPlayer(FileName, Marks))
-+{
-+}
-+
- cDvbPlayerControl::~cDvbPlayerControl()
- {
-   Stop();
-diff -Naur vdr-1.3.29/dvbplayer.h vdr-1.3.29-jumpplay-0.6/dvbplayer.h
---- vdr-1.3.29/dvbplayer.h	2002-06-23 12:13:51.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/dvbplayer.h	2005-08-15 20:02:01.000000000 +0200
-@@ -20,6 +20,7 @@
-   cDvbPlayer *player;
- public:
-   cDvbPlayerControl(const char *FileName);
-+  cDvbPlayerControl(const char *FileName, cMarks *Marks);
-        // Sets up a player for the given file.
-   virtual ~cDvbPlayerControl();
-   bool Active(void);
-diff -Naur vdr-1.3.29/i18n.c vdr-1.3.29-jumpplay-0.6/i18n.c
---- vdr-1.3.29/i18n.c	2005-08-14 14:03:47.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/i18n.c	2005-08-15 20:02:01.000000000 +0200
-@@ -3913,6 +3913,93 @@
-     "Jätkamise ID",
-     "Genoptagelses ID",
-   },
-+  { "Setup.Replay$Jump&Play",
-+    "Wiedergabe nach Sprung",
-+    "", // Slovenski
-+    "", // Italiano
-+    "", // Nederlands
-+    "", // Português
-+    "", // Français
-+    "", // Norsk
-+    "", // Suomi
-+    "", // Polski
-+    "", // Español
-+    "", // Greek
-+    "", // Svenska
-+    "", // Romaneste
-+    "", // Magyar
-+    "", // Català
-+#if VDRVERSNUM > 10302
-+    "", // Russian
-+#if VDRVERSNUM > 10307
-+    "", // Hrvatski
-+#if VDRVERSNUM > 10313
-+    "", // Eesti
-+#if VDRVERSNUM > 10316
-+    "", // Dansk
-+#endif
-+#endif
-+#endif
-+#endif
-+  },
-+  { "Setup.Replay$Play&Jump",
-+    "Sprung bei Schnittmarke",
-+    "", // Slovenski
-+    "", // Italiano
-+    "", // Nederlands
-+    "", // Português
-+    "", // Français
-+    "", // Norsk
-+    "", // Suomi
-+    "", // Polski
-+    "", // Español
-+    "", // Greek
-+    "", // Svenska
-+    "", // Romaneste
-+    "", // Magyar
-+    "", // Català
-+#if VDRVERSNUM > 10302
-+    "", // Russian
-+#if VDRVERSNUM > 10307
-+    "", // Hrvatski
-+#if VDRVERSNUM > 10313
-+    "", // Eesti
-+#if VDRVERSNUM > 10316
-+    "", // Dansk
-+#endif
-+#endif
-+#endif
-+#endif
-+  },
-+  { "Setup.Replay$Load marks interval (s)",
-+    "Intervall für Laden der Marken (s)",
-+    "", // Slovenski
-+    "", // Italiano
-+    "", // Nederlands
-+    "", // Português
-+    "", // Français
-+    "", // Norsk
-+    "", // Suomi
-+    "", // Polski
-+    "", // Español
-+    "", // Greek
-+    "", // Svenska
-+    "", // Romaneste
-+    "", // Magyar
-+    "", // Català
-+#if VDRVERSNUM > 10302
-+    "", // Russian
-+#if VDRVERSNUM > 10307
-+    "", // Hrvatski
-+#if VDRVERSNUM > 10313
-+    "", // Eesti
-+#if VDRVERSNUM > 10316
-+    "", // Dansk
-+#endif
-+#endif
-+#endif
-+#endif
-+  },
-   { "Setup.Miscellaneous$Min. event timeout (min)",
-     "Mindest Event Pause (min)",
-     "Najmanjsi cas dogodka (min)",
-diff -Naur vdr-1.3.29/menu.c vdr-1.3.29-jumpplay-0.6/menu.c
---- vdr-1.3.29/menu.c	2005-08-14 17:14:29.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/menu.c	2005-08-15 21:43:15.000000000 +0200
-@@ -2259,6 +2259,9 @@
-   Add(new cMenuEditBoolItem(tr("Setup.Replay$Multi speed mode"), &data.MultiSpeedMode));
-   Add(new cMenuEditBoolItem(tr("Setup.Replay$Show replay mode"), &data.ShowReplayMode));
-   Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99));
-+  Add(new cMenuEditBoolItem(tr("Setup.Replay$Jump&Play"), &data.JumpPlay));
-+  Add(new cMenuEditBoolItem(tr("Setup.Replay$Play&Jump"), &data.PlayJump));
-+  Add(new cMenuEditIntItem(tr("Setup.Replay$Load marks interval (s)"), &data.LoadMarksInterval));
- }
- 
- // --- cMenuSetupMisc --------------------------------------------------------
-@@ -3361,7 +3364,7 @@
- char *cReplayControl::title = NULL;
- 
- cReplayControl::cReplayControl(void)
--:cDvbPlayerControl(fileName)
-+:cDvbPlayerControl(fileName, &marks)
- {
-   displayReplay = NULL;
-   visible = modeOnly = shown = displayFrames = false;
-@@ -3371,6 +3374,7 @@
-   timeoutShow = 0;
-   timeSearchActive = false;
-   marks.Load(fileName);
-+  lastLoadMarks = time(NULL);
-   cRecording Recording(fileName);
-   cStatus::MsgReplaying(this, Recording.Name());
- }
-@@ -3587,8 +3591,10 @@
-         ShowTimed(2);
-         bool Play, Forward;
-         int Speed;
--        if (GetReplayMode(Play, Forward, Speed) && !Play)
-+        if (GetReplayMode(Play, Forward, Speed) && !Play) {
-            Goto(Current, true);
-+           displayFrames = true;
-+           }
-         }
-      marks.Save();
-      }
-@@ -3601,8 +3607,17 @@
-      if (GetIndex(Current, Total)) {
-         cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current);
-         if (m) {
--           Goto(m->position, true);
--           displayFrames = true;
-+           bool Play2, Forward2;
-+           int Speed;
-+           if (Setup.JumpPlay && GetReplayMode(Play2, Forward2, Speed) &&
-+               Play2 && Forward && m->position < Total - SecondsToFrames(3)) {
-+              Goto(m->position);
-+              Play();
-+              }
-+           else {
-+              Goto(m->position, true);
-+              displayFrames = true;
-+              }
-            }
-         }
-      }
-@@ -3657,7 +3672,7 @@
-      if (!m)
-         m = marks.GetNext(Current);
-      if (m) {
--        if ((m->Index() & 0x01) != 0)
-+        if ((m->Index() & 0x01) != 0 && !Setup.PlayJump)
-            m = marks.Next(m);
-         if (m) {
-            Goto(m->position - SecondsToFrames(3));
-@@ -3671,6 +3686,11 @@
- {
-   if (!Active())
-      return osEnd;
-+  if (Setup.LoadMarksInterval &&
-+      time(NULL) >= lastLoadMarks + Setup.LoadMarksInterval) {
-+     marks.Load(fileName, true);
-+     lastLoadMarks = time(NULL);
-+     }
-   if (visible) {
-      if (timeoutShow && time(NULL) > timeoutShow) {
-         Hide();
-diff -Naur vdr-1.3.29/menu.h vdr-1.3.29-jumpplay-0.6/menu.h
---- vdr-1.3.29/menu.h	2005-05-15 16:34:54.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/menu.h	2005-08-15 20:02:01.000000000 +0200
-@@ -187,6 +187,7 @@
-   bool lastPlay, lastForward;
-   int lastSpeed;
-   time_t timeoutShow;
-+  time_t lastLoadMarks;
-   bool timeSearchActive, timeSearchHide;
-   int timeSearchTime, timeSearchPos;
-   void TimeSearchDisplay(void);
-diff -Naur vdr-1.3.29/recording.c vdr-1.3.29-jumpplay-0.6/recording.c
---- vdr-1.3.29/recording.c	2005-08-13 16:00:48.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/recording.c	2005-08-15 20:02:01.000000000 +0200
-@@ -833,9 +833,10 @@
- 
- // --- cMarks ----------------------------------------------------------------
- 
--bool cMarks::Load(const char *RecordingFileName)
-+bool cMarks::Load(const char *RecordingFileName, bool SupressMessage)
- {
--  if (cConfig<cMark>::Load(AddDirectory(RecordingFileName, MARKSFILESUFFIX))) {
-+  if (cConfig<cMark>::Load(AddDirectory(RecordingFileName, MARKSFILESUFFIX),
-+                           false, false, SupressMessage)) {
-      Sort();
-      return true;
-      }
-diff -Naur vdr-1.3.29/recording.h vdr-1.3.29-jumpplay-0.6/recording.h
---- vdr-1.3.29/recording.h	2005-08-13 16:09:50.000000000 +0200
-+++ vdr-1.3.29-jumpplay-0.6/recording.h	2005-08-15 20:02:01.000000000 +0200
-@@ -118,7 +118,7 @@
- 
- class cMarks : public cConfig<cMark> {
- public:
--  bool Load(const char *RecordingFileName);
-+  bool Load(const char *RecordingFileName,bool SupressMessage = false);
-   void Sort(void);
-   cMark *Add(int Position);
-   cMark *Get(int Position);

Added: vdr/vdr/trunk/debian/patches/opt-24_jumpplay-0.7.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/opt-24_jumpplay-0.7.dpatch	2006-04-17 16:24:39 UTC (rev 2418)
+++ vdr/vdr/trunk/debian/patches/opt-24_jumpplay-0.7.dpatch	2006-04-17 23:58:18 UTC (rev 2419)
@@ -0,0 +1,521 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## opt-24_jumpplay-0.7.dpatch by Torsten Kunkel <vdr at tkunkel.de>, Thomas Günther <tom at toms-cafe.de>
+## http://toms-cafe.de/vdr/download/vdr-jumpplay-0.7-1.3.46.diff (applicable to VDR >= 1.3.29)
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Play after jump to next mark. Automatically jump over commercial breaks.
+## DP: See README.jumpplay for details.
+
+ at DPATCH@
+diff -Naur vdr-1.3.46/README.jumpplay vdr-1.3.46-jumpplay-0.7/README.jumpplay
+--- vdr-1.3.46/README.jumpplay	1970-01-01 01:00:00.000000000 +0100
++++ vdr-1.3.46-jumpplay-0.7/README.jumpplay	2006-04-14 15:27:59.000000000 +0200
+@@ -0,0 +1,96 @@
++JumpPlay patch for VDR
++----------------------
++
++This patch changes the replay behaviour for recordings that contain editing
++marks. It allows to immediately continue the replay after jumping forward to
++the next mark, and to automatically jump over the commercial break to the next
++"start" mark, if an "end" mark is reached.
++
++The features of this patch can be turned on or off with the following entries
++in the replay setup.
++
++
++* Parameters in the "Setup" menu "Replay"
++
++  Jump&Play = yes|no     Turns playing on or off after jumping forward to the
++                         next editing mark with the '9' key.
++
++  Play&Jump = yes|no     Turns automatic jumping over commercial breaks on or
++                         off. This includes jumping to the first mark, if the
++                         replay starts at the beginning of a recording - and
++                         stopping the replay at the last mark.
++                         With this setting enabled, the behaviour of the '8'
++                         key during replay is changed too. It moves the actual
++                         replay position not only three seconds before the
++                         next "start" mark, but also before the next "end"
++                         mark. This can be used to test, if the editing marks
++                         are correctly positioned for a "smooth" jump over a
++                         commercial break.
++
++  Load marks interval (s) = 0
++                         Set the load marks interval in seconds. This can be
++                         used if an external programme adjusts the cutting
++                         marks, e.g. noad in online mode.
++                         A value of '0' disables the cyclic reloading of
++                         cutting marks.
++
++
++* History
++
++  2003-07-04: jumpandrun.diff - the Noad <theNoad at SoftHome.net>
++    Jump&Play
++
++  2003-12-06: Version 0.0 - Torsten Kunkel <vdr at tkunkel.de>
++    Play&Jump (only if progressbar is visible)
++    Setup parameters Jump&Play and Play&Jump in the replay setup
++
++  2004-01-20: Version 0.1 - Thomas Günther <tom at toms-cafe.de>
++    Jump&Play:
++      - fixed speed after jump
++      - fixed removing of marks
++    Play&Jump:
++      - jump only on "end" marks
++
++  2004-01-27: Version 0.2 - Thomas Günther <tom at toms-cafe.de>
++    Jump&Play:
++      - fixed double jump
++    Play&Jump:
++      - fixed mark detection: fuzzy detection (until 3 seconds after mark)
++      - jump without progressbar
++      - mode "progressbar only" for old behaviour
++
++  2004-01-31: Version 0.3 - Thomas Günther <tom at toms-cafe.de>
++    Jump&Play:
++      - fixed display frames
++    Play&Jump:
++      - fixed end of playing at last mark
++
++  2004-07-11: Version 0.4 - Thomas Günther <tom at toms-cafe.de>
++    Jump&Play:
++      - don't play after jump to end
++    Play&Jump:
++      - don't prevent jumping after hide or show
++    Less conflicts with other patches (Elchi/AutoPID)
++
++  2004-08-21: Version 0.5 - Thomas Günther <tom at toms-cafe.de>
++    Play&Jump:
++      - exact jumps, replay like edited recording (no fuzzy mark detection)
++      - jump to first mark if replay starts at the beginning
++      - check jump marks with '8' key
++      - mode "progressbar only" removed
++    Description in README.jumpplay
++
++  2004-12-28: Version 0.6 - Thomas Günther <tom at toms-cafe.de>
++    Adapted noad extensions (from the Noad <theNoad at SoftHome.net>) to
++    jumpplay-0.5:
++      - cyclic reloading of marks found by noad online-scan
++      - don't stop after the last mark in case of live-recordings
++    New setup parameter "Load marks interval (s)"
++    Updated description in README.jumpplay
++
++  2006-04-14: Version 0.7 - Thomas Günther <tom at toms-cafe.de>
++    Fixed jump to first mark (crashed with plugin extrecmenu-0.9)
++    Added version define JUMPPLAYVERSNUM
++    Added placeholders for Czech language texts
++    Cleaned up i18n entries (support only VDR >= 1.3.29)
++    Improved description of i18n placeholders - hoping for real language texts
+diff -Naur vdr-1.3.46/config.c vdr-1.3.46-jumpplay-0.7/config.c
+--- vdr-1.3.46/config.c	2006-04-09 14:12:01.000000000 +0200
++++ vdr-1.3.46-jumpplay-0.7/config.c	2006-04-14 14:32:01.000000000 +0200
+@@ -268,6 +268,9 @@
+   MultiSpeedMode = 0;
+   ShowReplayMode = 0;
+   ResumeID = 0;
++  JumpPlay = 0;
++  PlayJump = 0;
++  LoadMarksInterval = 0;
+   CurrentChannel = -1;
+   CurrentVolume = MAXVOLUME;
+   CurrentDolby = 0;
+@@ -429,6 +432,9 @@
+   else if (!strcasecmp(Name, "MultiSpeedMode"))      MultiSpeedMode     = atoi(Value);
+   else if (!strcasecmp(Name, "ShowReplayMode"))      ShowReplayMode     = atoi(Value);
+   else if (!strcasecmp(Name, "ResumeID"))            ResumeID           = atoi(Value);
++  else if (!strcasecmp(Name, "JumpPlay"))            JumpPlay           = atoi(Value);
++  else if (!strcasecmp(Name, "PlayJump"))            PlayJump           = atoi(Value);
++  else if (!strcasecmp(Name, "LoadMarksInterval"))   LoadMarksInterval  = atoi(Value);
+   else if (!strcasecmp(Name, "CurrentChannel"))      CurrentChannel     = atoi(Value);
+   else if (!strcasecmp(Name, "CurrentVolume"))       CurrentVolume      = atoi(Value);
+   else if (!strcasecmp(Name, "CurrentDolby"))        CurrentDolby       = atoi(Value);
+@@ -497,6 +503,9 @@
+   Store("MultiSpeedMode",     MultiSpeedMode);
+   Store("ShowReplayMode",     ShowReplayMode);
+   Store("ResumeID",           ResumeID);
++  Store("JumpPlay",           JumpPlay);
++  Store("PlayJump",           PlayJump);
++  Store("LoadMarksInterval",  LoadMarksInterval);
+   Store("CurrentChannel",     CurrentChannel);
+   Store("CurrentVolume",      CurrentVolume);
+   Store("CurrentDolby",       CurrentDolby);
+diff -Naur vdr-1.3.46/config.h vdr-1.3.46-jumpplay-0.7/config.h
+--- vdr-1.3.46/config.h	2006-04-09 14:09:05.000000000 +0200
++++ vdr-1.3.46-jumpplay-0.7/config.h	2006-04-14 14:32:01.000000000 +0200
+@@ -22,6 +22,8 @@
+ #define VDRVERSION  "1.3.46"
+ #define VDRVERSNUM   10346  // Version * 10000 + Major * 100 + Minor
+ 
++#define JUMPPLAYVERSNUM 7
++
+ #define MAXPRIORITY 99
+ #define MAXLIFETIME 99
+ 
+@@ -75,7 +77,7 @@
+   cConfig(void) { fileName = NULL; }
+   virtual ~cConfig() { free(fileName); }
+   const char *FileName(void) { return fileName; }
+-  bool Load(const char *FileName = NULL, bool AllowComments = false, bool MustExist = false)
++  bool Load(const char *FileName = NULL, bool AllowComments = false, bool MustExist = false, bool SupressMessage = false)
+   {
+     cConfig<T>::Clear();
+     if (FileName) {
+@@ -85,7 +87,8 @@
+        }
+     bool result = !MustExist;
+     if (fileName && access(fileName, F_OK) == 0) {
+-       isyslog("loading %s", fileName);
++       if (!SupressMessage)
++         isyslog("loading %s", fileName);
+        FILE *f = fopen(fileName, "r");
+        if (f) {
+           char *s;
+@@ -234,6 +237,9 @@
+   int MultiSpeedMode;
+   int ShowReplayMode;
+   int ResumeID;
++  int JumpPlay;
++  int PlayJump;
++  int LoadMarksInterval;
+   int CurrentChannel;
+   int CurrentVolume;
+   int CurrentDolby;
+diff -Naur vdr-1.3.46/dvbplayer.c vdr-1.3.46-jumpplay-0.7/dvbplayer.c
+--- vdr-1.3.46/dvbplayer.c	2006-04-09 15:47:11.000000000 +0200
++++ vdr-1.3.46-jumpplay-0.7/dvbplayer.c	2006-04-14 14:32:01.000000000 +0200
+@@ -193,6 +193,7 @@
+   cNonBlockingFileReader *nonBlockingFileReader;
+   cRingBufferFrame *ringBuffer;
+   cBackTrace *backTrace;
++  cMarks *marks;
+   cFileName *fileName;
+   cIndexFile *index;
+   cUnbufferedFile *replayFile;
+@@ -213,7 +214,7 @@
+   virtual void Activate(bool On);
+   virtual void Action(void);
+ public:
+-  cDvbPlayer(const char *FileName);
++  cDvbPlayer(const char *FileName, cMarks *Marks = NULL);
+   virtual ~cDvbPlayer();
+   bool Active(void) { return cThread::Running(); }
+   void Pause(void);
+@@ -233,7 +234,7 @@
+ #define SPEED_MULT   12 // the speed multiplier
+ int cDvbPlayer::Speeds[] = { 0, -2, -4, -8, 1, 2, 4, 12, 0 };
+ 
+-cDvbPlayer::cDvbPlayer(const char *FileName)
++cDvbPlayer::cDvbPlayer(const char *FileName, cMarks *Marks)
+ :cThread("dvbplayer")
+ {
+   nonBlockingFileReader = NULL;
+@@ -263,6 +264,7 @@
+      index = NULL;
+      }
+   backTrace = new cBackTrace;
++  marks = Marks;
+ }
+ 
+ cDvbPlayer::~cDvbPlayer()
+@@ -368,11 +370,25 @@
+   uchar *b = NULL;
+   uchar *p = NULL;
+   int pc = 0;
++  bool cutIn = false;
++  int total = -1;
+ 
+   readIndex = Resume();
+   if (readIndex >= 0)
+      isyslog("resuming replay at index %d (%s)", readIndex, *IndexToHMSF(readIndex, true));
+ 
++  if (Setup.PlayJump && marks && readIndex <= 0 && marks->First() && index) {
++     int Index = marks->First()->position;
++     uchar FileNumber;
++     int FileOffset;
++     if (index->Get(Index, &FileNumber, &FileOffset) &&
++         NextFile(FileNumber, FileOffset)) {
++        isyslog("PlayJump: start replay at first mark %d (%s)",
++                Index, *IndexToHMSF(Index, true));
++        readIndex = Index;
++        }
++     }
++
+   nonBlockingFileReader = new cNonBlockingFileReader;
+   int Length = 0;
+   bool Sleep = false;
+@@ -430,6 +446,36 @@
+                        uchar FileNumber;
+                        int FileOffset;
+                        readIndex++;
++                       if (Setup.PlayJump && marks) {
++                          // check for end mark - jump to next start mark
++                          cMark *m = marks->Get(readIndex);
++                          if (m && (m->Index() & 0x01) != 0) {
++                             m = marks->Next(m);
++                             int Index;
++                             if (m)
++                                Index = m->position;
++                             else if (total == index->Last())
++                                // on last mark jump to end of recording
++                                Index = index->Last() - 1;
++                             else
++                                // jump but stay off end of live-recordings
++                                Index = index->GetNextIFrame(index->Last() - 150, true);
++                             // don't jump in edited recordings
++                             if (Index > readIndex &&
++                                 Index > index->GetNextIFrame(readIndex, true)) {
++                                isyslog("PlayJump: %d frames to %d (%s)",
++                                        Index - readIndex, Index,
++                                        *IndexToHMSF(Index, true));
++                                readIndex = Index;
++                                cutIn = true;
++                                }
++                             }
++                          }
++                       // for detecting growing length of live-recordings
++                       uchar PictureType;
++                       if (index->Get(readIndex, &FileNumber, &FileOffset, &PictureType) &&
++                           PictureType == I_FRAME)
++                          total = index->Last();
+                        if (!(index->Get(readIndex, &FileNumber, &FileOffset, NULL, &Length) && NextFile(FileNumber, FileOffset))) {
+                           readIndex = -1;
+                           eof = true;
+@@ -465,6 +511,10 @@
+               // Store the frame in the buffer:
+ 
+               if (readFrame) {
++                 if (cutIn) {
++                    cRemux::SetBrokenLink(readFrame->Data(), readFrame->Count());
++                    cutIn = false;
++                    }
+                  if (ringBuffer->Put(readFrame))
+                     readFrame = NULL;
+                  }
+@@ -760,6 +810,11 @@
+ {
+ }
+ 
++cDvbPlayerControl::cDvbPlayerControl(const char *FileName, cMarks *Marks)
++:cControl(player = new cDvbPlayer(FileName, Marks))
++{
++}
++
+ cDvbPlayerControl::~cDvbPlayerControl()
+ {
+   Stop();
+diff -Naur vdr-1.3.46/dvbplayer.h vdr-1.3.46-jumpplay-0.7/dvbplayer.h
+--- vdr-1.3.46/dvbplayer.h	2002-06-23 12:13:51.000000000 +0200
++++ vdr-1.3.46-jumpplay-0.7/dvbplayer.h	2006-04-14 14:32:01.000000000 +0200
+@@ -20,6 +20,7 @@
+   cDvbPlayer *player;
+ public:
+   cDvbPlayerControl(const char *FileName);
++  cDvbPlayerControl(const char *FileName, cMarks *Marks);
+        // Sets up a player for the given file.
+   virtual ~cDvbPlayerControl();
+   bool Active(void);
+diff -Naur vdr-1.3.46/i18n.c vdr-1.3.46-jumpplay-0.7/i18n.c
+--- vdr-1.3.46/i18n.c	2006-04-09 15:04:50.000000000 +0200
++++ vdr-1.3.46-jumpplay-0.7/i18n.c	2006-04-14 15:18:17.000000000 +0200
+@@ -4316,6 +4316,78 @@
+     "Genoptagelses ID",
+     "ID obnovení",
+   },
++  { "Setup.Replay$Jump&Play", // English
++    "Wiedergabe nach Sprung", // Deutsch / German
++    "", // Slovenski / Slovenian
++    "", // Italiano / Italian
++    "", // Nederlands / Dutch
++    "", // Português / Portuguese
++    "", // Français / French
++    "", // Norsk / Norwegian
++    "", // suomi / Finnish
++    "", // Polski / Polish
++    "", // Español / Spanish
++    "", // ÅëëçíéêÜ / Greek
++    "", // Svenska / Swedish
++    "", // Românã / Romanian
++    "", // Magyar / Hungarian
++    "", // Català / Catalanian
++    "", // ÀãááÚØÙ / Russian
++    "", // Hrvatski / Croatian
++    "", // Eesti / Estonian
++    "", // Dansk / Danish
++#if VDRVERSNUM >= 10342
++    "", // Èesky / Czech
++#endif
++  },
++  { "Setup.Replay$Play&Jump", // English
++    "Sprung bei Schnittmarke", // Deutsch / German
++    "", // Slovenski / Slovenian
++    "", // Italiano / Italian
++    "", // Nederlands / Dutch
++    "", // Português / Portuguese
++    "", // Français / French
++    "", // Norsk / Norwegian
++    "", // suomi / Finnish
++    "", // Polski / Polish
++    "", // Español / Spanish
++    "", // ÅëëçíéêÜ / Greek
++    "", // Svenska / Swedish
++    "", // Românã / Romanian
++    "", // Magyar / Hungarian
++    "", // Català / Catalanian
++    "", // ÀãááÚØÙ / Russian
++    "", // Hrvatski / Croatian
++    "", // Eesti / Estonian
++    "", // Dansk / Danish
++#if VDRVERSNUM >= 10342
++    "", // Èesky / Czech
++#endif
++  },
++  { "Setup.Replay$Load marks interval (s)", // English
++    "Intervall für Laden der Marken (s)", // Deutsch / German
++    "", // Slovenski / Slovenian
++    "", // Italiano / Italian
++    "", // Nederlands / Dutch
++    "", // Português / Portuguese
++    "", // Français / French
++    "", // Norsk / Norwegian
++    "", // suomi / Finnish
++    "", // Polski / Polish
++    "", // Español / Spanish
++    "", // ÅëëçíéêÜ / Greek
++    "", // Svenska / Swedish
++    "", // Românã / Romanian
++    "", // Magyar / Hungarian
++    "", // Català / Catalanian
++    "", // ÀãááÚØÙ / Russian
++    "", // Hrvatski / Croatian
++    "", // Eesti / Estonian
++    "", // Dansk / Danish
++#if VDRVERSNUM >= 10342
++    "", // Èesky / Czech
++#endif
++  },
+   { "Setup.Miscellaneous$Min. event timeout (min)",
+     "Mindest Event Pause (min)",
+     "Najmanj¹i èas dogodka (min)",
+diff -Naur vdr-1.3.46/menu.c vdr-1.3.46-jumpplay-0.7/menu.c
+--- vdr-1.3.46/menu.c	2006-04-09 16:29:24.000000000 +0200
++++ vdr-1.3.46-jumpplay-0.7/menu.c	2006-04-14 14:32:01.000000000 +0200
+@@ -2564,6 +2564,9 @@
+   Add(new cMenuEditBoolItem(tr("Setup.Replay$Multi speed mode"), &data.MultiSpeedMode));
+   Add(new cMenuEditBoolItem(tr("Setup.Replay$Show replay mode"), &data.ShowReplayMode));
+   Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99));
++  Add(new cMenuEditBoolItem(tr("Setup.Replay$Jump&Play"), &data.JumpPlay));
++  Add(new cMenuEditBoolItem(tr("Setup.Replay$Play&Jump"), &data.PlayJump));
++  Add(new cMenuEditIntItem(tr("Setup.Replay$Load marks interval (s)"), &data.LoadMarksInterval));
+ }
+ 
+ void cMenuSetupReplay::Store(void)
+@@ -3776,7 +3779,7 @@
+ char *cReplayControl::title = NULL;
+ 
+ cReplayControl::cReplayControl(void)
+-:cDvbPlayerControl(fileName)
++:cDvbPlayerControl(fileName, &marks)
+ {
+   displayReplay = NULL;
+   visible = modeOnly = shown = displayFrames = false;
+@@ -3786,6 +3789,7 @@
+   timeoutShow = 0;
+   timeSearchActive = false;
+   marks.Load(fileName);
++  lastLoadMarks = time(NULL);
+   cRecording Recording(fileName);
+   cStatus::MsgReplaying(this, Recording.Name(), Recording.FileName(), true);
+ }
+@@ -4003,8 +4007,10 @@
+         ShowTimed(2);
+         bool Play, Forward;
+         int Speed;
+-        if (GetReplayMode(Play, Forward, Speed) && !Play)
++        if (GetReplayMode(Play, Forward, Speed) && !Play) {
+            Goto(Current, true);
++           displayFrames = true;
++           }
+         }
+      marks.Save();
+      }
+@@ -4017,8 +4023,17 @@
+      if (GetIndex(Current, Total)) {
+         cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current);
+         if (m) {
+-           Goto(m->position, true);
+-           displayFrames = true;
++           bool Play2, Forward2;
++           int Speed;
++           if (Setup.JumpPlay && GetReplayMode(Play2, Forward2, Speed) &&
++               Play2 && Forward && m->position < Total - SecondsToFrames(3)) {
++              Goto(m->position);
++              Play();
++              }
++           else {
++              Goto(m->position, true);
++              displayFrames = true;
++              }
+            }
+         }
+      }
+@@ -4073,7 +4088,7 @@
+      if (!m)
+         m = marks.GetNext(Current);
+      if (m) {
+-        if ((m->Index() & 0x01) != 0)
++        if ((m->Index() & 0x01) != 0 && !Setup.PlayJump)
+            m = marks.Next(m);
+         if (m) {
+            Goto(m->position - SecondsToFrames(3));
+@@ -4095,6 +4110,11 @@
+ {
+   if (!Active())
+      return osEnd;
++  if (Setup.LoadMarksInterval &&
++      time(NULL) >= lastLoadMarks + Setup.LoadMarksInterval) {
++     marks.Load(fileName, true);
++     lastLoadMarks = time(NULL);
++     }
+   if (visible) {
+      if (timeoutShow && time(NULL) > timeoutShow) {
+         Hide();
+diff -Naur vdr-1.3.46/menu.h vdr-1.3.46-jumpplay-0.7/menu.h
+--- vdr-1.3.46/menu.h	2006-03-25 13:15:19.000000000 +0100
++++ vdr-1.3.46-jumpplay-0.7/menu.h	2006-04-14 14:32:01.000000000 +0200
+@@ -227,6 +227,7 @@
+   bool lastPlay, lastForward;
+   int lastSpeed;
+   time_t timeoutShow;
++  time_t lastLoadMarks;
+   bool timeSearchActive, timeSearchHide;
+   int timeSearchTime, timeSearchPos;
+   void TimeSearchDisplay(void);
+diff -Naur vdr-1.3.46/recording.c vdr-1.3.46-jumpplay-0.7/recording.c
+--- vdr-1.3.46/recording.c	2006-04-09 15:49:51.000000000 +0200
++++ vdr-1.3.46-jumpplay-0.7/recording.c	2006-04-14 14:32:01.000000000 +0200
+@@ -1062,9 +1062,10 @@
+ 
+ // --- cMarks ----------------------------------------------------------------
+ 
+-bool cMarks::Load(const char *RecordingFileName)
++bool cMarks::Load(const char *RecordingFileName, bool SupressMessage)
+ {
+-  if (cConfig<cMark>::Load(AddDirectory(RecordingFileName, MARKSFILESUFFIX))) {
++  if (cConfig<cMark>::Load(AddDirectory(RecordingFileName, MARKSFILESUFFIX),
++                           false, false, SupressMessage)) {
+      Sort();
+      return true;
+      }
+diff -Naur vdr-1.3.46/recording.h vdr-1.3.46-jumpplay-0.7/recording.h
+--- vdr-1.3.46/recording.h	2006-04-09 15:47:11.000000000 +0200
++++ vdr-1.3.46-jumpplay-0.7/recording.h	2006-04-14 14:32:01.000000000 +0200
+@@ -154,7 +154,7 @@
+ 
+ class cMarks : public cConfig<cMark> {
+ public:
+-  bool Load(const char *RecordingFileName);
++  bool Load(const char *RecordingFileName,bool SupressMessage = false);
+   void Sort(void);
+   cMark *Add(int Position);
+   cMark *Get(int Position);




More information about the pkg-vdr-dvb-changes mailing list