diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2006-04-23 18:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2006-04-23 18:00:00 +0200 |
commit | 880c3ddb94c09d6cca411363ed6f981d4e150fd2 (patch) | |
tree | c7f88180032f51938367727f145928528406c0c4 | |
parent | 293ed4027ed3c3c8fd6ef1e8bdd79bfe69193957 (diff) | |
download | vdr-patch-lnbsharing-880c3ddb94c09d6cca411363ed6f981d4e150fd2.tar.gz vdr-patch-lnbsharing-880c3ddb94c09d6cca411363ed6f981d4e150fd2.tar.bz2 |
Version 1.3.48vdr-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ä).
39 files changed, 428 insertions, 587 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 61baad0..b798ebc 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -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üßler <marco@lordzodiac.de> 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üßler <marco@lordzodiac.de> 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ä <ville.skytta@iki.fi> 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ünther <tom1@toms-cafe.de> 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 @@ -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. @@ -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ä). @@ -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. @@ -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. @@ -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: diff --git a/PLUGINS.html b/PLUGINS.html index bd18a86..491399c 100644 --- a/PLUGINS.html +++ b/PLUGINS.html @@ -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()->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; diff --git a/PLUGINS/src/hello/COPYING b/PLUGINS/src/hello/COPYING index 5b6e7c6..f90922e 100644 --- a/PLUGINS/src/hello/COPYING +++ b/PLUGINS/src/hello/COPYING @@ -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. diff --git a/PLUGINS/src/hello/HISTORY b/PLUGINS/src/hello/HISTORY index f5e90ba..3de2d66 100644 --- a/PLUGINS/src/hello/HISTORY +++ b/PLUGINS/src/hello/HISTORY @@ -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). diff --git a/PLUGINS/src/hello/Makefile b/PLUGINS/src/hello/Makefile index 6f3dd4c..2106cbf 100644 --- a/PLUGINS/src/hello/Makefile +++ b/PLUGINS/src/hello/Makefile @@ -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: diff --git a/PLUGINS/src/hello/hello.c b/PLUGINS/src/hello/hello.c index e3c45f2..05ae9df 100644 --- a/PLUGINS/src/hello/hello.c +++ b/PLUGINS/src/hello/hello.c @@ -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"; diff --git a/PLUGINS/src/hello/i18n.c b/PLUGINS/src/hello/i18n.c index 62446a6..0ceeb2c 100644 --- a/PLUGINS/src/hello/i18n.c +++ b/PLUGINS/src/hello/i18n.c @@ -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 diff --git a/PLUGINS/src/osddemo/COPYING b/PLUGINS/src/osddemo/COPYING index 5b6e7c6..f90922e 100644 --- a/PLUGINS/src/osddemo/COPYING +++ b/PLUGINS/src/osddemo/COPYING @@ -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. diff --git a/PLUGINS/src/osddemo/Makefile b/PLUGINS/src/osddemo/Makefile index 8a0aef4..51317af 100644 --- a/PLUGINS/src/osddemo/Makefile +++ b/PLUGINS/src/osddemo/Makefile @@ -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: diff --git a/PLUGINS/src/servicedemo/COPYING b/PLUGINS/src/servicedemo/COPYING index 5b6e7c6..f90922e 100644 --- a/PLUGINS/src/servicedemo/COPYING +++ b/PLUGINS/src/servicedemo/COPYING @@ -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. diff --git a/PLUGINS/src/servicedemo/Makefile b/PLUGINS/src/servicedemo/Makefile index c76b871..31e57a8 100644 --- a/PLUGINS/src/servicedemo/Makefile +++ b/PLUGINS/src/servicedemo/Makefile @@ -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: diff --git a/PLUGINS/src/skincurses/COPYING b/PLUGINS/src/skincurses/COPYING index 5b6e7c6..f90922e 100644 --- a/PLUGINS/src/skincurses/COPYING +++ b/PLUGINS/src/skincurses/COPYING @@ -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. diff --git a/PLUGINS/src/skincurses/Makefile b/PLUGINS/src/skincurses/Makefile index 360b0d2..ebb045f 100644 --- a/PLUGINS/src/skincurses/Makefile +++ b/PLUGINS/src/skincurses/Makefile @@ -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: diff --git a/PLUGINS/src/sky/COPYING b/PLUGINS/src/sky/COPYING index 5b6e7c6..f90922e 100644 --- a/PLUGINS/src/sky/COPYING +++ b/PLUGINS/src/sky/COPYING @@ -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. diff --git a/PLUGINS/src/sky/Makefile b/PLUGINS/src/sky/Makefile index e943538..2fad8b5 100644 --- a/PLUGINS/src/sky/Makefile +++ b/PLUGINS/src/sky/Makefile @@ -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: diff --git a/PLUGINS/src/status/COPYING b/PLUGINS/src/status/COPYING index 5b6e7c6..f90922e 100644 --- a/PLUGINS/src/status/COPYING +++ b/PLUGINS/src/status/COPYING @@ -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. diff --git a/PLUGINS/src/status/Makefile b/PLUGINS/src/status/Makefile index e6525e9..21f8817 100644 --- a/PLUGINS/src/status/Makefile +++ b/PLUGINS/src/status/Makefile @@ -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: diff --git a/PLUGINS/src/svdrpdemo/COPYING b/PLUGINS/src/svdrpdemo/COPYING index 5b6e7c6..f90922e 100644 --- a/PLUGINS/src/svdrpdemo/COPYING +++ b/PLUGINS/src/svdrpdemo/COPYING @@ -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. diff --git a/PLUGINS/src/svdrpdemo/Makefile b/PLUGINS/src/svdrpdemo/Makefile index 2725874..d9fd834 100644 --- a/PLUGINS/src/svdrpdemo/Makefile +++ b/PLUGINS/src/svdrpdemo/Makefile @@ -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: @@ -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 diff --git a/README.developer b/README.developer deleted file mode 100644 index 4fe75c8..0000000 --- a/README.developer +++ /dev/null @@ -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). diff --git a/README.vps b/README.vps deleted file mode 100644 index ee8909e..0000000 --- a/README.vps +++ /dev/null @@ -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 diff --git a/UPDATE-1.4.0 b/UPDATE-1.4.0 index 910c444..f046eb9 100644 --- a/UPDATE-1.4.0 +++ b/UPDATE-1.4.0 @@ -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. diff --git a/channels.conf b/channels.conf index 4beb078..4840404 100644 --- a/channels.conf +++ b/channels.conf @@ -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 @@ -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: @@ -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()); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: i18n.c 1.261 2006/04/15 14:13:45 kls Exp $ + * $Id: i18n.c 1.273 2006/04/23 08:39:00 kls Exp $ * * Translations provided by: * @@ -12,7 +12,7 @@ * Italian Alberto Carraro <bertocar@tin.it>, Antonio Ospite <ospite@studenti.unina.it>, Sean Carlos <seanc@libero.it> * Dutch Arnold Niessen <niessen@iae.nl> <arnold.niessen@philips.com>, Hans Dingemans <hans.dingemans@tacticalops.nl>, Maarten Wisse <Maarten.Wisse@urz.uni-hd.de> * Portuguese Paulo Lopes <pmml@netvita.pt> - * French Jean-Claude Repetto <jc@repetto.org>, Olivier Jacques <jacquesolivier@hotmail.com>, Gregoire Favre <greg@magma.unil.ch>, Nicolas Huillard <nhuillard@e-dition.fr> + * French Jean-Claude Repetto <jc@repetto.org>, Olivier Jacques <jacquesolivier@hotmail.com>, Gregoire Favre <greg@magma.unil.ch>, Nicolas Huillard <nhuillard@e-dition.fr>, Pierre Briec <pbriec@free.fr> * Norwegian Jørgen Tvedt <pjtvedt@online.no>, Truls Slevigen <truls@slevigen.no> * Finnish Hannu Savolainen <hannu@opensound.com>, Jaakko Hyvätti <jaakko@hyvatti.iki.fi>, Niko Tarnanen <niko.tarnanen@hut.fi>, Rolf Ahrenberg <rahrenbe@cc.hut.fi> * Polish Michael Rakowski <mrak@gmx.de>, Jaroslaw Swierczynski <swiergot@gmail.com> @@ -124,7 +124,7 @@ const tI18nPhrase Phrases[] = { "iso8859-5", "iso8859-2", "iso8859-13", - "iso8859-1", + "iso8859-15", "iso8859-2", }, // The 3-letter names of the language (this MUST be the third phrase!): @@ -461,18 +461,18 @@ const tI18nPhrase Phrases[] = { }, { "This event - %s", "Diese Sendung - %s", + "Ta oddaja - %s", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + "Cet événement", "",//TODO "Tämä tapahtuma - %s", - "",//TODO + "Den här sändningen - %s", "Este evento - %s", "",//TODO - "Ta audycja - %s", "",//TODO + "Aceastã emisiune - %s", "",//TODO "",//TODO "ÍâÐ ßÕàÕÔÐçÐ - %s", @@ -483,18 +483,18 @@ const tI18nPhrase Phrases[] = { }, { "This event - all channels", "Diese Sendung - alle Kanäle", + "Ta oddaja - vsi kanali", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + "Cet événement - toutes les chaînes", "",//TODO "Tämä tapahtuma - kaikki kanavat", "",//TODO "Este evento - todos los canales", "",//TODO - "Ta audycja - wszystkie kana³y", - "",//TODO + "Den här sändningen - alla kanaler", + "Aceastã emisiune - toate canalele", "",//TODO "",//TODO "ÍâÐ ßÕàÕÔÐçÐ - ÒáÕ ÚÐÝÐÛë", @@ -505,18 +505,18 @@ const tI18nPhrase Phrases[] = { }, { "All events - all channels", "Alle Sendungen - alle Kanäle", + "Vse oddaje - vsi kanali", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + "Tous les événements - toutes chaînes", "",//TODO "Kaikki tapahtumat - kaikki kanavat", "",//TODO "Todos los eventos - todos los canales", "",//TODO - "Wszystkie audycje - wszystkie kana³y", - "",//TODO + "Alla tillfällen - alla kanaler", + "Toate emisiunile - toate canalele", "",//TODO "",//TODO "²áÕ ßÕàÕÔÐçØ - ÒáÕ ÚÐÝÐÛë", @@ -682,18 +682,18 @@ const tI18nPhrase Phrases[] = { }, { "Button$Timer", "Timer", + "Termini", "",// TODO "",// TODO "",// TODO - "",// TODO - "",// TODO + "Programmation", "",// TODO "Ajastin", "Timer", "Programa", "",// TODO - "",// TODO - "",// TODO + "Timer", + "Timer", "",// TODO "",// TODO "ÂÐÙÜÕà", @@ -847,7 +847,7 @@ const tI18nPhrase Phrases[] = { "Continuar", "ÅðáíáöïñÜ", "Fortsätt", - "Revenire", + "Continuare", "Tovább", "Continuar", "¿àÞÔÞÛÖØâì", @@ -1055,7 +1055,7 @@ const tI18nPhrase Phrases[] = { "Menu", }, { "Button$Reset", - "Reset", + "Rücksetzen", "Reset", "Reset", "Herstart", @@ -1364,8 +1364,8 @@ const tI18nPhrase Phrases[] = { "Nahrávání zaène za %ld minut - pøesto vypnout?", }, { "Press any key to cancel shutdown", - "Taste drücken, um Shutdown abzubrechen", - "Pritisni katerikoli gumb za preklic izklopa", + "Taste drücken, um Ausschalten abzubrechen", + "Pritisnite katerikoli gumb za preklic izklopa", "Un tasto per annullare lo spegnimento", "Druk een toets om shutdown af te breken", "Pressione qualquer tecla para cancelar", @@ -1674,18 +1674,18 @@ const tI18nPhrase Phrases[] = { }, { "Free To Air", "frei empfangbar", + "nekodiran", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + "Aucun cryptage", "",//TODO "vapaa", "",//TODO "en abierto", "",//TODO - "otwarty przekaz", - "",//TODO + "Okodad", + "FTA (necriptat)", "",//TODO "",//TODO "FTA (ÝÕ×ÐÚÞÔØàÞÒÐÝÞ)", @@ -1696,18 +1696,18 @@ const tI18nPhrase Phrases[] = { }, { "encrypted", "verschlüsselt", + "kodiran", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + "Crypté", "",//TODO "salattu", "",//TODO "cifrado", "",//TODO - "szyfrowany", - "",//TODO + "krypterad", + "criptat", "",//TODO "",//TODO "×ÐÚÞÔØàÞÒÐÝÞ", @@ -1761,7 +1761,7 @@ const tI18nPhrase Phrases[] = { "Inversion", }, { "Bandwidth", - "Bandwidth", + "Bandbreite", "Pasovna ¹irina", "Bandwidth", "Bandwidth", @@ -1861,7 +1861,7 @@ const tI18nPhrase Phrases[] = { "Transmisión", "ÌåôÜäïóç", "Transmission", - "Transmisiune", + "Transmisie", "Transmission", "Transmissió", "¿ÕàÕÔÐçÐ", @@ -1893,7 +1893,7 @@ const tI18nPhrase Phrases[] = { "Guard", }, { "Hierarchy", - "Hierarchy", + "Hierarchie", "Hierarhija", "Hierarchy", "Hierarchy", @@ -2270,23 +2270,23 @@ const tI18nPhrase Phrases[] = { }, { "Upcoming VPS recording!", "VPS-Aufnahme beginnt in Kürze!", + "Sledi VPS snemanje!", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + "Enregistrement VPS commence prochaînement", "",//TODO "VPS-tallennus on alkamassa!", + "Wkrótce nagranie VPS!", "",//TODO "",//TODO + "strax VPS inspelning...", + "Urmeazã o înregistrare VPS!", "",//TODO "",//TODO + "VPS-·ÐßØáì áÚÞàÞ ÝÐçÝÕâáï", "",//TODO - "",//TODO - "",//TODO - "",//TODO - "",//TODO - "",//TODO + "VPS salvestamine tulekul!", "VPS optagelse starter snart!", "",//TODO }, @@ -2380,7 +2380,7 @@ const tI18nPhrase Phrases[] = { }, { "Can't start Transfer Mode!", "Transfer-Mode kann nicht gestartet werden!", - "Ne morem zaèeti s prenosnim naèinom", + "Ne morem zaèeti s prenosnim naèinom!", "Impossibile iniziare la modalita' di trasferimento!", "Kan Transfer-Mode niet starten", "Impossível iniciar modo de transferência!", @@ -2412,9 +2412,9 @@ const tI18nPhrase Phrases[] = { "Nie zdefiniowano znaczników monta¿u!", "¡No se definieron marcas de edición!", "ÄÝí Ý÷ïõí ïñéóôåß óçìåßá åðåîåñãáóßáò", - "Det finns inga redigeringsmärken",//TODO + "Det finns inga redigeringsmärken", "Nu s-au pus marcaje de montaj pentru aceastã înregistrare", - "A vágópont nincs kijelölve",//TODO + "A vágópont nincs kijelölve", "No hi ha marques d'edició definides", "½Õ ×ÐÔÐÝë ÜÕâÚØ ÔÛï ÜÞÝâÐÖÐ!", "Nijedna prekidna toèka nije postavljena!", @@ -2467,7 +2467,7 @@ const tI18nPhrase Phrases[] = { "Editaèní proces je ji¾ aktivní!", }, { "Can't shutdown - option '-s' not given!", - "Shutdown unmöglich - Option '-s' fehlt!", + "Ausschalten unmöglich - Option '-s' fehlt!", "Zaustavitev ni izvedljiva - opcija '-s' ni podana!", "Impossibile spegnere - parametro '-s' non passato!", "Shutdown onmogelijk - Optie '-s' ontbreekt!", @@ -2490,18 +2490,18 @@ const tI18nPhrase Phrases[] = { }, { "Not enough disk space to start recording!", "Nicht genügend Plattenplatz für Aufnahme!", + "Premalo prostora na disku za snemanje!", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + "Espace disque insuffisant pour démarrer l'enregistrement!", "",//TODO "Tallennustilan puute estää tallennuksen!", "Brak miejsca na dysku do nagrywania!", "",//TODO "",//TODO - "",//TODO - "",//TODO + "Otillräcklingt diskutrymme för inspelning!", + "Insuficient spaþiul pe disc pentru înregistrare!", "",//TODO "",//TODO "½ÕÔÞáâÐâÞçÝÞ ÜÕáâÐ ÝÐ ÔØáÚÕ ÔÛï ÝÐçÐÛÐ ×ÐßØáØ", @@ -2534,18 +2534,18 @@ const tI18nPhrase Phrases[] = { }, { "Opening CAM menu...", "CAM-Menü wird geöffnet...", - "",//TODO + "Odpiram CAM meni...", "",//TODO "CAM-menu wordt geopend...", "",//TODO - "",//TODO + "Ouverture du menu CAM", "",//TODO "Avataan CA-moduulin valikkoa...", "Otwieram menu CAM...", "Abriendo el menú CAM...", "",//TODO - "Åßóïäïò CAM Ìåíïý", - "",//TODO + "Öppnar CAM menyn...", + "Deschid meniul CAM...", "",//TODO "",//TODO "¾âÚàëÒÐî ÜÕÝî ÜÞÔãÛï ãáÛÞÒÝÞÓÞ ÔÞáâãßÐ (CAM)", @@ -2578,18 +2578,18 @@ const tI18nPhrase Phrases[] = { }, { "Resetting CAM...", "CAM wird zurückgesetzt...", - "",//TODO + "Resetiram CAM...", "",//TODO "CAM wordt herstart...", "",//TODO - "",//TODO + "Réinitialisation du CAM", "",//TODO "CA-moduuli palautetaan alkutilaan...", "Resetujê CAM...", "Reiniciando CAM...", "",//TODO - "ÅðáíáöïñÜ CAM", - "",//TODO + "Återställer CAM ...", + "Se reseteazã CAM...", "",//TODO "",//TODO "¿ÕàÕÓàã×ÚÐ CAM...", @@ -2599,8 +2599,8 @@ const tI18nPhrase Phrases[] = { "Restartuje se CAM...", }, { "Can't reset CAM!", - "CAM-Reset fehlgeschlagen!", - "Ne morem resetirati CAM-a", + "Zurücksetzen des CAM fehlgeschlagen!", + "Ne morem resetirati CAM-a!", "Impossibile reimpostare il modulo CAM!", "Kan CAM niet herstarten!", "",//TODO @@ -2644,18 +2644,18 @@ const tI18nPhrase Phrases[] = { }, { "Please enter %d digits!", "Bitte geben Sie %d Ziffern ein!", - "",//TODO + "Prosim vnesite %d ¹tevilk!", "",//TODO "Vul %d cijfers in!", "",//TODO - "",//TODO + "Veuillez entrer %d chiffres!", "",//TODO "Syötä %d numeroa!", "Proszê podaæ %d cyfr!", "¡Escriba %d dígitos!", "",//TODO - "Ðáñáêáëü ðëçêôñïëïãÞóåôå %d íïýìåñá", - "",//TODO + "Mata in %d siffror!", + "Vã rog introduceþi %d cifre!", "",//TODO "",//TODO "½ÐÖÜØâÕ %d æØäàë", @@ -2666,7 +2666,7 @@ const tI18nPhrase Phrases[] = { }, { "No audio available!", "Kein Audio verfügbar!", - "Zvok ni dosegljiv", + "Zvok ni dosegljiv!", "",//TODO "Geen audio beschikbaar!", "",//TODO @@ -2865,7 +2865,7 @@ const tI18nPhrase Phrases[] = { }, { "Plugins", "Plugins", - "Plugins", + "Vstavki", "Plugins", "Plugins", "Plugins", @@ -2887,7 +2887,7 @@ const tI18nPhrase Phrases[] = { }, { "Plugin", "Plugin", - "Plugin", + "Vstavek", "Plugin", "Plugin", "Plugin", @@ -3195,7 +3195,7 @@ const tI18nPhrase Phrases[] = { "v¾dy", }, { "Setup.OSD$Channel info position", - "Kanal-Info Position", + "Kanalinfo-Position", "Pozicija informacije o kanalu", "Posizione informazioni canale", "Kanaal info positie", @@ -3217,8 +3217,8 @@ const tI18nPhrase Phrases[] = { "Pozice informace o kanálu", }, { "Setup.OSD$Channel info time (s)", - "Anzeigedauer für Kanal-Info (s)", - "Èas prikaza podatka o programu (s)", + "Anzeigedauer für Kanalinfo (s)", + "Èas prikaza podatka o kanalu (s)", "",// TODO "Duur tonen kanaal-informatie (s)", "",// TODO @@ -3262,18 +3262,18 @@ const tI18nPhrase Phrases[] = { }, { "Setup.OSD$Timeout requested channel info", "Angeforderte Kanalinfo schließen", + "Èas prikaza informacije o kanalu", "", // TODO "", // TODO "", // TODO + "Demande d'infos de chaîne terminée", "", // TODO - "", // TODO - "", // TODO - "Sulje kanavatieto pyydettäessä", + "Sulje erikseen avattu kanavatieto", "Czas oczekiwania na informacje", "Auto-cerrar al solicitar info de canal", "", // TODO - "", // TODO - "", // TODO + "Timeout för kanalinformation", + "Durata afiºãrii informaþii canal", "", // TODO "", // TODO "¸ÝäÞàÜÐæØî Þ ÚÐÝÐÛÕ ×ÐÚàëâì", @@ -3328,18 +3328,18 @@ const tI18nPhrase Phrases[] = { }, { "Setup.OSD$Menu button closes", "Menu-Taste schließt", + "Meni gumb zapre meni", "",// TODO "",// TODO "",// TODO - "",// TODO - "",// TODO + "Menu bouton fermé", "",// TODO "Sulje valikkonäppäimellä", "",// TODO "Cerrar al pulsar botón de menú", "",// TODO - "Klawisz Menu zamyka", - "",// TODO + "Menyknappen stänger", + "Tasta 'Meniu' închide", "",// TODO "",// TODO "ºÝÞßÚã ¼ÕÝî ×ÐÚàëâì", @@ -3371,7 +3371,7 @@ const tI18nPhrase Phrases[] = { "Seznam nahrávek", }, { "Setup.EPG$EPG scan timeout (h)", - "Zeit bis EPG Scan (h)", + "Zeit bis zur EPG-Aktualisierung (h)", "Èas do EPG pregleda (h)", "Timeout scansione aggiornamento EPG (ore)", "EPG-scan Timeout (h)", @@ -3393,7 +3393,7 @@ const tI18nPhrase Phrases[] = { "Èasový limit pro snímání EPG (h)", }, { "Setup.EPG$EPG bugfix level", - "EPG Fehlerbereinigung", + "EPG-Fehlerbereinigung", "Nivo za popravilo EPG napak", "Livello correzione EPG", "EPG foutcorrectieniveau", @@ -3525,7 +3525,7 @@ const tI18nPhrase Phrases[] = { "Preferovaný jazyk", }, { "Setup.DVB$Primary DVB interface", - "Primäres DVB Interface", + "Primäres DVB-Interface", "Primarna naprava", "Scheda DVB primaria", "Eerste DVB kaart", @@ -3547,7 +3547,7 @@ const tI18nPhrase Phrases[] = { "Primární DVB interface", }, { "Setup.DVB$Video display format", - "Video Anzeige-Format", + "Video-Anzeigeformat", "Format video prikaza", "",//TODO "Video display formaat", @@ -3591,7 +3591,7 @@ const tI18nPhrase Phrases[] = { "pan&scan", }, { "letterbox", - "letterbox", + "Letterbox", "letterbox", "letterbox", "letterbox", @@ -3613,7 +3613,7 @@ const tI18nPhrase Phrases[] = { "letterbox", }, { "center cut out", - "center cut out", + "Center-cut-out", "center cut out", "center cut out", "center cut out", @@ -3635,7 +3635,7 @@ const tI18nPhrase Phrases[] = { "dostøedu oøíznout", }, { "Setup.DVB$Video format", - "Video Format", + "Videoformat", "Video format", "Formato video", "Videoformaat", @@ -3657,7 +3657,7 @@ const tI18nPhrase Phrases[] = { "Formát videa", }, { "Setup.DVB$Use Dolby Digital", - "Dolby Digital Ton benutzen", + "Dolby-Digital-Ton benutzen", "Uporabljaj Dolby Digital", "",//TODO "Dolby Digital gebruiken", @@ -3724,24 +3724,24 @@ const tI18nPhrase Phrases[] = { }, { "PIDs only", "nur PIDs", + "samo PIDe", "",// TODO "",// TODO "",// TODO + "PIDs uniquement", "",// TODO + "vain PID:it", + "Tylko PID-y", "",// TODO "",// TODO + "bara PIDs", + "Numai PID-uri", "",// TODO "",// TODO + "ÂÞÛìÚÞ PIDë", "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO + "ainult PID-id", + "kun PIDs", "",// TODO }, { "names and PIDs", @@ -3811,7 +3811,7 @@ const tI18nPhrase Phrases[] = { "pøidat nové transpondéry", }, { "Setup.DVB$Audio languages", // note the plural - "Audio Sprachen", + "Audio-Sprachen", "Jeziki za zvok", "",//TODO "Audio talen", @@ -3833,7 +3833,7 @@ const tI18nPhrase Phrases[] = { "Jazyky zvuku", }, { "Setup.DVB$Audio language", // note the singular - "Audio Sprache", + "Audio-Sprache", "Jezik za zvok", "",//TODO "Audio taal", @@ -3943,7 +3943,7 @@ const tI18nPhrase Phrases[] = { "Pou¾ívat DiSEqC", }, { "Setup.CICAM$CICAM DVB", - "CICAM DVB", + "CICAM-DVB", "CICAM DVB", "CICAM DVB", "CICAM DVB", @@ -3965,7 +3965,7 @@ const tI18nPhrase Phrases[] = { "CICAM DVB", }, { "Setup.Recording$Margin at start (min)", - "Zeitpuffer bei Anfang (min)", + "Vorlauf zum Timer-Beginn (min)", "Premik zaèetka snemanja (min)", "Margine iniziale (min)", "Tijd marge begin (min)", @@ -3987,7 +3987,7 @@ const tI18nPhrase Phrases[] = { "Nahrávat pøed zaèátkem (min)", }, { "Setup.Recording$Margin at stop (min)", - "Zeitpuffer bei Ende (min)", + "Nachlauf am Timer-Ende (min)", "Zamik konca snemanja (min)", "Margine finale (min)", "Tijd marge eind (min)", @@ -4031,7 +4031,7 @@ const tI18nPhrase Phrases[] = { "Primární limit", }, { "Setup.Recording$Default priority", - "Default Priorität", + "Default-Priorität", "Privzeta prioriteta", "Priorita' predefinita", "Standaard prioriteit", @@ -4053,7 +4053,7 @@ const tI18nPhrase Phrases[] = { "Výchozí priorita", }, { "Setup.Recording$Default lifetime (d)", - "Default Lebensdauer (d)", + "Default-Lebensdauer (d)", "Privzeti ¾ivljenski èas (d)", "Durata predefinita (gg)", "Standaard levensduur (d)", @@ -4075,7 +4075,7 @@ const tI18nPhrase Phrases[] = { "Výchozí ¾ivotnost", }, { "Setup.Recording$Pause priority", - "Pause Priorität", + "Pause-Priorität", "Prioriteta pavze", "Priorita' di pausa", "Pauze prioriteit", @@ -4097,7 +4097,7 @@ const tI18nPhrase Phrases[] = { "Priorita pøeru¹ení", }, { "Setup.Recording$Pause lifetime (d)", - "Pause Lebensdauer (d)", + "Pause-Lebensdauer (d)", "Èas pavze (d)", "Durata pausa (gg)", "Pauze levensduur (d)", @@ -4163,7 +4163,7 @@ const tI18nPhrase Phrases[] = { "Pou¾ívat VPS", }, { "Setup.Recording$VPS margin (s)", - "Zeitpuffer bei VPS (s)", + "Zeitvorlauf bei VPS (s)", "Èasovna rezerva pri VPS (s)", "Margine VPS", "Marge VPS (s)", @@ -4251,7 +4251,7 @@ const tI18nPhrase Phrases[] = { "Délka okam¾itého nahrávání (min)", }, { "Setup.Recording$Max. video file size (MB)", - "Max. Video Dateigröße (MB)", + "Max. Videodateigröße (MB)", "Najveèja velikost datoteke (MB)", "Dimensione massima file video (MB)", "Maximale omvang video file (MB)", @@ -4295,7 +4295,7 @@ const tI18nPhrase Phrases[] = { "Dìlit editované soubory", }, { "Setup.Replay$Multi speed mode", - "MultiSpeed Modus", + "Mehrstufiger Vor-/Rücklauf", "Re¾im z veè hitrostmi", "Modalita' multispeed", "Multi-speed mode", @@ -4339,7 +4339,7 @@ const tI18nPhrase Phrases[] = { "Zobrazit re¾im pøehrávání", }, { "Setup.Replay$Resume ID", - "Wiedergabe ID", + "Wiedergabe-ID", "ID za predvajanje", "ID Ripresa", "Hervattings ID", @@ -4361,7 +4361,7 @@ const tI18nPhrase Phrases[] = { "ID obnovení", }, { "Setup.Miscellaneous$Min. event timeout (min)", - "Mindest Event Pause (min)", + "Brückenzeit zwischen Timern (min)", "Najmanj¹i èas dogodka (min)", "Spegnimento: controllo prossimo evento (m)", "Minimale event time-out (min)", @@ -4383,7 +4383,7 @@ const tI18nPhrase Phrases[] = { "Min. pauza mezi událostmi (min)", }, { "Setup.Miscellaneous$Min. user inactivity (min)", - "Mindest Benutzer-Inaktivität (min)", + "VDR ausschalten bei Inaktivität (min)", "Najmanj¹i èas neaktivnosti (min)", "Spegnimento: tempo minimo di inattività (m)", "Minimum gebruikers inactiviteit (min)", @@ -4405,7 +4405,7 @@ const tI18nPhrase Phrases[] = { "Èasový limit neaktivnosti (min)", }, { "Setup.Miscellaneous$SVDRP timeout (s)", - "SVDRP Timeout (s)", + "SVDRP trennen bei Inaktivität (s)", "SVDRP èas neaktivnosti (s)", "Timeout SVDRP (s)", "SVDRP Timeout (s)", @@ -4427,7 +4427,7 @@ const tI18nPhrase Phrases[] = { "Èasový limit SVDRP (s)", }, { "Setup.Miscellaneous$Zap timeout (s)", - "Zap Timeout (s)", + "Mindestzeit für Kanalhistorie (s)", "Èas ugla¹evanja (s)", "Timeout Zapping", "Zap timeout (s)", @@ -4450,68 +4450,68 @@ const tI18nPhrase Phrases[] = { }, { "Setup.Miscellaneous$Initial channel", "Kanal beim Einschalten", + "Privzeti kanal", "",// TODO "",// TODO "",// TODO - "",// TODO - "",// TODO + "Chaîne initiale", "",// TODO "Kanava käynnistettäessä", + "Pocz±tkowy kana³", "",// TODO "",// TODO + "Kanal vid uppstart", + "Canalul de pornire", "",// TODO "",// TODO + "ºÐÝÐÛ ßàØ ÒÚÛîçÕÝØØ", "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO + "Kanal käivitamisel", "Kanal ved opstart", "",// TODO }, { "Setup.Miscellaneous$Initial volume", "Lautstärke beim Einschalten", + "Privzeta glasnost", "",// TODO "",// TODO "",// TODO - "",// TODO - "",// TODO + "Volume initial", "",// TODO "Äänenvoimakkuus käynnistettäessä", + "Pocz±tkowa g³o¶no¶æ", "",// TODO "",// TODO + "Ljudstyrka vid uppstart", + "Volumul la pornire", "",// TODO "",// TODO + "³àÞÜÚÞáâì ßàØ ÒÚÛîçÕÝØØ", "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO + "Helitugevus käivitamisel", "Lydstyrke ved opstart", "",// TODO }, { "Setup.Miscellaneous$as before", "wie vorher", + "kot prej", "",// TODO "",// TODO "",// TODO - "",// TODO - "",// TODO + "comme avant", "",// TODO "edellinen", + "jak ostatnio", "",// TODO "",// TODO + "som förut", + "ca mai înainte", "",// TODO "",// TODO + "ÚÐÚ àÐÝìèÕ", "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "som før", + "nagu enne", + "som før", "",// TODO }, // The days of the week: @@ -4585,18 +4585,18 @@ const tI18nPhrase Phrases[] = { // The character maps for entering letters via the numeric keys: { " 0\t-.#~,/_@1\tabc2\tdef3\tghi4\tjkl5\tmno6\tpqrs7\ttuv8\twxyz9", " 0\t-.#~,/_@1\tabcä2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuvü8\twxyz9", + " 0\t-.#~,/_@1\tabcè2\tdef3\tghi4\tjkl5\tmno6\tpqrs¹7\ttuv8\twxyz¾9", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + " 0\t-.#~,/_@1\tabcàâç2\tdeféèê3\tghiîï4\tjkl5\tmnoô6\tpqrs7\ttuvù8\twxyz9", "",//TODO " 0\t-.#~,/_@1\tabcäå2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuv8\twxyz9", " 0\t-.#~,/_@1\tabc2±æ\tdef3ê\tghi4\tjkl5³\tmno6ñó\tpqrs7¶\ttuv8\twxyz9¼¿", " 0\t-.#~,/_@1\tabcáç2\tdefé3\tghií4\tjkl5\tmnoñó6\tpqrs7\ttuvú8\twxyz9", "",//TODO - "",//TODO - "",//TODO + " 0\t-.#~,/_@1\tabcåä2\tdef3\tghi4\tjkl5\tmnoö6\tpqrs7\ttuv8\twxyz", + " 0\t-.#~,/_@1\taãâbc2\tdef3\tghiî4\tjkl5\tmno6\tpqrsº7\ttþuv8\twxyz9", "",//TODO "",//TODO "",//TODO @@ -4607,7 +4607,7 @@ const tI18nPhrase Phrases[] = { }, // Learning keys: { "Learning Remote Control Keys", - "Fernbedienungs-Codes lernen", + "Fernbedienung anlernen", "Uèenje kod upravljalca", "Apprendimento tasti unita` remota", "Leren toetsen afstandsbediening", @@ -4629,7 +4629,7 @@ const tI18nPhrase Phrases[] = { "Uèení kódù dálkového ovládání", }, { "Phase 1: Detecting RC code type", - "Phase 1: FB Code feststellen", + "Phase 1: System der Fernbedienung ermitteln", "Faza 1: Sprejemanje IR kode", "Fase 1: tipo ricevitore RC", "Fase 1: detecteren type afstandsbediening", @@ -4651,7 +4651,7 @@ const tI18nPhrase Phrases[] = { "Fáze 1: Detekce typu kódu", }, { "Press any key on the RC unit", - "Eine Taste auf der FB drücken", + "Eine Taste auf der Fernbedienung drücken", "Pritisnite tipko na upravljalcu", "Premere un tasto dell'unita` RC", "Druk op een willekeurige knop", @@ -4673,7 +4673,7 @@ const tI18nPhrase Phrases[] = { "Stisknìte libovolnou klávesu ovládání", }, { "RC code detected!", - "FB Code erkannt!", + "System der Fernbedienung erkannt!", "IR koda sprejeta!", "Codice RC rilevato!", "Afstandsbediening code herkend!", @@ -4717,7 +4717,7 @@ const tI18nPhrase Phrases[] = { "Nemaèkejte ¾ádné klávesy...", }, { "Phase 2: Learning specific key codes", - "Phase 2: Einzelne Tastencodes lernen", + "Phase 2: Tastenbelegung anlernen", "Faza 2: Uèenje posebnih kod", "Fase 2: Codici specifici dei tasti", "Fase 2: Leren specifieke toets-codes", @@ -4805,7 +4805,7 @@ const tI18nPhrase Phrases[] = { "Stisknìte 'Dolù' pro pokraèování", }, { "(press 'Up' to go back)", - "('Auf' drücken um zurückzugehen)", + "('Auf' drücken, um zurückzugehen)", "(pritisnite 'Gor' za nazaj)", "(premere 'Su' per tornare indietro)", "(druk 'Omhoog' om terug te gaan)", @@ -4871,7 +4871,7 @@ const tI18nPhrase Phrases[] = { "(stisknìte 'Menu' pro pøeskoèení definice klávesy)", }, { "Phase 3: Saving key codes", - "Phase 3: Codes abspeichern", + "Phase 3: Tastenbelegung abspeichern", "Faza 3: Shranjevanje kod tipk", "Fase 3: Salvataggio codici tasti", "Fase 3: Opslaan toets codes", @@ -5224,7 +5224,7 @@ const tI18nPhrase Phrases[] = { "Pøeru¹it", }, { "Key$Stop", - "Stop", + "Stopp", "Ustavi", "Stop", "Stop", @@ -5313,46 +5313,46 @@ const tI18nPhrase Phrases[] = { }, { "Key$Next", "Vorwärts", + "Naprej", "",// TODO "",// TODO "",// TODO + "Suivant", "",// TODO + "Seuraava", + "Dalej", "",// TODO "",// TODO + "Nästa", + "Urmãtor", "",// TODO "",// TODO + "²ßÕàÕÔ", "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO + "Järgmine", + "Fremad", "",// TODO }, { "Key$Prev", "Zurück", + "Nazaj", "",// TODO "",// TODO "",// TODO + "Précédent", "",// TODO + "Edellinen", + "Wstecz", "",// TODO "",// TODO + "Bakåt", + "Anterior", "",// TODO "",// TODO + "½Ð×ÐÔ", "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO + "Eelmine", + "Tilbage", "",// TODO }, { "Key$Power", @@ -5361,7 +5361,7 @@ const tI18nPhrase Phrases[] = { "Power", "Uitschakelen", "Ligar", - "Veille", // This one caused some bug reports ;) + "Arrêt", "Power", "Virtakytkin", "Wy³±cz", @@ -5423,24 +5423,24 @@ const tI18nPhrase Phrases[] = { }, { "Key$PrevChannel", "Vorheriger Kanal", + "Prej¹nji kanal", "",// TODO "",// TODO "",// TODO + "Chaîne précédente", "",// TODO + "Edellinen kanava", + "Poprzedni kana³", "",// TODO "",// TODO + "Förra kanalen", + "Canal anterior", "",// TODO "",// TODO + "¿àÕÔëÔãéØÙ ÚÐÝÐÛ", "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO - "",// TODO + "Eelmine kanal", + "Foregående kanal", "",// TODO }, { "Key$Volume+", @@ -5952,18 +5952,18 @@ const tI18nPhrase Phrases[] = { }, { "Recording started", "Aufzeichnung gestartet", + "Snemanje se je prièelo", "",//TODO "",//TODO "",//TODO - "",//TODO - "",//TODO + "Enregistrement a commencé", "",//TODO "Tallennus aloitettu", "Rozpoczêto nagrywanie", "Iniciando grabación", "",//TODO - "",//TODO - "",//TODO + "Inspelningen har startat", + "A început înregistrarea", "",//TODO "",//TODO "·ÐßØáì ÝÐçÐâÐ", @@ -5995,7 +5995,7 @@ const tI18nPhrase Phrases[] = { "Pøeru¹uje se bì¾ící program ...", }, { "Starting EPG scan", - "Beginne mit EPG-Scan", + "Aktualisiere EPG-Daten", "Prièenjam EPG-scan", "",// TODO "Bezig met starten EPG scan", @@ -6017,8 +6017,8 @@ const tI18nPhrase Phrases[] = { "Zaèíná prohledávání EPG", }, { "This plugin has no setup parameters!", - "Dieses Plugin hat keine Setup-Parameter!", - "Ta plugin nima nastavitvenih parametrov!", + "Dieses Plugin hat keine Parameter!", + "Ta vstavek nima nastavitvenih parametrov!", "Questo plugin non ha parametri di setup!", "Deze plugin heeft geen instelparameters", "",// TODO @@ -6061,7 +6061,7 @@ const tI18nPhrase Phrases[] = { "Klasické VDR", }, { "ST:TNG Panels", - "ST:TNG Konsolen", + "ST:TNG-Konsolen", "ST:TNG Konsola", "Consolles ST:TNG", "ST:TNG Consoles", @@ -6072,7 +6072,7 @@ const tI18nPhrase Phrases[] = { "Panel ST:TNG", "Paneles ST:TNG", "ÌïñöÝò ST:TNG", - "ST:TNG konsoll", + "ST:TNG konsol", "Cons. ST:TNG", "",// TODO "",// TODO diff --git a/menuitems.c b/menuitems.c index e756e8d..ef7cccc 100644 --- a/menuitems.c +++ b/menuitems.c @@ -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') @@ -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: diff --git a/recording.c b/recording.c index fabf569..351713e 100644 --- a/recording.c +++ b/recording.c @@ -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 @@ -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 @@ -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,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 @@ -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"); |