Version 1.3.48

- Updated the GPL copies (thanks to Ville Skyttä).
- Fixed several spelling errors (thanks to Ville Skyttä).
- Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Updated the French OSD texts (thanks to Pierre Briec).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- Updated the Slovenian OSD texts (thanks to Matjaz Thaler).
- Fixed wrong credits for the patch that was used to implement cPlugin::Active().
- Simplified the 'grep|awk|sed' command to retrieve the VDR/APIVERSION to a single
  'sed' call.
- Updated the Swedish OSD texts (thanks to Tomas Prybil).
- Modified the German OSD texts to be "less technical" (thanks to Andreas Brachold).
- Extended the version number reported with the '-V' option to also show the
  current APIVERSION (suggested by Thomas Günther).
- Fixed handling empty titles in cEvent::FixEpgBugs() (reported by Rolf Ahrenberg).
- Fixed some missing '-' in the German OSD texts (thanks to Walter Koch).
- Added an error message about plugins that don't honor APIVERSION in their Makefile
  (based on a suggestion by Udo Richter).
- Fixed a format string in recording.c to avoid a compiler warning on 64bit systems
  (thanks to Christian Wieninger for reporting, and Werner Schweer for pointing out
  that the 'z' modifier should be used here).
- Ignoring k_Repeat when deciding whether the same key has been pressed in string
  input fields (based on a patch from Marko Mäkelä).
This commit is contained in:
Klaus Schmidinger 2006-04-23 18:00:00 +02:00
parent 293ed4027e
commit 880c3ddb94
39 changed files with 432 additions and 591 deletions

View File

@ -1,5 +1,5 @@
Tons of suggestions, bugreports, patches and other contributions have been
provided by the people on the 'linux-dvb' and 'vdr' mailing lists.
provided by the people on the 'linux-dvb' and 'vdr' mailing lists
Special thanks go to the following individuals (if your name is missing here,
please send an email to kls@cadsoft.de):
@ -48,7 +48,7 @@ Niels de Carpentier <niels@casema.net>
Martin Hammerschmid <martin@hammerschmid.com>
for suggesting to display the direct channel select input on the OSD
for suggesting to use the "Blue" button in the main menu to resume replay
for implementing pege up/down with the "Left" and "Right" keys
for implementing page up/down with the "Left" and "Right" keys
for detecting a deadlock when switching channels via Schedule/Now|Next/Switch
for adding a missing #include to ringbuffer.c
for adding a missing 'public' keyword in device.h
@ -300,7 +300,7 @@ Werner Fink <werner@suse.de>
recordings can be triggered in the default branch
for pointing out that pesAssembler->Reset() needs to be called between subsequent
Transfer Modes
for suggestions that led to the addition of the 'Id' parameter to cAudio::Play().
for suggestions that led to the addition of the 'Id' parameter to cAudio::Play()
for pointing out that MAXDPIDS needs to be to 16 (8xAC3 + 8xDTS)
for reporting a problem with ensuring there is a current audio track in case there
is only one track
@ -377,7 +377,7 @@ Hannu Savolainen <hannu@opensound.com>
for translating OSD texts to the Finnish language
Jürgen Schmidt <ju@ct.heise.de>
for fixing a problem with 'in_addr_t' on systems with glibc < 2.2.
for fixing a problem with 'in_addr_t' on systems with glibc < 2.2
for suggesting to optionally allow logging to LOG_LOCALn (n=0..7)
Uwe Freese <mail@uwe-freese.de>
@ -444,7 +444,7 @@ Michael Rakowski <mrak@gmx.de>
for translating OSD texts to the Polish language
Michael Moster <dvb@juelich-gmbh.de>
for initally reporting the problem with wrong EPG data in the Schedules menu
for initially reporting the problem with wrong EPG data in the Schedules menu
(somehow I had misplaced his message...)
Tobias Kerner <tobschle@gmx.de>
@ -833,6 +833,7 @@ Sascha Volkenandt <sascha@akv-soft.de>
for reporting '\n' in an esyslog() call in osd.c
for reporting missing '&' in the SetAreas() example in PLUGINS.html
for reporting a memory leak in cString::operator=()
for a patch that was used as a base to implement cPlugin::Active()
Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
for modifying LOF handling to allow for C-band reception
@ -883,6 +884,7 @@ Andreas Brachold <vdr04@deltab.de>
for fixing the "plugins-clean" and "plugins-install" targets in the Makefile
for suggesting to make the log messages regarding lost lock of devices "info"
instead of "error"
for modifying the German OSD texts to be "less technical"
Manuel Hartl <icecep@gmx.net>
for suggesting to extend the logging info when starting/stopping timers
@ -944,7 +946,7 @@ Marc Rovira Vall <tm05462@salleURL.edu>, Ramon Roca <ramon.roca@xcombo.com> and
for translating OSD texts to the Catalanian language
Lars Bläser <LBlaeser@hofheim.de>
for reporting a bug in EPG bugfix statistics which made log entires for undefined
for reporting a bug in EPG bugfix statistics which made log entries for undefined
channels
Niko Tarnanen <niko.tarnanen@hut.fi>
@ -973,6 +975,7 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
for adding a missing "Button$" for the Timer button and "Key$" in skinclassic.c
for reporting a bug in handling the color button texts when switching from the
'Schedule' menu of a channel without EPG info to the 'What's on now' menu
for reporting a bug in handling empty titles in cEvent::FixEpgBugs()
Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark
@ -1084,7 +1087,7 @@ Richard Robson <richard_robson@beeb.net>
device used by the timer, and the timer needs a different transponder
Manfred Schmidt-Voigt <manfred.schmidt-voigt@mannitec.de>
for reporting a problem with runnign out of disk space while cutting in case
for reporting a problem with running out of disk space while cutting in case
there are still deleted recordings to remove
Javier Marcet <lists@marcet.info>
@ -1098,7 +1101,7 @@ Robert Bartl <robert@bartl.priv.at>
for reporting a hangup in SVDRP when the client disappears without sending QUIT
Sebastian Frei <sebastian@schnapsleichen.de>
for his support in keeping 'channels.conf' up-to-date.
for his support in keeping 'channels.conf' up-to-date
for suggesting to rename the Makefile target 'plugins-clean' to 'clean-plugins'
Rene Bartsch <ml@bartschnet.de>
@ -1278,7 +1281,7 @@ Marco Schl
for avoiding unnecessary section filter start/stops
for pointing out that if one PID can't be added, the whole cDevice::AttachReceiver()
should fail and all PIDs added so far should be deleted
for fixing attaching a cPlayer to a cDevice, so that 'Operation not permited'
for fixing attaching a cPlayer to a cDevice, so that 'Operation not permitted'
errors don't occur any more
for reporting a problem with initialization of the main program loop variables
with older compiler versions
@ -1297,7 +1300,7 @@ Marco Schl
when clearing the transfer buffer to avoid overflows
for adding CMD_SPU_CHG_COLCON to cDvbSpuDecoder::setTime()
for suggesting to force a new resync after a call to cRemux::Clear()
for suggestions that led to the addition of the 'Id' parameter to cAudio::Play().
for suggestions that led to the addition of the 'Id' parameter to cAudio::Play()
for removing the "Cleared/PlayPes(NULL, 0)" handling from cTransfer::Action(), since
this is now done when attaching the player to the device
for adding DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer
@ -1407,6 +1410,8 @@ Udo Richter <udo_richter@gmx.de>
case a replay is active
for reporting a problem with plugins that report errors when VDR is run with the
--help or --version option
for suggesting to add a warning about plugins that don't honor APIVERSION in their
Makefile
Sven Kreiensen <svenk@kammer.uni-hannover.de>
for his help in keeping 'channels.conf.terr' up to date
@ -1489,7 +1494,7 @@ Laurence Abbott <laz@club-burniston.co.uk>
Patrick Gleichmann <patrick@feedface.com>
for fixing the default quality value when grabbing a JPEG image
for suggestiong a modified page scrolling behaviour
for suggesting a modified page scrolling behaviour
for suggesting wrapping around in menu lists
Achim Tuffentsammer <a.tuffentsammer@web.de>
@ -1505,6 +1510,7 @@ Marco Kremer <vdr.hgm.bg@gmx.net>
Walter Koch <koch@u32.de>
for adding channels for DVB-T Düsseldorf and Köln (Germany) to channels.cont.terr
for fixing some missing '-' in the German OSD texts
Rolf Groppe <rolf@groppe.de>
for suggesting to fall back to 'stereo' when switching channels in case the user
@ -1563,6 +1569,8 @@ Ville Skytt
in case it breaks
for enabling generating a core dump if VDR is run with a different user id
for reporting an obsolete entry 'S21.5E' in the default 'diseqc.conf'
for updating the GPL copies
for fixing several spelling errors
Steffen Beyer <cpunk@reactor.de>
for fixing setting the colored button help after deleting a recording in case the next
@ -1623,7 +1631,7 @@ Bernhard Stegmaier <bernhard.stegmaier@in.tum.de>
scan timeout is set to 0
Klaus Heppenheimer <klaus@reel-multimedia.com>
for reporting a race condition in cTransfer.
for reporting a race condition in cTransfer
Thomas Günther <tom1@toms-cafe.de>
for fixing handling the frame number display if '7' is pressed before the first
@ -1634,6 +1642,8 @@ Thomas G
for making the 'new' indicator in the Recordings menu kept up-to-date
for reporting a crash when setting the time transponder in the Setup menu
for reporting a bug in the initial setting of the time transponder setup parameter
for suggesting to extend the version number reported with the '-V' option to also
show the current APIVERSION
David Woodhouse <dwmw2@infradead.org>
for his help in replacing the get/put_unaligned() macros from asm/unaligned.h with
@ -1655,6 +1665,8 @@ Harald Milz <hm@seneca.muc.de>
Marko Mäkelä <marko.makela@hut.fi>
for making repeat keys be ignored when waiting for a keypress to cancel an operation
for reporting that a menu was automatically closed when a replay ends
for suggesting to ignore k_Repeat when deciding whether the same key has been
pressed in string input fields
Patrick Rother <krd-vdr@gulu.net>
for reporting a bug in defining timers that only differ in the day of week
@ -1675,7 +1687,7 @@ Philip Prindeville <philipp_subx@redfish-solutions.com>
Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
for making VDR use use daemon() instead of fork() to run in daemon mode
for fixing a possible endless loop in a menu with no selectable items if
Setup.MenuScrollWrap is true (thanks to Enrico Scholz).
Setup.MenuScrollWrap is true (thanks to Enrico Scholz)
Nicolas Huillard <nhuillard@e-dition.fr>
for translating OSD texts to the French language
@ -1727,6 +1739,7 @@ Christian Wieninger <cwieninger@gmx.de>
for suggesting to add cMenuEditStrItem::InEditMode()
for his idea of going directly into the "Edit timer" menu for a timer created
from the "Schedule" menu in case it starts withing the next two minutes
for reporting a problem with a format string in recording.c on 64bit systems
Thiemo Gehrke <tgehrke@reel-multimedia.com>
for suggesting to add a setup option to turn off the automatic timeout of the
@ -1838,12 +1851,16 @@ Richard Lithvall <richard@lithvall.se>
Tobias Grimm <listaccount@e-tobi.net>
for suggesting to use geteuid() to check whether VDR is running as user 'root'
Peter Dittmann <peter.dittmann@philips.com>
for a patch that was used as a base to implement cPlugin::Active()
Helge Lenz <h.lenz@gmx.de>
for reporting a bug in setting the 'Delta' parameter when calling the shutdown
script with no active timer
Peter Juszack <vdr@unterbrecher.de>
for a patch that was used as a base to implement kNext and kPrev
Pierre Briec <pbriec@free.fr>
for translating OSD texts to the French language
Werner Schweer <ws@seh.de>
for pointing out that the 'z' printf modifier should be used for 'size_t' type
arguments

18
COPYING
View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

45
HISTORY
View File

@ -2768,7 +2768,7 @@ Video Disk Recorder Revision History
driver, together with the endian problem).
- The new OSD setup parameters "Left" and "Top" can be used to define the top left
corner of the OSD.
- The OSD size prameters are now in pixel (as opposed to formerly characters).
- The OSD size parameters are now in pixel (as opposed to formerly characters).
When reading a 'setup.conf' file from an older version of VDR, the OSDwidth
and OSDheight values will be converted to pixel automatically.
- The OSD is now fully device independent. See the comments in VDR/osd.h and the
@ -3046,7 +3046,7 @@ Video Disk Recorder Revision History
- Added some missing 'const' to cChannel.
- Added a sample setup for 'DisiCon-4 Single Cable Network' to 'diseqc.conf'
(thanks to Oliver Endriss).
- Fixed attaching a cPlayer to a cDevice, so that 'Operation not permited'
- Fixed attaching a cPlayer to a cDevice, so that 'Operation not permitted'
errors don't occur any more (thanks to Marco Schlüßler).
- Fixed a case where the resultBuffer in cRemux ran full before getting a sync.
- Removed the usleep() call from cDvbPlayer::Action() to make VDR run on NPTL
@ -3089,7 +3089,7 @@ Video Disk Recorder Revision History
- Immediately displaying the new channel info when switching channel groups.
- Moved the main program loop variables further up to allow compilation with
older compiler versions (thanks to Marco Schlüßler for reporting this one).
- Now calling pthread_cond_broadcast() in the desctructor of cCondWait and
- Now calling pthread_cond_broadcast() in the destructor of cCondWait and
cCondVar to make sure any sleepers will wake up (suggested by Werner Fink).
Also using pthread_cond_broadcast() instead of pthread_cond_signal() in
cCondWait, in case there is more than one sleeper.
@ -3136,7 +3136,7 @@ Video Disk Recorder Revision History
funny characters. Invalid language codes will be stored as "???".
- The '0' key now toggles the "Day" item in the "Timers" menu between "single
shot" and "repeating". The keys '1'...'7' can be used to toggle the individual
days ('1' is monday). Thanks to Sascha Klek for reporting a problem with the
days ('1' is Monday). Thanks to Sascha Klek for reporting a problem with the
'0' key in the "Day" item of the "Timers" menu.
2004-11-21: Version 1.3.17
@ -3281,7 +3281,7 @@ Video Disk Recorder Revision History
Dino Ravnic).
- Implemented displaying mandatory subtitles in the SPU decoder (thanks to Marco
Schlüßler).
- The setup option "Recording/Record Dobly Digital" has been renamed and moved to
- The setup option "Recording/Record Dolby Digital" has been renamed and moved to
"DVB/Use Dolby Digital". It now controls whether Dolby Digital is recorded and
whether an available DD audio track will appear in the "Audio" menu.
- Added support for circular polarization (thanks to Jonan Santiago).
@ -3346,7 +3346,7 @@ Video Disk Recorder Revision History
- Fixed masking SubStreamType in cDevice::PlayPesPacket() (thanks to Werner Fink
for pointing out this one).
- The new function cPlugin::Stop() shall be used to stop any background activities
of a plugin. Previously this was done in the plugin's desctructor, but it is
of a plugin. Previously this was done in the plugin's destructor, but it is
better to do this in a dedicated function that can be called early when shutting
down.
- Moved the call to SetAudioChannel(0) into cDevice::ClrAvailableTracks() to have it
@ -3505,7 +3505,7 @@ Video Disk Recorder Revision History
- Removed scaling coordinates in letterbox mode from cDvbSpu - the DVD plugin, which
was the only one needing this, doesn't need it any more (thanks to Marco Schlüßler).
- No longer retuning or restarting a recording if only the language code of an
audio or dolby PID changes.
audio or Dolby PID changes.
- Now preferring budget cards when selecting a DVB device for recording.
- Recordings now avoid zero sized video data files (thanks to Wolfgang Fitz).
- Some rearrangements in cDvbPlayer::Action() to avoid lockups on NPTL systems
@ -4525,7 +4525,7 @@ Video Disk Recorder Revision History
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- The new function cPlugin::Active() can be used by a plugin to indicate that it
is still busy and the system should not shut down or restart (based on a patch
from Peter Dittmann). See PLUGINS.html for details.
from Sascha Volkenandt). See PLUGINS.html for details.
- Fixed setting the 'Delta' parameter when calling the shutdown script with
no active timer (reported by Helge Lenz).
- In order to make sure that plugins are compiled with the same DVB driver header
@ -4619,3 +4619,32 @@ Video Disk Recorder Revision History
- The new function cPlugin::MainThreadHook() can be used by plugins to perform
actions in the context of the main program thread. Use this function with great
care and only of you absolutely have to! See also PLUGINS.html.
2006-04-23: Version 1.3.48
- Updated the GPL copies (thanks to Ville Skyttä).
- Fixed several spelling errors (thanks to Ville Skyttä).
- Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Updated the French OSD texts (thanks to Pierre Briec).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- Updated the Slovenian OSD texts (thanks to Matjaz Thaler).
- Fixed wrong credits for the patch that was used to implement cPlugin::Active().
- Simplified the 'grep|awk|sed' command to retrieve the VDR/APIVERSION to a single
'sed' call.
- Updated the Swedish OSD texts (thanks to Tomas Prybil).
- Modified the German OSD texts to be "less technical" (thanks to Andreas Brachold).
- Extended the version number reported with the '-V' option to also show the
current APIVERSION (suggested by Thomas Günther).
- Fixed handling empty titles in cEvent::FixEpgBugs() (reported by Rolf Ahrenberg).
- Fixed some missing '-' in the German OSD texts (thanks to Walter Koch).
- Added an error message about plugins that don't honor APIVERSION in their Makefile
(based on a suggestion by Udo Richter).
- Fixed a format string in recording.c to avoid a compiler warning on 64bit systems
(thanks to Christian Wieninger for reporting, and Werner Schweer for pointing out
that the 'z' modifier should be used here).
- Ignoring k_Repeat when deciding whether the same key has been pressed in string
input fields (based on a patch from Marko Mäkelä).

View File

@ -64,7 +64,7 @@ the default:
Alternatively you can use the '--rcu' or '--lirc' options at runtime.
These options accept an optional path to the remote control device,
which's defaults can be set via the RCU_DEVICE and LIRC_DEVICE macros,
the defaults of which can be set via the RCU_DEVICE and LIRC_DEVICE macros,
respectively.
If your video directory will be on a VFAT partition, add the compile
@ -130,7 +130,7 @@ If you run VDR using the 'runvdr' shell script it will use the built-in
watchdog timer to restart the program in case something happens that
causes a program hangup. If you change the command line options for the
call to the VDR program, be sure to NOT use the '-d' option! Otherwise
VDR will go into 'deamon' mode and the initial program call will return
VDR will go into 'daemon' mode and the initial program call will return
immediately! 'runvdr' needs to be started as user 'root'. Use the '-u'
option to run the actual 'vdr' program under a different user id.

2
MANUAL
View File

@ -787,7 +787,7 @@ Version 1.3
Zap Timeout = 3 The time (in seconds) until a channel counts as "previous"
for switching with '0'
Inital channel = 0 The number of the channel that shall be tuned to when
Initial channel = 0 The number of the channel that shall be tuned to when
VDR starts. Default is 0, which means that it will
tune to the channel that was on before VDR was stopped.

View File

@ -4,7 +4,7 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Makefile 1.87 2006/04/16 09:00:30 kls Exp $
# $Id: Makefile 1.89 2006/04/23 09:01:17 kls Exp $
.DELETE_ON_ERROR:
@ -81,8 +81,8 @@ DEFINES += -DPLUGINDIR=\"$(PLUGINLIBDIR)\"
# The version numbers of VDR and the plugin API (taken from VDR's "config.h"):
VDRVERSION = $(shell grep 'define VDRVERSION ' config.h | awk '{ print $$3 }' | sed -e 's/"//g')
APIVERSION = $(shell grep 'define APIVERSION ' config.h | awk '{ print $$3 }' | sed -e 's/"//g')
VDRVERSION = $(shell sed -ne '/define VDRVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' config.h)
APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' config.h)
ifdef VFAT
# for people who want their video directory on a VFAT partition
@ -176,10 +176,17 @@ include-dir:
plugins: include-dir
@failed="";\
@noapiv="";\
for i in `ls $(PLUGINDIR)/src | grep -v '[^a-z0-9]'`; do\
echo "Plugin $$i:";\
if ! grep -q "\$$(LIBDIR)/.*\$$(APIVERSION)" "$(PLUGINDIR)/src/$$i/Makefile" ; then\
echo "ERROR: plugin $$i doesn't honor APIVERSION - not compiled!";\
noapiv="$$noapiv $$i";\
continue;\
fi;\
$(MAKE) -C "$(PLUGINDIR)/src/$$i" all || failed="$$failed $$i";\
done;\
if [ -n "$$noapiv" ] ; then echo; echo "*** plugins without APIVERSION:$$noapiv"; echo; fi;\
if [ -n "$$failed" ] ; then echo; echo "*** failed plugins:$$failed"; echo; fi
clean-plugins:

View File

@ -219,7 +219,7 @@ have several different versions of a plugin source (like <tt>hello-0.0.1</tt> an
Call the Perl script <tt>newplugin</tt> from the VDR source directory to create
a new plugin directory with a <tt>Makefile</tt> and a main source file implementing
the basic derived plugin class.
You will also find a <tt>README</tt> file there with some inital text, where you
You will also find a <tt>README</tt> file there with some initial text, where you
should fill in actual information about your project.
A <tt>HISTORY</tt> file is set up with an "Initial revision" entry. As your project
evolves, you should add the changes here with date and version number.
@ -284,7 +284,7 @@ dot with an underline and precedes the whole thing with two underlines.
The GNU library header files do this pretty much the same way, except that they
usually precede the name with only one underline (there are exceptions, though).
<p>
As long as you make shure that none of your plugin's header files will be named
As long as you make sure that none of your plugin's header files will be named
like one of VDR's header files, you can use the same method as VDR. However,
if you want to name a header file like one that is already existing in VDR's
source (<tt>i18n.h</tt> would be a possible candidate for this), you may want
@ -794,7 +794,7 @@ The constructor initializes two private members with the values of these paramet
that the <i>Setup</i> menu can work with temporary copies (in order to discard any changes
if the user doesn't confirm them by pressing the "Ok" button).
After this the constructor adds the appropriate menu items, using internationalized texts
and the addresses of the temporary variables. That's all there is to inizialize a <i>Setup</i>
and the addresses of the temporary variables. That's all there is to initialize a <i>Setup</i>
menu - the rest will be done by the core VDR code.
<p>
Once the user has pressed the "Ok" button to confirm the changes, the <tt>Store()</tt> function will
@ -957,7 +957,7 @@ structure, and any change to the format should be reflected by a change
of the id string.
<p>
The function shall return <i>true</i> for any service id string it handles, and <i>false</i>
otherwise. The plugins have to agreee in which situations the service
otherwise. The plugins have to agree in which situations the service
may be called, for example whether the service may be called from every thread, or
just from the main thread. A possible implementation could look like this:
@ -1040,7 +1040,7 @@ by exactly 4 blanks (no tabs), and none of them shall be longer than 79 characte
(to avoid messy output on 80 character wide terminals). The last entry in the
list must be NULL.
<p>
The command names <tt>HELP</tt> and <tt>MAIN</tt> are reserverd and cannot
The command names <tt>HELP</tt> and <tt>MAIN</tt> are reserved and cannot
be used by a plugin.
<p>
The actual processing of SVDRP commands for a plugin is done in its
@ -1283,8 +1283,8 @@ int PlayPes(const uchar *Data, int Length, bool VideoOnly);
</pre></td></tr></table><p>
where <tt>Data</tt> points to a block of <tt>Length</tt> bytes of a PES data
stream containing any combination of video, audio or dolby tracks. Which audio
or dolby track will actually be played is controlled by the device the player
stream containing any combination of video, audio or Dolby tracks. Which audio
or Dolby track will actually be played is controlled by the device the player
is attached to. There are no prerequisites regarding the length or alignment of an
individual block of data. The sum of all blocks must simply result in the
desired data stream, and it must be delivered fast enough so that the
@ -1473,7 +1473,7 @@ cMyReceiver *Receiver = new cMyReceiver(123);
cDevice::ActualDevice()-&gt;AttachReceiver(Receiver);
</pre></td></tr></table><p>
Noteh the use of <tt>cDevice::ActualDevice()</tt> here, which makes sure that
Note the use of <tt>cDevice::ActualDevice()</tt> here, which makes sure that
the receiver is attached to the device that actually receives the current live
video stream (this may be different from the primary device in case of <i>Transfer
Mode</i>).
@ -1483,7 +1483,7 @@ and will automatically detach itself from the <tt>cDevice</tt>.
<a name="Filters"><hr><h2>Filters</h2>
<center><i><b>A Fistful of Datas</b></i></center><p>
<center><i><b>A Fistful of Data</b></i></center><p>
If you want to receive section data you have to implement a derived <tt>cFilter</tt>
class which at least implements the <tt>Process()</tt> function and a constructor
@ -1556,7 +1556,7 @@ depth. However, the actual OSD device in use may not be able to provide the
full area or color depth, maybe because of lack of OSD memory or other restrictions.
A plugin that uses the OSD should therefore test whether the OSD is able to
provide the requested functionality, and should offer alternate color depths
to allow a less powerfull OSD implementation to still work reasonably.
to allow a less powerful OSD implementation to still work reasonably.
Since it is often not really necessary to have hundreds or thousands of colors
all over the OSD area, a plugin can divide the total drawing area into several
sub-areas with different color depths and separate color palettes, as in
@ -1753,7 +1753,7 @@ virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
These functions will be called with the desired source or channel and shall return whether
this device can provide the requested source or channel and whether tuning to it was successful,
repectively.
respectively.
<p>
<b>Audio selection</b>
<p>
@ -1786,7 +1786,7 @@ must deliver exactly one such packet (if one is currently available).
<p>
<b>Replaying</b>
<p>
The functions to implement replaying capabilites are
The functions to implement replaying capabilities are
<p><table><tr><td bgcolor=#F0F0F0><pre>
virtual bool HasDecoder(void) const;

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -45,3 +45,7 @@ VDR Plugin 'hello' Revision History
2002-12-13: Version 0.1.0
- Changed setting of CXX and CXXFLAGS variables in Makefile.
2006-04-22: Version 0.1.1
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).

View File

@ -1,7 +1,7 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 1.12 2006/04/16 09:03:50 kls Exp $
# $Id: Makefile 1.13 2006/04/22 09:59:44 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
@ -30,7 +30,7 @@ TMPDIR = /tmp
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
### The name of the distribution archive:

View File

@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
* $Id: hello.c 1.11 2002/12/13 15:01:43 kls Exp $
* $Id: hello.c 1.12 2006/04/22 09:31:52 kls Exp $
*/
#include <getopt.h>
@ -12,7 +12,7 @@
#include <vdr/plugin.h>
#include "i18n.h"
static const char *VERSION = "0.1.0";
static const char *VERSION = "0.1.1";
static const char *DESCRIPTION = "A friendly greeting";
static const char *MAINMENUENTRY = "Hello";

View File

@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
* $Id: i18n.c 1.5 2006/02/04 10:51:41 kls Exp $
* $Id: i18n.c 1.6 2006/04/22 09:30:57 kls Exp $
*/
#include "i18n.h"
@ -17,7 +17,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"Hei",
"",// TODO
"",// TODO
"",// TODO
@ -39,7 +39,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"Hei maailma!",
"",// TODO
"",// TODO
"",// TODO
@ -61,7 +61,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"Mitä kuuluu?",
"",// TODO
"",// TODO
"",// TODO
@ -83,7 +83,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"Ystävällisin terveisin",
"",// TODO
"",// TODO
"",// TODO
@ -105,7 +105,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"Tervehdysaika (s)",
"",// TODO
"",// TODO
"",// TODO
@ -127,7 +127,7 @@ const tI18nPhrase Phrases[] = {
"",// TODO
"",// TODO
"",// TODO
"",// TODO
"Käytä vaihtoehtoista tervehdystä",
"",// TODO
"",// TODO
"",// TODO

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -1,7 +1,7 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 1.6 2006/04/16 09:03:55 kls Exp $
# $Id: Makefile 1.7 2006/04/22 09:59:49 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
@ -30,7 +30,7 @@ TMPDIR = /tmp
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
### The name of the distribution archive:

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -1,7 +1,7 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 1.4 2006/04/16 09:03:59 kls Exp $
# $Id: Makefile 1.5 2006/04/22 09:59:55 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
@ -31,7 +31,7 @@ TMPDIR = /tmp
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
### The name of the distribution archive:

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -1,7 +1,7 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 1.4 2006/04/16 09:04:04 kls Exp $
# $Id: Makefile 1.5 2006/04/22 10:00:03 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
@ -30,7 +30,7 @@ TMPDIR = /tmp
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
### The name of the distribution archive:

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -1,7 +1,7 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 1.6 2006/04/16 09:04:06 kls Exp $
# $Id: Makefile 1.7 2006/04/22 10:00:17 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
@ -30,7 +30,7 @@ TMPDIR = /tmp
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
### The name of the distribution archive:

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -1,7 +1,7 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 1.10 2006/04/16 09:04:10 kls Exp $
# $Id: Makefile 1.11 2006/04/22 10:00:24 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
@ -30,7 +30,7 @@ TMPDIR = /tmp
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
### The name of the distribution archive:

View File

@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@ -336,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -1,7 +1,7 @@
#
# Makefile for a Video Disk Recorder plugin
#
# $Id: Makefile 1.4 2006/04/16 09:04:13 kls Exp $
# $Id: Makefile 1.5 2006/04/22 10:00:32 kls Exp $
# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
@ -30,7 +30,7 @@ TMPDIR = /tmp
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = $(shell grep 'define APIVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
### The name of the distribution archive:

2
README
View File

@ -29,7 +29,7 @@ video disk recorder, based upon open standards and freely available
driver software (of course, the hardware still has to be bought).
The on screen menu system is simple, but shall provide all the
possibilites necessary to perform timer controlled recording,
possibilities necessary to perform timer controlled recording,
file management and even "on disk editing". The menus
of commercial set-top boxes usually are a lot more fancy than
the ones in this system, but here we have the full source code

View File

@ -1,82 +0,0 @@
Version 1.3.0 marks the beginning of a new developer version
of VDR, in which I am going to integrate functionality from
patches that have been written by various people for previous
versions of VDR.
IMPORTANT NOTE: Beginning with version 1.3.0, VDR will automatically
=============== modify the 'channels.conf' file. Please run this version
of VDR in a controlled environment only, and work with
copies of all your config files!
This version of VDR focuses on some improvements regarding
CAM support and, most important, the first step towards automatic
PID handling. Some things are still in a raw state, but at least
the program should now dynamically react on any changes in the
channel settings.
Here's a list of the highlights - and what _not_ to expect yet
(but don't worry, these things will come soon ;-):
- Automatic switching when PIDs are changed (e.g. for regional
programmes).
- There is no explicit transponder list yet, so you just
have to define one channel for a new transponder and VDR
will automatically detect all other channels on that transponder.
- New channels are added to the end of the channel list, so
it might be a good idea to add a line like
:@1000 New channels
to have them start at some high number.
- Improved CAM support. Channels with conditional access now automatically
use the device that contains the proper CAM.
- No NVOD support yet.
Note that this is currently work in progress, so there may be some
areas that don't work as smooth as expected, yet.
Known issues:
=============
- The Setup/CICAM menu is currently without much meaning.
CA detection is done automatically.
- The channel "EURO1080" on Astra 19.2E currently broadcasts HDTV
test signals. Unfortunately, the full featured DVB cards crash
pretty ugly when tuned to that channel, so it might be a good idea
to have the channel definition
EURO1080:12168:v:S19.2E:27500:308:256:0:FF:21100:1:1088:0
in your 'channels.conf' file. Note the Ca parameter 'FF' (255 in hex),
which gives this channel a non-existent Ca mode, so that it won't
be tuned to at all. If you really want to tune to this channel for
tests, do it on your own risk.
- The 'sky' plugin now temporarily uses Ca value 30 (this will be changed
later).
- Since the CA detection is now done automatically, a timer that starts
immediately after VDR has been launched and wants to record a CA channel
may not work. This will be changed later to make this work safely.
What to test:
=============
Apart from the usual general functionality, special attention should
be given to the following matters:
- Does the automatic PID switching really work in all cases, especially
in conjunction with conditional access channels?
- Does CAM support work for all kinds of CAMs?
Known bugs:
===========
- Sometimes a new channel is created with the wrong 'source'
parameter. This presumably happens when the transponder and source
are switched, and there is still an SDT data packet being processed.
The call to device->HasLock() in sections.c should fix this (and it
apparently does for most cases), but there must still be soemthing
wrong in that area. This may be fixed in 1.3.1 - please report if
it does still happen there.
- Sometimes the current channel gets re-tuned even though the channel
data of this channel didn't change (but that of an other channel did
change).

View File

@ -1,137 +0,0 @@
VPS (Video Programming Service)
===============================
Beginning with version 1.3.5 VDR supports the VPS method
of identifying programmes to record, and making sure they
are recorded in full length, even if they run longer than
initially specified or are shifted in time.
Of course, the main prerequisite for this to work is that
the broadcasters actually provide the necessary data. In
particular these are
- EPG data (well, obviously)
- the data for each event must contain the "Programme Identification Label"
descriptor, which contains the VPS timestamp for this programme
- the event data must provide and maintain the "Running Status" flag,
which indicates whether this programme is currently running or not.
Currently only the German "Öffentlich Rechtliche" tv stations provide
the necessary VPS data, so this will work only for stations like "Das Erste",
"ZDF" and the like.
Following is a step by step description of what happens for a VPS controlled
timer recording. First let's take a look at what the VDR user needs to do.
VPS as seen by the VDR user:
----------------------------
When the VDR user sets up a timer that shall be under VPS control, there
are only two things that need to be done:
1. Set the "Start" time to the actual VPS time as published in tv magazines.
Typically the VPS time is the same as the printed start time, unless
expliciltly specified otherwise. For instance, a tv magazine might print
20:15 Wetten, dass...?
(VPS = 20:14)
In this case the timer would need to be set to 20:14.
2. Set the "VPS" flag in the timer definition to "yes" in order to tell VDR
that this timer is to be handled under VPS control. This is no different
to old analog video recorders, where each timer has also had a separate
VPS flag.
If the user sets up a timer from the "Schedule" menu, things are even simpler.
If the setup option "Recording/Use VPS" is set to "yes", any timer that is
programmed from an event that has VPS information will automatically be set
up as a VPS timer.
IMPORTANT: In order for a recording to work under VPS control it is of
========== paramount importance that the start time is set to the actual
VPS time of that event, NOT some time a few minutes before the
event starts! If a timer is set to use VPS, and the time doesn't
match any event's VPS time, nothing will be recorded!
VPS as seen by VDR:
-------------------
The following things happen when VDR processes timers:
- VDR regularly scans the EPG data and assigns events to the timers (see
cTimers::SetEvents() in VDR/timers.c).
This can be seen in the log file as
timer 1 (15 1830-1900 'Neues') set to event 28.02.2004 18:30-18:59 (VPS: 28.02 18:30) 'neues'
- When a VPS timer is asked whether it matches (i.e. whether a recording shall
be started), it checks whether it has an event assigned to it, and whether
that event has a running status of "starts in a few seconds" or "running"
(see cTimer::Matches(time_t t, bool Directly) in VDR/timers.c). This allows
the recording process to catch the entire programme, even if it runs longer
than initially advertised. It also works if it runs shorter or gets shifted.
- When a VPS timer event is coming up (i.e. there are only a few minutes until
it starts, according to the related event data's start time - which may be
different than the VPS time!), VDR tunes a free DVB device to that transponder
(unless there is already a device tuned to that one) in order to make sure
that the event data (especially the "Running Status") will be up to date and
a change in the "Running status" flag will be seen immediately. This may
lead to the primary device being switched to a different channel if there
is no other free DVB device available. See the main program loop in VDR/vdr.c,
"Make sure VPS timers "see" their channel early enough:".
Problems:
---------
- In order for a VPS controlled timer to function properly, it needs to "see"
any changes in the running status of its event. This means that one of the
DVB devices needs to be tuned to the proper transponder some time before
the actual start time of the event. However, this may result in an other
timer (with lower priority) to be stopped, because it occupies the DVB device
and has it tuned to a different transponder.
See "// Make sure VPS timers "see" their channel early enough:" in VDR/vdr.c.
TODO:
Something needs to be done to prevent two timers from repeatedly switching
the device between channels in such a situation.
- If, for some reason, the driver doesn't deliver any more section data, a
VPS controlled timer will never see that the programme has started (or ended).
TODO:
Therefore some mechanism needs to be implemented that makes absolutely sure
we continuously receive at least the event data for the present event.
Caveats:
--------
Apparently VPS in digital broadcasting is still in an early state. Only few
tv stations actually support it, and other tv stations don't even handle the
"Running Status" correctly (which, by itself, would already be helpful, even
without VPS).
Here's a list of things that are apparently done wrong by the individual
stations:
- The German "Öffentlich Rechtliche" tv stations, although supporting VPS,
don't switch the "Running Status" of an upcoming broadcast to "starts in
a few seconds", but rather go directly from "unknown" or "not running" to
"running". This may result in a recording that misses the first few seconds
of the programme.
- The RTL group handles EPG events in a rather random way. They change event
IDs randomly, and switch the "Running Status" flag at times that are only
losely related to the actual events. For instance, if the "RTL aktuell"
programme starts at 18:45, they switch that event to "running" at about
18:43. Or, even worse, if "Wer wird Millionär?" runs until 21:15, they
switch the _next_ programme to running (which implicitly set "Wer wird
Millionär?" to "not running) at around 21:11 - so anybody using that
information to control recording would not see the end of that programme.
... more following as it comes up...
Contact:
--------
ARD Digital: http://www.ard-digital.de/home/index.php?id=16&languageid=1
ZDF vision: http://www.zdf.de/ZDFde/inhalt/1/0,1872,1021601,00.html (select "zdfvision")
phone: 06131/706754

View File

@ -5,10 +5,20 @@ have been made "behind the scenes".
See the file HISTORY for a detailed list of all changes.
Video Programming System (VPS):
- Implemented handling the VPS timestamps (aka "Programme Identification Label")
for full VPS support for timers (provided the tv stations actually broadcast
this information). The VPS time is displayed in the event info page if it exists
and is different than the event's start time.
- Timers can now be set to use the VPS information to control recording a programme.
The new setup options "Recording/Use VPS" and "Recording/VPS margin", as well as
the "VPS" option in the individual timers, can be used to control this feature
Plugins:
- The new function cPlugin::Stop() shall be used to stop any background activities
of a plugin. Previously this was done in the plugin's desctructor, but it is
of a plugin. Previously this was done in the plugin's destructor, but it is
better to do this in a dedicated function that can be called early when shutting
down.
- Added 'Service' functions to the plugin interface.
@ -121,7 +131,7 @@ OSD:
the small font.
- The new OSD setup parameters "Left" and "Top" can be used to define the top left
corner of the OSD.
- The OSD size prameters are now in pixel (as opposed to formerly characters).
- The OSD size parameters are now in pixel (as opposed to formerly characters).
When reading a 'setup.conf' file from an older version of VDR, the OSDwidth
and OSDheight values will be converted to pixel automatically.
- The OSD is now fully device independent. See the comments in VDR/osd.h and the
@ -177,7 +187,7 @@ Timers:
- The '0' key now toggles the "Day" item in the "Timers" menu between "single
shot" and "repeating". The keys '1'...'7' can be used to toggle the individual
days ('1' is monday).
days ('1' is Monday).
- The day of a timer is now stored as a full date in ISO notation ("YYYY-MM-DD") in
'timers.conf' and for the result of the SVDRP command LSTT
- The timer status now has a new bit that is set when that timer is currently
@ -205,13 +215,6 @@ Timers:
Recording:
- Implemented handling the VPS timestamps (aka "Programme Identification Label")
for full VPS support for timers (provided the tv stations actually broadcast
this information). The VPS time is displayed in the event info page if it exists
and is different than the event's start time.
- Timers can now be set to use the VPS information to control recording a programme.
The new setup options "Recording/Use VPS" and "Recording/VPS margin", as well as
the "VPS" option in the individual timers, can be used to control this feature
- Now preferring budget cards when selecting a DVB device for recording.
- The file 'summary.vdr' has been replaced with 'info.vdr' and now contains the
information about a recording, in the same format as the events are stored in
@ -267,7 +270,7 @@ Audio:
- The "Left" and "Right" keys in the "Audio" menu can be used to switch between
the left and right stereo channels in case there are different audio tracks
in these channels.
- The setup option "Recording/Record Dobly Digital" has been renamed and moved to
- The setup option "Recording/Record Dolby Digital" has been renamed and moved to
"DVB/Use Dolby Digital". It now controls whether Dolby Digital is recorded and
whether an available DD audio track will appear in the "Audio" menu.
- Recording and Transfer Mode now handle more than 2 audio PIDs.

View File

@ -15,8 +15,8 @@ ZDF;ZDFvision:11953:hC34:S19.2E:27500:110:120=deu,121=2ch;125=dd:130:0:28006:1:1
3sat;ZDFvision:11953:hC34:S19.2E:27500:210:220=deu,221=2ch;225=dd:230:0:28007:1:1079:0
KiKa;ZDFvision:11953:hC34:S19.2E:27500:310:320=deu:330:0:28008:1:1079:0
arte;ARD:11836:hC34:S19.2E:27500:401:402=deu,403=fra:404:0:28109:1:1101:0
ORF1;ORF:12692:hC56:S19.2E:22000:160:161=deu;163=deu:165:1762,D05,1702,1801:13001:1:1117:0
ORF2;ORF:12692:hC56:S19.2E:22000:500:501=deu;503=deu:505:1762,D05,1702,1801:13002:1:1117:0
ORF1;ORF:12692:hC56:S19.2E:22000:160:161=deu;163=deu:165:1762,D05,1801,1702:13001:1:1117:0
ORF2;ORF:12692:hC56:S19.2E:22000:500:501=deu;503=deu:505:1762,D05,1801,1702:13002:1:1117:0
ZDFinfokanal;ZDFvision:11953:hC34:S19.2E:27500:610:620=deu:130:0:28011:1:1079:0
CNN Int.;CNN:11778:vC34:S19.2E:27500:165:100=eng:47:0:28522:1:1068:0
Super RTL,S RTL;RTL World:12187:hC34:S19.2E:27500:165:120=deu:65:0:12040:1:1089:0
@ -28,7 +28,7 @@ DSF;BetaDigital:12480:vC34:S19.2E:27500:1023:1024=deu:39:0:900:133:33:0
HSE24,HSE24;BetaDigital:12480:vC34:S19.2E:27500:1279:1280=deu:37:0:40:133:33:0
Bloomberg TV Germany;Bloomberg:12551:vC56:S19.2E:22000:162:99=deu:0:0:12160:1:1108:0
EURONEWS;CSAT:11817:vC34:S19.2E:27500:163:92=fra,91=rus,93=eng,94=ita,95=esl,98=por,99=deu:0:0:8004:1:1070:0
rbb Brandenburg;ARD:12109:hC34:S19.2E:27500:501:502=deu:504:0:28205:1:1073:0
rbb Brandenburg;ARD:12109:hC34:S19.2E:27500:601:602=deu:604:0:28205:1:1073:0
Sky News;BT:11597:vC56:S19.2E:22000:305+131:306=eng:0:0:28707:1:1026:0
Veronica/JETIX;CANALDIGITAAL:12574:hC56:S19.2E:22000:518+8190:92=dut:38:622,100:5020:53:1109:0
BVN;CANALDIGITAAL:12574:hC56:S19.2E:22000:515+8190:96=dut:36:0:5025:53:1109:0
@ -45,14 +45,14 @@ MDR FERNSEHEN;ARD:12109:hC34:S19.2E:27500:401:402=deu:404:0:28204:1:1073:0
rbb Berlin;ARD:12109:hC34:S19.2E:27500:601:602=deu:604:0:28206:1:1073:0
:Premiere World
PREMIERE START,START;PREMIERE:11797:hC34:S19.2E:27500:255:256=deu:32:1722,1801,1702:8:133:2:0
PREMIERE 1,PREM 1;PREMIERE:11797:hC34:S19.2E:27500:511:512=deu,513=deu;515=deu:32:1:10:133:2:0
PREMIERE 2,PREM 2;PREMIERE:11797:hC34:S19.2E:27500:1791:1792=deu,1793=deu;1795=deu:32:1:11:133:2:0
PREMIERE 3,PREM 3;PREMIERE:11797:hC34:S19.2E:27500:2303:2304=deu:32:1:43:133:2:0
PREMIERE 4,PREM 4;PREMIERE:11797:hC34:S19.2E:27500:767:768=deu,769=deu:32:1:9:133:2:0
PREMIERE 5,PREM 5;PREMIERE:11797:hC34:S19.2E:27500:1279:1280=deu,1281=deu:32:1:29:133:2:0
PREMIERE 6,PREM 6;PREMIERE:11797:hC34:S19.2E:27500:1535:1536=deu:32:1:41:133:2:0
PREMIERE 1,PREM 1;PREMIERE:11797:hC34:S19.2E:27500:511:512=deu,513=deu;515=deu:32:1722,1801,1702:10:133:2:0
PREMIERE 2,PREM 2;PREMIERE:11797:hC34:S19.2E:27500:1791:1792=deu,1793=deu;1795=deu:32:1722,1801,1702:11:133:2:0
PREMIERE 3,PREM 3;PREMIERE:11797:hC34:S19.2E:27500:2303:2304=deu,2305=deu:32:1722,1801,1702:43:133:2:0
PREMIERE 4,PREM 4;PREMIERE:11797:hC34:S19.2E:27500:767:768=deu,769=deu:32:1722,1801,1702:9:133:2:0
PREMIERE 5,PREM 5;PREMIERE:11797:hC34:S19.2E:27500:1279:1280=deu,1281=deu:32:1722,1801,1702:29:133:2:0
PREMIERE 6,PREM 6;PREMIERE:11797:hC34:S19.2E:27500:1535:1536=deu:32:1722,1801,1702:41:133:2:0
PREMIERE 7,PREM 7;PREMIERE:11797:hC34:S19.2E:27500:1023:1024=deu:32:1702,1801,1722:20:133:2:0
DISNEY CHANNEL,DISNEY;PREMIERE:11758:hC34:S19.2E:27500:2559:2560=deu:32:1:34:133:17:0
DISNEY CHANNEL,DISNEY;PREMIERE:11758:hC34:S19.2E:27500:2559:2560=deu:32:1722,1801,1702:34:133:17:0
:Premiere Direkt
PREMIERE DIREKT,DIREKT;PREMIERE:12031:hC34:S19.2E:27500:2815:2816=deu,2817=deu;2819=deu:0:0:18:133:4:0
:PW Erotic
@ -133,6 +133,6 @@ CNN;BSkyB:12051:vC23:S28.2E:27500:2313:2315=eng:2314:0:7140:2:2018:0
BBC PARL'MNT;BSkyB:10847:vC56:S28.2E:22000:2327:2328=eng:2331:0:6902:2:2050:0
IGLESIA MME;T-Systems/MTI:11200:vC56:S13.0E:27500:4097:4098:0:0:4733:318:13400:0
eng-WRN-multi;WRN:12597:vC34:S13.0E:27500:0:2132:0:0:8230:318:9400:0
Challenger Tv;Telespazio:11304:hC34:S13.0E:27500:490:491:0:0:8409:318:500:0
Challenger Tv;Telespazio:11295:hC34:S13.0E:27500:490:491:0:0:8409:318:500:0
TVS Teleport Bonn;DMV:11535:vC34:S1.0W:5632:308+8190:256=eng,257=eng:0:3:1:65535:1:0
:@1000 New channels

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.h 1.251 2006/04/16 09:36:10 kls Exp $
* $Id: config.h 1.252 2006/04/21 14:53:26 kls Exp $
*/
#ifndef __CONFIG_H
@ -21,8 +21,8 @@
// VDR's own version number:
#define VDRVERSION "1.3.47"
#define VDRVERSNUM 10347 // Version * 10000 + Major * 100 + Minor
#define VDRVERSION "1.3.48"
#define VDRVERSNUM 10348 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number:

4
epg.c
View File

@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
* $Id: epg.c 1.71 2006/04/17 12:18:59 kls Exp $
* $Id: epg.c 1.72 2006/04/22 12:02:47 kls Exp $
*/
#include "epg.h"
@ -445,7 +445,7 @@ void cEvent::FixEpgBugs(void)
strreplace(description, '\x86', ' ');
strreplace(description, '\x87', ' ');
if (!title) {
if (isempty(title)) {
// we don't want any "(null)" titles
title = strcpyrealloc(title, tr("No title"));
EpgBugFixStat(12, ChannelID());

374
i18n.c

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menuitems.c 1.42 2006/04/14 10:41:28 kls Exp $
* $Id: menuitems.c 1.43 2006/04/23 11:39:48 kls Exp $
*/
#include "menuitems.h"
@ -351,10 +351,10 @@ char cMenuEditStrItem::Inc(char c, bool Up)
eOSState cMenuEditStrItem::ProcessKey(eKeys Key)
{
bool SameKey = Key == lastKey;
bool SameKey = NORMALKEY(Key) == lastKey;
if (Key != kNone)
lastKey = Key;
else if (!newchar && k0 <= NORMALKEY(lastKey) && NORMALKEY(lastKey) <= k9 && autoAdvanceTimeout.TimedOut()) {
lastKey = NORMALKEY(Key);
else if (!newchar && k0 <= lastKey && lastKey <= k9 && autoAdvanceTimeout.TimedOut()) {
AdvancePos();
newchar = true;
currentChar = NULL;
@ -460,7 +460,7 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key)
}
if (!currentChar || !*currentChar || *currentChar == '\t') {
// find the beginning of the character map entry for Key
int n = Key - k0;
int n = NORMALKEY(Key) - k0;
currentChar = charMap;
while (n > 0 && *currentChar) {
if (*currentChar++ == '\t')

View File

@ -12,7 +12,7 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: newplugin 1.26 2006/04/17 09:49:13 kls Exp $
# $Id: newplugin 1.27 2006/04/22 10:04:10 kls Exp $
$PLUGIN_NAME = $ARGV[0] || die "Usage: newplugin <name>\n";
@ -85,7 +85,7 @@ TMPDIR = /tmp
### The version number of VDR's plugin API (taken from VDR's "config.h"):
APIVERSION = \$(shell grep 'define APIVERSION ' \$(VDRDIR)/config.h | awk '{ print \$\$3 }' | sed -e 's/"//g')
APIVERSION = \$(shell sed -ne '/define VDRVERSION/ { s/^.*"\(.*\)".*\$\$/\\1/; p }' \$(VDRDIR)/config.h)
### The name of the distribution archive:

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.c 1.146 2006/04/17 12:47:59 kls Exp $
* $Id: recording.c 1.147 2006/04/23 10:43:06 kls Exp $
*/
#include "recording.h"
@ -1197,7 +1197,7 @@ cIndexFile::cIndexFile(const char *FileName, bool Record)
LOG_ERROR_STR(fileName);
}
else
esyslog("ERROR: can't allocate %d bytes for index '%s'", size * sizeof(tIndex), fileName);
esyslog("ERROR: can't allocate %zd bytes for index '%s'", size * sizeof(tIndex), fileName);
}
}
else

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: timers.c 1.57 2006/04/09 09:10:08 kls Exp $
* $Id: timers.c 1.58 2006/04/21 15:12:49 kls Exp $
*/
#include "timers.h"
@ -292,7 +292,7 @@ int cTimer::GetWDay(time_t t)
{
struct tm tm_r;
int weekday = localtime_r(&t, &tm_r)->tm_wday;
return weekday == 0 ? 6 : weekday - 1; // we start with monday==0!
return weekday == 0 ? 6 : weekday - 1; // we start with Monday==0!
}
bool cTimer::DayMatches(time_t t) const

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: tools.c 1.116 2006/04/17 12:19:31 kls Exp $
* $Id: tools.c 1.117 2006/04/21 15:12:47 kls Exp $
*/
#include "tools.h"
@ -615,7 +615,7 @@ cString cString::sprintf(const char *fmt, ...)
cString WeekDayName(int WeekDay)
{
char buffer[4];
WeekDay = WeekDay == 0 ? 6 : WeekDay - 1; // we start with monday==0!
WeekDay = WeekDay == 0 ? 6 : WeekDay - 1; // we start with Monday==0!
if (0 <= WeekDay && WeekDay <= 6) {
const char *day = tr("MonTueWedThuFriSatSun");
day += WeekDay * 3;

8
vdr.5
View File

@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the
.\" vdr distribution.
.\"
.\" $Id: vdr.5 1.55 2006/03/26 13:42:29 kls Exp $
.\" $Id: vdr.5 1.56 2006/04/21 15:13:10 kls Exp $
.\"
.TH vdr 5 "26 Mar 2006" "1.3.45" "Video Disk Recorder Files"
.SH NAME
@ -259,11 +259,11 @@ so a complete definition could look like this:
\fBMTWTF\-\-@2002\-02\-18\fR
which would implement a timer that records Moday thru Friday, and will hit
which would implement a timer that records Monday thru Friday, and will hit
for the first time on or after February 18, 2002.
This \fBfirst day\fR feature can be used to disable a repeating timer for a couple
of days, or for instance to define a new Mon...Fri timer on wednesday, which
actually starts "monday next week". The \fBfirst day\fR date given need not be
of days, or for instance to define a new Mon...Fri timer on Wednesday, which
actually starts "Monday next week". The \fBfirst day\fR date given need not be
that of a day when the timer would actually hit.
.TP
.B Start

6
vdr.c
View File

@ -15,14 +15,14 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
* Or, point your browser to http://www.gnu.org/copyleft/gpl.html
*
* The author can be reached at kls@cadsoft.de
*
* The project's page is at http://www.cadsoft.de/vdr
*
* $Id: vdr.c 1.262 2006/04/17 14:43:46 kls Exp $
* $Id: vdr.c 1.264 2006/04/22 11:26:04 kls Exp $
*/
#include <getopt.h>
@ -422,7 +422,7 @@ int main(int argc, char *argv[])
);
}
if (DisplayVersion)
printf("vdr (%s) - The Video Disk Recorder\n", VDRVERSION);
printf("vdr (%s/%s) - The Video Disk Recorder\n", VDRVERSION, APIVERSION);
if (PluginManager.HasPlugins()) {
if (DisplayHelp)
printf("Plugins: vdr -P\"name [OPTIONS]\"\n\n");