r7781 - in /vdr/vdr/trunk/debian: ./ patches/ plugin-template/

tiber-guest at users.alioth.debian.org tiber-guest at users.alioth.debian.org
Wed May 6 19:38:30 UTC 2009


Author: tiber-guest
Date: Wed May  6 19:38:30 2009
New Revision: 7781

URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/?sc=1&rev=7781
Log:
TODO: Do we really want to close #522011, which is related to kernel
bug #523424 ???
* Upgraded opt-20_liemikuutio.dpatch to version 1.27
* Updated and renamed opt-40_iptv.dpatch to opt-40_pluginparam.dpatch
* Added 99_dvb-header-fixes.dpatch as a workaround for the header bugs in
  Linux 2.6.29 (Closes: 522011)
* Fixed debianize-vdrplugin template (dropped patchlevel field in control)
* Changed section of plugin template to "video"

Added:
    vdr/vdr/trunk/debian/patches/99_dvb-header-fixes.dpatch
    vdr/vdr/trunk/debian/patches/opt-40_pluginparam.dpatch
Removed:
    vdr/vdr/trunk/debian/patches/extension-patch-helper.sh
    vdr/vdr/trunk/debian/patches/opt-40_iptv.dpatch
Modified:
    vdr/vdr/trunk/debian/.vdr-patches
    vdr/vdr/trunk/debian/.vdr-patches.multipatch
    vdr/vdr/trunk/debian/changelog
    vdr/vdr/trunk/debian/copyright
    vdr/vdr/trunk/debian/patches/00list
    vdr/vdr/trunk/debian/patches/00list.multipatch
    vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch
    vdr/vdr/trunk/debian/plugin-template/control

Modified: vdr/vdr/trunk/debian/.vdr-patches
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/.vdr-patches?rev=7781&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/.vdr-patches (original)
+++ vdr/vdr/trunk/debian/.vdr-patches Wed May  6 19:38:30 2009
@@ -3,6 +3,7 @@
 debian/patches/12_osdbase-maxitems.dpatch:e45d1b62f7d66c3e5d279e3561034107
 debian/patches/10_dd-record-option.dpatch:58c3a3dbcd9a3ec4b0ee1814f71d1e88
 debian/patches/11_sortrecordings.dpatch:9ed4cd1e144ee59dab34d4df4aa9af51
+debian/patches/99_dvb-header-fixes.dpatch:ef5dae99f9ce2566d72a393c84e66741
 debian/patches/19_dvb-api-v5.dpatch:6714266c10537521d2440cfa4d50b3f0
 debian/patches/04_newplugin.dpatch:e99f8d21734a19b3eb93d9e3f11b680a
 debian/patches/14_cap-memsize.dpatch:7beb9bcecb1bdce4a03c1729acfbbdb3

Modified: vdr/vdr/trunk/debian/.vdr-patches.multipatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/.vdr-patches.multipatch?rev=7781&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/.vdr-patches.multipatch (original)
+++ vdr/vdr/trunk/debian/.vdr-patches.multipatch Wed May  6 19:38:30 2009
@@ -10,7 +10,7 @@
 debian/patches/82_valgrind.dpatch:46960921b989f2f4dab829a51622ed85
 debian/patches/opt-42-x_MainMenuHooks.dpatch:1c4c782b5c88c4f0408890a5f50b217b
 debian/patches/opt-44_rotor.dpatch:bbcc27512e0a0b610efadcde8fa67d02
-debian/patches/opt-20_liemikuutio.dpatch:bb8bb6b250b8b2ee24dad87a7c4490f8
+debian/patches/opt-20_liemikuutio.dpatch:b75777c886ae836a8d499a0628ae091f
 debian/patches/10_dd-record-option.dpatch:58c3a3dbcd9a3ec4b0ee1814f71d1e88
 debian/patches/opt-21_internal-cam-devices.dpatch:a883c0b09e67b679436b7df1e9807fc8
 debian/patches/09_sort_options.dpatch:3b561fcd7645b216b4dab989d7786fda
@@ -24,7 +24,8 @@
 debian/patches/opt-31-x_reelchannelscan.dpatch:f8c06ac51888248f68badcab8533c2be
 debian/patches/81_Make_config.dpatch:dcff6a00ef9474bca19d955d19574009
 debian/patches/opt-51_cuttime.dpatch:cfbf0a7934f109148fef4e385c3eb465
-debian/patches/opt-40_iptv.dpatch:2cca9430e7f83eaf9d25b1e8ca9e5fa7
+debian/patches/opt-40_pluginparam.dpatch:9dc3baf2532c9df6e715f0d6c9f7df06
+debian/patches/99_dvb-header-fixes.dpatch:ef5dae99f9ce2566d72a393c84e66741
 debian/patches/14_cap-memsize.dpatch:7beb9bcecb1bdce4a03c1729acfbbdb3
 debian/patches/opt-48-x_pin.dpatch:5e8f7e1b1ad5ed8ac51736d2aed02f9c
 debian/patches/opt-47_sourcecaps.dpatch:626ed6d141802b9cae8c4b6cab97311e

Modified: vdr/vdr/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/changelog?rev=7781&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/changelog (original)
+++ vdr/vdr/trunk/debian/changelog Wed May  6 19:38:30 2009
@@ -1,3 +1,17 @@
+vdr (1.6.0-10) UNRELEASED; urgency=low
+
+  TODO: Do we really want to close #522011, which is related to kernel
+  bug #523424 ???
+
+  * Upgraded opt-20_liemikuutio.dpatch to version 1.27
+  * Updated and renamed opt-40_iptv.dpatch to opt-40_pluginparam.dpatch
+  * Added 99_dvb-header-fixes.dpatch as a workaround for the header bugs in
+    Linux 2.6.29 (Closes: 522011)
+  * Fixed debianize-vdrplugin template (dropped patchlevel field in control)
+  * Changed section of plugin template to "video"
+
+ -- Tobias Grimm <etobi at debian.org>  Mon, 04 May 2009 01:08:27 +0200
+
 vdr (1.6.0-9) unstable; urgency=low
 
   [ Tobias Grimm ]

Modified: vdr/vdr/trunk/debian/copyright
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/copyright?rev=7781&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/copyright (original)
+++ vdr/vdr/trunk/debian/copyright Wed May  6 19:38:30 2009
@@ -21,7 +21,7 @@
                  http://vdrportal.de/board/thread.php?postid=260715#post260715
 
 Debian Maintainers:
-    Tobias Grimm <tg at e-tobi.net>
+    Tobias Grimm <etobi at debian.org>
     Thomas Günther <tom at toms-cafe.de>
     Thomas Schmidt <tschmidt at debian.org>
 

Modified: vdr/vdr/trunk/debian/patches/00list
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/00list?rev=7781&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/00list (original)
+++ vdr/vdr/trunk/debian/patches/00list Wed May  6 19:38:30 2009
@@ -15,6 +15,7 @@
 81_Make_config
 82_valgrind
 
+99_dvb-header-fixes
 99_ncursesw-include
 
 # Patch collection (replaces enAIO).
@@ -55,8 +56,8 @@
 # Patch to disable normal epg update for specified channels.
 # opt-39_noepg
 
-# Patch required by the IPTV plugin
-# opt-40_iptv
+# Patch required by the IPTV and other plugins
+# opt-40_pluginparam
 
 # Patch to show an info, if it is possible to record an event in the timer-info.
 # opt-41-x_timer-info

Modified: vdr/vdr/trunk/debian/patches/00list.multipatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/00list.multipatch?rev=7781&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/00list.multipatch (original)
+++ vdr/vdr/trunk/debian/patches/00list.multipatch Wed May  6 19:38:30 2009
@@ -15,6 +15,7 @@
 81_Make_config
 82_valgrind
 
+99_dvb-header-fixes
 99_ncursesw-include
 
 # Patch collection (replaces enAIO).
@@ -55,8 +56,8 @@
 # Patch to disable normal epg update for specified channels.
 opt-39_noepg
 
-# Patch required by the IPTV plugin
-opt-40_iptv
+# Patch required by the IPTV and other plugins
+opt-40_pluginparam
 
 # Patch to show an info, if it is possible to record an event in the timer-info.
 opt-41-x_timer-info

Added: vdr/vdr/trunk/debian/patches/99_dvb-header-fixes.dpatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/99_dvb-header-fixes.dpatch?rev=7781&op=file
==============================================================================
--- vdr/vdr/trunk/debian/patches/99_dvb-header-fixes.dpatch (added)
+++ vdr/vdr/trunk/debian/patches/99_dvb-header-fixes.dpatch Wed May  6 19:38:30 2009
@@ -1,0 +1,52 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 99_dvb-header-fixes.dpatch by Tobias Grimm <etobi at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: This is a workaround for some trouble with the kernel headers
+## DP: in Linux 2.6.29.
+## DP: See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=523424
+
+ at DPATCH@
+diff -urNad vdr-1.6.0~/device.h vdr-1.6.0/device.h
+--- vdr-1.6.0~/device.h	2008-02-23 14:13:04.000000000 +0100
++++ vdr-1.6.0/device.h	2009-04-19 22:39:19.000000000 +0200
+@@ -10,6 +10,7 @@
+ #ifndef __DEVICE_H
+ #define __DEVICE_H
+ 
++#include <asm/types.h>
+ #include "channels.h"
+ #include "ci.h"
+ #include "dvbsubtitle.h"
+diff -urNad vdr-1.6.0~/dvbdevice.c vdr-1.6.0/dvbdevice.c
+--- vdr-1.6.0~/dvbdevice.c	2008-02-09 17:11:44.000000000 +0100
++++ vdr-1.6.0/dvbdevice.c	2009-04-19 22:35:47.000000000 +0200
+@@ -7,6 +7,8 @@
+  * $Id: dvbdevice.c 1.170 2008/02/09 16:11:44 kls Exp $
+  */
+ 
++#include <sys/ioctl.h>
++#include <sys/mman.h>
+ #include "dvbdevice.h"
+ #include <errno.h>
+ #include <limits.h>
+@@ -15,8 +17,6 @@
+ #include <linux/dvb/dmx.h>
+ #include <linux/dvb/frontend.h>
+ #include <linux/dvb/video.h>
+-#include <sys/ioctl.h>
+-#include <sys/mman.h>
+ #include "channels.h"
+ #include "diseqc.h"
+ #include "dvbci.h"
+diff -urNad vdr-1.6.0~/dvbdevice.h vdr-1.6.0/dvbdevice.h
+--- vdr-1.6.0~/dvbdevice.h	2009-04-19 22:35:47.000000000 +0200
++++ vdr-1.6.0/dvbdevice.h	2009-04-19 22:35:47.000000000 +0200
+@@ -10,6 +10,7 @@
+ #ifndef __DVBDEVICE_H
+ #define __DVBDEVICE_H
+ 
++#include <asm/types.h>
+ #include <linux/dvb/frontend.h>
+ #include <linux/dvb/version.h>
+ #include "device.h"

Modified: vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch?rev=7781&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch (original)
+++ vdr/vdr/trunk/debian/patches/opt-20_liemikuutio.dpatch Wed May  6 19:38:30 2009
@@ -1,126 +1,14 @@
 #! /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.6.0-liemikuutio-1.21.diff.gz
+## http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-liemikuutio-1.27.diff.gz
 ##
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Patch collection - see HISTORY-liemikuutio for details.
 
 @DPATCH@
-diff -Nru vdr-1.6.0-vanilla/HISTORY-liemikuutio vdr-1.6.0-liemikuutio/HISTORY-liemikuutio
---- vdr-1.6.0-vanilla/HISTORY-liemikuutio	1970-01-01 02:00:00.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/HISTORY-liemikuutio	2008-05-08 22:47:59.000000000 +0300
-@@ -0,0 +1,108 @@
-+-----------------------------------
-+Liemikuutio for Video Disc Recorder
-+
-+Maintainer: Rolf Ahrenberg
-+-----------------------------------
-+
-+2006-01-08: Version 1.0
-+
-+- Based on enAIO with these original patches:
-+  Simple recordings sorting by Walter at VDRPortal
-+  Alternate rename recordings by Ralf Müller
-+  Menu selection by Peter Dittmann
-+  Recording length by Tobias Faust
-+
-+2006-01-15: Version 1.1
-+
-+- Removed patches already found in vdr-1.3.39.
-+
-+2006-01-25: Version 1.2
-+
-+- Added "Main menu command position" feature.
-+
-+2006-02-05: Version 1.3
-+
-+- Improved menu selection response.
-+
-+2006-04-18: Version 1.4
-+
-+- Added Estonian translation (Thanks to Arthur Konovalov).
-+
-+2006-04-30: Version 1.5
-+
-+- Added progress bar view into "What's on now?" menu.
-+
-+2006-06-06: Version 1.6
-+
-+- Added French translation (Thanks to ECLiPSE).
-+
-+2006-06-14: Version 1.7
-+
-+- Fixed RENR crash.
-+
-+2006-07-14: Version 1.8
-+
-+- Fixed RENR/OSD bug.
-+
-+2006-08-27: Version 1.9
-+
-+- Some modifications to the recording length and rename recordings
-+  patches (Thanks to Firefly).
-+- Added k1_k3_jumps_20s patch by Petri Hintukainen.
-+
-+2006-08-29: Version 1.10
-+
-+- The cRecording:Title() method now defaults to original formatting.
-+
-+2006-09-04: Version 1.11
-+
-+- Removed unused variable from cRecording::Title() method (Thanks to
-+  C.Y.M.).
-+- Some modifications to the rename recordings patch (Thanks to Firefly).
-+
-+2006-09-13: Version 1.12
-+
-+- More modifications to the rename recordings patch (Thanks to Firefly).
-+
-+2006-10-01: Version 1.13
-+
-+- Removed unnecessary syslog printing (Thanks to Firefly).
-+
-+2007-08-14: Version 1.14
-+
-+- Updated for vdr-1.5.7.
-+
-+2007-10-16: Version 1.15
-+
-+- Added recmenu play patch (Thanks to Ville Skyttä).
-+- Updated French translation (Thanks to ECLiPSE).
-+
-+2007-11-04: Version 1.16
-+
-+- Updated for vdr-1.5.11.
-+
-+2007-12-08: Version 1.17
-+
-+- Added binary skip patch.
-+- Removed k1_k3_jumps_20s patch.
-+
-+2008-02-17: Version 1.18
-+
-+- Updated for vdr-1.5.15.
-+
-+2008-03-02: Version 1.19
-+
-+- Modified binary skip to use kPrev and kNext keys and the skip is now
-+  always shortened after a direction change (Thanks to Timo Eskola).
-+- Readded k1_k3_jumps_20s patch.
-+
-+2008-04-04: Version 1.20
-+
-+- Added bitrate information into rename menu.
-+- Readded the path editing support of rename recordings patch (Thanks
-+  to Firefly).
-+
-+2008-05-08: Version 1.21
-+
-+- Fixed rename recordings (Thanks to Firefly).
-+- Added a DVB subtitles hack for old recordings (Thanks to Anssi Hannula).
 diff -Nru vdr-1.6.0-vanilla/config.c vdr-1.6.0-liemikuutio/config.c
---- vdr-1.6.0-vanilla/config.c	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/config.c	2008-03-27 21:47:57.000000000 +0200
+--- vdr-1.6.0-vanilla/config.c	2008-02-17 15:39:00.000000000 +0200
++++ vdr-1.6.0-liemikuutio/config.c	2009-02-27 23:06:59.000000000 +0200
 @@ -289,6 +289,11 @@
    InitialChannel = 0;
    InitialVolume = -1;
@@ -158,13 +46,13 @@
    Sort();
  
 diff -Nru vdr-1.6.0-vanilla/config.h vdr-1.6.0-liemikuutio/config.h
---- vdr-1.6.0-vanilla/config.h	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/config.h	2008-04-26 23:23:40.000000000 +0300
+--- vdr-1.6.0-vanilla/config.h	2008-03-23 12:26:10.000000000 +0200
++++ vdr-1.6.0-liemikuutio/config.h	2009-04-26 09:00:51.000000000 +0300
 @@ -36,6 +36,8 @@
  // plugins to work with newer versions of the core VDR as long as no
  // VDR header files have changed.
  
-+#define LIEMIKUUTIO  121
++#define LIEMIKUUTIO  127
 +
  #define MAXPRIORITY 99
  #define MAXLIFETIME 99
@@ -178,8 +66,8 @@
    cSetup(void);
    cSetup& operator= (const cSetup &s);
 diff -Nru vdr-1.6.0-vanilla/device.c vdr-1.6.0-liemikuutio/device.c
---- vdr-1.6.0-vanilla/device.c	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/device.c	2008-05-08 22:50:10.000000000 +0300
+--- vdr-1.6.0-vanilla/device.c	2008-03-09 12:03:34.000000000 +0200
++++ vdr-1.6.0-liemikuutio/device.c	2009-02-27 23:06:59.000000000 +0200
 @@ -1100,7 +1100,8 @@
       int LanguagePreference = INT_MAX; // higher than the maximum possible value
       for (int i = ttSubtitleFirst; i <= ttSubtitleLast; i++) {
@@ -190,9 +78,145 @@
              PreferredTrack = eTrackType(i);
           }
       // Make sure we're set to an available subtitle track:
+diff -Nru vdr-1.6.0-vanilla/HISTORY-liemikuutio vdr-1.6.0-liemikuutio/HISTORY-liemikuutio
+--- vdr-1.6.0-vanilla/HISTORY-liemikuutio	1970-01-01 02:00:00.000000000 +0200
++++ vdr-1.6.0-liemikuutio/HISTORY-liemikuutio	2009-04-26 09:05:26.000000000 +0300
+@@ -0,0 +1,132 @@
++-----------------------------------
++Liemikuutio for Video Disc Recorder
++
++Maintainer: Rolf Ahrenberg
++-----------------------------------
++
++2006-01-08: Version 1.0
++
++- Based on enAIO with these original patches:
++  Simple recordings sorting by Walter at VDRPortal
++  Alternate rename recordings by Ralf Müller
++  Menu selection by Peter Dittmann
++  Recording length by Tobias Faust
++
++2006-01-15: Version 1.1
++
++- Removed patches already found in vdr-1.3.39.
++
++2006-01-25: Version 1.2
++
++- Added "Main menu command position" feature.
++
++2006-02-05: Version 1.3
++
++- Improved menu selection response.
++
++2006-04-18: Version 1.4
++
++- Added Estonian translation (Thanks to Arthur Konovalov).
++
++2006-04-30: Version 1.5
++
++- Added progress bar view into "What's on now?" menu.
++
++2006-06-06: Version 1.6
++
++- Added French translation (Thanks to ECLiPSE).
++
++2006-06-14: Version 1.7
++
++- Fixed RENR crash.
++
++2006-07-14: Version 1.8
++
++- Fixed RENR/OSD bug.
++
++2006-08-27: Version 1.9
++
++- Some modifications to the recording length and rename recordings
++  patches (Thanks to Firefly).
++- Added k1_k3_jumps_20s patch by Petri Hintukainen.
++
++2006-08-29: Version 1.10
++
++- The cRecording:Title() method now defaults to original formatting.
++
++2006-09-04: Version 1.11
++
++- Removed unused variable from cRecording::Title() method (Thanks to
++  C.Y.M.).
++- Some modifications to the rename recordings patch (Thanks to Firefly).
++
++2006-09-13: Version 1.12
++
++- More modifications to the rename recordings patch (Thanks to Firefly).
++
++2006-10-01: Version 1.13
++
++- Removed unnecessary syslog printing (Thanks to Firefly).
++
++2007-08-14: Version 1.14
++
++- Updated for vdr-1.5.7.
++
++2007-10-16: Version 1.15
++
++- Added recmenu play patch (Thanks to Ville Skyttä).
++- Updated French translation (Thanks to ECLiPSE).
++
++2007-11-04: Version 1.16
++
++- Updated for vdr-1.5.11.
++
++2007-12-08: Version 1.17
++
++- Added binary skip patch.
++- Removed k1_k3_jumps_20s patch.
++
++2008-02-17: Version 1.18
++
++- Updated for vdr-1.5.15.
++
++2008-03-02: Version 1.19
++
++- Modified binary skip to use kPrev and kNext keys and the skip is now
++  always shortened after a direction change (Thanks to Timo Eskola).
++- Readded k1_k3_jumps_20s patch.
++
++2008-04-04: Version 1.20
++
++- Added bitrate information into rename menu.
++- Readded the path editing support of rename recordings patch (Thanks
++  to Firefly).
++
++2008-05-08: Version 1.21
++
++- Fixed rename recordings (Thanks to Firefly).
++- Added a DVB subtitles hack for old recordings (Thanks to Anssi Hannula).
++
++2009-01-08: Version 1.22
++
++- Updated for vdr-1.7.3.
++
++2009-01-25: Version 1.23
++
++- Updated for vdr-1.7.4.
++
++2009-02-27: Version 1.24
++
++- Fixed compilation under gcc-4.4.
++
++2009-04-05: Version 1.25
++
++- Fixed the length detection of recordings (Thanks to Thomas Günther).
++
++2009-04-17: Version 1.26
++
++- Fixed the length detection of audio recordings (Thanks to Thomas Günther).
++
++2009-04-26: Version 1.27
++
++- Fixed the length detection of empty recordings (Thanks to Thomas Günther).
 diff -Nru vdr-1.6.0-vanilla/menu.c vdr-1.6.0-liemikuutio/menu.c
---- vdr-1.6.0-vanilla/menu.c	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/menu.c	2008-04-04 00:23:09.000000000 +0300
+--- vdr-1.6.0-vanilla/menu.c	2008-03-16 13:15:28.000000000 +0200
++++ vdr-1.6.0-liemikuutio/menu.c	2009-04-05 13:04:51.000000000 +0300
 @@ -13,6 +13,7 @@
  #include <stdio.h>
  #include <stdlib.h>
@@ -322,7 +346,7 @@
    if (*Text() == '\t')
       name = strdup(Text() + 2); // 'Text() + 2' to skip the two '\t'
  }
-@@ -1899,13 +1939,155 @@
+@@ -1899,13 +1939,153 @@
    totalEntries++;
    if (New)
       newEntries++;
@@ -369,14 +393,13 @@
 +  priority = recording->priority;
 +  lifetime = recording->lifetime;
 +
-+  char* p = strrchr(recording->Name(), '~');
-+  if (p) {
-+     p++;
-+     Utf8Strn0Cpy(name, p, sizeof(name));
++  const char* pname = strrchr(recording->Name(), '~');
++  if (pname) {
++     Utf8Strn0Cpy(name, pname + 1, sizeof(name));
 +     Utf8Strn0Cpy(path, recording->Name(), sizeof(path));
-+     p = strrchr(path, '~');
-+     if (p)
-+        p[0] = 0;
++     char *ppath = strrchr(path, '~');
++     if (ppath)
++        ppath[0] = 0;
 +     }
 +  else {
 +     Utf8Strn0Cpy(name, recording->Name(), sizeof(name));
@@ -395,13 +418,12 @@
 +  if (channel)
 +     Add(new cOsdItem(cString::sprintf("%s:\t%s", tr("Channel"), *ChannelString(channel, 0)), osUnknown, false));
 +
-+  cIndexFile *index = new cIndexFile(recording->FileName(), false);
-+  int recLen = 0;
-+  if (index) {
-+     recLen = index->Last() / FRAMESPERSEC;
-+     Add(new cOsdItem(cString::sprintf("%s:\t%s", tr("Length"), *IndexToHMSF(index->Last())), osUnknown, false));
-+     delete index;
-+     }
++  int recLen = cIndexFile::Length(recording->FileName());
++  if (recLen >= 0)
++     Add(new cOsdItem(cString::sprintf("%s:\t%s", tr("Length"), *IndexToHMSF(recLen)), osUnknown, false));
++  else
++     recLen = 0;
++  recLen /= FRAMESPERSEC;
 +
 +  int dirSize = DirSizeMB(recording->FileName());
 +  cString bitRate = recLen ? cString::sprintf(" (%.2f MBit/s)", 8.0 * dirSize / recLen) : cString("");
@@ -480,7 +502,7 @@
  {
    base = Base ? strdup(Base) : NULL;
    level = Setup.RecordingDirs ? Level : -1;
-@@ -2136,6 +2318,19 @@
+@@ -2136,6 +2316,19 @@
    return osContinue;
  }
  
@@ -500,7 +522,7 @@
  eOSState cMenuRecordings::ProcessKey(eKeys Key)
  {
    bool HadSubMenu = HasSubMenu();
-@@ -2150,7 +2345,12 @@
+@@ -2150,7 +2343,12 @@
         case kYellow: return Delete();
         case kInfo:
         case kBlue:   return Info();
@@ -514,7 +536,7 @@
         case kNone:   if (Recordings.StateChanged(recordingsState))
                          Set(true);
                       break;
-@@ -2276,6 +2476,7 @@
+@@ -2276,6 +2474,7 @@
    Add(new cMenuEditBoolItem(tr("Setup.OSD$Scroll wraps"),           &data.MenuScrollWrap));
    Add(new cMenuEditBoolItem(tr("Setup.OSD$Menu key closes"),        &data.MenuKeyCloses));
    Add(new cMenuEditBoolItem(tr("Setup.OSD$Recording directories"),  &data.RecordingDirs));
@@ -522,7 +544,7 @@
    SetCurrent(Get(current));
    Display();
  }
-@@ -2380,6 +2581,7 @@
+@@ -2380,6 +2579,7 @@
    Add(new cMenuEditIntItem( tr("Setup.EPG$EPG scan timeout (h)"),      &data.EPGScanTimeout));
    Add(new cMenuEditIntItem( tr("Setup.EPG$EPG bugfix level"),          &data.EPGBugfixLevel, 0, MAXEPGBUGFIXLEVEL));
    Add(new cMenuEditIntItem( tr("Setup.EPG$EPG linger time (min)"),     &data.EPGLinger, 0));
@@ -530,7 +552,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));
-@@ -2758,6 +2960,9 @@
+@@ -2758,6 +2958,9 @@
    Add(new cMenuEditIntItem( tr("Setup.Recording$Instant rec. time (min)"),   &data.InstantRecordTime, 1, MAXINSTANTRECTIME));
    Add(new cMenuEditIntItem( tr("Setup.Recording$Max. video file size (MB)"), &data.MaxVideoFileSize, MINVIDEOFILESIZE, MAXVIDEOFILESIZE));
    Add(new cMenuEditBoolItem(tr("Setup.Recording$Split edited files"),        &data.SplitEditedFiles));
@@ -540,7 +562,7 @@
  }
  
  // --- cMenuSetupReplay ------------------------------------------------------
-@@ -3045,6 +3250,7 @@
+@@ -3045,6 +3248,7 @@
       // Replay control:
       if (replaying && !stopReplayItem)
          // TRANSLATORS: note the leading blank!
@@ -548,7 +570,7 @@
          Add(stopReplayItem = new cOsdItem(tr(" Stop replaying"), osStopReplay));
       else if (stopReplayItem && !replaying) {
          Del(stopReplayItem->Index());
-@@ -3059,6 +3265,7 @@
+@@ -3059,6 +3263,7 @@
    bool CutterActive = cCutter::Active();
    if (CutterActive && !cancelEditingItem) {
       // TRANSLATORS: note the leading blank!
@@ -556,7 +578,7 @@
       Add(cancelEditingItem = new cOsdItem(tr(" Cancel editing"), osCancelEdit));
       result = true;
       }
-@@ -3079,6 +3286,7 @@
+@@ -3079,6 +3284,7 @@
       while ((s = cRecordControls::GetInstantId(s)) != NULL) {
             cOsdItem *item = new cOsdItem(osStopRecord);
             item->SetText(cString::sprintf("%s%s", tr(STOP_RECORDING), s));
@@ -564,7 +586,7 @@
             Add(item);
             if (!stopRecordingItem)
                stopRecordingItem = item;
-@@ -4059,6 +4267,10 @@
+@@ -4059,6 +4265,10 @@
  
  // --- cReplayControl --------------------------------------------------------
  
@@ -575,7 +597,7 @@
  cReplayControl *cReplayControl::currentReplayControl = NULL;
  char *cReplayControl::fileName = NULL;
  char *cReplayControl::title = NULL;
-@@ -4072,6 +4284,9 @@
+@@ -4072,6 +4282,9 @@
    lastCurrent = lastTotal = -1;
    lastPlay = lastForward = false;
    lastSpeed = -2; // an invalid value
@@ -585,7 +607,7 @@
    timeoutShow = 0;
    timeSearchActive = false;
    marks.Load(fileName);
-@@ -4435,6 +4650,32 @@
+@@ -4435,6 +4648,32 @@
      case kGreen:   SkipSeconds(-60); break;
      case kYellow|k_Repeat:
      case kYellow:  SkipSeconds( 60); break;
@@ -618,7 +640,7 @@
      case kStop:
      case kBlue:    Hide();
                     Stop();
-@@ -4444,12 +4685,8 @@
+@@ -4444,12 +4683,8 @@
        switch (Key) {
          // Editing:
          case kMarkToggle:      MarkToggle(); break;
@@ -632,8 +654,8 @@
          case kMarkJumpForward: MarkJump(true); break;
          case kMarkMoveBack|k_Repeat:
 diff -Nru vdr-1.6.0-vanilla/menu.h vdr-1.6.0-liemikuutio/menu.h
---- vdr-1.6.0-vanilla/menu.h	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/menu.h	2008-04-03 23:24:39.000000000 +0300
+--- vdr-1.6.0-vanilla/menu.h	2008-02-10 18:01:53.000000000 +0200
++++ vdr-1.6.0-liemikuutio/menu.h	2009-02-27 23:06:59.000000000 +0200
 @@ -35,6 +35,8 @@
  private:
    cTimer *timer;
@@ -662,8 +684,8 @@
    bool timeSearchActive, timeSearchHide;
    int timeSearchTime, timeSearchPos;
 diff -Nru vdr-1.6.0-vanilla/menuitems.c vdr-1.6.0-liemikuutio/menuitems.c
---- vdr-1.6.0-vanilla/menuitems.c	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/menuitems.c	2008-04-26 23:23:31.000000000 +0300
+--- vdr-1.6.0-vanilla/menuitems.c	2008-02-10 18:03:30.000000000 +0200
++++ vdr-1.6.0-liemikuutio/menuitems.c	2009-02-27 23:06:59.000000000 +0200
 @@ -619,6 +619,168 @@
    return osContinue;
  }
@@ -834,8 +856,8 @@
  
  cMenuEditStraItem::cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char * const *Strings)
 diff -Nru vdr-1.6.0-vanilla/menuitems.h vdr-1.6.0-liemikuutio/menuitems.h
---- vdr-1.6.0-vanilla/menuitems.h	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/menuitems.h	2008-04-03 23:24:39.000000000 +0300
+--- vdr-1.6.0-vanilla/menuitems.h	2008-02-16 18:09:58.000000000 +0200
++++ vdr-1.6.0-liemikuutio/menuitems.h	2009-02-27 23:06:59.000000000 +0200
 @@ -78,26 +78,27 @@
  
  class cMenuEditStrItem : public cMenuEditItem {
@@ -893,8 +915,8 @@
  private:
    const char * const *strings;
 diff -Nru vdr-1.6.0-vanilla/osdbase.c vdr-1.6.0-liemikuutio/osdbase.c
---- vdr-1.6.0-vanilla/osdbase.c	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/osdbase.c	2008-03-27 21:47:56.000000000 +0200
+--- vdr-1.6.0-vanilla/osdbase.c	2008-02-17 13:33:04.000000000 +0200
++++ vdr-1.6.0-liemikuutio/osdbase.c	2009-02-27 23:06:59.000000000 +0200
 @@ -77,6 +77,7 @@
  {
    isMenu = true;
@@ -990,8 +1012,8 @@
      case kUp:   CursorUp();   break;
      case kDown|k_Repeat:
 diff -Nru vdr-1.6.0-vanilla/osdbase.h vdr-1.6.0-liemikuutio/osdbase.h
---- vdr-1.6.0-vanilla/osdbase.h	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/osdbase.h	2008-03-27 21:47:56.000000000 +0200
+--- vdr-1.6.0-vanilla/osdbase.h	2007-11-03 16:50:52.000000000 +0200
++++ vdr-1.6.0-liemikuutio/osdbase.h	2009-02-27 23:06:59.000000000 +0200
 @@ -95,6 +95,8 @@
    char *status;
    int digit;
@@ -1002,8 +1024,8 @@
    void SetDisplayMenu(void);
    cSkinDisplayMenu *DisplayMenu(void) { return displayMenu; }
 diff -Nru vdr-1.6.0-vanilla/po/de_DE.po vdr-1.6.0-liemikuutio/po/de_DE.po
---- vdr-1.6.0-vanilla/po/de_DE.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/de_DE.po	2008-04-03 23:31:27.000000000 +0300
+--- vdr-1.6.0-vanilla/po/de_DE.po	2008-03-23 12:31:29.000000000 +0200
++++ vdr-1.6.0-liemikuutio/po/de_DE.po	2009-02-27 23:06:59.000000000 +0200
 @@ -998,3 +998,51 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
@@ -1057,8 +1079,8 @@
 +msgid "Setup.Recording$Show length"
 +msgstr "Länge der Aufnahme anzeigen"
 diff -Nru vdr-1.6.0-vanilla/po/et_EE.po vdr-1.6.0-liemikuutio/po/et_EE.po
---- vdr-1.6.0-vanilla/po/et_EE.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/et_EE.po	2008-04-03 23:38:43.000000000 +0300
+--- vdr-1.6.0-vanilla/po/et_EE.po	2008-03-23 12:31:29.000000000 +0200
++++ vdr-1.6.0-liemikuutio/po/et_EE.po	2009-02-27 23:06:59.000000000 +0200
 @@ -998,3 +998,51 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
@@ -1112,8 +1134,8 @@
 +msgid "Setup.Recording$Show length"
 +msgstr "Salvestuse pikkus"
 diff -Nru vdr-1.6.0-vanilla/po/fi_FI.po vdr-1.6.0-liemikuutio/po/fi_FI.po
---- vdr-1.6.0-vanilla/po/fi_FI.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/fi_FI.po	2008-04-03 23:34:26.000000000 +0300
+--- vdr-1.6.0-vanilla/po/fi_FI.po	2008-03-23 12:31:29.000000000 +0200
++++ vdr-1.6.0-liemikuutio/po/fi_FI.po	2009-02-27 23:06:59.000000000 +0200
 @@ -1001,3 +1001,51 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
@@ -1167,8 +1189,8 @@
 +msgid "Setup.Recording$Show length"
 +msgstr "Näytä tallenteen kesto"
 diff -Nru vdr-1.6.0-vanilla/po/fr_FR.po vdr-1.6.0-liemikuutio/po/fr_FR.po
---- vdr-1.6.0-vanilla/po/fr_FR.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/fr_FR.po	2008-04-03 23:36:49.000000000 +0300
+--- vdr-1.6.0-vanilla/po/fr_FR.po	2008-03-23 12:31:29.000000000 +0200
++++ vdr-1.6.0-liemikuutio/po/fr_FR.po	2009-02-27 23:06:59.000000000 +0200
 @@ -1004,3 +1004,51 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
@@ -1187,7 +1209,7 @@
 +msgstr "Taille"
 +
 +msgid "Path"
-+msgstr ""
++msgstr "Chemin"
 +
 +msgid "Rename$Up"
 +msgstr "Haut"
@@ -1220,10 +1242,10 @@
 +msgstr "Montrer l'heure d'enregistrement"
 +
 +msgid "Setup.Recording$Show length"
-+msgstr "Monter la longueur de l'enregistrement"
++msgstr "Montrer la longueur de l'enregistrement"
 diff -Nru vdr-1.6.0-vanilla/po/ru_RU.po vdr-1.6.0-liemikuutio/po/ru_RU.po
---- vdr-1.6.0-vanilla/po/ru_RU.po	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/po/ru_RU.po	2008-03-27 21:47:57.000000000 +0200
+--- vdr-1.6.0-vanilla/po/ru_RU.po	2008-03-23 12:31:29.000000000 +0200
++++ vdr-1.6.0-liemikuutio/po/ru_RU.po	2009-02-27 23:06:59.000000000 +0200
 @@ -999,3 +999,36 @@
  #, c-format
  msgid "VDR will shut down in %s minutes"
@@ -1262,17 +1284,9 @@
 +msgid "Setup.Recording$Show length"
 +msgstr "¿ÞÚÐ×ëÒÐâì ßàÞÔÞÛÖØâÕÛìÝÞáâì ×ÐßØáØ"
 diff -Nru vdr-1.6.0-vanilla/recording.c vdr-1.6.0-liemikuutio/recording.c
---- vdr-1.6.0-vanilla/recording.c	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/recording.c	2008-03-27 21:47:56.000000000 +0200
-@@ -46,6 +46,7 @@
- #endif
- #define INFOFILESUFFIX    "/info.vdr"
- #define MARKSFILESUFFIX   "/marks.vdr"
-+#define INDEXFILESUFFIX   "/index.vdr"
- 
- #define MINDISKSPACE 1024 // MB
- 
-@@ -62,6 +63,7 @@
+--- vdr-1.6.0-vanilla/recording.c	2008-02-24 12:28:53.000000000 +0200
++++ vdr-1.6.0-liemikuutio/recording.c	2009-04-26 09:00:43.000000000 +0300
+@@ -62,6 +62,7 @@
  #define MAX_LINK_LEVEL  6
  
  bool VfatFileSystem = false;
@@ -1280,7 +1294,7 @@
  
  cRecordings DeletedRecordings(true);
  
-@@ -690,6 +692,8 @@
+@@ -690,6 +691,8 @@
  int cRecording::Compare(const cListObject &ListObject) const
  {
    cRecording *r = (cRecording *)&ListObject;
@@ -1289,7 +1303,7 @@
    return strcasecmp(SortName(), r->SortName());
  }
  
-@@ -705,7 +709,7 @@
+@@ -705,7 +708,7 @@
    return fileName;
  }
  
@@ -1298,7 +1312,7 @@
  {
    char New = NewIndicator && IsNew() ? '*' : ' ';
    free(titleBuffer);
-@@ -718,6 +722,7 @@
+@@ -718,6 +721,7 @@
          s++;
       else
          s = name;
@@ -1306,7 +1320,7 @@
       titleBuffer = strdup(cString::sprintf("%02d.%02d.%02d%c%02d:%02d%c%c%s",
                              t->tm_mday,
                              t->tm_mon + 1,
-@@ -728,6 +733,39 @@
+@@ -728,6 +732,27 @@
                              New,
                              Delimiter,
                              s));
@@ -1314,21 +1328,9 @@
 +     else {
 +        cString RecLength("---");
 +        if (Setup.ShowRecLength && FileName()) {
-+           cString filename = cString::sprintf("%s%s", FileName(), INDEXFILESUFFIX);
-+           if (*filename) {
-+              if (access(filename, R_OK) == 0) {
-+                 struct stat buf;
-+                 if (stat(filename, &buf) == 0) {
-+                    struct tIndex { int offset; uchar type; uchar number; short reserved; };
-+                    int delta = buf.st_size % sizeof(tIndex);
-+                    if (delta) {
-+                       delta = sizeof(tIndex) - delta;
-+                       esyslog("ERROR: invalid file size (%ld) in '%s'", buf.st_size, *filename);
-+                       }
-+                    RecLength = cString::sprintf("%ld'", (buf.st_size + delta) / sizeof(tIndex) / SecondsToFrames(60));
-+                    }
-+                 }
-+              }
++           int length = cIndexFile::Length(FileName());
++           if (length >= 0)
++              RecLength = cString::sprintf("%d'", length / SecondsToFrames(60));
 +           }
 +        cString RecDate = cString::sprintf("%02d.%02d.%02d", t->tm_mday, t->tm_mon + 1, t->tm_year % 100);
 +        cString RecTime = cString::sprintf("%02d:%02d", t->tm_hour, t->tm_min);
@@ -1346,7 +1348,7 @@
       // let's not display a trailing '~':
       if (!NewIndicator)
          stripspace(titleBuffer);
-@@ -864,6 +902,41 @@
+@@ -864,6 +889,41 @@
    resume = RESUME_NOT_INITIALIZED;
  }
  
@@ -1388,18 +1390,25 @@
  // --- cRecordings -----------------------------------------------------------
  
  cRecordings Recordings;
-@@ -1172,8 +1245,6 @@
- //XXX+ somewhere else???
- // --- cIndexFile ------------------------------------------------------------
- 
--#define INDEXFILESUFFIX     "/index.vdr"
--
- // The number of frames to stay off the end in case of time shift:
- #define INDEXSAFETYLIMIT 150 // frames
- 
+@@ -1405,6 +1465,15 @@
+   return f >= 0;
+ }
+ 
++int cIndexFile::Length(const char *FileName)
++{
++  struct stat buf;
++  cString fullname = cString::sprintf("%s%s", FileName, INDEXFILESUFFIX);
++  if (FileName && *fullname && access(fullname, R_OK) == 0 && stat(fullname, &buf) == 0)
++     return buf.st_size ? (buf.st_size - 1) / sizeof(tIndex) + 1 : 0;
++  return -1;
++}
++
+ // --- cFileName -------------------------------------------------------------
+ 
+ #define MAXFILESPERRECORDING 255
 diff -Nru vdr-1.6.0-vanilla/recording.h vdr-1.6.0-liemikuutio/recording.h
---- vdr-1.6.0-vanilla/recording.h	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/recording.h	2008-03-27 21:47:57.000000000 +0200
+--- vdr-1.6.0-vanilla/recording.h	2007-10-14 13:11:34.000000000 +0300
++++ vdr-1.6.0-liemikuutio/recording.h	2009-04-05 13:07:48.000000000 +0300
 @@ -19,6 +19,7 @@
  #include "tools.h"
  
@@ -1427,9 +1436,18 @@
    };
  
  class cRecordings : public cList<cRecording>, public cThread {
+@@ -219,6 +223,8 @@
+   int GetResume(void) { return resumeFile.Read(); }
+   bool StoreResume(int Index) { return resumeFile.Save(Index); }
+   bool IsStillRecording(void);
++  static int Length(const char *FileName);
++       ///< Calculates the recording length without reading the index.
+   };
+ 
+ class cFileName {
 diff -Nru vdr-1.6.0-vanilla/svdrp.c vdr-1.6.0-liemikuutio/svdrp.c
---- vdr-1.6.0-vanilla/svdrp.c	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/svdrp.c	2008-03-27 21:47:56.000000000 +0200
+--- vdr-1.6.0-vanilla/svdrp.c	2008-02-17 15:36:01.000000000 +0200
++++ vdr-1.6.0-liemikuutio/svdrp.c	2009-02-27 23:06:59.000000000 +0200
 @@ -296,6 +296,8 @@
    "REMO [ on | off ]\n"
    "    Turns the remote control on or off. Without a parameter, the current\n"
@@ -1487,8 +1505,8 @@
    else if (CMD("STAT"))  CmdSTAT(s);
    else if (CMD("UPDT"))  CmdUPDT(s);
 diff -Nru vdr-1.6.0-vanilla/svdrp.h vdr-1.6.0-liemikuutio/svdrp.h
---- vdr-1.6.0-vanilla/svdrp.h	2008-03-27 21:43:25.000000000 +0200
-+++ vdr-1.6.0-liemikuutio/svdrp.h	2008-03-27 21:47:56.000000000 +0200
+--- vdr-1.6.0-vanilla/svdrp.h	2007-04-30 15:28:28.000000000 +0300
++++ vdr-1.6.0-liemikuutio/svdrp.h	2009-02-27 23:06:59.000000000 +0200
 @@ -79,6 +79,7 @@
    void CmdPLUG(const char *Option);
    void CmdPUTE(const char *Option);

Added: vdr/vdr/trunk/debian/patches/opt-40_pluginparam.dpatch
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/patches/opt-40_pluginparam.dpatch?rev=7781&op=file
==============================================================================
--- vdr/vdr/trunk/debian/patches/opt-40_pluginparam.dpatch (added)
+++ vdr/vdr/trunk/debian/patches/opt-40_pluginparam.dpatch Wed May  6 19:38:30 2009
@@ -1,0 +1,296 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## opt-40_pluginparam.dpatch
+## from version 0.2.6 of the IPTV plugin
+## http://www.saunalahti.fi/~rahrenbe/vdr/iptv/
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Patch required for the IPTV plugin and other plugins
+
+ at DPATCH@
+diff -urNad vdr-1.6.0~/channels.c vdr-1.6.0/channels.c
+--- vdr-1.6.0~/channels.c	2009-05-03 16:09:13.000000000 +0200
++++ vdr-1.6.0/channels.c	2009-05-03 16:09:13.000000000 +0200
+@@ -166,6 +166,7 @@
+   shortName = strdup("");
+   provider = strdup("");
+   portalName = strdup("");
++  pluginParam = strdup("");
+   memset(&__BeginData__, 0, (char *)&__EndData__ - (char *)&__BeginData__);
+   inversion    = INVERSION_AUTO;
+   bandwidth    = BANDWIDTH_AUTO;
+@@ -187,6 +188,7 @@
+   shortName = NULL;
+   provider = NULL;
+   portalName = NULL;
++  pluginParam = NULL;
+   schedule     = NULL;
+   linkChannels = NULL;
+   refChannel   = NULL;
+@@ -215,6 +217,7 @@
+   free(shortName);
+   free(provider);
+   free(portalName);
++  free(pluginParam);
+ }
+ 
+ cChannel& cChannel::operator= (const cChannel &Channel)
+@@ -223,6 +226,7 @@
+   shortName = strcpyrealloc(shortName, Channel.shortName);
+   provider = strcpyrealloc(provider, Channel.provider);
+   portalName = strcpyrealloc(portalName, Channel.portalName);
++  pluginParam = strcpyrealloc(pluginParam, Channel.pluginParam);
+   memcpy(&__BeginData__, &Channel.__BeginData__, (char *)&Channel.__EndData__ - (char *)&Channel.__BeginData__);
+   return *this;
+ }
+@@ -280,9 +284,26 @@
+      transmission = Channel->transmission;
+      guard        = Channel->guard;
+      hierarchy    = Channel->hierarchy;
++     if (IsPlug())  pluginParam = strcpyrealloc(pluginParam, Channel->pluginParam);
+      }
+ }
+ 
++bool cChannel::SetPlugTransponderData(int Source, int Frequency, const char *PluginParam)
++{
++  if (source != Source || frequency != Frequency || (strcmp(pluginParam, PluginParam) != 0)) {
++     if (Number()) {
++        dsyslog("changing transponder data of channel %d from %s:%d:%s to %s:%d:%s", Number(), *cSource::ToString(source), frequency, pluginParam, *cSource::ToString(Source), Frequency, PluginParam);
++        modification |= CHANNELMOD_TRANSP;
++        Channels.SetModified();
++        }
++     source = Source;
++     frequency = Frequency;
++     pluginParam = strcpyrealloc(pluginParam, PluginParam);
++     schedule = NULL;
++     }
++  return true;
++}
++
+ bool cChannel::SetSatTransponderData(int Source, int Frequency, char Polarization, int Srate, int CoderateH)
+ {
+   // Workarounds for broadcaster stupidity:
+@@ -407,6 +428,18 @@
+      }
+ }
+ 
++void cChannel::SetPluginParam(const char *PluginParam)
++{
++  if (!isempty(PluginParam) && strcmp(pluginParam, PluginParam) != 0) {
++     if (Number()) {
++        dsyslog("changing plugin parameters of channel %d from '%s' to '%s'", Number(), pluginParam, PluginParam);
++        modification |= CHANNELMOD_TRANSP;
++        Channels.SetModified();
++        }
++     pluginParam = strcpyrealloc(pluginParam, PluginParam);
++     }
++}
++
+ #define STRDIFF 0x01
+ #define VALDIFF 0x02
+ 
+@@ -593,7 +626,7 @@
+   if (isdigit(type))
+      type = 'S';
+ #define ST(s) if (strchr(s, type))
+-  char buffer[64];
++  char buffer[256];
+   char *q = buffer;
+   *q = 0;
+   ST(" S ")  q += sprintf(q, "%c", polarization);
+@@ -605,6 +638,7 @@
+   ST("  T")  q += PrintParameter(q, 'T', MapToUser(transmission, TransmissionValues));
+   ST("  T")  q += PrintParameter(q, 'G', MapToUser(guard, GuardValues));
+   ST("  T")  q += PrintParameter(q, 'Y', MapToUser(hierarchy, HierarchyValues));
++  ST("P  ")  snprintf(buffer, sizeof(buffer), "%s", pluginParam);
+   return buffer;
+ }
+ 
+@@ -626,7 +660,7 @@
+ 
+ bool cChannel::StringToParameters(const char *s)
+ {
+-  while (s && *s) {
++  while (s && *s && !IsPlug()) {
+         switch (toupper(*s)) {
+           case 'B': s = ParseParameter(s, bandwidth, BandwidthValues); break;
+           case 'C': s = ParseParameter(s, coderateH, CoderateValues); break;
+@@ -736,7 +770,7 @@
+         dpids[0] = 0;
+         ok = false;
+         if (parambuf && sourcebuf && vpidbuf && apidbuf) {
+-           ok = StringToParameters(parambuf) && (source = cSource::FromString(sourcebuf)) >= 0;
++           ok = ((source = cSource::FromString(sourcebuf)) >= 0) && StringToParameters(parambuf);
+ 
+            char *p = strchr(vpidbuf, '+');
+            if (p)
+@@ -827,6 +861,7 @@
+            shortName = strcpyrealloc(shortName, p);
+            }
+         name = strcpyrealloc(name, namebuf);
++        if (IsPlug()) pluginParam = strcpyrealloc(pluginParam, parambuf);
+ 
+         free(parambuf);
+         free(sourcebuf);
+diff -urNad vdr-1.6.0~/channels.h vdr-1.6.0/channels.h
+--- vdr-1.6.0~/channels.h	2009-05-03 16:08:42.000000000 +0200
++++ vdr-1.6.0/channels.h	2009-05-03 16:09:13.000000000 +0200
+@@ -114,6 +114,7 @@
+   char *shortName;
+   char *provider;
+   char *portalName;
++  char *pluginParam;
+   int __BeginData__;
+   int frequency; // MHz
+   int source;
+@@ -165,6 +166,7 @@
+   int Frequency(void) const { return frequency; } ///< Returns the actual frequency, as given in 'channels.conf'
+   int Transponder(void) const;                    ///< Returns the transponder frequency in MHz, plus the polarization in case of sat
+   static int Transponder(int Frequency, char Polarization); ///< builds the transponder from the given Frequency and Polarization
++  const char *PluginParam(void) const { return pluginParam; }
+   int Source(void) const { return source; }
+   int Srate(void) const { return srate; }
+   int Vpid(void) const { return vpid; }
+@@ -199,6 +201,7 @@
+   int Hierarchy(void) const { return hierarchy; }
+   const cLinkChannels* LinkChannels(void) const { return linkChannels; }
+   const cChannel *RefChannel(void) const { return refChannel; }
++  bool IsPlug(void) const { return cSource::IsPlug(source); }
+   bool IsCable(void) const { return cSource::IsCable(source); }
+   bool IsSat(void) const { return cSource::IsSat(source); }
+   bool IsTerr(void) const { return cSource::IsTerr(source); }
+@@ -206,12 +209,14 @@
+   bool HasTimer(void) const;
+   int Modification(int Mask = CHANNELMOD_ALL);
+   void CopyTransponderData(const cChannel *Channel);
++  bool SetPlugTransponderData(int Source, int Frequency, const char *PluginParam);
+   bool SetSatTransponderData(int Source, int Frequency, char Polarization, int Srate, int CoderateH);
+   bool SetCableTransponderData(int Source, int Frequency, int Modulation, int Srate, int CoderateH);
+   bool SetTerrTransponderData(int Source, int Frequency, int Bandwidth, int Modulation, int Hierarchy, int CodeRateH, int CodeRateL, int Guard, int Transmission);
+   void SetId(int Nid, int Tid, int Sid, int Rid = 0);
+   void SetName(const char *Name, const char *ShortName, const char *Provider);
+   void SetPortalName(const char *PortalName);
++  void SetPluginParam(const char *PluginParam);
+   void SetPids(int Vpid, int Ppid, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid);
+   void SetCaIds(const int *CaIds); // list must be zero-terminated
+   void SetCaDescriptors(int Level);
+diff -urNad vdr-1.6.0~/config.h vdr-1.6.0/config.h
+--- vdr-1.6.0~/config.h	2009-05-03 16:09:13.000000000 +0200
++++ vdr-1.6.0/config.h	2009-05-03 16:09:13.000000000 +0200
+@@ -30,6 +30,8 @@
+ #define APIVERSION  "1.6.0"
+ #define APIVERSNUM   10600  // Version * 10000 + Major * 100 + Minor
+ 
++#define PLUGINPARAMPATCHVERSNUM 1
++
+ // When loading plugins, VDR searches them by their APIVERSION, which
+ // may be smaller than VDRVERSION in case there have been no changes to
+ // VDR header files since the last APIVERSION. This allows compiled
+diff -urNad vdr-1.6.0~/menu.c vdr-1.6.0/menu.c
+--- vdr-1.6.0~/menu.c	2009-05-03 16:09:13.000000000 +0200
++++ vdr-1.6.0/menu.c	2009-05-03 16:09:13.000000000 +0200
+@@ -256,6 +256,7 @@
+   cChannel *channel;
+   cChannel data;
+   char name[256];
++  char pluginParam[256];
+   void Setup(void);
+ public:
+   cMenuEditChannel(cChannel *Channel, bool New = false);
+@@ -288,6 +289,7 @@
+ 
+   // Parameters for all types of sources:
+   strn0cpy(name, data.name, sizeof(name));
++  strn0cpy(pluginParam, data.pluginParam, sizeof(pluginParam));
+   Add(new cMenuEditStrItem( tr("Name"),          name, sizeof(name)));
+   Add(new cMenuEditSrcItem( tr("Source"),       &data.source));
+   Add(new cMenuEditIntItem( tr("Frequency"),    &data.frequency));
+@@ -318,6 +320,7 @@
+   ST("  T")  Add(new cMenuEditMapItem( tr("Transmission"), &data.transmission, TransmissionValues));
+   ST("  T")  Add(new cMenuEditMapItem( tr("Guard"),        &data.guard,        GuardValues));
+   ST("  T")  Add(new cMenuEditMapItem( tr("Hierarchy"),    &data.hierarchy,    HierarchyValues, tr("none")));
++  ST("P  ")  Add(new cMenuEditStrItem( tr("Parameters"),    pluginParam, sizeof(pluginParam), tr(FileNameChars)));
+ 
+   SetCurrent(Get(current));
+   Display();
+@@ -332,6 +335,7 @@
+      if (Key == kOk) {
+         if (Channels.HasUniqueChannelID(&data, channel)) {
+            data.name = strcpyrealloc(data.name, name);
++           data.pluginParam = strcpyrealloc(data.pluginParam, pluginParam);
+            if (channel) {
+               *channel = data;
+               isyslog("edited channel %d %s", channel->Number(), *data.ToText());
+diff -urNad vdr-1.6.0~/po/fi_FI.po vdr-1.6.0/po/fi_FI.po
+--- vdr-1.6.0~/po/fi_FI.po	2009-05-03 16:09:12.000000000 +0200
++++ vdr-1.6.0/po/fi_FI.po	2009-05-03 16:09:42.000000000 +0200
+@@ -1049,3 +1049,6 @@
+ 
+ msgid "Setup.Recording$Show length"
+ msgstr "Näytä tallenteen kesto"
++
++msgid "Parameters"
++msgstr "Parametrit"
+diff -urNad vdr-1.6.0~/po/fr_FR.po vdr-1.6.0/po/fr_FR.po
+--- vdr-1.6.0~/po/fr_FR.po	2009-05-03 16:09:13.000000000 +0200
++++ vdr-1.6.0/po/fr_FR.po	2009-05-03 16:10:02.000000000 +0200
+@@ -1079,3 +1079,6 @@
+ 
+ msgid "Setup.Recording$Show length"
+ msgstr "Montrer la longueur de l'enregistrement"
++
++msgid "Parameters"
++msgstr "Paramètres"
+diff -urNad vdr-1.6.0~/sources.c vdr-1.6.0/sources.c
+--- vdr-1.6.0~/sources.c	2009-05-03 16:08:42.000000000 +0200
++++ vdr-1.6.0/sources.c	2009-05-03 16:09:13.000000000 +0200
+@@ -37,6 +37,7 @@
+   char buffer[16];
+   char *q = buffer;
+   switch (Code & st_Mask) {
++    case stPlug:  *q++ = 'P'; break;
+     case stCable: *q++ = 'C'; break;
+     case stSat:   *q++ = 'S';
+                   {
+@@ -56,6 +57,7 @@
+ {
+   int type = stNone;
+   switch (toupper(*s)) {
++    case 'P': type = stPlug;  break;
+     case 'C': type = stCable; break;
+     case 'S': type = stSat;   break;
+     case 'T': type = stTerr;  break;
+diff -urNad vdr-1.6.0~/sources.conf vdr-1.6.0/sources.conf
+--- vdr-1.6.0~/sources.conf	2009-05-03 16:09:12.000000000 +0200
++++ vdr-1.6.0/sources.conf	2009-05-03 16:09:13.000000000 +0200
+@@ -194,3 +194,7 @@
+ # Terrestrial
+ 
+ T       Terrestrial
++
++# Plugin
++
++P       Plugin
+diff -urNad vdr-1.6.0~/sources.h vdr-1.6.0/sources.h
+--- vdr-1.6.0~/sources.h	2009-05-03 16:08:42.000000000 +0200
++++ vdr-1.6.0/sources.h	2009-05-03 16:09:13.000000000 +0200
+@@ -16,10 +16,11 @@
+ public:
+   enum eSourceType {
+     stNone  = 0x0000,
++    stPlug  = 0x2000,
+     stCable = 0x4000,
+     stSat   = 0x8000,
+     stTerr  = 0xC000,
+-    st_Mask = 0xC000,
++    st_Mask = 0xE000,
+     st_Neg  = 0x0800,
+     st_Pos  = 0x07FF,
+     };
+@@ -35,6 +36,7 @@
+   static cString ToString(int Code);
+   static int FromString(const char *s);
+   static int FromData(eSourceType SourceType, int Position = 0, bool East = false);
++  static bool IsPlug(int Code) { return (Code & st_Mask) == stPlug; }
+   static bool IsCable(int Code) { return (Code & st_Mask) == stCable; }
+   static bool IsSat(int Code) { return (Code & st_Mask) == stSat; }
+   static bool IsTerr(int Code) { return (Code & st_Mask) == stTerr; }

Modified: vdr/vdr/trunk/debian/plugin-template/control
URL: http://svn.debian.org/wsvn/pkg-vdr-dvb/vdr/vdr/trunk/debian/plugin-template/control?rev=7781&op=diff
==============================================================================
--- vdr/vdr/trunk/debian/plugin-template/control (original)
+++ vdr/vdr/trunk/debian/plugin-template/control Wed May  6 19:38:30 2009
@@ -1,5 +1,5 @@
 Source: #PACKAGE#
-Section: misc
+Section: video
 Priority: extra
 Maintainer: #USERNAME# <#EMAIL#>
 Build-Depends: #BUILD_DEPS#, vdr-dev (>= #VDRVERSION#), gettext
@@ -13,4 +13,3 @@
 Depends: ${shlibs:Depends}, ${misc:Depends}, ${vdr:Depends}
 Description: <insert up to 60 chars description>
  <insert long description, indented with spaces>
-XB-VDR-Patchlevel: ${vdr:Patchlevel}




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