[SCM] vdr packaging repository branch, e-tobi, updated. debian/1.7.21-1_ctvdr3-19-g0495185

etobi git at e-tobi.net
Mon Dec 12 21:27:26 UTC 2011


The following commit has been merged in the e-tobi branch:
commit a325cc29ec479819082ceac6d079e0fb9c6a1373
Author: etobi <git at e-tobi.net>
Date:   Sun Dec 11 02:34:17 2011 +0100

    Dropped dpatch in favour of quilt
    Dropped reelchannelscan patch

diff --git a/debian/.vdr-patches b/debian/.vdr-patches
index 9bd74bc..c1d2d87 100644
--- a/debian/.vdr-patches
+++ b/debian/.vdr-patches
@@ -1,8 +1,23 @@
-debian/patches/12_osdbase-maxitems.patch:f6fc7c5a100f8e891280195b3e1d69ba
+debian/patches/opt-20_liemikuutio.patch:d261a4492fd8b350149c595c9d72e908
 debian/patches/16_channels.conf.terr-fix.patch:933f8daa6bb6d26c711d0ae987a2b03e
-debian/patches/82_valgrind.patch:60ad50e72eabb0861d096d1002fddca7
 debian/patches/04_newplugin.patch:5877f4f62dab4f3d437d4eef7cae3ac0
+debian/patches/opt-43-x_recordshowfree.patch:e215d4b880638dd97deb138a36abc9e1
+debian/patches/opt-42-x_MainMenuHooks.patch:4c697a78f2b6ca1971aa8ad1db209a7f
+debian/patches/opt-27_ttxtsubs.patch:60e955b2733f9dc914254141750751fa
+debian/patches/opt-50_graphtft.patch:89b222a6d29eede764163c8806a07dd3
+debian/patches/opt-37-x_menuorg.patch:b3be1b7511f090ea72b57ce96f9ebec6
+debian/patches/opt-21_internal-cam-devices.patch:3f3a00b67bdaf671fe3155d0f9c72ad1
+debian/patches/11_sortrecordings.patch:3e3a2f988cb7db03f8f56a44012a65f4
+debian/patches/opt-41-x_timer-info.patch:24767586707d76f36e33021d3e662508
+debian/patches/opt-24_jumpplay.patch:d2f8209e7c1bc6631c03ec88acdf9628
+debian/patches/opt-38_disableDoubleEpgEntrys.patch:c6448660aa4326ef6151b5a913e2b9cd
 debian/patches/99_ncursesw-include.patch:9bafeb768f7921015a5bab5e47786950
+debian/patches/82_valgrind.patch:60ad50e72eabb0861d096d1002fddca7
+debian/patches/opt-22-x_edit_marks.patch:5c6b433d3816e2081c3ae937be54b534
+debian/patches/opt-39_noepg.patch:dac5d60f94ef09a9c497999cb8acd199
+debian/patches/opt-44_rotor.patch:755854c8f2e048902b582f9343919ee1
+debian/patches/12_osdbase-maxitems.patch:f6fc7c5a100f8e891280195b3e1d69ba
+debian/patches/opt-50_graphtft-liemikuutio.patch:a5a3ead7091ddd35fab0b6925ffefcab
+debian/patches/opt-45_yaepg.patch:e8b772b5a17269778f6fc6c4bea5ef79
 debian/patches/06_default_svdrp_port_0.patch:4835f681f185991262a3160146f43f2f
-debian/patches/11_sortrecordings.patch:3e3a2f988cb7db03f8f56a44012a65f4
 debian/patches/81_Make_config.patch:76dc4a78d1da16e3e524e41587d0c90d
diff --git a/debian/.vdr-patches.multipatch b/debian/.vdr-patches.multipatch
deleted file mode 100644
index caf163d..0000000
--- a/debian/.vdr-patches.multipatch
+++ /dev/null
@@ -1,24 +0,0 @@
-debian/patches/opt-43-x_recordshowfree.dpatch:66152f345b03259d28e89135cda42310
-debian/patches/12_osdbase-maxitems.dpatch:e45d1b62f7d66c3e5d279e3561034107
-debian/patches/11_sortrecordings.dpatch:9ed4cd1e144ee59dab34d4df4aa9af51
-debian/patches/opt-50_graphtft.dpatch:f77f3d81b37e89c448dbb15c9e4f475d
-debian/patches/16_channels.conf.terr-fix.dpatch:72595733d0b46aa4093a640708d19226
-debian/patches/06_default_svdrp_port_0.dpatch:653e14e8ab093c456f9bbd8faa5e1ff7
-debian/patches/82_valgrind.dpatch:503ddba49c243fff798a36a1c12bb5ae
-debian/patches/opt-42-x_MainMenuHooks.dpatch:1c4c782b5c88c4f0408890a5f50b217b
-debian/patches/opt-44_rotor.dpatch:43c8707dac3db0702183c91d0e22874a
-debian/patches/opt-20_liemikuutio.dpatch:1e05ed4920386b639efdda6832246766
-debian/patches/opt-21_internal-cam-devices.dpatch:7bbaad57abb1ae2995b85d9f1a1fd23f
-debian/patches/opt-41-x_timer-info.dpatch:04511ae02243eb1bab94f3f45b59e574
-debian/patches/opt-24_jumpplay.dpatch:f23cbe88f71917a25683b6f6c255fb2c
-debian/patches/opt-50_graphtft-liemikuutio.dpatch:f82320b9c64e17d06b5d0dbbddf50e8f
-debian/patches/opt-31-x_reelchannelscan.dpatch:f8c06ac51888248f68badcab8533c2be
-debian/patches/81_Make_config.dpatch:da281b9af48273bcbd19f3052ee993fd
-debian/patches/opt-37-x_menuorg.dpatch:9fb02cc8bd848add50b3866b6f476644
-debian/patches/opt-45_yaepg.dpatch:77fdabd83bdf4187d7040faaf1c758c7
-debian/patches/opt-27_ttxtsubs.dpatch:7b3188bebdbf83806320876c0884dd9b
-debian/patches/99_ncursesw-include.dpatch:90810d58108ff8d9afd768fec67be904
-debian/patches/opt-39_noepg.dpatch:677a1bae33d44a7501b0ccbc48005e14
-debian/patches/04_newplugin.dpatch:e99f8d21734a19b3eb93d9e3f11b680a
-debian/patches/opt-38_disableDoubleEpgEntrys.dpatch:7a09fa581f95613497b718b5c4a4a875
-debian/patches/opt-22-x_edit_marks.dpatch:9d604944f17114e3ac830aa80eff73ed
diff --git a/debian/abi-version.multipatch b/debian/abi-version.multipatch
deleted file mode 100644
index 3089020..0000000
--- a/debian/abi-version.multipatch
+++ /dev/null
@@ -1 +0,0 @@
-vdr-abi-1.7.22-multipatch.1
diff --git a/debian/changelog b/debian/changelog
index bc70e0c..48dc295 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,7 @@ vdr (1.7.22-1~ctvdr1) unstable; urgency=low
   * Dropped dpatch and use quilt for the patches - no PATCHVARIANT support
     anymore! To build VDR with a different set of patches, grab the
     appropriate branch from the Git.
+  * Dropped reelchannelscan patch
 
  -- Tobias Grimm <etobi at debian.org>  Sat, 10 Dec 2011 21:51:31 +0100
 
diff --git a/debian/patches/00list.multipatch b/debian/patches/00list.multipatch
deleted file mode 100644
index 407327b..0000000
--- a/debian/patches/00list.multipatch
+++ /dev/null
@@ -1,68 +0,0 @@
-04_newplugin
-06_default_svdrp_port_0
-11_sortrecordings
-12_osdbase-maxitems
-16_channels.conf.terr-fix
-
-81_Make_config
-82_valgrind
-
-99_ncursesw-include
-
-# Patch collection (replaces enAIO).
-opt-20_liemikuutio
-
-# Allows to tune to non-FTA channels provided by internal devices, 
-# like streamdev
-opt-21_internal-cam-devices
-
-# Easy editing of cutting marks
-# (Requires opt-20_liemikuutio!)
-opt-22-x_edit_marks
-
-# The Jump patch allows automatic jumping over cutting marks.
-opt-24_jumpplay
-
-# Patch needed for the ttxtsubs plugin.
-opt-27_ttxtsubs
-
-# Speed up zapping channels.
-# opt-29_syncearly
-
-# Makes VDR aware of the reelchannelscan plugin
-opt-31-x_reelchannelscan
-
-# Patch that shows if there is a valid setup value left or right with < and >.
-# opt-35_setup-show-valid
-
-# Patch needed for the menuorg plugin.
-opt-37-x_menuorg
-
-# Patch that suppresses double EPG entries.
-opt-38_disableDoubleEpgEntrys
-
-# Patch to disable normal epg update for specified channels.
-opt-39_noepg
-
-# Patch to show an info, if it is possible to record an event in the timer-info.
-opt-41-x_timer-info
-
-# Patch to allow plugins to replace the VDR mainmenus
-opt-42-x_MainMenuHooks
-
-# Shows remaining recording capacity in recordings menu.
-# (Requires opt-41-x_timer-info !)
-opt-43-x_recordshowfree
-
-# Patch needed for the rotor plugin.
-opt-44_rotor
-
-# Patch needed for the yaepg plugin.
-opt-45_yaepg
-
-# Patch required for the GraphTFT plugin
-opt-50_graphtft
-opt-50_graphtft-liemikuutio
-
-# Setup for AC3 transfer, QAM_256, disable primary tuner
-# opt-53_dvbsetup
diff --git a/debian/patches/XX_patchtest-compile-error.dpatch b/debian/patches/XX_patchtest-compile-error.dpatch
deleted file mode 100644
index 97252c0..0000000
--- a/debian/patches/XX_patchtest-compile-error.dpatch
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh /usr/share/dpatch/dpatch-run
-
-## XX_patchtest-compile-error
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Patch to check patchtest against compile error
-
- at DPATCH@
-diff -Nur vdr.orig/vdr.c vdr/vdr.c
---- vdr.orig/vdr.c	2004-03-12 21:37:17.000000000 +0100
-+++ vdr/vdr.c	2004-03-13 14:22:01.000000000 +0100
-@@ -79,6 +79,8 @@
- 
- int main(int argc, char *argv[])
- {
-+  RaiseCompilerError();
-+  
-   // Save terminal settings:
- 
-   struct termios savedTm;
diff --git a/debian/patches/XX_patchtest-patch-error.dpatch b/debian/patches/XX_patchtest-patch-error.dpatch
deleted file mode 100644
index 6946121..0000000
--- a/debian/patches/XX_patchtest-patch-error.dpatch
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh /usr/share/dpatch/dpatch-run
-
-## XX_patchtest-patch-error
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Patch to check patchtest against patch error
-
- at DPATCH@
-diff -Nur vdr.orig/vdr.c vdr/vdr.c
---- vdr.orig/vdr.c	2004-03-12 21:37:17.000000000 +0100
-+++ vdr/vdr.c	2004-03-13 14:22:01.000000000 +0100
-@@ -79,6 +79,8 @@
- 
- int main(int argc, char *argv[])
- ***PATCH-BUG***
-+  RaiseCompilerError();
-+  
-   // Save terminal settings:
- 
-   struct termios savedTm;
diff --git a/debian/patches/list_uncritical_patches b/debian/patches/list_uncritical_patches
old mode 100644
new mode 100755
index 6cac722..c3f4a21
--- a/debian/patches/list_uncritical_patches
+++ b/debian/patches/list_uncritical_patches
@@ -2,7 +2,7 @@
 
 # find all patches that don't modify any header files
 
-patches=`find ./ -name "*.dpatch"`
+patches=`find ./ -name "*.patch"`
 
 for patch in $patches ; do
     grep -q -e "^---.*\.h" $patch
diff --git a/debian/patches/opt-20_liemikuutio.dpatch b/debian/patches/opt-20_liemikuutio.patch
similarity index 99%
rename from debian/patches/opt-20_liemikuutio.dpatch
rename to debian/patches/opt-20_liemikuutio.patch
index ff6db7e..48cfcdd 100644
--- a/debian/patches/opt-20_liemikuutio.dpatch
+++ b/debian/patches/opt-20_liemikuutio.patch
@@ -1,11 +1,7 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-20_liemikuutio.dpatch by Rolf Ahrenberg <Rolf.Ahrenberg AT sci.fi>
-## http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.7.22-liemikuutio-1.33.patch.gz
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Patch collection - see HISTORY-liemikuutio for details.
+Description: Patch collection - see HISTORY-liemikuutio for details.
+Author: Rolf Ahrenberg <Rolf.Ahrenberg AT sci.fi>
+Origin: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.7.22-liemikuutio-1.33.patch.gz
 
- at DPATCH@
 diff -Nru vdr-1.7.22-vanilla/config.h vdr-1.7.22-liemikuutio/config.h
 --- vdr-1.7.22-vanilla/config.h	2011-12-04 18:37:58.000000000 +0200
 +++ vdr-1.7.22-liemikuutio/config.h	2011-12-04 18:39:13.000000000 +0200
diff --git a/debian/patches/opt-21_internal-cam-devices.dpatch b/debian/patches/opt-21_internal-cam-devices.patch
similarity index 82%
rename from debian/patches/opt-21_internal-cam-devices.dpatch
rename to debian/patches/opt-21_internal-cam-devices.patch
index ed35e30..d8e8b28 100644
--- a/debian/patches/opt-21_internal-cam-devices.dpatch
+++ b/debian/patches/opt-21_internal-cam-devices.patch
@@ -1,17 +1,14 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-21_internal-cam-devices.dpatch by Tobias Grimm <tg at e-tobi.net>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: This patch allows tuning to encrypted channels which are
-## DP: provided by a stremdev client device and therefore already are
-## DP: decrypted on the streamdev server side.
-## DP: See also: http://www.vdr-developer.org/mantisbt/view.php?id=429
+Description: This patch allows tuning to encrypted channels which are
+ provided by a stremdev client device and therefore already are
+ decrypted on the streamdev server side.
+ See also: http://www.vdr-developer.org/mantisbt/view.php?id=429
+Author: Tobias Grimm <tg at e-tobi.net>
 
- at DPATCH@
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr-1.7.19~/device.c vdr-1.7.19/device.c
---- vdr-1.7.19~/device.c	2011-06-19 19:44:13.000000000 +0200
-+++ vdr-1.7.19/device.c	2011-06-19 19:53:00.000000000 +0200
-@@ -236,6 +236,7 @@
+Index: vdr/device.c
+===================================================================
+--- vdr.orig/device.c	2011-12-11 02:29:03.000000000 +0100
++++ vdr/device.c	2011-12-11 02:29:08.000000000 +0100
+@@ -238,6 +238,7 @@
    int NumCamSlots = CamSlots.Count();
    int SlotPriority[NumCamSlots];
    int NumUsableSlots = 0;
@@ -19,7 +16,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    if (Channel->Ca() >= CA_ENCRYPTED_MIN) {
       for (cCamSlot *CamSlot = CamSlots.First(); CamSlot; CamSlot = CamSlots.Next(CamSlot)) {
           SlotPriority[CamSlot->Index()] = MAXPRIORITY + 1; // assumes it can't be used
-@@ -249,7 +250,7 @@
+@@ -251,7 +252,7 @@
              }
           }
       if (!NumUsableSlots)
@@ -28,7 +25,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
       }
  
    bool NeedsDetachReceivers = false;
-@@ -265,11 +266,13 @@
+@@ -267,11 +268,13 @@
               continue; // this device shall be temporarily avoided
            if (Channel->Ca() && Channel->Ca() <= CA_DVB_MAX && Channel->Ca() != device[i]->CardIndex() + 1)
               continue; // a specific card was requested, but not this one
@@ -44,7 +41,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
                  ndr = true; // using a different CAM slot requires detaching receivers
               // Put together an integer number that reflects the "impact" using
               // this device would have on the overall system. Each condition is represented
-@@ -283,19 +286,19 @@
+@@ -285,19 +288,19 @@
               imp <<= 1; imp |= device[i]->Receiving();                                                               // avoid devices that are receiving
               imp <<= 4; imp |= GetClippedNumProvidedSystems(4, device[i]) - 1;                                       // avoid cards which support multiple delivery systems
               imp <<= 1; imp |= device[i] == cTransferControl::ReceiverDevice();                                      // avoid the Transfer Mode receiver device
@@ -68,10 +65,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
                     s = CamSlots.Get(j);
                  }
               }
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr-1.7.19~/device.h vdr-1.7.19/device.h
---- vdr-1.7.19~/device.h	2011-06-02 15:15:31.000000000 +0200
-+++ vdr-1.7.19/device.h	2011-06-19 19:44:13.000000000 +0200
-@@ -376,6 +376,13 @@
+Index: vdr/device.h
+===================================================================
+--- vdr.orig/device.h	2011-12-10 22:22:04.000000000 +0100
++++ vdr/device.h	2011-12-11 02:29:08.000000000 +0100
+@@ -395,6 +395,13 @@
  public:
    virtual bool HasCi(void);
           ///< Returns true if this device has a Common Interface.
diff --git a/debian/patches/opt-22-x_edit_marks.dpatch b/debian/patches/opt-22-x_edit_marks.patch
similarity index 76%
rename from debian/patches/opt-22-x_edit_marks.dpatch
rename to debian/patches/opt-22-x_edit_marks.patch
index cd168b4..adf6ad3 100644
--- a/debian/patches/opt-22-x_edit_marks.dpatch
+++ b/debian/patches/opt-22-x_edit_marks.patch
@@ -1,20 +1,14 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-22-x_edit_marks.dpatch by FrankJepsen at vdrportal.de
-## http://vdrportal.de/board/thread.php?postid=718583#post718583
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - adapted to VDR-1.7.12
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Patch adds keys '1', '3' in replay mode to move marks by +/-5secs.
-## DP: When in replay mode key '0' sets a mark and stops there.
-## DP: 'Green' and 'Yellow' act as 'Prev' and 'Next'.
+Description: Patch adds keys '1', '3' in replay mode to move marks by +/-5secs.
+ When in replay mode key '0' sets a mark and stops there.
+ 'Green' and 'Yellow' act as 'Prev' and 'Next'.
+Author: FrankJepsen at vdrportal.de
+Origin: http://vdrportal.de/board/thread.php?postid=718583#post718583
 
- at DPATCH@
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/menu.c vdr/menu.c
---- vdr~/menu.c	2011-03-19 22:45:57.000000000 +0100
-+++ vdr/menu.c	2011-03-19 22:50:08.000000000 +0100
-@@ -4999,10 +4999,6 @@
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:03.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:15.000000000 +0100
+@@ -5030,10 +5030,6 @@
      case kGreen:   SkipSeconds(-60); break;
      case kYellow|k_Repeat:
      case kYellow:  SkipSeconds( 60); break;
@@ -25,7 +19,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
      case kPrev|k_Repeat:
      case kPrev:    if (lastSkipTimeout.TimedOut()) {
                        lastSkipSeconds = REPLAYCONTROLSKIPSECONDS;
-@@ -5030,10 +5026,46 @@
+@@ -5061,10 +5057,46 @@
                     Stop();
                     return osEnd;
      default: {
diff --git a/debian/patches/opt-24_jumpplay.dpatch b/debian/patches/opt-24_jumpplay.patch
similarity index 83%
rename from debian/patches/opt-24_jumpplay.dpatch
rename to debian/patches/opt-24_jumpplay.patch
index 7285617..755405a 100644
--- a/debian/patches/opt-24_jumpplay.dpatch
+++ b/debian/patches/opt-24_jumpplay.patch
@@ -1,17 +1,15 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-24_jumpplay.dpatch by Torsten Kunkel <vdr at tkunkel.de>, Thomas Günther <tom at toms-cafe.de>
-## http://toms-cafe.de/vdr/download/vdr-jumpplay-1.0-1.7.6.diff
-##
-## 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 and MANUAL for details.
-## DP: 2011-03-19: Remove marks reloading for VDR-1.7.17, by Udo Richter <udo_richter at gmx.de>
+Description: Play after jump to next mark. Automatically jump over commercial breaks.
+ See README.jumpplay and MANUAL for details.
+ .
+ 2011-03-19: Remove marks reloading for VDR-1.7.17, by Udo Richter <udo_richter at gmx.de>
+Author: Torsten Kunkel <vdr at tkunkel.de>, Thomas Günther <tom at toms-cafe.de>
+Origin: http://toms-cafe.de/vdr/download/vdr-jumpplay-1.0-1.7.6.diff
 
- at DPATCH@
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/MANUAL vdr/MANUAL
---- vdr~/MANUAL	2011-09-18 13:27:07.000000000 +0200
-+++ vdr/MANUAL	2011-09-18 13:27:31.000000000 +0200
-@@ -856,6 +856,25 @@
+Index: vdr/MANUAL
+===================================================================
+--- vdr.orig/MANUAL	2011-12-10 22:22:04.000000000 +0100
++++ vdr/MANUAL	2011-12-11 02:29:23.000000000 +0100
+@@ -862,6 +862,25 @@
                           0 resulting in a file named 'resume', and any other
                           value resulting in 'resume.n'.
  
@@ -37,9 +35,10 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    Miscellaneous:
  
    Min. event timeout = 30
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/README.jumpplay vdr/README.jumpplay
---- vdr~/README.jumpplay	1970-01-01 01:00:00.000000000 +0100
-+++ vdr/README.jumpplay	2011-09-18 13:27:31.000000000 +0200
+Index: vdr/README.jumpplay
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ vdr/README.jumpplay	2011-12-11 02:29:23.000000000 +0100
 @@ -0,0 +1,92 @@
 +JumpPlay patch for VDR
 +----------------------
@@ -133,10 +132,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
 +    Play&Jump:
 +      - set resume position to 0 if replay stops at the first mark
 +    Added French language texts (thanks to Michaël Nival)
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/config.c vdr/config.c
---- vdr~/config.c	2011-09-18 13:27:07.000000000 +0200
-+++ vdr/config.c	2011-09-18 13:27:31.000000000 +0200
-@@ -392,6 +392,9 @@
+Index: vdr/config.c
+===================================================================
+--- vdr.orig/config.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/config.c	2011-12-11 02:29:23.000000000 +0100
+@@ -455,6 +455,9 @@
    MultiSpeedMode = 0;
    ShowReplayMode = 0;
    ResumeID = 0;
@@ -146,7 +146,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    CurrentChannel = -1;
    CurrentVolume = MAXVOLUME;
    CurrentDolby = 0;
-@@ -584,6 +587,9 @@
+@@ -649,6 +652,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);
@@ -156,7 +156,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    else if (!strcasecmp(Name, "CurrentChannel"))      CurrentChannel     = atoi(Value);
    else if (!strcasecmp(Name, "CurrentVolume"))       CurrentVolume      = atoi(Value);
    else if (!strcasecmp(Name, "CurrentDolby"))        CurrentDolby       = atoi(Value);
-@@ -680,6 +686,9 @@
+@@ -746,6 +752,9 @@
    Store("MultiSpeedMode",     MultiSpeedMode);
    Store("ShowReplayMode",     ShowReplayMode);
    Store("ResumeID",           ResumeID);
@@ -166,19 +166,20 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    Store("CurrentChannel",     CurrentChannel);
    Store("CurrentVolume",      CurrentVolume);
    Store("CurrentDolby",       CurrentDolby);
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/config.h vdr/config.h
---- vdr~/config.h	2011-09-18 13:27:31.000000000 +0200
-+++ vdr/config.h	2011-09-18 13:27:31.000000000 +0200
+Index: vdr/config.h
+===================================================================
+--- vdr.orig/config.h	2011-12-11 02:29:03.000000000 +0100
++++ vdr/config.h	2011-12-11 02:29:23.000000000 +0100
 @@ -38,6 +38,8 @@
  
- #define LIEMIKUUTIO  131
+ #define LIEMIKUUTIO  133
  
 +#define JUMPPLAYVERSNUM 100
 +
  #define MAXPRIORITY 99
  #define MAXLIFETIME 99
  
-@@ -286,6 +288,9 @@
+@@ -305,6 +307,9 @@
    int MultiSpeedMode;
    int ShowReplayMode;
    int ResumeID;
@@ -188,9 +189,10 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    int CurrentChannel;
    int CurrentVolume;
    int CurrentDolby;
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/dvbplayer.c vdr/dvbplayer.c
---- vdr~/dvbplayer.c	2011-09-18 13:27:07.000000000 +0200
-+++ vdr/dvbplayer.c	2011-09-18 13:27:31.000000000 +0200
+Index: vdr/dvbplayer.c
+===================================================================
+--- vdr.orig/dvbplayer.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/dvbplayer.c	2011-12-11 02:29:23.000000000 +0100
 @@ -204,6 +204,7 @@
    cNonBlockingFileReader *nonBlockingFileReader;
    cRingBufferFrame *ringBuffer;
@@ -328,10 +330,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
  
            // Handle hitting begin/end of recording:
  
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/menu.c vdr/menu.c
---- vdr~/menu.c	2011-09-18 13:27:31.000000000 +0200
-+++ vdr/menu.c	2011-09-18 13:31:37.000000000 +0200
-@@ -3253,6 +3253,9 @@
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:15.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:23.000000000 +0100
+@@ -3297,6 +3297,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));
@@ -341,7 +344,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
  }
  
  void cMenuSetupReplay::Store(void)
-@@ -4832,8 +4835,10 @@
+@@ -4896,8 +4899,10 @@
          ShowTimed(2);
          bool Play, Forward;
          int Speed;
@@ -353,7 +356,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
          }
       marks.Save();
       }
-@@ -4846,8 +4851,17 @@
+@@ -4910,8 +4915,17 @@
       if (GetIndex(Current, Total)) {
          cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current);
          if (m) {
@@ -373,7 +376,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
             }
          }
       }
-@@ -4903,7 +4917,7 @@
+@@ -4967,7 +4981,7 @@
       if (!m)
          m = marks.GetNext(Current);
       if (m) {
@@ -382,10 +385,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
             m = marks.Next(m);
          if (m) {
             Goto(m->Position() - SecondsToFrames(3, FramesPerSecond()));
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/po/de_DE.po vdr/po/de_DE.po
---- vdr~/po/de_DE.po	2011-09-18 13:27:31.000000000 +0200
-+++ vdr/po/de_DE.po	2011-09-18 13:27:31.000000000 +0200
-@@ -1064,6 +1064,15 @@
+Index: vdr/po/de_DE.po
+===================================================================
+--- vdr.orig/po/de_DE.po	2011-12-11 02:29:03.000000000 +0100
++++ vdr/po/de_DE.po	2011-12-11 02:29:23.000000000 +0100
+@@ -1071,6 +1071,15 @@
  msgid "Replay"
  msgstr "Wiedergabe"
  
@@ -401,10 +405,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
  msgid "Setup.Replay$Multi speed mode"
  msgstr "Mehrstufiger Vor-/Rücklauf"
  
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/po/fr_FR.po vdr/po/fr_FR.po
---- vdr~/po/fr_FR.po	2011-09-18 13:27:31.000000000 +0200
-+++ vdr/po/fr_FR.po	2011-09-18 13:27:31.000000000 +0200
-@@ -1070,6 +1070,15 @@
+Index: vdr/po/fr_FR.po
+===================================================================
+--- vdr.orig/po/fr_FR.po	2011-12-11 02:29:03.000000000 +0100
++++ vdr/po/fr_FR.po	2011-12-11 02:29:23.000000000 +0100
+@@ -1077,6 +1077,15 @@
  msgid "Replay"
  msgstr "Lecture"
  
diff --git a/debian/patches/opt-27_ttxtsubs.dpatch b/debian/patches/opt-27_ttxtsubs.patch
similarity index 74%
rename from debian/patches/opt-27_ttxtsubs.dpatch
rename to debian/patches/opt-27_ttxtsubs.patch
index dbb4ac6..9c38b7d 100644
--- a/debian/patches/opt-27_ttxtsubs.dpatch
+++ b/debian/patches/opt-27_ttxtsubs.patch
@@ -1,15 +1,11 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-27_ttxtsubs.dpatch from the vdr-ttxtsubs plug-in version 0.2.4
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: This patch is needed for the ttxtsubs plugin.
+Description: This patch is needed for the ttxtsubs plugin.
+Origin: ttxsubs plugin
 
- at DPATCH@
-diff --git a/MANUAL b/MANUAL
-index 54e166e..57b687f 100644
---- a/MANUAL
-+++ b/MANUAL
-@@ -730,6 +730,9 @@ Version 1.6
+Index: vdr/MANUAL
+===================================================================
+--- vdr.orig/MANUAL	2011-12-11 02:29:23.000000000 +0100
++++ vdr/MANUAL	2011-12-11 02:29:26.000000000 +0100
+@@ -730,6 +730,9 @@
                           background transparency. By default the values as broadcast
                           are used.
  
@@ -18,12 +14,12 @@ index 54e166e..57b687f 100644
 +
    LNB:
  
-   SLOF               = 11700  The switching frequency (in MHz) between low and
-diff --git a/Makefile b/Makefile
-index 18d7eb9..3da4382 100644
---- a/Makefile
-+++ b/Makefile
-@@ -45,6 +45,8 @@ OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o d
+   Use DiSEqC = no        Generally turns DiSEqC support on or off.
+Index: vdr/Makefile
+===================================================================
+--- vdr.orig/Makefile	2011-12-11 02:29:03.000000000 +0100
++++ vdr/Makefile	2011-12-11 02:29:26.000000000 +0100
+@@ -47,6 +47,8 @@
         skinclassic.o skins.o skinsttng.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\
         timers.o tools.o transfer.o vdr.o videodir.o
  
@@ -32,11 +28,11 @@ index 18d7eb9..3da4382 100644
  ifndef NO_KBD
  DEFINES += -DREMOTE_KBD
  endif
-diff --git a/channels.c b/channels.c
-index b9204f2..44d4be2 100644
---- a/channels.c
-+++ b/channels.c
-@@ -378,6 +378,26 @@ void cChannel::SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *Compos
+Index: vdr/channels.c
+===================================================================
+--- vdr.orig/channels.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/channels.c	2011-12-11 02:29:26.000000000 +0100
+@@ -378,6 +378,26 @@
       }
  }
  
@@ -63,7 +59,7 @@ index b9204f2..44d4be2 100644
  void cChannel::SetCaIds(const int *CaIds)
  {
    if (caids[0] && caids[0] <= CA_USER_MAX)
-@@ -506,10 +526,17 @@ cString cChannel::ToText(const cChannel *Channel)
+@@ -506,10 +526,17 @@
          q += IntArrayToString(q, Channel->dpids, 10, Channel->dlangs, Channel->dtypes);
          }
       *q = 0;
@@ -82,7 +78,7 @@ index b9204f2..44d4be2 100644
       if (Channel->spids[0]) {
          *q++ = ';';
          q += IntArrayToString(q, Channel->spids, 10, Channel->slangs);
-@@ -678,6 +705,32 @@ bool cChannel::Parse(const char *s)
+@@ -678,6 +705,32 @@
                      }
                spids[NumSpids] = 0;
                }
@@ -115,10 +111,10 @@ index b9204f2..44d4be2 100644
             if (sscanf(tpidbuf, "%d", &tpid) != 1)
                return false;
             if (caidbuf) {
-diff --git a/channels.h b/channels.h
-index 51f9830..6e7367f 100644
---- a/channels.h
-+++ b/channels.h
+Index: vdr/channels.h
+===================================================================
+--- vdr.orig/channels.h	2011-12-10 22:22:04.000000000 +0100
++++ vdr/channels.h	2011-12-11 02:29:26.000000000 +0100
 @@ -35,6 +35,7 @@
  #define MAXDPIDS 16 // dolby (AC3 + DTS)
  #define MAXSPIDS 32 // subtitles
@@ -127,7 +123,7 @@ index 51f9830..6e7367f 100644
  
  #define MAXLANGCODE1 4 // a 3 letter language code, zero terminated
  #define MAXLANGCODE2 8 // up to two 3 letter language codes, separated by '+' and zero terminated
-@@ -71,6 +72,16 @@ public:
+@@ -71,6 +72,16 @@
    static const tChannelID InvalidID;
    };
  
@@ -144,7 +140,7 @@ index 51f9830..6e7367f 100644
  class cChannel;
  
  class cLinkChannel : public cListObject {
-@@ -115,6 +126,9 @@ private:
+@@ -115,6 +126,9 @@
    uint16_t compositionPageIds[MAXSPIDS];
    uint16_t ancillaryPageIds[MAXSPIDS];
    int tpid;
@@ -154,7 +150,7 @@ index 51f9830..6e7367f 100644
    int caids[MAXCAIDS + 1]; // list is zero-terminated
    int nid;
    int tid;
-@@ -164,6 +178,8 @@ public:
+@@ -164,6 +178,8 @@
    uint16_t CompositionPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? compositionPageIds[i] : uint16_t(0); }
    uint16_t AncillaryPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? ancillaryPageIds[i] : uint16_t(0); }
    int Tpid(void) const { return tpid; }
@@ -163,7 +159,7 @@ index 51f9830..6e7367f 100644
    const int *Caids(void) const { return caids; }
    int Ca(int Index = 0) const { return Index < MAXCAIDS ? caids[Index] : 0; }
    int Nid(void) const { return nid; }
-@@ -190,6 +206,7 @@ public:
+@@ -190,6 +206,7 @@
    void SetName(const char *Name, const char *ShortName, const char *Provider);
    void SetPortalName(const char *PortalName);
    void SetPids(int Vpid, int Ppid, int Vtype, int *Apids, int *Atypes, char ALangs[][MAXLANGCODE2], int *Dpids, int *Dtypes, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid);
@@ -171,11 +167,11 @@ index 51f9830..6e7367f 100644
    void SetCaIds(const int *CaIds); // list must be zero-terminated
    void SetCaDescriptors(int Level);
    void SetLinkChannels(cLinkChannels *LinkChannels);
-diff --git a/ci.c b/ci.c
-index 59d62ef..b024f67 100644
---- a/ci.c
-+++ b/ci.c
-@@ -1913,6 +1913,8 @@ void cCamSlot::AddChannel(const cChannel *Channel)
+Index: vdr/ci.c
+===================================================================
+--- vdr.orig/ci.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/ci.c	2011-12-11 02:29:26.000000000 +0100
+@@ -1913,6 +1913,8 @@
           AddPid(Channel->Sid(), *Dpid, STREAM_TYPE_PRIVATE);
       for (const int *Spid = Channel->Spids(); *Spid; Spid++)
           AddPid(Channel->Sid(), *Spid, STREAM_TYPE_PRIVATE);
@@ -184,7 +180,7 @@ index 59d62ef..b024f67 100644
       }
  }
  
-@@ -1936,6 +1938,9 @@ bool cCamSlot::CanDecrypt(const cChannel *Channel)
+@@ -1936,6 +1938,9 @@
           CaPmt.AddPid(*Dpid, STREAM_TYPE_PRIVATE);
       for (const int *Spid = Channel->Spids(); *Spid; Spid++)
           CaPmt.AddPid(*Spid, STREAM_TYPE_PRIVATE); 
@@ -194,11 +190,11 @@ index 59d62ef..b024f67 100644
       cas->SendPMT(&CaPmt);
       cTimeMs Timeout(QUERY_REPLY_TIMEOUT);
       do {
-diff --git a/config.c b/config.c
-index 73bb00d..982bd78 100644
---- a/config.c
-+++ b/config.c
-@@ -333,6 +333,7 @@ cSetup::cSetup(void)
+Index: vdr/config.c
+===================================================================
+--- vdr.orig/config.c	2011-12-11 02:29:23.000000000 +0100
++++ vdr/config.c	2011-12-11 02:29:26.000000000 +0100
+@@ -396,6 +396,7 @@
    MarginStop = 10;
    AudioLanguages[0] = -1;
    DisplaySubtitles = 0;
@@ -206,7 +202,7 @@ index 73bb00d..982bd78 100644
    SubtitleLanguages[0] = -1;
    SubtitleOffset = 0;
    SubtitleFgTransparency = 0;
-@@ -525,6 +526,7 @@ bool cSetup::Parse(const char *Name, const char *Value)
+@@ -593,6 +594,7 @@
    else if (!strcasecmp(Name, "MarginStop"))          MarginStop         = atoi(Value);
    else if (!strcasecmp(Name, "AudioLanguages"))      return ParseLanguages(Value, AudioLanguages);
    else if (!strcasecmp(Name, "DisplaySubtitles"))    DisplaySubtitles   = atoi(Value);
@@ -214,7 +210,7 @@ index 73bb00d..982bd78 100644
    else if (!strcasecmp(Name, "SubtitleLanguages"))   return ParseLanguages(Value, SubtitleLanguages);
    else if (!strcasecmp(Name, "SubtitleOffset"))      SubtitleOffset     = atoi(Value);
    else if (!strcasecmp(Name, "SubtitleFgTransparency")) SubtitleFgTransparency = atoi(Value);
-@@ -621,6 +623,7 @@ bool cSetup::Save(void)
+@@ -693,6 +695,7 @@
    Store("MarginStop",         MarginStop);
    StoreLanguages("AudioLanguages", AudioLanguages);
    Store("DisplaySubtitles",   DisplaySubtitles);
@@ -222,11 +218,11 @@ index 73bb00d..982bd78 100644
    StoreLanguages("SubtitleLanguages", SubtitleLanguages);
    Store("SubtitleOffset",     SubtitleOffset);
    Store("SubtitleFgTransparency", SubtitleFgTransparency);
-diff --git a/config.h b/config.h
-index c51e3df..e46b4bd 100644
---- a/config.h
-+++ b/config.h
-@@ -235,6 +235,7 @@ public:
+Index: vdr/config.h
+===================================================================
+--- vdr.orig/config.h	2011-12-11 02:29:23.000000000 +0100
++++ vdr/config.h	2011-12-11 02:29:26.000000000 +0100
+@@ -258,6 +258,7 @@
    int MarginStart, MarginStop;
    int AudioLanguages[I18N_MAX_LANGUAGES + 1];
    int DisplaySubtitles;
@@ -234,10 +230,10 @@ index c51e3df..e46b4bd 100644
    int SubtitleLanguages[I18N_MAX_LANGUAGES + 1];
    int SubtitleOffset;
    int SubtitleFgTransparency, SubtitleBgTransparency;
-diff --git a/device.c b/device.c
-index ba098d8..84bdd30 100644
---- a/device.c
-+++ b/device.c
+Index: vdr/device.c
+===================================================================
+--- vdr.orig/device.c	2011-12-11 02:29:08.000000000 +0100
++++ vdr/device.c	2011-12-11 02:29:26.000000000 +0100
 @@ -18,6 +18,7 @@
  #include "receiver.h"
  #include "status.h"
@@ -246,7 +242,7 @@ index ba098d8..84bdd30 100644
  
  // --- cLiveSubtitle ---------------------------------------------------------
  
-@@ -1250,6 +1251,13 @@ int cDevice::PlayPesPacket(const uchar *Data, int Length, bool VideoOnly)
+@@ -1268,6 +1269,13 @@
                    }
                 break;
            case 0xBD: { // private stream 1
@@ -260,7 +256,7 @@ index ba098d8..84bdd30 100644
                 int PayloadOffset = Data[8] + 9;
  
                 // Compatibility mode for old subtitles plugin:
-@@ -1409,6 +1417,7 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
+@@ -1427,6 +1435,7 @@
       tsToPesVideo.Reset();
       tsToPesAudio.Reset();
       tsToPesSubtitle.Reset();
@@ -268,7 +264,7 @@ index ba098d8..84bdd30 100644
       }
    else if (Length < TS_SIZE) {
       esyslog("ERROR: skipped %d bytes of TS fragment", Length);
-@@ -1454,6 +1463,17 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
+@@ -1472,6 +1481,17 @@
                      if (!VideoOnly || HasIBPTrickSpeed())
                         PlayTsSubtitle(Data, TS_SIZE);
                      }
@@ -286,11 +282,11 @@ index ba098d8..84bdd30 100644
                   }
                }
             else if (Pid == patPmtParser.Ppid()) {
-diff --git a/device.h b/device.h
-index fd587a8..078f080 100644
---- a/device.h
-+++ b/device.h
-@@ -538,6 +538,7 @@ private:
+Index: vdr/device.h
+===================================================================
+--- vdr.orig/device.h	2011-12-11 02:29:08.000000000 +0100
++++ vdr/device.h	2011-12-11 02:29:26.000000000 +0100
+@@ -560,6 +560,7 @@
    cTsToPes tsToPesVideo;
    cTsToPes tsToPesAudio;
    cTsToPes tsToPesSubtitle;
@@ -298,11 +294,11 @@ index fd587a8..078f080 100644
    bool isPlayingVideo;
  protected:
    const cPatPmtParser *PatPmtParser(void) const { return &patPmtParser; }
-diff --git a/menu.c b/menu.c
-index ef2bb46..3548ccd 100644
---- a/menu.c
-+++ b/menu.c
-@@ -2798,6 +2798,7 @@ void cMenuSetupDVB::Setup(void)
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:23.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:26.000000000 +0100
+@@ -2980,6 +2980,7 @@
       Add(new cMenuEditIntItem( tr("Setup.DVB$Subtitle foreground transparency"), &data.SubtitleFgTransparency, 0, 9));
       Add(new cMenuEditIntItem( tr("Setup.DVB$Subtitle background transparency"), &data.SubtitleBgTransparency, 0, 10));
       }
@@ -310,10 +306,10 @@ index ef2bb46..3548ccd 100644
  
    SetCurrent(Get(current));
    Display();
-diff --git a/pat.c b/pat.c
-index b7493ec..9262491 100644
---- a/pat.c
-+++ b/pat.c
+Index: vdr/pat.c
+===================================================================
+--- vdr.orig/pat.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/pat.c	2011-12-11 02:29:26.000000000 +0100
 @@ -13,6 +13,7 @@
  #include "libsi/section.h"
  #include "libsi/descriptor.h"
@@ -322,7 +318,7 @@ index b7493ec..9262491 100644
  
  #define PMT_SCAN_TIMEOUT  10 // seconds
  
-@@ -343,6 +344,8 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
+@@ -343,6 +344,8 @@
          char DLangs[MAXDPIDS][MAXLANGCODE2] = { "" };
          char SLangs[MAXSPIDS][MAXLANGCODE2] = { "" };
          int Tpid = 0;
@@ -331,7 +327,7 @@ index b7493ec..9262491 100644
          int NumApids = 0;
          int NumDpids = 0;
          int NumSpids = 0;
-@@ -434,8 +437,21 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
+@@ -434,8 +437,21 @@
                                      NumSpids++;
                                      }
                                   break;
@@ -354,7 +350,7 @@ index b7493ec..9262491 100644
                                   break;
                              case SI::ISO639LanguageDescriptorTag: {
                                   SI::ISO639LanguageDescriptor *ld = (SI::ISO639LanguageDescriptor *)d;
-@@ -537,6 +553,12 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
+@@ -537,6 +553,12 @@
              }
          if (Setup.UpdateChannels >= 2) {
             Channel->SetPids(Vpid, Ppid, Vtype, Apids, Atypes, ALangs, Dpids, Dtypes, DLangs, Spids, SLangs, Tpid);
@@ -367,11 +363,11 @@ index b7493ec..9262491 100644
             Channel->SetCaIds(CaDescriptors->CaIds());
             Channel->SetSubtitlingDescriptors(SubtitlingTypes, CompositionPageIds, AncillaryPageIds);
             }
-diff --git a/po/ca_ES.po b/po/ca_ES.po
-index b104fea..1c09d79 100644
---- a/po/ca_ES.po
-+++ b/po/ca_ES.po
-@@ -950,6 +950,9 @@ msgstr "Transpar
+Index: vdr/po/ca_ES.po
+===================================================================
+--- vdr.orig/po/ca_ES.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/ca_ES.po	2011-12-11 02:29:26.000000000 +0100
+@@ -950,6 +950,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparència fons subtítols"
  
@@ -381,11 +377,11 @@ index b104fea..1c09d79 100644
  msgid "LNB"
  msgstr "Configuració de l'LNB"
  
-diff --git a/po/cs_CZ.po b/po/cs_CZ.po
-index bcafac7..370609f 100644
---- a/po/cs_CZ.po
-+++ b/po/cs_CZ.po
-@@ -949,6 +949,9 @@ msgstr "Průhlednost písma titulků"
+Index: vdr/po/cs_CZ.po
+===================================================================
+--- vdr.orig/po/cs_CZ.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/cs_CZ.po	2011-12-11 02:29:26.000000000 +0100
+@@ -949,6 +949,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Průhlednost pozadí titulků"
  
@@ -395,11 +391,11 @@ index bcafac7..370609f 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/da_DK.po b/po/da_DK.po
-index 81b11eb..5daca8d 100644
---- a/po/da_DK.po
-+++ b/po/da_DK.po
-@@ -947,6 +947,9 @@ msgstr "Undertekst forgrundsgennemsigtighed"
+Index: vdr/po/da_DK.po
+===================================================================
+--- vdr.orig/po/da_DK.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/da_DK.po	2011-12-11 02:29:26.000000000 +0100
+@@ -947,6 +947,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Undertekst baggrundsgennemsigtighed"
  
@@ -409,11 +405,11 @@ index 81b11eb..5daca8d 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/de_DE.po b/po/de_DE.po
-index 6d5b822..0a00a5a 100644
---- a/po/de_DE.po
-+++ b/po/de_DE.po
-@@ -947,6 +947,9 @@ msgstr "Untertitel-Transparenz Vordergrund"
+Index: vdr/po/de_DE.po
+===================================================================
+--- vdr.orig/po/de_DE.po	2011-12-11 02:29:23.000000000 +0100
++++ vdr/po/de_DE.po	2011-12-11 02:29:26.000000000 +0100
+@@ -947,6 +947,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Untertitel-Transparenz Hintergrund"
  
@@ -423,11 +419,11 @@ index 6d5b822..0a00a5a 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/el_GR.po b/po/el_GR.po
-index 9756ea7..5d4d6ea 100644
---- a/po/el_GR.po
-+++ b/po/el_GR.po
-@@ -947,6 +947,9 @@ msgstr ""
+Index: vdr/po/el_GR.po
+===================================================================
+--- vdr.orig/po/el_GR.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/el_GR.po	2011-12-11 02:29:26.000000000 +0100
+@@ -947,6 +947,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr ""
  
@@ -437,11 +433,11 @@ index 9756ea7..5d4d6ea 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/es_ES.po b/po/es_ES.po
-index 193e75e..1f36b60 100644
---- a/po/es_ES.po
-+++ b/po/es_ES.po
-@@ -948,6 +948,9 @@ msgstr "Transparencia primer plano subt
+Index: vdr/po/es_ES.po
+===================================================================
+--- vdr.orig/po/es_ES.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/es_ES.po	2011-12-11 02:29:26.000000000 +0100
+@@ -948,6 +948,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparencia fondo subtítulos"
  
@@ -451,11 +447,11 @@ index 193e75e..1f36b60 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/et_EE.po b/po/et_EE.po
-index 49794dd..83ff319 100644
---- a/po/et_EE.po
-+++ b/po/et_EE.po
-@@ -947,6 +947,9 @@ msgstr "Subtiitri l
+Index: vdr/po/et_EE.po
+===================================================================
+--- vdr.orig/po/et_EE.po	2011-12-11 02:29:03.000000000 +0100
++++ vdr/po/et_EE.po	2011-12-11 02:29:26.000000000 +0100
+@@ -947,6 +947,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Subtiitri tausta läbipaistvus"
  
@@ -465,11 +461,11 @@ index 49794dd..83ff319 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/fi_FI.po b/po/fi_FI.po
-index b093e88..4abf6a8 100644
---- a/po/fi_FI.po
-+++ b/po/fi_FI.po
-@@ -950,6 +950,9 @@ msgstr "Tekstityksen läpinäkyvyys"
+Index: vdr/po/fi_FI.po
+===================================================================
+--- vdr.orig/po/fi_FI.po	2011-12-11 02:29:03.000000000 +0100
++++ vdr/po/fi_FI.po	2011-12-11 02:29:26.000000000 +0100
+@@ -950,6 +950,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Tekstityksen taustan läpinäkyvyys"
  
@@ -479,11 +475,11 @@ index b093e88..4abf6a8 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/fr_FR.po b/po/fr_FR.po
-index b5c5120..86a961a 100644
---- a/po/fr_FR.po
-+++ b/po/fr_FR.po
-@@ -953,6 +953,9 @@ msgstr "Transparence de l'avant-plan"
+Index: vdr/po/fr_FR.po
+===================================================================
+--- vdr.orig/po/fr_FR.po	2011-12-11 02:29:23.000000000 +0100
++++ vdr/po/fr_FR.po	2011-12-11 02:29:26.000000000 +0100
+@@ -953,6 +953,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparence du fond"
  
@@ -493,11 +489,11 @@ index b5c5120..86a961a 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/hr_HR.po b/po/hr_HR.po
-index ed519a2..43f2ea5 100644
---- a/po/hr_HR.po
-+++ b/po/hr_HR.po
-@@ -949,6 +949,9 @@ msgstr "Transparentnost titla"
+Index: vdr/po/hr_HR.po
+===================================================================
+--- vdr.orig/po/hr_HR.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/hr_HR.po	2011-12-11 02:29:26.000000000 +0100
+@@ -949,6 +949,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparentnost pozadine titla"
  
@@ -507,11 +503,11 @@ index ed519a2..43f2ea5 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/hu_HU.po b/po/hu_HU.po
-index 17b905f..06f4505 100644
---- a/po/hu_HU.po
-+++ b/po/hu_HU.po
-@@ -950,6 +950,9 @@ msgstr "Felirat transzparenci
+Index: vdr/po/hu_HU.po
+===================================================================
+--- vdr.orig/po/hu_HU.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/hu_HU.po	2011-12-11 02:29:26.000000000 +0100
+@@ -950,6 +950,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Felirat hátterének transzparenciája"
  
@@ -521,11 +517,11 @@ index 17b905f..06f4505 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/it_IT.po b/po/it_IT.po
-index 501300e..e0227d3 100644
---- a/po/it_IT.po
-+++ b/po/it_IT.po
-@@ -954,6 +954,9 @@ msgstr "Trasparenza sottotitoli"
+Index: vdr/po/it_IT.po
+===================================================================
+--- vdr.orig/po/it_IT.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/it_IT.po	2011-12-11 02:29:26.000000000 +0100
+@@ -954,6 +954,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Trasparenza sfondo sottotitoli"
  
@@ -535,11 +531,11 @@ index 501300e..e0227d3 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/lt_LT.po b/po/lt_LT.po
-index 6cb1faa..4efc707 100644
---- a/po/lt_LT.po
-+++ b/po/lt_LT.po
-@@ -947,6 +947,9 @@ msgstr "Subtitrų fonto permatomumas"
+Index: vdr/po/lt_LT.po
+===================================================================
+--- vdr.orig/po/lt_LT.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/lt_LT.po	2011-12-11 02:29:26.000000000 +0100
+@@ -947,6 +947,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Subtitrų fono permatomumas"
  
@@ -549,11 +545,11 @@ index 6cb1faa..4efc707 100644
  msgid "LNB"
  msgstr "Konverteris (LNB)"
  
-diff --git a/po/nl_NL.po b/po/nl_NL.po
-index ae2b85e..34a71e9 100644
---- a/po/nl_NL.po
-+++ b/po/nl_NL.po
-@@ -951,6 +951,9 @@ msgstr "Transparantie voorgrond ondertiteling"
+Index: vdr/po/nl_NL.po
+===================================================================
+--- vdr.orig/po/nl_NL.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/nl_NL.po	2011-12-11 02:29:26.000000000 +0100
+@@ -951,6 +951,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparantie achtergrond ondertiteling"
  
@@ -563,11 +559,11 @@ index ae2b85e..34a71e9 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/nn_NO.po b/po/nn_NO.po
-index 8ec8dfb..9c129ee 100644
---- a/po/nn_NO.po
-+++ b/po/nn_NO.po
-@@ -948,6 +948,9 @@ msgstr ""
+Index: vdr/po/nn_NO.po
+===================================================================
+--- vdr.orig/po/nn_NO.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/nn_NO.po	2011-12-11 02:29:26.000000000 +0100
+@@ -948,6 +948,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr ""
  
@@ -577,11 +573,11 @@ index 8ec8dfb..9c129ee 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/pl_PL.po b/po/pl_PL.po
-index a5c1b47..9645eca 100644
---- a/po/pl_PL.po
-+++ b/po/pl_PL.po
-@@ -948,6 +948,9 @@ msgstr "Prze
+Index: vdr/po/pl_PL.po
+===================================================================
+--- vdr.orig/po/pl_PL.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/pl_PL.po	2011-12-11 02:29:26.000000000 +0100
+@@ -948,6 +948,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Prze¼rocze podtytu³ów: T³o"
  
@@ -591,11 +587,11 @@ index a5c1b47..9645eca 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/pt_PT.po b/po/pt_PT.po
-index c443312..3c108ea 100644
---- a/po/pt_PT.po
-+++ b/po/pt_PT.po
-@@ -948,6 +948,9 @@ msgstr "Transpar
+Index: vdr/po/pt_PT.po
+===================================================================
+--- vdr.orig/po/pt_PT.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/pt_PT.po	2011-12-11 02:29:26.000000000 +0100
+@@ -948,6 +948,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparência de fundo das legendas"
  
@@ -605,11 +601,11 @@ index c443312..3c108ea 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/ro_RO.po b/po/ro_RO.po
-index f8c5a1e..35ec9ec 100644
---- a/po/ro_RO.po
-+++ b/po/ro_RO.po
-@@ -950,6 +950,9 @@ msgstr "Transparen
+Index: vdr/po/ro_RO.po
+===================================================================
+--- vdr.orig/po/ro_RO.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/ro_RO.po	2011-12-11 02:29:26.000000000 +0100
+@@ -950,6 +950,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparenþa fundalului subtitrãrii"
  
@@ -619,11 +615,11 @@ index f8c5a1e..35ec9ec 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/ru_RU.po b/po/ru_RU.po
-index e683b8b..b90e565 100644
---- a/po/ru_RU.po
-+++ b/po/ru_RU.po
-@@ -948,6 +948,9 @@ msgstr "
+Index: vdr/po/ru_RU.po
+===================================================================
+--- vdr.orig/po/ru_RU.po	2011-12-11 02:29:03.000000000 +0100
++++ vdr/po/ru_RU.po	2011-12-11 02:29:26.000000000 +0100
+@@ -948,6 +948,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "¿àÞ×àÐçÝÞáâì äÞÝÐ áãÑâØâàÞÒ"
  
@@ -633,11 +629,11 @@ index e683b8b..b90e565 100644
  msgid "LNB"
  msgstr "ºÞÝÒÕàâÕà"
  
-diff --git a/po/sk_SK.po b/po/sk_SK.po
-index 46edef5..aabb641 100644
---- a/po/sk_SK.po
-+++ b/po/sk_SK.po
-@@ -947,6 +947,9 @@ msgstr "Prieh
+Index: vdr/po/sk_SK.po
+===================================================================
+--- vdr.orig/po/sk_SK.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/sk_SK.po	2011-12-11 02:29:26.000000000 +0100
+@@ -947,6 +947,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Priehµadnos» pozadia titulkov"
  
@@ -647,11 +643,11 @@ index 46edef5..aabb641 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/sl_SI.po b/po/sl_SI.po
-index 89c6923..8ef4387 100644
---- a/po/sl_SI.po
-+++ b/po/sl_SI.po
-@@ -948,6 +948,9 @@ msgstr "Transparentnost podnapisov"
+Index: vdr/po/sl_SI.po
+===================================================================
+--- vdr.orig/po/sl_SI.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/sl_SI.po	2011-12-11 02:29:26.000000000 +0100
+@@ -948,6 +948,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparentnost ozadja podnapisov"
  
@@ -661,11 +657,11 @@ index 89c6923..8ef4387 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/sv_SE.po b/po/sv_SE.po
-index 150f95e..020c64d 100644
---- a/po/sv_SE.po
-+++ b/po/sv_SE.po
-@@ -950,6 +950,9 @@ msgstr "Transparent f
+Index: vdr/po/sv_SE.po
+===================================================================
+--- vdr.orig/po/sv_SE.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/sv_SE.po	2011-12-11 02:29:26.000000000 +0100
+@@ -950,6 +950,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Transparent bakgrund textremsa"
  
@@ -675,11 +671,11 @@ index 150f95e..020c64d 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/tr_TR.po b/po/tr_TR.po
-index 194943b..338c649 100644
---- a/po/tr_TR.po
-+++ b/po/tr_TR.po
-@@ -947,6 +947,9 @@ msgstr "Altyaz
+Index: vdr/po/tr_TR.po
+===================================================================
+--- vdr.orig/po/tr_TR.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/tr_TR.po	2011-12-11 02:29:26.000000000 +0100
+@@ -947,6 +947,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Altyazý arka þeffaflýk"
  
@@ -689,11 +685,11 @@ index 194943b..338c649 100644
  msgid "LNB"
  msgstr "LNB"
  
-diff --git a/po/uk_UA.po b/po/uk_UA.po
-index 433ec70..c0a7947 100644
---- a/po/uk_UA.po
-+++ b/po/uk_UA.po
-@@ -947,6 +947,9 @@ msgstr "Прозорість переднього плану субтитрів"
+Index: vdr/po/uk_UA.po
+===================================================================
+--- vdr.orig/po/uk_UA.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/uk_UA.po	2011-12-11 02:29:26.000000000 +0100
+@@ -947,6 +947,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "Прозорість заднього плану субтитрів"
  
@@ -703,11 +699,11 @@ index 433ec70..c0a7947 100644
  msgid "LNB"
  msgstr "Конвертер"
  
-diff --git a/po/zh_CN.po b/po/zh_CN.po
-index c28fe88..8a594e3 100644
---- a/po/zh_CN.po
-+++ b/po/zh_CN.po
-@@ -950,6 +950,9 @@ msgstr "字幕前景透明度"
+Index: vdr/po/zh_CN.po
+===================================================================
+--- vdr.orig/po/zh_CN.po	2011-12-10 22:22:04.000000000 +0100
++++ vdr/po/zh_CN.po	2011-12-11 02:29:26.000000000 +0100
+@@ -950,6 +950,9 @@
  msgid "Setup.DVB$Subtitle background transparency"
  msgstr "字幕背景透明度"
  
@@ -717,11 +713,11 @@ index c28fe88..8a594e3 100644
  msgid "LNB"
  msgstr "切换器设置"
  
-diff --git a/receiver.c b/receiver.c
-index 6a9ba04..a5c8967 100644
---- a/receiver.c
-+++ b/receiver.c
-@@ -81,7 +81,8 @@ bool cReceiver::SetPids(const cChannel *Channel)
+Index: vdr/receiver.c
+===================================================================
+--- vdr.orig/receiver.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/receiver.c	2011-12-11 02:29:26.000000000 +0100
+@@ -81,7 +81,8 @@
              (Channel->Ppid() == Channel->Vpid() || AddPid(Channel->Ppid())) &&
              AddPids(Channel->Apids()) &&
              AddPids(Channel->Dpids()) &&
@@ -731,11 +727,11 @@ index 6a9ba04..a5c8967 100644
       }
  return true;
  }
-diff --git a/remux.c b/remux.c
-index 78ab294..4f9950f 100644
---- a/remux.c
-+++ b/remux.c
-@@ -219,6 +219,29 @@ int cPatPmtGenerator::MakeSubtitlingDescriptor(uchar *Target, const char *Langua
+Index: vdr/remux.c
+===================================================================
+--- vdr.orig/remux.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/remux.c	2011-12-11 02:29:26.000000000 +0100
+@@ -219,6 +219,29 @@
    return i;
  }
  
@@ -765,7 +761,7 @@ index 78ab294..4f9950f 100644
  int cPatPmtGenerator::MakeLanguageDescriptor(uchar *Target, const char *Language)
  {
    int i = 0;
-@@ -306,6 +329,7 @@ void cPatPmtGenerator::GeneratePmt(const cChannel *Channel)
+@@ -306,6 +329,7 @@
    if (Channel) {
       int Vpid = Channel->Vpid();
       int Ppid = Channel->Ppid();
@@ -773,7 +769,7 @@ index 78ab294..4f9950f 100644
       uchar *p = buf;
       int i = 0;
       p[i++] = 0x02; // table id
-@@ -338,6 +362,10 @@ void cPatPmtGenerator::GeneratePmt(const cChannel *Channel)
+@@ -338,6 +362,10 @@
           i += MakeStream(buf + i, 0x06, Channel->Spid(n));
           i += MakeSubtitlingDescriptor(buf + i, Channel->Slang(n), Channel->SubtitlingType(n), Channel->CompositionPageId(n), Channel->AncillaryPageId(n));
           }
@@ -784,7 +780,7 @@ index 78ab294..4f9950f 100644
  
       int sl = i - SectionLength - 2 + 4; // -2 = SectionLength storage, +4 = length of CRC
       buf[SectionLength] |= (sl >> 8) & 0x0F;
-@@ -411,6 +439,7 @@ void cPatPmtParser::Reset(void)
+@@ -411,6 +439,7 @@
    pmtPid = -1;
    vpid = vtype = 0;
    ppid = 0;
@@ -792,7 +788,7 @@ index 78ab294..4f9950f 100644
  }
  
  void cPatPmtParser::ParsePat(const uchar *Data, int Length)
-@@ -496,11 +525,13 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
+@@ -496,11 +525,13 @@
       int NumSpids = 0;
       vpid = vtype = 0;
       ppid = 0;
@@ -806,7 +802,7 @@ index 78ab294..4f9950f 100644
       SI::PMT::Stream stream;
       for (SI::Loop::Iterator it; Pmt.streamLoop.getNext(stream, it); ) {
           dbgpatpmt("     stream type = %02X, pid = %d", stream.getStreamType(), stream.getPid());
-@@ -599,6 +630,28 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
+@@ -599,6 +630,28 @@
                                      spids[NumSpids]= 0;
                                      }
                                   break;
@@ -835,11 +831,11 @@ index 78ab294..4f9950f 100644
                              case SI::ISO639LanguageDescriptorTag: {
                                   SI::ISO639LanguageDescriptor *ld = (SI::ISO639LanguageDescriptor *)d;
                                   dbgpatpmt(" '%s'", ld->languageCode);
-diff --git a/remux.h b/remux.h
-index b882279..4af51e5 100644
---- a/remux.h
-+++ b/remux.h
-@@ -174,6 +174,7 @@ protected:
+Index: vdr/remux.h
+===================================================================
+--- vdr.orig/remux.h	2011-12-10 22:22:04.000000000 +0100
++++ vdr/remux.h	2011-12-11 02:29:26.000000000 +0100
+@@ -174,6 +174,7 @@
    int MakeStream(uchar *Target, uchar Type, int Pid);
    int MakeAC3Descriptor(uchar *Target, uchar Type);
    int MakeSubtitlingDescriptor(uchar *Target, const char *Language, uchar SubtitlingType, uint16_t CompositionPageId, uint16_t AncillaryPageId);
@@ -847,7 +843,7 @@ index b882279..4af51e5 100644
    int MakeLanguageDescriptor(uchar *Target, const char *Language);
    int MakeCRC(uchar *Target, const uchar *Data, int Length);
    void GeneratePmtPid(const cChannel *Channel);
-@@ -219,6 +220,7 @@ private:
+@@ -219,6 +220,7 @@
    int vpid;
    int ppid;
    int vtype;
@@ -855,7 +851,7 @@ index b882279..4af51e5 100644
    int apids[MAXAPIDS + 1]; // list is zero-terminated
    int atypes[MAXAPIDS + 1]; // list is zero-terminated
    char alangs[MAXAPIDS][MAXLANGCODE2];
-@@ -231,6 +233,8 @@ private:
+@@ -231,6 +233,8 @@
    uint16_t compositionPageIds[MAXSPIDS];
    uint16_t ancillaryPageIds[MAXSPIDS];
    bool updatePrimaryDevice;
@@ -864,7 +860,7 @@ index b882279..4af51e5 100644
  protected:
    int SectionLength(const uchar *Data, int Length) { return (Length >= 3) ? ((int(Data[1]) & 0x0F) << 8)| Data[2] : 0; }
  public:
-@@ -263,6 +267,9 @@ public:
+@@ -263,6 +267,9 @@
    int Vtype(void) const { return vtype; }
         ///< Returns the video stream type as defined by the current PMT, or 0 if no video
         ///< stream type has been detected, yet.
@@ -874,7 +870,7 @@ index b882279..4af51e5 100644
    const int *Apids(void) const { return apids; }
    const int *Dpids(void) const { return dpids; }
    const int *Spids(void) const { return spids; }
-@@ -277,6 +284,8 @@ public:
+@@ -277,6 +284,8 @@
    uchar SubtitlingType(int i) const { return (0 <= i && i < MAXSPIDS) ? subtitlingTypes[i] : uchar(0); }
    uint16_t CompositionPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? compositionPageIds[i] : uint16_t(0); }
    uint16_t AncillaryPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? ancillaryPageIds[i] : uint16_t(0); }
@@ -883,11 +879,11 @@ index b882279..4af51e5 100644
    };
  
  // TS to PES converter:
-diff --git a/vdr.5 b/vdr.5
-index c46a2bf..96e142a 100644
---- a/vdr.5
-+++ b/vdr.5
-@@ -225,6 +225,12 @@ by an '=' sign, as in
+Index: vdr/vdr.5
+===================================================================
+--- vdr.orig/vdr.5	2011-12-10 22:22:04.000000000 +0100
++++ vdr/vdr.5	2011-12-11 02:29:26.000000000 +0100
+@@ -225,6 +225,12 @@
  
  .B ...:201;2001=deu,2002=eng:...
  
@@ -900,11 +896,10 @@ index c46a2bf..96e142a 100644
  .TP
  .B Conditional access
  A hexadecimal integer defining how this channel can be accessed:
-diff --git a/vdrttxtsubshooks.c b/vdrttxtsubshooks.c
-new file mode 100644
-index 0000000..2471788
---- /dev/null
-+++ b/vdrttxtsubshooks.c
+Index: vdr/vdrttxtsubshooks.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ vdr/vdrttxtsubshooks.c	2011-12-11 02:29:26.000000000 +0100
 @@ -0,0 +1,63 @@
 +/*
 + * vdr-ttxtsubs - A plugin for the Linux Video Disk Recorder
@@ -969,11 +964,10 @@ index 0000000..2471788
 +  return &gProxy;
 +}
 +
-diff --git a/vdrttxtsubshooks.h b/vdrttxtsubshooks.h
-new file mode 100644
-index 0000000..2f97969
---- /dev/null
-+++ b/vdrttxtsubshooks.h
+Index: vdr/vdrttxtsubshooks.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ vdr/vdrttxtsubshooks.h	2011-12-11 02:29:26.000000000 +0100
 @@ -0,0 +1,46 @@
 +/*
 + * vdr-ttxtsubs - A plugin for the Linux Video Disk Recorder
diff --git a/debian/patches/opt-29_syncearly.dpatch b/debian/patches/opt-29_syncearly.patch
similarity index 95%
rename from debian/patches/opt-29_syncearly.dpatch
rename to debian/patches/opt-29_syncearly.patch
index 7f4953c..cd862bd 100644
--- a/debian/patches/opt-29_syncearly.dpatch
+++ b/debian/patches/opt-29_syncearly.patch
@@ -1,14 +1,7 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-29_syncearly.dpatch by Reinhard Nissl <rnissl at gmx.de>
-##
-## vdr-freak at vdrportal.de:
-##   - extracted from extensions patch
-##     http://vdrportal.de/board/thread.php?postid=668434#post668434
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Speed up zapping channels.
+Description: Speed up zapping channels.
+Author: vdr-freak at vdrportal.de:
+Origin: http://vdrportal.de/board/thread.php?postid=668434#post668434
 
- at DPATCH@
 diff -ruN vdr-1.5.11/config.c vdr-1.5.11-syncearly/config.c
 --- vdr-1.5.11/config.c	2007-10-06 16:28:58.000000000 +0200
 +++ vdr-1.5.11-syncearly/config.c	2007-11-11 19:44:35.000000000 +0100
diff --git a/debian/patches/opt-31-x_reelchannelscan.dpatch b/debian/patches/opt-31-x_reelchannelscan.dpatch
deleted file mode 100644
index 07c1a23..0000000
--- a/debian/patches/opt-31-x_reelchannelscan.dpatch
+++ /dev/null
@@ -1,32 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-31_reelchannelscan.dpatch by Tobias Grimm <tg at e-tobi.net>
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - adapted to VDR-1.5.8
-## Tobias Grimm <tg at e-tobi.net>:
-##   - adapted to VDR-1.5.16
-##   - adapted to VDR-1.5.18
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Makes VDR aware of the reelchannelscan plugin.
-
- at DPATCH@
-diff -urNad vdr-1.5.18~/vdr.c vdr-1.5.18/vdr.c
---- vdr-1.5.18~/vdr.c	2008-03-14 14:22:39.000000000 +0100
-+++ vdr-1.5.18/vdr.c	2008-03-16 15:59:55.000000000 +0100
-@@ -731,7 +731,14 @@
-         // Make sure we have a visible programme in case device usage has changed:
-         if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) {
-            static time_t lastTime = 0;
--           if ((!Menu || CheckHasProgramme) && Now - lastTime > MINCHANNELWAIT) { // !Menu to avoid interfering with the CAM if a CAM menu is open
-+
-+           bool reelChannelscanIsScanningOnReceivingDevice;
-+           if (!cPluginManager::CallFirstService("ReelChannelscan::IsScanningOnReceivingDevice", &reelChannelscanIsScanningOnReceivingDevice))
-+           {
-+             reelChannelscanIsScanningOnReceivingDevice = false;
-+           }
-+
-+           if (!reelChannelscanIsScanningOnReceivingDevice && (!Menu || CheckHasProgramme) && Now - lastTime > MINCHANNELWAIT) { // !Menu to avoid interfering with the CAM if a CAM menu is open
-               cChannel *Channel = Channels.GetByNumber(cDevice::CurrentChannel());
-               if (Channel && (Channel->Vpid() || Channel->Apid(0))) {
-                  if (!Channels.SwitchTo(cDevice::CurrentChannel()) // try to switch to the original channel...
diff --git a/debian/patches/opt-35_setup-show-valid.dpatch b/debian/patches/opt-35_setup-show-valid.patch
similarity index 84%
rename from debian/patches/opt-35_setup-show-valid.dpatch
rename to debian/patches/opt-35_setup-show-valid.patch
index 61f4c3f..76b417f 100644
--- a/debian/patches/opt-35_setup-show-valid.dpatch
+++ b/debian/patches/opt-35_setup-show-valid.patch
@@ -1,14 +1,7 @@
-#!/bin/sh /usr/share/dpatch/dpatch-run
+Description: Show if there is a valid setup value left or right with < and >.
+Author: ravemax at vdrportal.de
+Origin: http://vdrportal.de/board/thread.php?threadid=25984
 
-## opt-35_setup-show-valid.dpatch by ravemax at vdrportal.de
-##
-## downloaded from http://vdrportal.de/board/thread.php?threadid=25984
-## original file: setup_option-show_valid_input.patch.bz2
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Show if there is a valid setup value left or right with < and >.
-
- at DPATCH@
 diff -ur vdr_orig/menuitems.c vdr_patched/menuitems.c
 --- vdr_orig/menuitems.c	2004-12-05 17:59:12.452421104 +0100
 +++ vdr_patched/menuitems.c	2004-12-05 18:01:54.726751656 +0100
diff --git a/debian/patches/opt-37-x_menuorg.dpatch b/debian/patches/opt-37-x_menuorg.patch
similarity index 87%
rename from debian/patches/opt-37-x_menuorg.dpatch
rename to debian/patches/opt-37-x_menuorg.patch
index a91c426..a8355f0 100644
--- a/debian/patches/opt-37-x_menuorg.dpatch
+++ b/debian/patches/opt-37-x_menuorg.patch
@@ -1,17 +1,14 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-37-x_menuorg.dpatch by Tobias Grimm <tg at e-tobi.net>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: This patch is required by the MenuOrg plugin. It adds a service
-## DP: interface, that can be implemented by plugins to reorganize 
-## DP: VDR's main menu entries with the ability to create custom sub
-## DP: menus.
-## DP: This is version 0.4.s of the patch
+Description: This patch is required by the MenuOrg plugin. It adds a service
+ interface, that can be implemented by plugins to reorganize 
+ VDR's main menu entries with the ability to create custom sub
+ menus.
+ This is version 0.4.s of the patch
+Author: Tobias Grimm <tg at e-tobi.net>
 
- at DPATCH@
-diff -Nur vdr-1.5.18.orig/mainmenuitemsprovider.h vdr-1.5.18/mainmenuitemsprovider.h
---- vdr-1.5.18.orig/mainmenuitemsprovider.h	1970-01-01 01:00:00.000000000 +0100
-+++ vdr-1.5.18/mainmenuitemsprovider.h	2008-03-25 21:17:28.000000000 +0100
+Index: vdr/mainmenuitemsprovider.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ vdr/mainmenuitemsprovider.h	2011-12-11 02:29:31.000000000 +0100
 @@ -0,0 +1,60 @@
 +/*
 + * vdr-menuorg - A plugin for the Linux Video Disk Recorder
@@ -73,10 +70,11 @@ diff -Nur vdr-1.5.18.orig/mainmenuitemsprovider.h vdr-1.5.18/mainmenuitemsprovid
 +};
 +
 +#endif //__MAINMENUITEMSPROVIDER_H
-diff -Nur vdr-1.5.18.orig/menu.c vdr-1.5.18/menu.c
---- vdr-1.5.18.orig/menu.c	2008-03-16 12:15:28.000000000 +0100
-+++ vdr-1.5.18/menu.c	2008-03-25 21:17:28.000000000 +0100
-@@ -29,6 +29,7 @@
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:26.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:31.000000000 +0100
+@@ -32,6 +32,7 @@
  #include "timers.h"
  #include "transfer.h"
  #include "videodir.h"
@@ -84,8 +82,8 @@ diff -Nur vdr-1.5.18.orig/menu.c vdr-1.5.18/menu.c
  
  #define MAXWAIT4EPGINFO   3 // seconds
  #define MODETIMEOUT       3 // seconds
-@@ -2969,6 +2970,9 @@
-   cancelEditingItem = NULL;
+@@ -3497,6 +3498,9 @@
+   cancelFileTransferItem = NULL;
    stopRecordingItem = NULL;
    recordControlsState = 0;
 +
@@ -94,7 +92,7 @@ diff -Nur vdr-1.5.18.orig/menu.c vdr-1.5.18/menu.c
    Set();
  
    // Initial submenus:
-@@ -2997,6 +3001,29 @@
+@@ -3525,6 +3529,29 @@
    SetTitle("VDR");
    SetHasHotkeys();
  
@@ -124,7 +122,7 @@ diff -Nur vdr-1.5.18.orig/menu.c vdr-1.5.18/menu.c
    // Basic menu items:
  
    Add(new cOsdItem(hk(tr("Schedule")),   osSchedule));
-@@ -3023,6 +3050,8 @@
+@@ -3551,6 +3578,8 @@
    if (Commands.Count())
       Add(new cOsdItem(hk(tr("Commands")),  osCommands));
  
@@ -133,7 +131,7 @@ diff -Nur vdr-1.5.18.orig/menu.c vdr-1.5.18/menu.c
    Update(true);
  
    Display();
-@@ -3135,6 +3164,41 @@
+@@ -3682,6 +3711,41 @@
                           state = osEnd;
                         }
                         break;
@@ -175,9 +173,10 @@ diff -Nur vdr-1.5.18.orig/menu.c vdr-1.5.18/menu.c
      default: switch (Key) {
                 case kRecord:
                 case kRed:    if (!HadSubMenu)
-diff -Nur vdr-1.5.18.orig/menuorgpatch.h vdr-1.5.18/menuorgpatch.h
---- vdr-1.5.18.orig/menuorgpatch.h	1970-01-01 01:00:00.000000000 +0100
-+++ vdr-1.5.18/menuorgpatch.h	2008-03-25 21:17:28.000000000 +0100
+Index: vdr/menuorgpatch.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ vdr/menuorgpatch.h	2011-12-11 02:29:31.000000000 +0100
 @@ -0,0 +1,100 @@
 +/*
 + * vdr-menuorg - A plugin for the Linux Video Disk Recorder
diff --git a/debian/patches/opt-38_disableDoubleEpgEntrys.dpatch b/debian/patches/opt-38_disableDoubleEpgEntrys.patch
similarity index 78%
rename from debian/patches/opt-38_disableDoubleEpgEntrys.dpatch
rename to debian/patches/opt-38_disableDoubleEpgEntrys.patch
index a96fdfa..b705f52 100644
--- a/debian/patches/opt-38_disableDoubleEpgEntrys.dpatch
+++ b/debian/patches/opt-38_disableDoubleEpgEntrys.patch
@@ -1,26 +1,12 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-38_disableDoubleEpgEntrys.dpatch by Emanuel Wontorra <hoerzu2vdr at wontorra.net>
-## http://vdrportal.de/board/thread.php?postid=317214#post317214
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - adapted to VDR-1.5.1
-##   - adapted to VDR-1.5.7
-##     http://toms-cafe.de/vdr/download/vdr-disableDoubleEpgEntrys_0.7.3b-1.5.7.diff
-## Tobias Grimm <tg at e-tobi.net>:
-##   - added buffer overflow fix from:
-##     http://vdrportal.de/board/thread.php?postid=683477#post683477
-## Thomas Günther <tom at toms-cafe.de>:
-##   - added French language texts (thanks to Michaël Nival)
-##     http://toms-cafe.de/vdr/download/vdr-disableDoubleEpgEntrys_0.7.3b-1.6.0.diff
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: This patch suppresses double EPG entries.
+Description: This patch suppresses double EPG entries.
+Author: Emanuel Wontorra <hoerzu2vdr at wontorra.net>
+Origin: http://vdrportal.de/board/thread.php?postid=317214#post317214
 
- at DPATCH@
-diff -Naurp vdr-1.6.0/config.c vdr-1.6.0-disableDoubleEpgEntrys/config.c
---- vdr-1.6.0/config.c	2008-02-17 13:39:00.000000000 +0000
-+++ vdr-1.6.0-disableDoubleEpgEntrys/config.c	2009-03-29 23:25:00.000000000 +0000
-@@ -241,6 +241,10 @@ cSetup::cSetup(void)
+Index: vdr/config.c
+===================================================================
+--- vdr.orig/config.c	2011-12-11 02:29:26.000000000 +0100
++++ vdr/config.c	2011-12-11 02:29:35.000000000 +0100
+@@ -402,6 +402,10 @@
    SubtitleFgTransparency = 0;
    SubtitleBgTransparency = 0;
    EPGLanguages[0] = -1;
@@ -31,7 +17,7 @@ diff -Naurp vdr-1.6.0/config.c vdr-1.6.0-disableDoubleEpgEntrys/config.c
    EPGScanTimeout = 5;
    EPGBugfixLevel = 3;
    EPGLinger = 0;
-@@ -414,6 +418,10 @@ bool cSetup::Parse(const char *Name, con
+@@ -600,6 +604,10 @@
    else if (!strcasecmp(Name, "SubtitleFgTransparency")) SubtitleFgTransparency = atoi(Value);
    else if (!strcasecmp(Name, "SubtitleBgTransparency")) SubtitleBgTransparency = atoi(Value);
    else if (!strcasecmp(Name, "EPGLanguages"))        return ParseLanguages(Value, EPGLanguages);
@@ -42,7 +28,7 @@ diff -Naurp vdr-1.6.0/config.c vdr-1.6.0-disableDoubleEpgEntrys/config.c
    else if (!strcasecmp(Name, "EPGScanTimeout"))      EPGScanTimeout     = atoi(Value);
    else if (!strcasecmp(Name, "EPGBugfixLevel"))      EPGBugfixLevel     = atoi(Value);
    else if (!strcasecmp(Name, "EPGLinger"))           EPGLinger          = atoi(Value);
-@@ -497,6 +505,10 @@ bool cSetup::Save(void)
+@@ -701,6 +709,10 @@
    Store("SubtitleFgTransparency", SubtitleFgTransparency);
    Store("SubtitleBgTransparency", SubtitleBgTransparency);
    StoreLanguages("EPGLanguages", EPGLanguages);
@@ -53,10 +39,11 @@ diff -Naurp vdr-1.6.0/config.c vdr-1.6.0-disableDoubleEpgEntrys/config.c
    Store("EPGScanTimeout",     EPGScanTimeout);
    Store("EPGBugfixLevel",     EPGBugfixLevel);
    Store("EPGLinger",          EPGLinger);
-diff -Naurp vdr-1.6.0/config.h vdr-1.6.0-disableDoubleEpgEntrys/config.h
---- vdr-1.6.0/config.h	2008-03-23 10:26:10.000000000 +0000
-+++ vdr-1.6.0-disableDoubleEpgEntrys/config.h	2009-03-29 23:25:00.000000000 +0000
-@@ -225,6 +225,10 @@ public:
+Index: vdr/config.h
+===================================================================
+--- vdr.orig/config.h	2011-12-11 02:29:26.000000000 +0100
++++ vdr/config.h	2011-12-11 02:29:35.000000000 +0100
+@@ -263,6 +263,10 @@
    int SubtitleOffset;
    int SubtitleFgTransparency, SubtitleBgTransparency;
    int EPGLanguages[I18N_MAX_LANGUAGES + 1];
@@ -67,12 +54,13 @@ diff -Naurp vdr-1.6.0/config.h vdr-1.6.0-disableDoubleEpgEntrys/config.h
    int EPGScanTimeout;
    int EPGBugfixLevel;
    int EPGLinger;
-diff -Naurp vdr-1.6.0/eit.c vdr-1.6.0-disableDoubleEpgEntrys/eit.c
---- vdr-1.6.0/eit.c	2007-08-26 10:56:33.000000000 +0000
-+++ vdr-1.6.0-disableDoubleEpgEntrys/eit.c	2009-03-29 23:25:00.000000000 +0000
-@@ -72,7 +72,83 @@ cEIT::cEIT(cSchedules *Schedules, int So
-          // not be overwritten.
-          if (pEvent->TableID() == 0x00) {
+Index: vdr/eit.c
+===================================================================
+--- vdr.orig/eit.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/eit.c	2011-12-11 02:29:35.000000000 +0100
+@@ -83,7 +83,83 @@
+          uchar TableID = pEvent->TableID();
+          if (TableID == 0x00) {
              if (pEvent->Version() == getVersionNumber())
 -               continue;
 +          {
@@ -155,7 +143,7 @@ diff -Naurp vdr-1.6.0/eit.c vdr-1.6.0-disableDoubleEpgEntrys/eit.c
              HasExternalData = ExternalData = true;
              }
           // If the new event has a higher table ID, let's skip it.
-@@ -97,7 +173,7 @@ cEIT::cEIT(cSchedules *Schedules, int So
+@@ -108,7 +184,7 @@
        if (newEvent)
           pSchedule->AddEvent(newEvent);
        if (Tid == 0x4E) { // we trust only the present/following info on the actual TS
@@ -164,7 +152,7 @@ diff -Naurp vdr-1.6.0/eit.c vdr-1.6.0-disableDoubleEpgEntrys/eit.c
              pSchedule->SetRunningStatus(pEvent, SiEitEvent.getRunningStatus(), channel);
           }
        if (OnlyRunningStatus)
-@@ -259,6 +335,80 @@ cEIT::cEIT(cSchedules *Schedules, int So
+@@ -297,6 +373,80 @@
        if (LinkChannels)
           channel->SetLinkChannels(LinkChannels);
        Modified = true;
@@ -243,12 +231,13 @@ diff -Naurp vdr-1.6.0/eit.c vdr-1.6.0-disableDoubleEpgEntrys/eit.c
 +       	}
 +       }
        }
-   if (Empty && Tid == 0x4E && getSectionNumber() == 0)
-      // ETR 211: an empty entry in section 0 of table 0x4E means there is currently no event running
-diff -Naurp vdr-1.6.0/epg.c vdr-1.6.0-disableDoubleEpgEntrys/epg.c
---- vdr-1.6.0/epg.c	2008-02-16 16:09:12.000000000 +0000
-+++ vdr-1.6.0-disableDoubleEpgEntrys/epg.c	2009-03-29 23:25:00.000000000 +0000
-@@ -742,6 +742,29 @@ const cEvent *cSchedule::GetEventAround(
+   if (Tid == 0x4E) {
+      if (Empty && getSectionNumber() == 0)
+Index: vdr/epg.c
+===================================================================
+--- vdr.orig/epg.c	2011-12-10 22:22:04.000000000 +0100
++++ vdr/epg.c	2011-12-11 02:29:35.000000000 +0100
+@@ -939,6 +939,29 @@
    return pe;
  }
  
@@ -278,10 +267,11 @@ diff -Naurp vdr-1.6.0/epg.c vdr-1.6.0-disableDoubleEpgEntrys/epg.c
  void cSchedule::SetRunningStatus(cEvent *Event, int RunningStatus, cChannel *Channel)
  {
    hasRunning = false;
-diff -Naurp vdr-1.6.0/epg.h vdr-1.6.0-disableDoubleEpgEntrys/epg.h
---- vdr-1.6.0/epg.h	2006-10-07 13:47:19.000000000 +0000
-+++ vdr-1.6.0-disableDoubleEpgEntrys/epg.h	2009-03-29 23:25:00.000000000 +0000
-@@ -137,6 +137,7 @@ public:
+Index: vdr/epg.h
+===================================================================
+--- vdr.orig/epg.h	2011-12-10 22:22:04.000000000 +0100
++++ vdr/epg.h	2011-12-11 02:29:35.000000000 +0100
+@@ -163,6 +163,7 @@
    void DropOutdated(time_t SegmentStart, time_t SegmentEnd, uchar TableID, uchar Version);
    void Cleanup(time_t Time);
    void Cleanup(void);
@@ -289,10 +279,11 @@ diff -Naurp vdr-1.6.0/epg.h vdr-1.6.0-disableDoubleEpgEntrys/epg.h
    cEvent *AddEvent(cEvent *Event);
    void DelEvent(cEvent *Event);
    void HashEvent(cEvent *Event);
-diff -Naurp vdr-1.6.0/menu.c vdr-1.6.0-disableDoubleEpgEntrys/menu.c
---- vdr-1.6.0/menu.c	2008-03-16 11:15:28.000000000 +0000
-+++ vdr-1.6.0-disableDoubleEpgEntrys/menu.c	2009-03-29 23:25:00.000000000 +0000
-@@ -2388,6 +2388,10 @@ void cMenuSetupEPG::Setup(void)
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:31.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:35.000000000 +0100
+@@ -2866,6 +2866,10 @@
    for (int i = 0; i < numLanguages; i++)
        // TRANSLATORS: note the singular!
        Add(new cMenuEditStraItem(tr("Setup.EPG$Preferred language"),    &data.EPGLanguages[i], I18nLanguages()->Size(), &I18nLanguages()->At(0)));
@@ -303,10 +294,11 @@ diff -Naurp vdr-1.6.0/menu.c vdr-1.6.0-disableDoubleEpgEntrys/menu.c
  
    SetCurrent(Get(current));
    Display();
-diff -Naurp vdr-1.6.0/po/de_DE.po vdr-1.6.0-disableDoubleEpgEntrys/po/de_DE.po
---- vdr-1.6.0/po/de_DE.po	2008-03-23 10:31:29.000000000 +0000
-+++ vdr-1.6.0-disableDoubleEpgEntrys/po/de_DE.po	2009-03-29 23:25:00.000000000 +0000
-@@ -558,6 +558,18 @@ msgstr "EPG"
+Index: vdr/po/de_DE.po
+===================================================================
+--- vdr.orig/po/de_DE.po	2011-12-11 02:29:26.000000000 +0100
++++ vdr/po/de_DE.po	2011-12-11 02:29:35.000000000 +0100
+@@ -849,6 +849,18 @@
  msgid "Button$Scan"
  msgstr "Scan"
  
@@ -325,10 +317,11 @@ diff -Naurp vdr-1.6.0/po/de_DE.po vdr-1.6.0-disableDoubleEpgEntrys/po/de_DE.po
  msgid "Setup.EPG$EPG scan timeout (h)"
  msgstr "Zeit bis zur EPG-Aktualisierung (h)"
  
-diff -Naurp vdr-1.6.0/po/fr_FR.po vdr-1.6.0-disableDoubleEpgEntrys/po/fr_FR.po
---- vdr-1.6.0/po/fr_FR.po	2008-03-23 10:31:29.000000000 +0000
-+++ vdr-1.6.0-disableDoubleEpgEntrys/po/fr_FR.po	2009-03-29 23:25:58.000000000 +0000
-@@ -564,6 +564,18 @@ msgstr "Guide des programmes"
+Index: vdr/po/fr_FR.po
+===================================================================
+--- vdr.orig/po/fr_FR.po	2011-12-11 02:29:26.000000000 +0100
++++ vdr/po/fr_FR.po	2011-12-11 02:29:35.000000000 +0100
+@@ -855,6 +855,18 @@
  msgid "Button$Scan"
  msgstr "Scan"
  
diff --git a/debian/patches/opt-39_noepg.dpatch b/debian/patches/opt-39_noepg.patch
similarity index 72%
rename from debian/patches/opt-39_noepg.dpatch
rename to debian/patches/opt-39_noepg.patch
index c8b242c..76d051a 100644
--- a/debian/patches/opt-39_noepg.dpatch
+++ b/debian/patches/opt-39_noepg.patch
@@ -1,19 +1,12 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-39_noepg.dpatch from version the vdr-noepgmenu plugin 0.0.6.beta3
-## http://winni.vdr-developer.org/noepgmenu/downloads/beta
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - adapted to VDR-1.7.8
-##   - solved conflicts with other patches
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: The patch allows to disable normal epg update for specified channels.
-## DP: This is useful if you get epg data of the channels from external sources.
+Description: The patch allows to disable normal epg update for specified channels.
+ This is useful if you get epg data of the channels from external sources.
+Author:
+Origin: http://winni.vdr-developer.org/noepgmenu/downloads/beta
 
- at DPATCH@
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/config.c vdr/config.c
---- vdr~/config.c	2011-12-10 22:22:38.000000000 +0100
-+++ vdr/config.c	2011-12-10 22:25:38.000000000 +0100
+Index: vdr/config.c
+===================================================================
+--- vdr.orig/config.c	2011-12-11 02:29:35.000000000 +0100
++++ vdr/config.c	2011-12-11 02:29:40.000000000 +0100
 @@ -392,6 +392,8 @@
    SetSystemTime = 0;
    TimeSource = 0;
@@ -63,9 +56,10 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    Store("MarginStart",        MarginStart);
    Store("MarginStop",         MarginStop);
    StoreLanguages("AudioLanguages", AudioLanguages);
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/config.h vdr/config.h
---- vdr~/config.h	2011-12-10 22:22:38.000000000 +0100
-+++ vdr/config.h	2011-12-10 22:24:42.000000000 +0100
+Index: vdr/config.h
+===================================================================
+--- vdr.orig/config.h	2011-12-11 02:29:35.000000000 +0100
++++ vdr/config.h	2011-12-11 02:29:40.000000000 +0100
 @@ -255,6 +255,7 @@
    int SetSystemTime;
    int TimeSource;
@@ -84,9 +78,10 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    cSetup& operator= (const cSetup &s);
    bool Load(const char *FileName);
    bool Save(void);
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/eit.c vdr/eit.c
---- vdr~/eit.c	2011-12-10 22:22:38.000000000 +0100
-+++ vdr/eit.c	2011-12-10 22:22:38.000000000 +0100
+Index: vdr/eit.c
+===================================================================
+--- vdr.orig/eit.c	2011-12-11 02:29:35.000000000 +0100
++++ vdr/eit.c	2011-12-11 02:29:40.000000000 +0100
 @@ -24,8 +24,28 @@
  class cEIT : public SI::EIT {
  public:
@@ -129,10 +124,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    cSchedule *pSchedule = (cSchedule *)Schedules->GetSchedule(channel, true);
  
    bool Empty = true;
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/menu.c vdr/menu.c
---- vdr~/menu.c	2011-12-10 22:22:38.000000000 +0100
-+++ vdr/menu.c	2011-12-10 22:22:38.000000000 +0100
-@@ -2810,6 +2810,7 @@
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:35.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:40.000000000 +0100
+@@ -2831,6 +2831,7 @@
  
  class cMenuSetupEPG : public cMenuSetupBase {
  private:
@@ -140,7 +136,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    int originalNumLanguages;
    int numLanguages;
    void Setup(void);
-@@ -2832,6 +2833,9 @@
+@@ -2853,6 +2854,9 @@
  {
    int current = Current();
  
@@ -150,7 +146,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    Clear();
  
    Add(new cMenuEditIntItem( tr("Setup.EPG$EPG scan timeout (h)"),      &data.EPGScanTimeout));
-@@ -2840,6 +2844,7 @@
+@@ -2861,6 +2865,7 @@
    Add(new cMenuEditBoolItem(tr("Setup.EPG$Set system time"),           &data.SetSystemTime));
    if (data.SetSystemTime)
       Add(new cMenuEditTranItem(tr("Setup.EPG$Use time from transponder"), &data.TimeTransponder, &data.TimeSource));
diff --git a/debian/patches/opt-41-x_timer-info.dpatch b/debian/patches/opt-41-x_timer-info.patch
similarity index 87%
rename from debian/patches/opt-41-x_timer-info.dpatch
rename to debian/patches/opt-41-x_timer-info.patch
index a0e8adb..c167cbd 100644
--- a/debian/patches/opt-41-x_timer-info.dpatch
+++ b/debian/patches/opt-41-x_timer-info.patch
@@ -1,15 +1,12 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-41-x_timer-info.dpatch by Andreas Brugger <brougs78 at gmx.net>, Thomas Günther <tom at toms-cafe.de>
-## http://toms-cafe.de/vdr/download/vdr-timer-info-0.5-1.7.13.diff
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Shows info, if it is possible to record an event in the timer-info of
-## DP: vdr - see README.timer-info for details.
+Description: Shows info, if it is possible to record an event in the timer-info of
+ vdr - see README.timer-info for details.
+Author: Andreas Brugger <brougs78 at gmx.net>, Thomas Günther <tom at toms-cafe.de>
+Origin: http://toms-cafe.de/vdr/download/vdr-timer-info-0.5-1.7.13.diff
 
- at DPATCH@
-diff -Naurp vdr-1.7.13/README.timer-info vdr-1.7.13-timer-info-0.5/README.timer-info
---- vdr-1.7.13/README.timer-info	1970-01-01 00:00:00.000000000 +0000
-+++ vdr-1.7.13-timer-info-0.5/README.timer-info	2010-02-28 18:26:31.000000000 +0000
+Index: vdr/README.timer-info
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ vdr/README.timer-info	2011-12-11 02:29:43.000000000 +0100
 @@ -0,0 +1,69 @@
 ++------------------------------------------------------------------------------+
 +|               Info about the timer-info-patch by Brougs78                    |
@@ -80,10 +77,11 @@ diff -Naurp vdr-1.7.13/README.timer-info vdr-1.7.13-timer-info-0.5/README.timer-
 +28.02.2010:      - Thomas Günther <tom at toms-cafe.de>
 + - Adapted to vdr-1.7.13
 +   http://toms-cafe.de/vdr/download/vdr-timer-info-0.5-1.7.13.diff
-diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
---- vdr-1.7.13/menu.c	2010-02-21 14:09:19.000000000 +0000
-+++ vdr-1.7.13-timer-info-0.5/menu.c	2010-02-28 18:24:26.000000000 +0000
-@@ -1010,8 +1010,10 @@ eOSState cMenuEditTimer::ProcessKey(eKey
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:40.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:43.000000000 +0100
+@@ -1021,8 +1021,10 @@
  class cMenuTimerItem : public cOsdItem {
  private:
    cTimer *timer;
@@ -94,7 +92,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
    virtual int Compare(const cListObject &ListObject) const;
    virtual void Set(void);
    cTimer *Timer(void) { return timer; }
-@@ -1020,6 +1022,7 @@ public:
+@@ -1031,6 +1033,7 @@
  cMenuTimerItem::cMenuTimerItem(cTimer *Timer)
  {
    timer = Timer;
@@ -102,7 +100,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
    Set();
  }
  
-@@ -1050,7 +1053,10 @@ void cMenuTimerItem::Set(void)
+@@ -1061,7 +1064,10 @@
       File++;
    else
       File = timer->File();
@@ -114,7 +112,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
                      !(timer->HasFlags(tfActive)) ? ' ' : timer->FirstDay() ? '!' : timer->Recording() ? '#' : '>',
                      timer->Channel()->Number(),
                      *name,
-@@ -1063,6 +1069,57 @@ void cMenuTimerItem::Set(void)
+@@ -1074,6 +1080,57 @@
                      File));
  }
  
@@ -172,7 +170,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
  // --- cMenuTimers -----------------------------------------------------------
  
  class cMenuTimers : public cOsdMenu {
-@@ -1075,14 +1132,17 @@ private:
+@@ -1086,14 +1143,17 @@
    eOSState Info(void);
    cTimer *CurrentTimer(void);
    void SetHelpKeys(void);
@@ -191,7 +189,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
  {
    helpKeys = -1;
    for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) {
-@@ -1093,6 +1153,7 @@ cMenuTimers::cMenuTimers(void)
+@@ -1104,6 +1164,7 @@
    SetCurrent(First());
    SetHelpKeys();
    Timers.IncBeingEdited();
@@ -199,7 +197,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
  }
  
  cMenuTimers::~cMenuTimers()
-@@ -1131,7 +1192,7 @@ eOSState cMenuTimers::OnOff(void)
+@@ -1142,7 +1203,7 @@
       timer->OnOff();
       timer->SetEventFromSchedule();
       RefreshCurrent();
@@ -208,7 +206,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
       if (timer->FirstDay())
          isyslog("timer %s first day set to %s", *timer->ToDescr(), *timer->PrintFirstDay());
       else
-@@ -1190,6 +1251,67 @@ eOSState cMenuTimers::Info(void)
+@@ -1201,6 +1262,67 @@
    return osContinue;
  }
  
@@ -276,7 +274,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-timer-info-0.5/menu.c
  eOSState cMenuTimers::ProcessKey(eKeys Key)
  {
    int TimerNumber = HasSubMenu() ? Count() : -1;
-@@ -1198,18 +1320,22 @@ eOSState cMenuTimers::ProcessKey(eKeys K
+@@ -1209,18 +1331,22 @@
    if (state == osUnknown) {
       switch (Key) {
         case kOk:     return Edit();
diff --git a/debian/patches/opt-42-x_MainMenuHooks.dpatch b/debian/patches/opt-42-x_MainMenuHooks.patch
similarity index 53%
rename from debian/patches/opt-42-x_MainMenuHooks.dpatch
rename to debian/patches/opt-42-x_MainMenuHooks.patch
index 519bd4d..a435287 100644
--- a/debian/patches/opt-42-x_MainMenuHooks.dpatch
+++ b/debian/patches/opt-42-x_MainMenuHooks.patch
@@ -1,69 +1,12 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-42-x_MainMenuHooks.dpatch by Frank Schmirler <vdrdev at schmirler.de>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: This patch allows plugins to replace the VDR mainmenus "Schedule",
-## DP: "Channels", "Timers" and "Recordings" by a different implementation.
+Description: This patch allows plugins to replace the VDR mainmenus "Schedule",
+ "Channels", "Timers" and "Recordings" by a different implementation.
+Author: Frank Schmirler <vdrdev at schmirler.de>
 
- at DPATCH@
-This is a "patch" for the Video Disk Recorder (VDR).
-
-* Authors:
-Tobias Grimm <vdr at e-tobi.net>
-Martin Prochnow <nordlicht at martins-kabuff.de>  
-Frank Schmirler <vdrdev at schmirler.de>
-Christian Wieninger <cwieninger at gmx.de>
-
-* Description:
-This patch allows plugins to replace the VDR mainmenus "Schedule",
-"Channels", "Timers" and "Recordings" by a different implementation.
-
-The patch is based on a suggestion of Christian Wieninger back in 2006
-(http://www.linuxtv.org/pipermail/vdr/2006-March/008234.html). It is
-meant to be an interim solution for VDR 1.4 until (maybe) VDR 1.5
-introduces an official API for this purpose.
-
-* Installation
-Change into the VDR source directory, then issue
-  patch -p1 < path/to/MainMenuHooks-v1_0.patch
-and recompile.
-
-* Notes for plugin authors
-The following code sample shows the required plugin code for replacing
-the original Schedule menu:
-
-bool cMyPlugin::Service(const char *Id, void *Data)
-{
-  cOsdMenu **menu = (cOsdMenu**) Data;
-  if (MySetup.replaceSchedule &&
-            strcmp(Id, "MainMenuHooksPatch-v1.0::osSchedule") == 0) {
-    if (menu)
-      *menu = (cOsdMenu*) MainMenuAction();
-    return true;
-  }
-  return false;
-}
-
-A plugin can replace more than one menu at a time. Simply replace the
-call to MainMenuAction() in the sample above by appropriate code.
-
-Note that a plugin *should* offer a setup option which allows the user
-to enable or disable the replacement. "Disabled" would be a reasonable
-default setting. By testing for define MAINMENUHOOKSVERSNUM, a plugin
-can leave the setup option out at compiletime.
-
-In case there is an internal problem when trying to open the replacement
-menu, it is safe to return true even though Data is NULL. However an
-OSD message should indicate the problem to the user.
-
-Feel free to ship this patch along with your plugin. However if you
-think you need to modify the patch, we'd encourage you to contact the
-authors first or at least use a service id which differs in more than
-just the version number.
-
---- vdr-1.4.5/menu.c.orig	2007-02-07 08:23:49.000000000 +0100
-+++ vdr-1.4.5/menu.c	2007-02-20 11:05:34.000000000 +0100
-@@ -2792,15 +2792,30 @@
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:30:45.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:30:49.000000000 +0100
+@@ -3640,15 +3640,30 @@
  
    // Initial submenus:
  
@@ -100,7 +43,7 @@ just the version number.
  }
  
  cOsdObject *cMenuMain::PluginOsdObject(void)
-@@ -2927,13 +2942,34 @@
+@@ -3801,13 +3816,34 @@
    eOSState state = cOsdMenu::ProcessKey(Key);
    HadSubMenu |= HasSubMenu();
  
@@ -141,7 +84,7 @@ just the version number.
      case osStopRecord: if (Interface->Confirm(tr("Stop recording?"))) {
                            cOsdItem *item = Get(Current());
                            if (item) {
-@@ -2985,6 +3021,8 @@
+@@ -3900,6 +3936,8 @@
                 default:      break;
                 }
      }
@@ -150,14 +93,76 @@ just the version number.
    if (!HasSubMenu() && Update(HadSubMenu))
       Display();
    if (Key != kNone) {
---- vdr-1.4.5/config.h.orig	2007-02-20 11:55:40.000000000 +0100
-+++ vdr-1.4.5/config.h	2007-02-20 11:56:43.000000000 +0100
-@@ -35,6 +35,8 @@
- // plugins to work with newer versions of the core VDR as long as no
- // VDR header files have changed.
+Index: vdr/config.h
+===================================================================
+--- vdr.orig/config.h	2011-12-11 02:30:44.000000000 +0100
++++ vdr/config.h	2011-12-11 02:30:45.000000000 +0100
+@@ -40,6 +40,8 @@
+ 
+ #define JUMPPLAYVERSNUM 100
  
 +#define MAINMENUHOOKSVERSNUM 1.0
 +
  #define MAXPRIORITY 99
  #define MAXLIFETIME 99
  
+Index: vdr/README.MainMenuHooks
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ vdr/README.MainMenuHooks	2011-12-11 02:31:37.000000000 +0100
+@@ -0,0 +1,55 @@
++This is a "patch" for the Video Disk Recorder (VDR).
++
++* Authors:
++Tobias Grimm <vdr at e-tobi.net>
++Martin Prochnow <nordlicht at martins-kabuff.de>  
++Frank Schmirler <vdrdev at schmirler.de>
++Christian Wieninger <cwieninger at gmx.de>
++
++* Description:
++This patch allows plugins to replace the VDR mainmenus "Schedule",
++"Channels", "Timers" and "Recordings" by a different implementation.
++
++The patch is based on a suggestion of Christian Wieninger back in 2006
++(http://www.linuxtv.org/pipermail/vdr/2006-March/008234.html). It is
++meant to be an interim solution for VDR 1.4 until (maybe) VDR 1.5
++introduces an official API for this purpose.
++
++* Installation
++Change into the VDR source directory, then issue
++  patch -p1 < path/to/MainMenuHooks-v1_0.patch
++and recompile.
++
++* Notes for plugin authors
++The following code sample shows the required plugin code for replacing
++the original Schedule menu:
++
++bool cMyPlugin::Service(const char *Id, void *Data)
++{
++  cOsdMenu **menu = (cOsdMenu**) Data;
++  if (MySetup.replaceSchedule &&
++            strcmp(Id, "MainMenuHooksPatch-v1.0::osSchedule") == 0) {
++    if (menu)
++      *menu = (cOsdMenu*) MainMenuAction();
++    return true;
++  }
++  return false;
++}
++
++A plugin can replace more than one menu at a time. Simply replace the
++call to MainMenuAction() in the sample above by appropriate code.
++
++Note that a plugin *should* offer a setup option which allows the user
++to enable or disable the replacement. "Disabled" would be a reasonable
++default setting. By testing for define MAINMENUHOOKSVERSNUM, a plugin
++can leave the setup option out at compiletime.
++
++In case there is an internal problem when trying to open the replacement
++menu, it is safe to return true even though Data is NULL. However an
++OSD message should indicate the problem to the user.
++
++Feel free to ship this patch along with your plugin. However if you
++think you need to modify the patch, we'd encourage you to contact the
++authors first or at least use a service id which differs in more than
++just the version number.
++
diff --git a/debian/patches/opt-43-x_recordshowfree.dpatch b/debian/patches/opt-43-x_recordshowfree.patch
similarity index 50%
rename from debian/patches/opt-43-x_recordshowfree.dpatch
rename to debian/patches/opt-43-x_recordshowfree.patch
index daadbbd..e6e5f0f 100644
--- a/debian/patches/opt-43-x_recordshowfree.dpatch
+++ b/debian/patches/opt-43-x_recordshowfree.patch
@@ -1,15 +1,12 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-32-x_recordshowfree.dpatch by Walter Koch <koch at u32.de>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Shows remaining recording capacity in recordings menu.
-## DP: (Requires timer-info patch)
+Description: Shows remaining recording capacity in recordings menu.
+ (Requires timer-info patch)
+Author: Walter Koch <koch at u32.de>
 
- at DPATCH@
-diff -urNad vdr-1.5.15~/menu.c vdr-1.5.15/menu.c
---- vdr-1.5.15~/menu.c	2008-02-17 22:09:26.000000000 +0100
-+++ vdr-1.5.15/menu.c	2008-02-17 22:10:29.000000000 +0100
-@@ -2317,6 +2317,19 @@
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:47.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:50.000000000 +0100
+@@ -2589,6 +2589,19 @@
           }
        }
    free(LastItemText);
diff --git a/debian/patches/opt-44_rotor.dpatch b/debian/patches/opt-44_rotor.patch
similarity index 67%
rename from debian/patches/opt-44_rotor.dpatch
rename to debian/patches/opt-44_rotor.patch
index 21d1e58..e458c9a 100644
--- a/debian/patches/opt-44_rotor.dpatch
+++ b/debian/patches/opt-44_rotor.patch
@@ -1,21 +1,11 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-44_rotor.dpatch by Thomas Bergwinkl <Bergwinkl.Thomas at vr-web.de>
-## extracted from the rotor plugin 0.1.4-vdr1.5
-## original filename: vdr-1.5.5-rotor.diff
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - made compatible to VDR-1.4.7
-##   - adapted to VDR-1.7.8
-##   - adapted to VDR-1.7.11
-##   - adapted to VDR-1.7.13
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: This patch is needed for the rotor plugin.
+Description: This patch is needed for the rotor plugin.
+Author: Thomas Bergwinkl <Bergwinkl.Thomas at vr-web.de>
+Origin: extracted from the rotor plugin 0.1.4-vdr1.5
 
- at DPATCH@
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/device.h vdr/device.h
---- vdr~/device.h	2011-12-10 22:26:30.000000000 +0100
-+++ vdr/device.h	2011-12-10 22:26:30.000000000 +0100
+Index: vdr/device.h
+===================================================================
+--- vdr.orig/device.h	2011-12-11 02:29:26.000000000 +0100
++++ vdr/device.h	2011-12-11 02:29:53.000000000 +0100
 @@ -24,6 +24,8 @@
  #include "spu.h"
  #include "thread.h"
@@ -33,9 +23,10 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
  
  // PID handle facilities
  
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/dvbdevice.c vdr/dvbdevice.c
---- vdr~/dvbdevice.c	2011-12-10 21:59:26.000000000 +0100
-+++ vdr/dvbdevice.c	2011-12-10 22:28:03.000000000 +0100
+Index: vdr/dvbdevice.c
+===================================================================
+--- vdr.orig/dvbdevice.c	2011-12-10 21:59:26.000000000 +0100
++++ vdr/dvbdevice.c	2011-12-11 02:29:53.000000000 +0100
 @@ -261,6 +261,7 @@
  private:
    static cMutex bondMutex;
@@ -109,9 +100,10 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
  void cDvbDevice::SetTransferModeForDolbyDigital(int Mode)
  {
    setTransferModeForDolbyDigital = Mode;
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/dvbdevice.h vdr/dvbdevice.h
---- vdr~/dvbdevice.h	2011-12-10 21:59:26.000000000 +0100
-+++ vdr/dvbdevice.h	2011-12-10 22:26:30.000000000 +0100
+Index: vdr/dvbdevice.h
+===================================================================
+--- vdr.orig/dvbdevice.h	2011-12-10 21:59:26.000000000 +0100
++++ vdr/dvbdevice.h	2011-12-11 02:29:53.000000000 +0100
 @@ -181,6 +181,7 @@
    virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
  public:
diff --git a/debian/patches/opt-45_yaepg.dpatch b/debian/patches/opt-45_yaepg.patch
similarity index 52%
rename from debian/patches/opt-45_yaepg.dpatch
rename to debian/patches/opt-45_yaepg.patch
index 999334f..7f15da2 100644
--- a/debian/patches/opt-45_yaepg.dpatch
+++ b/debian/patches/opt-45_yaepg.patch
@@ -1,25 +1,12 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-45_yaepg.dpatch by bball950 at yahoo.com
-## http://www.hoochvdr.info/yaepg/vdr-1.3.19-core-yaepg.diff
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - adapted to VDR-1.3.25
-##   - adapted to VDR-1.3.42
-##   - adapted to VDR-1.5.2
-##   - adapted to VDR-1.5.3 (removed special yaepg font)
-##   - adapted to VDR-1.5.9
-##   - adapted to VDR-1.7.11
-## Tobias Grimm <tg at e-tobi.net>:
-##   - applied modification from Michaël Nival that fixes a small bug
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: This patch is needed for the yaepg plugin.
+Description: This patch is needed for the yaepg plugin.
+Author: bball950 at yahoo.com
+Origin: http://www.hoochvdr.info/yaepg/vdr-1.3.19-core-yaepg.diff
 
- at DPATCH@
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/PLUGINS/src/dvbsddevice/dvbsdffosd.c vdr/PLUGINS/src/dvbsddevice/dvbsdffosd.c
---- vdr~/PLUGINS/src/dvbsddevice/dvbsdffosd.c	2011-01-27 23:35:24.000000000 +0100
-+++ vdr/PLUGINS/src/dvbsddevice/dvbsdffosd.c	2011-03-19 22:55:53.000000000 +0100
-@@ -78,6 +78,10 @@
+Index: vdr/PLUGINS/src/dvbsddevice/dvbsdffosd.c
+===================================================================
+--- vdr.orig/PLUGINS/src/dvbsddevice/dvbsdffosd.c	2011-12-10 21:50:59.000000000 +0100
++++ vdr/PLUGINS/src/dvbsddevice/dvbsdffosd.c	2011-12-11 02:29:56.000000000 +0100
+@@ -77,6 +77,10 @@
              Cmd(OSD_SetWindow, 0, i + 1);
              Cmd(OSD_Close);
              }
@@ -30,7 +17,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
          shown = false;
          }
       }
-@@ -113,6 +117,10 @@
+@@ -111,6 +115,10 @@
           Cmd(OSD_SetWindow, 0, i + 1);
           Cmd(OSD_Close);
           }
@@ -41,7 +28,7 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
       shown = false;
       }
    return cOsd::SetAreas(Areas, NumAreas);
-@@ -196,6 +204,11 @@
+@@ -194,6 +202,11 @@
           Cmd(OSD_SetWindow, 0, i + 1);
           Cmd(OSD_MoveWindow, 0, Left() + Bitmap->X0(), Top() + Bitmap->Y0());
           }
@@ -53,10 +40,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
       shown = true;
       }
  }
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/device.h vdr/device.h
---- vdr~/device.h	2011-03-19 22:55:53.000000000 +0100
-+++ vdr/device.h	2011-03-19 22:55:53.000000000 +0100
-@@ -271,12 +271,12 @@
+Index: vdr/device.h
+===================================================================
+--- vdr.orig/device.h	2011-12-11 02:29:53.000000000 +0100
++++ vdr/device.h	2011-12-11 02:29:56.000000000 +0100
+@@ -293,12 +293,12 @@
           ///< Direction (only the sign of Direction is evaluated, positive values
           ///< switch to higher channel numbers).
  private:
@@ -71,10 +59,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
    static int CurrentChannel(void) { return primaryDevice ? currentChannel : 0; }
           ///< Returns the number of the current channel on the primary device.
    static void SetCurrentChannel(const cChannel *Channel) { currentChannel = Channel ? Channel->Number() : 0; }
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/osd.c vdr/osd.c
---- vdr~/osd.c	2011-03-19 21:07:09.000000000 +0100
-+++ vdr/osd.c	2011-03-19 22:55:53.000000000 +0100
-@@ -1596,6 +1596,7 @@
+Index: vdr/osd.c
+===================================================================
+--- vdr.orig/osd.c	2011-12-10 21:50:59.000000000 +0100
++++ vdr/osd.c	2011-12-11 02:29:56.000000000 +0100
+@@ -1622,6 +1622,7 @@
           }
        }
    Osds.Append(this);
@@ -82,10 +71,11 @@ diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch'
  }
  
  cOsd::~cOsd()
-diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' vdr~/osd.h vdr/osd.h
---- vdr~/osd.h	2011-03-19 21:07:09.000000000 +0100
-+++ vdr/osd.h	2011-03-19 22:56:45.000000000 +0100
-@@ -917,6 +917,7 @@
+Index: vdr/osd.h
+===================================================================
+--- vdr.orig/osd.h	2011-12-10 21:59:26.000000000 +0100
++++ vdr/osd.h	2011-12-11 02:29:56.000000000 +0100
+@@ -921,6 +921,7 @@
         ///<        MyOsdDrawPixmap(Left() + pm->ViewPort().X(), Top() + pm->ViewPort().Y(), pm->Data(), w, h, h * d);
         ///<        delete pm;
         ///<        }
diff --git a/debian/patches/opt-50_graphtft-liemikuutio.dpatch b/debian/patches/opt-50_graphtft-liemikuutio.dpatch
deleted file mode 100644
index b276c47..0000000
--- a/debian/patches/opt-50_graphtft-liemikuutio.dpatch
+++ /dev/null
@@ -1,20 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-50_graphtft-liemikuutio.dpatch by Jörg Wendel (Horchi)
-## from vdr-graphtft svn repository (20090728.2153):
-## https://vdr-graphtft.svn.sourceforge.net/svnroot/vdr-graphtft
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Patch required for the GraphTFT plugin with liemikuutio patch.
-
- at DPATCH@
-diff -ruN vdr-1.5.18-liemikuutio-1.19-plain/menu.c vdr-1.5.18-liemikuutio-1.19-graphtft/menu.c
---- vdr-1.5.18-liemikuutio-1.19-plain/menu.c	2008-03-17 18:29:09.000000000 +0100
-+++ vdr-1.5.18-liemikuutio-1.19-graphtft/menu.c	2008-03-17 18:27:23.000000000 +0100
-@@ -1960,6 +1960,7 @@
- public:
-   cMenuRenameRecording(cRecording *Recording);
-   virtual eOSState ProcessKey(eKeys Key);
-+  virtual const char* MenuKind() { return "MenuRenameRecording"; }
- };
- 
- cMenuRenameRecording::cMenuRenameRecording(cRecording *Recording)
diff --git a/debian/patches/opt-50_graphtft-liemikuutio.patch b/debian/patches/opt-50_graphtft-liemikuutio.patch
new file mode 100644
index 0000000..7d22141
--- /dev/null
+++ b/debian/patches/opt-50_graphtft-liemikuutio.patch
@@ -0,0 +1,16 @@
+Description: Patch required for the GraphTFT plugin with liemikuutio patch.
+Author: Jörg Wendel (Horchi)
+Origin: https://vdr-graphtft.svn.sourceforge.net/svnroot/vdr-graphtft
+
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:59.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:30:01.000000000 +0100
+@@ -2373,6 +2373,7 @@
+ public:
+   cMenuEditRecording(cRecording *Recording);
+   virtual eOSState ProcessKey(eKeys Key);
++  virtual const char* MenuKind() { return "MenuRenameRecording"; }
+ };
+ 
+ cMenuEditRecording::cMenuEditRecording(cRecording *Recording)
diff --git a/debian/patches/opt-50_graphtft.dpatch b/debian/patches/opt-50_graphtft.patch
similarity index 75%
rename from debian/patches/opt-50_graphtft.dpatch
rename to debian/patches/opt-50_graphtft.patch
index 0c68700..50a0e85 100644
--- a/debian/patches/opt-50_graphtft.dpatch
+++ b/debian/patches/opt-50_graphtft.patch
@@ -1,19 +1,12 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-50_graphtft.dpatch by Jörg Wendel (Horchi)
-## from vdr-graphtft svn repository (20090728.2153):
-## https://vdr-graphtft.svn.sourceforge.net/svnroot/vdr-graphtft
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - adapted to VDR-1.7.13
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Patch required for the GraphTFT plugin.
+Description: Patch required for the GraphTFT plugin.
+Author: Jörg Wendel (Horchi)
+Origin: https://vdr-graphtft.svn.sourceforge.net/svnroot/vdr-graphtft
 
- at DPATCH@
-diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
---- vdr-1.7.13/menu.c	2010-02-21 14:09:19.000000000 +0000
-+++ vdr-1.7.13-graphtft/menu.c	2010-02-28 20:28:03.000000000 +0000
-@@ -196,6 +196,7 @@ private:
+Index: vdr/menu.c
+===================================================================
+--- vdr.orig/menu.c	2011-12-11 02:29:50.000000000 +0100
++++ vdr/menu.c	2011-12-11 02:29:59.000000000 +0100
+@@ -206,6 +206,7 @@
  public:
    cMenuEditChannel(cChannel *Channel, bool New = false);
    virtual eOSState ProcessKey(eKeys Key);
@@ -21,7 +14,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuEditChannel::cMenuEditChannel(cChannel *Channel, bool New)
-@@ -372,6 +373,7 @@ public:
+@@ -383,6 +384,7 @@
    cMenuChannels(void);
    ~cMenuChannels();
    virtual eOSState ProcessKey(eKeys Key);
@@ -29,15 +22,15 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuChannels::cMenuChannels(void)
-@@ -1079,6 +1081,7 @@ public:
-   cMenuTimers(void);
+@@ -1150,6 +1152,7 @@
    virtual ~cMenuTimers();
+   virtual void Display(void);
    virtual eOSState ProcessKey(eKeys Key);
 +  virtual const char* MenuKind() { return "MenuTimers"; }
    };
  
  cMenuTimers::cMenuTimers(void)
-@@ -1239,6 +1242,7 @@ void cMenuEvent::Display(void)
+@@ -1376,6 +1379,7 @@
  {
    cOsdMenu::Display();
    DisplayMenu()->SetEvent(event);
@@ -45,7 +38,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    if (event->Description())
       cStatus::MsgOsdTextItem(event->Description());
  }
-@@ -1361,6 +1365,8 @@ public:
+@@ -1498,6 +1502,8 @@
    static void SetCurrentChannel(int ChannelNr) { currentChannel = ChannelNr; }
    static const cEvent *ScheduleEvent(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -54,7 +47,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  int cMenuWhatsOn::currentChannel = 0;
-@@ -1388,6 +1394,18 @@ cMenuWhatsOn::cMenuWhatsOn(const cSchedu
+@@ -1525,6 +1531,18 @@
    SetHelpKeys();
  }
  
@@ -73,7 +66,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
  bool cMenuWhatsOn::Update(void)
  {
    bool result = false;
-@@ -1528,6 +1546,8 @@ public:
+@@ -1665,6 +1683,8 @@
    cMenuSchedule(void);
    virtual ~cMenuSchedule();
    virtual eOSState ProcessKey(eKeys Key);
@@ -82,7 +75,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuSchedule::cMenuSchedule(void)
-@@ -1553,6 +1573,18 @@ cMenuSchedule::~cMenuSchedule()
+@@ -1690,6 +1710,18 @@
    cMenuWhatsOn::ScheduleEvent(); // makes sure any posted data is cleared
  }
  
@@ -101,7 +94,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
  void cMenuSchedule::PrepareScheduleAllThis(const cEvent *Event, const cChannel *Channel)
  {
    Clear();
-@@ -1908,6 +1940,7 @@ public:
+@@ -2051,6 +2083,7 @@
    cMenuCam(cCamSlot *CamSlot);
    virtual ~cMenuCam();
    virtual eOSState ProcessKey(eKeys Key);
@@ -109,7 +102,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuCam::cMenuCam(cCamSlot *CamSlot)
-@@ -2087,6 +2120,7 @@ public:
+@@ -2230,6 +2263,7 @@
    cMenuRecording(const cRecording *Recording, bool WithButtons = false);
    virtual void Display(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -117,7 +110,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
  };
  
  cMenuRecording::cMenuRecording(const cRecording *Recording, bool WithButtons)
-@@ -2102,6 +2136,7 @@ void cMenuRecording::Display(void)
+@@ -2245,6 +2279,7 @@
  {
    cOsdMenu::Display();
    DisplayMenu()->SetRecording(recording);
@@ -125,7 +118,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    if (recording->Info()->Description())
       cStatus::MsgOsdTextItem(recording->Info()->Description());
  }
-@@ -2498,6 +2533,7 @@ public:
+@@ -2835,6 +2870,7 @@
    cMenuSetupOSD(void);
    virtual ~cMenuSetupOSD();
    virtual eOSState ProcessKey(eKeys Key);
@@ -133,7 +126,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuSetupOSD::cMenuSetupOSD(void)
-@@ -2637,6 +2673,7 @@ private:
+@@ -2977,6 +3013,7 @@
  public:
    cMenuSetupEPG(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -141,7 +134,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuSetupEPG::cMenuSetupEPG(void)
-@@ -2732,6 +2769,7 @@ private:
+@@ -3080,6 +3117,7 @@
  public:
    cMenuSetupDVB(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -149,7 +142,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuSetupDVB::cMenuSetupDVB(void)
-@@ -2861,6 +2899,7 @@ private:
+@@ -3222,6 +3260,7 @@
  public:
    cMenuSetupLNB(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -157,7 +150,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuSetupLNB::cMenuSetupLNB(void)
-@@ -2941,6 +2980,7 @@ private:
+@@ -3324,6 +3363,7 @@
  public:
    cMenuSetupCAM(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -165,7 +158,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuSetupCAM::cMenuSetupCAM(void)
-@@ -3111,6 +3151,7 @@ class cMenuSetupPlugins : public cMenuSe
+@@ -3502,6 +3542,7 @@
  public:
    cMenuSetupPlugins(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -173,7 +166,7 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuSetupPlugins::cMenuSetupPlugins(void)
-@@ -3160,6 +3201,7 @@ private:
+@@ -3551,6 +3592,7 @@
  public:
    cMenuSetup(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -181,10 +174,11 @@ diff -Naurp vdr-1.7.13/menu.c vdr-1.7.13-graphtft/menu.c
    };
  
  cMenuSetup::cMenuSetup(void)
-diff -Naurp vdr-1.7.13/menu.h vdr-1.7.13-graphtft/menu.h
---- vdr-1.7.13/menu.h	2010-02-06 10:17:24.000000000 +0000
-+++ vdr-1.7.13-graphtft/menu.h	2010-02-28 20:27:52.000000000 +0000
-@@ -29,6 +29,7 @@ public:
+Index: vdr/menu.h
+===================================================================
+--- vdr.orig/menu.h	2011-12-11 02:29:03.000000000 +0100
++++ vdr/menu.h	2011-12-11 02:29:59.000000000 +0100
+@@ -29,6 +29,7 @@
    void SetText(const char *Text);
    virtual void Display(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -192,7 +186,7 @@ diff -Naurp vdr-1.7.13/menu.h vdr-1.7.13-graphtft/menu.h
    };
  
  class cMenuFolder : public cOsdMenu {
-@@ -67,6 +68,7 @@ public:
+@@ -67,6 +68,7 @@
    cMenuCommands(const char *Title, cList<cNestedItem> *Commands, const char *Parameters = NULL);
    virtual ~cMenuCommands();
    virtual eOSState ProcessKey(eKeys Key);
@@ -200,7 +194,7 @@ diff -Naurp vdr-1.7.13/menu.h vdr-1.7.13-graphtft/menu.h
    };
  
  class cMenuEditTimer : public cOsdMenu {
-@@ -84,6 +86,7 @@ public:
+@@ -84,6 +86,7 @@
    cMenuEditTimer(cTimer *Timer, bool New = false);
    virtual ~cMenuEditTimer();
    virtual eOSState ProcessKey(eKeys Key);
@@ -208,7 +202,7 @@ diff -Naurp vdr-1.7.13/menu.h vdr-1.7.13-graphtft/menu.h
    };
  
  class cMenuEvent : public cOsdMenu {
-@@ -93,6 +96,7 @@ public:
+@@ -93,6 +96,7 @@
    cMenuEvent(const cEvent *Event, bool CanSwitch = false, bool Buttons = false);
    virtual void Display(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -216,7 +210,7 @@ diff -Naurp vdr-1.7.13/menu.h vdr-1.7.13-graphtft/menu.h
    };
  
  class cMenuMain : public cOsdMenu {
-@@ -109,6 +113,7 @@ public:
+@@ -110,6 +114,7 @@
    cMenuMain(eOSState State = osUnknown);
    virtual eOSState ProcessKey(eKeys Key);
    static cOsdObject *PluginOsdObject(void);
@@ -224,7 +218,7 @@ diff -Naurp vdr-1.7.13/menu.h vdr-1.7.13-graphtft/menu.h
    };
  
  class cDisplayChannel : public cOsdObject {
-@@ -210,6 +215,7 @@ public:
+@@ -212,6 +217,7 @@
    cMenuRecordings(const char *Base = NULL, int Level = 0, bool OpenSubMenus = false);
    ~cMenuRecordings();
    virtual eOSState ProcessKey(eKeys Key);
@@ -232,10 +226,11 @@ diff -Naurp vdr-1.7.13/menu.h vdr-1.7.13-graphtft/menu.h
    };
  
  class cRecordControl {
-diff -Naurp vdr-1.7.13/menuitems.h vdr-1.7.13-graphtft/menuitems.h
---- vdr-1.7.13/menuitems.h	2010-02-21 13:58:21.000000000 +0000
-+++ vdr-1.7.13-graphtft/menuitems.h	2010-02-28 20:20:08.000000000 +0000
-@@ -198,6 +198,7 @@ public:
+Index: vdr/menuitems.h
+===================================================================
+--- vdr.orig/menuitems.h	2011-12-10 21:50:59.000000000 +0100
++++ vdr/menuitems.h	2011-12-11 02:29:59.000000000 +0100
+@@ -202,6 +202,7 @@
    cMenuSetupPage(void);
    virtual eOSState ProcessKey(eKeys Key);
    void SetPlugin(cPlugin *Plugin);
@@ -243,10 +238,11 @@ diff -Naurp vdr-1.7.13/menuitems.h vdr-1.7.13-graphtft/menuitems.h
    };
  
  #endif //__MENUITEMS_H
-diff -Naurp vdr-1.7.13/osdbase.c vdr-1.7.13-graphtft/osdbase.c
---- vdr-1.7.13/osdbase.c	2010-01-17 11:36:12.000000000 +0000
-+++ vdr-1.7.13-graphtft/osdbase.c	2010-02-28 20:20:07.000000000 +0000
-@@ -97,6 +97,7 @@ cOsdMenu::~cOsdMenu()
+Index: vdr/osdbase.c
+===================================================================
+--- vdr.orig/osdbase.c	2011-12-11 02:29:03.000000000 +0100
++++ vdr/osdbase.c	2011-12-11 02:29:59.000000000 +0100
+@@ -98,6 +98,7 @@
    free(status);
    displayMenu->Clear();
    cStatus::MsgOsdClear();
@@ -254,7 +250,7 @@ diff -Naurp vdr-1.7.13/osdbase.c vdr-1.7.13-graphtft/osdbase.c
    if (!--displayMenuCount)
       DELETENULL(displayMenu);
  }
-@@ -202,6 +203,7 @@ void cOsdMenu::Display(void)
+@@ -203,6 +204,7 @@
    displayMenu->SetMessage(mtStatus, NULL);
    displayMenu->Clear();
    cStatus::MsgOsdClear();
@@ -262,10 +258,11 @@ diff -Naurp vdr-1.7.13/osdbase.c vdr-1.7.13-graphtft/osdbase.c
    displayMenu->SetTabs(cols[0], cols[1], cols[2], cols[3], cols[4]);//XXX
    displayMenu->SetTitle(title);
    cStatus::MsgOsdTitle(title);
-diff -Naurp vdr-1.7.13/osdbase.h vdr-1.7.13-graphtft/osdbase.h
---- vdr-1.7.13/osdbase.h	2010-01-16 14:25:31.000000000 +0000
-+++ vdr-1.7.13-graphtft/osdbase.h	2010-02-28 20:20:08.000000000 +0000
-@@ -131,6 +131,7 @@ public:
+Index: vdr/osdbase.h
+===================================================================
+--- vdr.orig/osdbase.h	2011-12-11 02:29:03.000000000 +0100
++++ vdr/osdbase.h	2011-12-11 02:29:59.000000000 +0100
+@@ -134,6 +134,7 @@
    void Ins(cOsdItem *Item, bool Current = false, cOsdItem *Before = NULL);
    virtual void Display(void);
    virtual eOSState ProcessKey(eKeys Key);
@@ -273,10 +270,11 @@ diff -Naurp vdr-1.7.13/osdbase.h vdr-1.7.13-graphtft/osdbase.h
    };
  
  #endif //__OSDBASE_H
-diff -Naurp vdr-1.7.13/recording.h vdr-1.7.13-graphtft/recording.h
---- vdr-1.7.13/recording.h	2010-01-16 11:16:20.000000000 +0000
-+++ vdr-1.7.13-graphtft/recording.h	2010-02-28 20:20:08.000000000 +0000
-@@ -65,6 +65,7 @@ public:
+Index: vdr/recording.h
+===================================================================
+--- vdr.orig/recording.h	2011-12-11 02:29:03.000000000 +0100
++++ vdr/recording.h	2011-12-11 02:29:59.000000000 +0100
+@@ -70,6 +70,7 @@
    const cEvent *GetEvent(void) const { return event; }
    const char *Title(void) const { return event->Title(); }
    const char *ShortText(void) const { return event->ShortText(); }
@@ -284,10 +282,11 @@ diff -Naurp vdr-1.7.13/recording.h vdr-1.7.13-graphtft/recording.h
    const char *Description(void) const { return event->Description(); }
    const cComponents *Components(void) const { return event->Components(); }
    const char *Aux(void) const { return aux; }
-diff -Naurp vdr-1.7.13/status.c vdr-1.7.13-graphtft/status.c
---- vdr-1.7.13/status.c	2008-02-16 14:46:31.000000000 +0000
-+++ vdr-1.7.13-graphtft/status.c	2010-02-28 20:20:08.000000000 +0000
-@@ -124,3 +124,32 @@ void cStatus::MsgOsdProgramme(time_t Pre
+Index: vdr/status.c
+===================================================================
+--- vdr.orig/status.c	2011-12-10 21:50:59.000000000 +0100
++++ vdr/status.c	2011-12-11 02:29:59.000000000 +0100
+@@ -124,3 +124,32 @@
    for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
        sm->OsdProgramme(PresentTime, PresentTitle, PresentSubtitle, FollowingTime, FollowingTitle, FollowingSubtitle);
  }
@@ -320,10 +319,11 @@ diff -Naurp vdr-1.7.13/status.c vdr-1.7.13-graphtft/status.c
 +  for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
 +     sm->OsdEventItem(Event, Text, Index, Count);
 +}
-diff -Naurp vdr-1.7.13/status.h vdr-1.7.13-graphtft/status.h
---- vdr-1.7.13/status.h	2008-02-16 15:00:33.000000000 +0000
-+++ vdr-1.7.13-graphtft/status.h	2010-02-28 20:20:08.000000000 +0000
-@@ -80,6 +80,17 @@ protected:
+Index: vdr/status.h
+===================================================================
+--- vdr.orig/status.h	2011-12-10 21:50:59.000000000 +0100
++++ vdr/status.h	2011-12-11 02:29:59.000000000 +0100
+@@ -80,6 +80,17 @@
                 // The OSD displays the single line Text with the current channel information.
    virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle) {}
                 // The OSD displays the given programme information.
@@ -341,7 +341,7 @@ diff -Naurp vdr-1.7.13/status.h vdr-1.7.13-graphtft/status.h
  public:
    cStatus(void);
    virtual ~cStatus();
-@@ -101,6 +112,11 @@ public:
+@@ -101,6 +112,11 @@
    static void MsgOsdTextItem(const char *Text,  bool Scroll = false);
    static void MsgOsdChannel(const char *Text);
    static void MsgOsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle);
diff --git a/debian/patches/opt-53_dvbsetup.dpatch b/debian/patches/opt-53_dvbsetup.patch
similarity index 94%
rename from debian/patches/opt-53_dvbsetup.dpatch
rename to debian/patches/opt-53_dvbsetup.patch
index 2ce8b95..b1b8cd2 100644
--- a/debian/patches/opt-53_dvbsetup.dpatch
+++ b/debian/patches/opt-53_dvbsetup.patch
@@ -1,17 +1,7 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## opt-53_dvbsetup.dpatch by Tobias Grimm <tg at e-tobi.net>
-##
-## Thomas Günther <tom at toms-cafe.de>:
-##   - updated to version of extensions patch 72
-##   - adapted to VDR-1.7.8 with noepg patch
-##   - solved conflicts with other patches
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Setup for AC3 transfer and Channel Blocker
-## DP: Taken from the Zulu extensions patch 72
-## DP: See http://www.zulu-entertainment.de/download.php?group=VDR
+Description: Setup for AC3 transfer and Channel Blocker
+ Taken from the Zulu extensions patch 72
+Origin: http://www.zulu-entertainment.de/download.php?group=VDR
 
- at DPATCH@
 diff -Naurp vdr-1.7.8-noepg/config.c vdr-1.7.8-noepg-dvbsetup/config.c
 --- vdr-1.7.8-noepg/config.c	2009-06-15 21:04:42.000000000 +0000
 +++ vdr-1.7.8-noepg-dvbsetup/config.c	2009-06-15 21:52:59.000000000 +0000
diff --git a/debian/patches/patchtest b/debian/patches/patchtest
deleted file mode 100644
index ac2b8ca..0000000
--- a/debian/patches/patchtest
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/bin/bash
-
-# Define some patch levels here: foo="patch1 patch2 ..."
-#
-standard="\
-    04_newplugin \
-    06_default_svdrp_port_0 \
-    11_sortrecordings \
-    12_osdbase-maxitems \
-    16_channels.conf.terr-fix \
-    81_Make_config \
-    82_valgrind \
-    99_ncursesw-include \
-    99_vdr-workaround-broken-sys-capability"
-multipatch="$standard \
-    opt-20_liemikuutio \
-    opt-21_internal-cam-devices \
-    opt-22-x_edit_marks \
-    opt-24_jumpplay \
-    opt-27_ttxtsubs \
-    opt-31-x_reelchannelscan \
-    opt-37-x_menuorg \
-    opt-38_disableDoubleEpgEntrys \
-    opt-39_noepg \
-    opt-41-x_timer-info \
-    opt-42-x_MainMenuHooks \
-    opt-43-x_recordshowfree \
-    opt-44_rotor \
-    opt-45_yaepg \
-    opt-48-x_pin \
-    opt-50_graphtft \
-    opt-50_graphtft-liemikuutio \
-    opt-91_ext-graphtft \
-    opt-51_cuttime \
-    opt-52_hard_link_cutter"
-testpatch="$standard \
-    opt-20_liemikuutio \
-    opt-21_internal-cam-devices \
-    opt-24_jumpplay \
-    opt-27_ttxtsubs \
-    opt-29_syncearly \
-    opt-31-x_reelchannelscan \
-    opt-37-x_menuorg \
-    opt-38_disableDoubleEpgEntrys \
-    opt-39_noepg \
-    opt-41-x_timer-info \
-    opt-42-x_MainMenuHooks \
-    opt-44_rotor \
-    opt-45_yaepg \
-    opt-48-x_pin \
-    opt-50_graphtft \
-    opt-51_cuttime \
-    opt-52_hard_link_cutter"
-mustfail_patch="XX_patchtest-patch-error"
-mustfail_compile="XX_patchtest-compile-error"
-
-# List the patch levels to be tested:
-#
-patchLevels=(\
-    "standard $standard"\
-    "multipatch $multipatch"\
-    "testpatch $testpatch"\
-    "mustfail_patch $mustfail_patch"\
-    "mustfail_compile $mustfail_compile")
-
-currentDir=`pwd`
-
-testPatchLevel ()
-{
-    patchLevelName=$1
-    tempDir=/tmp/vdr.$$.tmp
-    mkdir -p $tempDir
-    cp -r . $tempDir/vdr
-    cd $tempDir/vdr
-    # don't use dpatch:
-    touch patch-stamp
-    Failed="false"
-    shift
-    while [ "$1" ]
-    do
-        if [ $SOLVE = "true" ] ; then
-            rm -rf ../vdr.orig
-            cp -r . ../vdr.orig
-        fi
-        chmod a+x debian/patches/$1.dpatch
-        debian/patches/$1.dpatch -patch >/tmp/patchtest_patch.log 2>&1
-        if [ $? -ne 0 ] ; then
-            echo "FAILED $patchLevelName at $1"
-            Failed="true"
-            break
-        fi
-        shift
-    done
-
-    if [ $Failed = "false" ] ; then
-        if [ $QUICK = "true" ] ; then
-            echo "    OK $patchLevelName"
-        else
-            fakeroot debian/rules binary >/tmp/patchtest_build.log 2>&1
-            if [ $? -ne 0 ] ; then
-                Failed="true"
-                echo "FAILED $patchLevelName - Build Error"
-            else
-                echo "    OK $patchLevelName"
-            fi
-        fi
-    fi
-    if [ $Failed = "true" -a $SOLVE = "true" ] ; then
-        cd ..
-        exit 1
-    fi
-    cd $currentDir
-    rm -rf $tempDir
-}
-
-listPatchLevels ()
-{
-    len=${#patchLevels[*]}
-    i=0
-    while [ $i -lt $len ]
-    do
-        patchset=${patchLevels[$i]}
-        isPatchLevelName="true"
-        for patch in $patchset
-        do
-            if [ "$isPatchLevelName" = "true" ] ; then
-                echo "[$patch] contains these patches:"
-            else
-                echo -n "$patch, "
-            fi
-            isPatchLevelName="false"
-        done
-        let i++
-        echo
-        echo
-    done
-}
-
-
-testPatchLevels ()
-{
-    len=${#patchLevels[*]}
-    i=0
-    while [ $i -lt $len ]
-    do
-        patchset=${patchLevels[$i]}
-        testPatchLevel $patchset
-        let i++
-    done
-}
-
-echo
-echo "Patch-Level-Test"
-echo "----------------"
-echo
-
-QUICK='false'
-SOLVE='false'
-
-case $1 in
-    --help)
-        echo "Usage: debian/patches/patchtest [ --help | --quick | --solve ]"
-        echo
-        echo "With the --quick option no compilation will be performed."
-        echo "Using the --solve option will stop the test on failure and open"
-        echo "a new shell where you can solve any problems."
-        echo
-        exit 0
-    ;;
-    --quick)
-        QUICK="true"
-    ;;
-    --solve)
-        QUICK="true"
-        SOLVE="true"
-    ;;
-esac
-
-if [ -d debian/patches ] ; then
-    listPatchLevels
-    echo
-    testPatchLevels
-else
-    echo "Could not find debian/patches"
-fi
-
-echo
diff --git a/debian/patches/series b/debian/patches/series
index 4086912..1533d98 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -8,3 +8,58 @@
 82_valgrind.patch
 
 99_ncursesw-include.patch
+
+# Patch collection (replaces enAIO).
+opt-20_liemikuutio.patch
+
+# Allows to tune to non-FTA channels provided by internal devices, 
+# like streamdev
+opt-21_internal-cam-devices.patch
+
+# Easy editing of cutting marks
+# (Requires opt-20_liemikuutio!)
+opt-22-x_edit_marks.patch
+
+# The Jump patch allows automatic jumping over cutting marks.
+opt-24_jumpplay.patch
+
+# Patch needed for the ttxtsubs plugin.
+opt-27_ttxtsubs.patch
+
+# Speed up zapping channels.
+# opt-29_syncearly.patch
+
+# Patch that shows if there is a valid setup value left or right with < and >.
+# opt-35_setup-show-valid.patch
+
+# Patch needed for the menuorg plugin.
+opt-37-x_menuorg.patch
+
+# Patch that suppresses double EPG entries.
+opt-38_disableDoubleEpgEntrys.patch
+
+# Patch to disable normal epg update for specified channels.
+opt-39_noepg.patch
+
+# Patch to show an info, if it is possible to record an event in the timer-info.
+opt-41-x_timer-info.patch
+
+# Patch to allow plugins to replace the VDR mainmenus
+opt-42-x_MainMenuHooks.patch
+
+# Shows remaining recording capacity in recordings menu.
+# (Requires opt-41-x_timer-info !)
+opt-43-x_recordshowfree.patch
+
+# Patch needed for the rotor plugin.
+opt-44_rotor.patch
+
+# Patch needed for the yaepg plugin.
+opt-45_yaepg.patch
+
+# Patch required for the GraphTFT plugin
+opt-50_graphtft.patch
+opt-50_graphtft-liemikuutio.patch
+
+# Setup for AC3 transfer, QAM_256, disable primary tuner
+# opt-53_dvbsetup.patch

-- 
vdr packaging repository



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