20 Commits

Author SHA1 Message Date
Klaus Schmidinger
c848ab793a Version 1.7.1
- Adapted the tuning code to the new DVBFE_SET_DELSYS API (thanks to Reinhard Nissl).
  VDR now uses the driver from http://jusst.de/hg/multiproto_plus.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Removed obsolete $(NCURSESLIB) from the Makefile.
- Implemented handling the standard component descriptor for AC3 (stream=4), as it
  will soon be used by the German ARD channels (thanks to Michael Pennewiß for
  advance information about this change). The previously used "Premiere pseudo
  standard" (stream=2, type=5) still works, but has apparently been wrongfully used
  by broadcasters from the beginning.
- Added missing description of the 'S' channel parameter to vdr.5 (reported by
  Reinhard Nissl).
- The SVDRP signon message now indicates the character encoding in use, as in
  "220 video SVDRP VideoDiskRecorder 1.7.1; Fri May  2 16:17:10 2008; ISO-8859-1".
  This may be useful for instance for external tools that provide EPG data, so that
  they can correctly encode the strings.
- No longer calling FcFini() to avoid problems with older (broken) versions of
  fontconfig (suggested by Edgar Toernig).
- Removed the compile time option VFAT to allow users of precompiled binary
  distributions to have full control over whether or not to use the --vfat option
  at runtime (suggested by Michael Nork).
- First step towards switching to TS (Transport Stream) as recording format:
  + The new function cDevice::PlayTs() is used to play TS packets.
  + The new functions cDevice::PlayTsVideo() and cDevice::PlayTsAudio()
    are used to play video and audio TS packets, respectively.
  + The new function cAudio::PlayTs() is used to play audio TS packets.
  + The new class cPatPmtGenerator is used to generate a PAT/PMT pair that precedes
    the TS data in Transfer Mode.
  + The new class cPatPmtParser is used by cDevice to parse the PAT/PMT data in a
    TS in order to find out which streams it contains.
  + The new class cTsToPes is used to convert TS packets to a PES packet.
  + cTransfer no longer uses cRemux, and doesn't run a separate thread any more.
    It just generates a PAT/PMT and sends all received TS packets to the primary
    device's PlayTs().
  + Live subtitle display no longer uses a ring buffer and separate thread.
  + cPesAssembler has been removed. Old VDR recordings only contain complete PES
    packets.
  + Since a TS needs to have a PAT/PMT, which requires the video stream type to
    be explicitly given, the format of the VPID field in the channels.conf file
    and the SVDRP commands NEWC/MODC/LSTC has been extended. The video stream type
    now follows the VPID and optional PPID, separated by an '=' sign.
- Updated the sources.conf file (thanks to Oleg Roitburd).
- Fixed a possible integer overflow in GetAbsTime() (thanks to Alexander Rieger).
- Fixed a problem with calling isyslog() from within the SignalHandler() (thanks
  to Udo Richter).
- Replaced the Finnish language code "smi" with "suo" (thanks to Rolf Ahrenberg).
- Fixed wrong value for TableIdBAT in libsi/si.h (thanks to Winfried Köhler).
- Errors in config files no longer keep VDR from starting.
- Removed unneeded include files <linux/dvb/dmx.h> und <time.h> from remux.h
  (reported by Tobias Grimm).
2008-09-06 18:00:00 +02:00
Klaus Schmidinger
771986b89f Version 1.7.0
- Re-implemented handling of DVB-S2, which first appeared in version 1.5.14, but was
  revoked in version 1.5.15 in favor of making a stable version 1.6.0. VDR now
  requires the "multiproto" DVB driver, e.g. from http://jusst.de/hg/multiproto.
  Note that the channels.conf file now supports additional parameters, so you may
  want to make sure you have a backup of this file in case you need to go back to
  the previous version of VDR!
- Fixed displaying transponder data when it is modified (thanks to Reinhard Nissl).
- Fixed handling the counter in detection of pre 1.3.19 PS data (thanks to Reinhard
  Nissl).
- Improved logging system time changes to avoid problems on slow systems under
  heavy load (suggested by Helmut Auer).
- Now setting the thread name, so that it can be seen in 'top -H' (thanks to Rolf
  Ahrenberg).
- Fixed initializing the timer's flags in the cTimer copy constructor (thanks to
  Andreas Mair).
- Fixed setting the OSD level in the 'osddemo' example (thanks to Wolfgang Rohdewald).
- Increased the time between checking the CAM status to 500ms to avoid problems
  with some CAMs (reported by Arthur Konovalov).
2008-04-13 18:00:00 +02:00
Klaus Schmidinger
fa56503b9a Version 1.6.0
- Updated the Croatian language texts (thanks to Adrian Caval).
- Added Chinese language texts (thanks to Nan Feng).
- Updated the Portuguese language texts.
- Added a note about VDR_CHARSET_OVERRIDE to the INSTALL file.
2008-03-23 18:00:00 +01:00
Klaus Schmidinger
0872cba0a1 Version 1.5.17
- Updated the Swedish OSD texts (thanks to Tomas Berglund).
- Made the 'pic2mpg' script of the 'pictures' plugin work with uppercase filename
  extensions and relative paths (thanks to Stefan Wagner for reporting this one).
- Updated the Romanian OSD texts (thanks to Lucian Muresan).
- Updated the Dutch OSD texts (thanks to Johan Schuring).
- Stripping control codes 0x86 and 0x87 from SI strings.
- Updated French language texts (thanks to Jean-Claude Repetto).
- Fixed handling 3 and 4 byte UTF-8 symbols in Utf8CharGet() (thanks to Andreas
  Mair).
- Fixed a crash in cFreetypeFont::DrawText() if an unknown symbol is encountered
  (thanks to Tobias Grimm). Unknown symbols are replaced with a '?'.
- Updated the Slovenian OSD texts (thanks to Matjaz Thaler).
- Updated the Czech OSD texts (thanks to Vladimír Bárta and Jiri Dobry).
- Updated the Turkish OSD texts (thanks to Oktay Yolgeçen).
- The 'plugins' target in the Makefile now returns an error exit code if one of the
  plugins failed to compile (suggested by Tobias Grimm).
- Rendering the non-breaking space symbol as a blank (thanks to Tobias Grimm).
- Changed the default character set for SI data from ISO6937 (as required by the DVB
  standard ETSI EN 300 468) to ISO-8859-9, in order to work around the stupidity of
  some providers, who actually use ISO-8859-9, but fail to correctly announce that.
2008-03-02 18:00:00 +01:00
Klaus Schmidinger
9279cb21cd Version 1.5.15
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Added option -i to the pictures plugin's pic2mpg to ignore unknown file types.
- Revoked the switch to the "multiproto" driver in order to make a new stable
  version before making this big switch and forcing all users to install a
  driver that is not yet in the kernel source. The removed code will reappear
  in version 1.7.0.
  Note that you may need to switch back to an older version of your channels.conf
  file if you have already used version 1.5.14, because it introduced new parameters.
- Added the new command line option --userdump to enable core dumps in case VDR
  is run as root with option -u (thanks to Hans-Werner Hilse).
- Speeded up anti-aliased font rendering by caching the blend indexes (based on
  a suggestion by Martin Wache).
- Fixed setting the OSD area in the pictures plugin.
- Ignoring "repeat" and "release" keys in the time search entry mode during replay,
  to avoid inadvertently leaving it in case a key is pressed too long (suggested
  by Andreas Brugger).
- Improved sending all frames to devices that can handle them in fast forward
  trick speeds, including subtitles (thanks to Timo Eskola).
- The section handler is now stopped before the device is destroyed, to avoid
  accessing file handles after they have become invalid (thanks to Reinhard
  Nissl for reporting an invalid access when ending VDR, and to Deti Fliegl for
  a patch that was used to implement StopSectionHandler()).
- Fixed setting the date in the channel display of the classic and sttng skins,
  to avoid unnecessary OSD access (thanks to Marco Schlüßler).
- The free disk space is now also displayed in the title of the "Recordings"
  menu (suggested by Walter Koch).
- Changed the message "Upcoming VPS recording!" to "Upcoming recording!" because
  it applies to non-VPS recordings as well.
- Fixed a loss of a timer's 'recording' flag after modifying it via MODT.
- Fixed detecting directories in cFileNameList::Load().
- Running the thread that removes deleted recordings at a low priority to (maybe)
  avoid stuttering replay in case the thread is run during replay.
- Limiting the length of the recording name in timers in case VDR is run with
  --vfat, in order to avoid names that are too long for Windows (suggested by Rolf
  Ahrenberg).
- Using cString::sprintf() instead of asprintf() (thanks to Wolfgang Rohdewald
  for pointing out a possible problem if the return value is not checked).
  Plugin authors may want to consider doing the same. For convenience there is now
  an additional version of cString::sprintf() that accepts a va_list parameter.
- When deleting the recording that is currently replayed, the replay is now
  stopped immediately (thanks to Mikko Matilainen for reporting a possible crash
  if the Info key is pressed after deleting the currently replayed recording).
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- When determining the amount of free disk space, any deleted (but not yet removed)
  recordings on different file systems (that are mounted under the video directory)
  are no longer taken into account.
- When running out of disk space during a recording, only such deleted or old
  recordings are removed, that actually are on the video directory file system(s).
  This prevents VDR from accidentally deleting recordings on other file systems,
  which would not add any free space to the video directory.
- Implemented the cStatus, cDevice and cPlayer functions for setting subtitle tracks
  in plugins (thanks to Petri Hintukainen).
- Added cStatus::TimerChange() to inform plugins about changes to the list of timers
  (based on a patch from Benedikt Elser).
- Added new cStatus functions to the 'status' plugin.
- Added missing #include <limits.h> to epg.c and menuitems.h (thanks to Ville Skyttä).
- The new function cSkin::SetScrollbar() can be implemented by skins to display
  a scrollbar in every list menu. The 'classic' and 'sttng' skins have been
  changed accordingly, as well as the 'skincurses' plugin.
- Introduced 'operator const void * ()' in cString to catch cases where operator*()
  should be used.
- Fixed calculating the scrollbar sizes in the skins.
2008-02-17 18:00:00 +01:00
Klaus Schmidinger
fc4c8740a7 Version 1.5.13
- Fixed the declaration of cSubtitleObject::Decode8BppCodeString() (thanks to
  Gregoire Favre).
- The new setup option "Miscellaneous/Emergency exit" can be used to turn off
  the automatic restart of VDR in case a recording fails for some reason.
- The kInfo key is now propagated to any open menu, so that it can react to it
  in a context sensitive manner (suggested by Andreas Brugger). If there is
  no menu open it will show the info of the current broadcast or replay.
- cTimeMs now uses the monotonic clock, if available (thanks to Petri Hintukainen).
- Fixed cVector::Clear() and cStringList::Clear().
- Added cString::Truncate().
- Fixed the "i18n:" target in the "newplugin" script, so that it can create the
  initial *.pot file.
- Fixed handling the '-l' option.
- Fixed error handling in cCuttingThread::Action() (thanks to Udo Richter).
- Fixed a loss of the date display in the "classic" skin's main menu (reported by
  Andreas Brugger).
- Added a missing setting of lastFreeMB in cMenuMain::Update() (reported by
  Andreas Brugger).
- Added '-Wno-parentheses' to the compiler options in order to avoid silly compiler
  warnings for expressions like 'a || b && c', where GCC 4.3 wants to force the
  programmer to write 'a || (b && c)', while everybody knows that '&&' links
  stronger than '||' (reported by Tobias Grimm).
- Updated the Hungarian language texts (thanks to István Füley).
- Fixed displaying weekday names in the Schedule menu if the system uses UTF-8
  (reported by Jiri Dobry).
- The new plugin "pictures" implements a simple picture viewer.
  See PLUGINS/src/pictures/README for details.
- The automatic shutdown is now suppressed if the remote control is currently
  disabled (suggested by Helmut Auer, implemented by Udo Richter).
- Added a section about "Logging" to PLUGINS.html (suggested by Torsten Kunkel).
- Enhanced the SVDRP command CLRE to allow clearing the EPG data of a particular
  channel (thanks to Benjamin Hess).
2008-01-13 18:00:00 +01:00
Klaus Schmidinger
182cd78af0 Version 1.5.11
- Fixed checking compatibility mode for old subtitles plugin (thanks to Marco
  Schlüßler).
- Updated the French OSD texts (thanks to Michael Nival).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- The "Play" key now starts replay of the selected recording in the Recordings
  menu (thanks to Ville Skyttä);
- Improved shutdown handling (thanks to Udo Richter).
- Housekeeping now waits for a while after a replay has ended (thanks to Udo Richter).
- Added more special characters to the list of allowed characters when entering
  strings (thanks to Thomas Günther).
- Added Ukrainian language texts (thanks to Yarema Aka Knedlyk).
- Added a workaround for recovering from wrongfully interpreted "pre 1.3.19 PS1 packets".
- Fixed a possible blocking in replay when subtitles are active.
- Fixed displaying subtitles in live mode.
- Fixed handling CONFDIR (thanks to Rolf Ahrenberg).
- Added some missing 'const' keywords (thanks to Sascha Volkenandt).
- The 'Allowed' parameter in cMenuEditStrItem() is now NULL by default, which results
  in using tr(FileNameChars) (suggested by Thomas Günther).
- Added a missing '.' to the date returned by DayDateTime() (thanks to Lauri Nurmi).
- Improved the 'i18n' target in the Makefile to avoid unnecessary work (thanks to
  Stefan Huelswitt). The 'newplugin' and 'i18n-to-gettext.pl' scripts have been
  changed accordingly. Plugin authors may want to adjust the 'i18n' target
  of their Makefiles.
- Fixed a crash if no fonts are found (thanks to Mario Ivankovits and Clemens
  Kirchgatterer).
- Fixed decoding filename characters in case there are not two hex digits after
  the '#' (reported by Helmut Auer).
2007-11-04 18:00:00 +01:00
Klaus Schmidinger
dbf38b7c68 Version 1.5.10
- Implemented handling DVB subtitles (thanks to Marco Schlüßler, and also to
  Pekka Virtanen for writing the subtitle plugin, which helped in implementing
  subtitle handling in VDR).
- The new remote control key "Subtitles" can be used to bring up the list
  of available subtitles.
- The new setup option "DVB/Subtitle languages" can be used to define the
  preferred languages for subtitles.
- Fixed selecting the audio track when pressing Ok in the Audio menu (thanks
  to Marco Schlüßler).
- Implemented display of DVB subtitles in live viewing mode.
- Implemented subtitle track selection.
- Implemented bitmap color reduction and shrinking to display subtitles even
  on devices that can't display the necessary number of colors.
- Added compatibility mode for playback of recordings made with the subtitles
  plugin (with some help from Rolf Ahrenberg).
- The new setup option "DVB/Subtitle offset" can be used to shift the location
  of the subtitles in the vertical direction.
- The new setup options "DVB/Subtitle foreground/background transparency"
  define an additional level of transparency for the foreground and background
  color of subtitles.
- Existing recordings made with the subtitle plugin can be given an 'X' record
  in their info.vdr file, so that subtitles can be automatically selected upon
  replay, according to the preferred language setup, as in
  X 3 03 ger deutsch
  (see vdr.5). Note that these entries need to be added in the proper sequence,
  so that they correspond with the actual track languages in the recording.
- Now generating translation files without line numbers to avoid unnecessarily
  large diffs. Plugin authors may want to replace the -F option with
  --no-location in the xgettext and msgmerge calls in their Makefiles.
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Added a missing Channels.SetModified(true) call when deleting or moving a
  channel in the Channels menu (reported by Halim Sahin).
- Fixed a missing '-' at the next to last line of SVDRP help texts (reported by
  Denis Knauf).
- Added a missing SetVolumeDevice() call in cDevice::SetPrimaryDevice() (reported
  by Reinhard Nissl).
- Fixed a crash when pressing Left while at the first character of a cMenuEditStrItem
  (thanks to Christian Wieninger).
- Only creating a new cDvbOsdProvider in cDvbDevice::MakePrimaryDevice() if 'On'
  is true (i.e. this device is being made the primary device).
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed handling reallocated memory in cCharSetConv::Convert() (reported by Udo
  Richter).
- Fixed a new[]/delete mismatch in cMenuEditStrItem::LeaveEditMode() (thanks to
  Udo Richter).
- Implemented sending all frames to devices that can handle them in fast forward
  trick speeds (thanks to Timo Eskola).
- Updated the Hungarian language texts (thanks to Thomas Günther).
- Fixed description of DeviceSetAvailableTrack() and cReceiver(), and added an
  example ~cMyReceiver() in PLUGINS.html (thanks to Marco Schlüßler).
- Improved the description of where logging goes in the INSTALL file (thanks to
  Elias Luttinen).
- Added a note about how to initiate internationalization support to the
  README.i18n file. The Makefile generated by the 'newplugin' script now has the
  'i18n' target automatically create an initial 'po/pluginname.pot' file.
  Plugin authors may want to add the '$(I18Npot)' dependency to the 'i18n'
  target in their Makefiles, as in
  i18n: $(I18Npot) $(I18Nmo)
  (based on a suggestion by Torsten Kunkel).
- Removed a duplicate ',' from the ca_ES.po file (thanks to Thomas Günther).
- Added the 'ß' character to the "allowed characters" in the de_DE.po file
  (suggested by Thomas Günther).
- Made the default copy ctor of cRecording private (thanks to Markus Hahn).
  Same for the assign operator.
- Added cRecording::Undelete() (based on a patch from Markus Hahn).
- Added cDevice::CloseFilter() to allow a device to have complete control over
  both opening and closing section filters (thanks to Rolf Ahrenberg).
- Some fixes to PLUGINS.html (thanks to Rolf Ahrenberg).
2007-10-14 18:00:00 +02:00
Klaus Schmidinger
e5a2aa41c9 Version 1.5.8
- Added missing install-i18n to the install target in the Makefile (reported
  by Joachim Wilke).
- Fixed a faulty comment in Make.config.template (reported by Marco Schlüßler).
- Improved i18n-to-gettext.pl (thanks to Matthias Schwarzott).
- Moved the "all" target in plugin Makefiles before the "Implicit rules",
  so that a plain "make" will compile everything (suggested by Matthias
  Schwarzott). The "newplugin" script has been changed accordingly.
  Plugin authors may want to change their Makefiles, too.
- Added DESTDIR and PREFIX handling to the Makefile (thanks to Matthias
  Schwarzott).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Added internationalization to the "skincurses" plugin (thanks to Rolf
  Ahrenberg).
- Checking the string for NULL in I18nTranslate().
- Updated the French OSD texts (thanks to Bruno Roussel).
- Some optimizations in cDvbDevice::SetChannelDevice() (thanks to Tobias Bratfisch).
- Optimized cMenuEditChrItem::Set() (thanks to Tobias Bratfisch).
- Optimized cNitFilter::Process() (thanks to Tobias Bratfisch).
- Reduced the number of time(NULL) calls in vdr.c's main loop to a single call
  (thanks to Tobias Bratfisch).
- Changed cBitmap::DrawText() to always draw the background unless ColorBg
  is clrTransparent (thanks to Christoph Haubrich).
- The "Setup/OSD/Language" menu now only shows those languages that actually
  have a locale (suggested by Anssi Hannula).
- Now using setenv() instead of setlocale() to set the language for gettext()
  (suggested by Anssi Hannula; thanks also to Ludwig Nussel for a hint on using
  _nl_msg_cat_cntr).
- When scanning the locale directory, VDR now explicitly looks for a file named
  vdr.mo. Text files for plugins are now named "vdr-name.mo", when "name" is the
  name of the plugin. The "newplugin" script has been changed accordingly, and
  plugin authors should change their Makefiles, too.
2007-08-19 18:00:00 +02:00
Klaus Schmidinger
4c65b525dc Version 1.5.7
- All logging now goes to LOG_ERR, because some systems split error, info and
  debug messages into separate files, which repeatedly caused extra efforts to
  find out when incomplete log excerpts were attached to problem reports in
  the past.
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Fixed a problem with characters >0x7F in the modified version of skipspace()
  (thanks to Marco Schlüßler).
- Fixed a bug I introduced when simplifying the original patch for detecting
  Premiere NVOD channel links (crash reported by Malte Schröder).
- Internationalization is now done with 'gettext' (following a suggestion by
  Lucian Muresan). Plugin authors may want to use the Perl script
  'i18n-to-gettext.pl' to convert their internationalized texts to the gettext
  format (see the instructions inside that script file). The function
  cPlugin::RegisterI18n() is still present for compatibility, but doesn't
  have any more functionality. So plugins that don't convert their texts to
  the gettext format will only present English texts.
  See PLUGINS.html, section "Internationalization", for instructions on how
  to make strings in arrays translatable.
  See README.i18n for information on how to create new or maintain existing
  translations.
- The three letter language codes and their aliases are stored in i18n.c, and
  each translation file only contains one of them to link that language name
  to the code.
- The 'newplugin' script has been extended to generate the Makefile section
  for i18n support.
- The parameter OSDLanguage in 'setup.conf' is now a string and holds the locale
  code of the selected OSD language (e.g. en_US). If Setup.OSDLanguage is not
  set to a particular locale that is found in VDR's locale directory, the
  locale as defined in the system environment is used by default.
- The list of tracks given in cStatus::SetAudioTrack() is now NULL terminated,
  so that plugins can actually use all the strings in the list, not just the
  one pointed to by Index (thanks to Alexander Rieger).
- Fixed handling kLeft in the calls to cStatus::MsgOsdTextItem() (thanks to
  Alexander Rieger).
- Added the "...or (at your option) any later version" phrase to the license
  information of all plugins, and also the 'newplugin' script (suggested by
  Ville Skyttä). Plugin authors may want to consider doing the same.
- Fixed the link to the GPL2 at http://www.gnu.org in vdr.c (thanks to Ville
  Skyttä).
- cBitmap::SetXpm() now checks whether the given Xpm pointer is not NULL, to
  avoid a crash with files that only contain "/* XPM */" (suggested by Andreas
  Mair).
- Added a debug error message to cReceiver::~cReceiver() in case it is still
  attached to a device (thanks to Reinhard Nissl).
2007-08-12 18:00:00 +02:00
Klaus Schmidinger
d495ed1a3e Version 1.4.2-3
- Added --remove-destination to the 'cp' command for binaries in the Makefiles of
  the plugins (thanks to Rolf Ahrenberg).
- The 'skincurses' plugin now adjusts the size of the OSD to the size of the console
  window.
- Fixed deleting expired VPS timers (under certain conditions a timer could have been
  deleted before it even started recording).
- Updated the Hungarian language texts (thanks to Istvan Koenigsberger and Guido Josten).
- Fixed handling video directory updates in case the timestamp of the .update file
  is in the future (thanks to Petri Hintukainen).
2006-09-17 18:00:00 +02:00
Klaus Schmidinger
56e5836b54 Version 1.3.49
- Fixed initializing 'noapiv' in the Makefile (reported by Ronny Kornexl).
- Fixed extracting APIVERSION to work with older versions of 'sed' (reported by
  Oliver Endriss; thanks also to Udo Richter for a shorter version of the 'sed'
  expression).
- Fixed broken APIVERSION extraction line in 'newplugin' (thanks to Oliver Endriss).
- Fixed entering '0' in a cMenuEditIntItem (reported by Mirko Dölle).
- Updated the Italian OSD texts (thanks to Nino Gerbino).
- Added a note about adding 'INCLUDES += -I$(DVBDIR)/include' to an existing
  Make.config (problem reported by Markus Ehrnsperger).
- Fixed handling the cPluginManager::Active() result when pressing the "Power" key
  (reported by Werner Färber).
- Added a hint about commenting out the line '#define USE_FADVISE' in tools.c in
  case of problems with replaying in fast forward mode if the video directory is
  mounted via a Samba share (reported by Andy Grobb).
- Changed the "Really restart?" prompt in the call to cPluginManager::Active() in
  menu.c to "restart anyway?" (suggested by Rolf Ahrenberg).
- Removed the obsolete "'1' for encrypted radio channels" part from the description
  of the VPID in vdr.5 (reported by Alexander Hans).
- Fixed tuning to the channel of a VPS timer if the device is the actual device.
2006-04-28 18:00:00 +02:00
Klaus Schmidinger
880c3ddb94 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ä).
2006-04-23 18:00:00 +02:00
Klaus Schmidinger
293ed4027e Version 1.3.47
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed a crash when setting the time transponder in the Setup menu, caused by the
  new 'noneString' in cMenuEditChanItem (reported by Thomas Günther).
- Added NULL checks to some strdup() calls in menuitems.c (suggested by Darren
  Salt).
- Removed the unnecessary 'value' member from cMenuEditItem.
- Fixed the initial setting of the time transponder setup parameter (reported
  by Thomas Günther).
- Fixed unnecessary Set() calls in cMenuEditIntItem::ProcessKey().
- Allowing a tolerance for symbol rate values that are off by one (thanks to
  Richard Lithvall).
- Added VBITeletextDescriptorTag, TeletextDescriptorTag, LocalTimeOffsetDescriptorTag
  and PremiereContentTransmissionDescriptor to 'libsi' (thanks to Marco Schlüßler).
- Using geteuid() to check whether VDR is running as user 'root' (suggested by
  Tobias Grimm).
- Added a missing "Key$" in skincurses.c (reported by Darren Salt).
- Reintroduced the log message "deleting plugin: ..." when shutting down VDR (upon
  request by Ville Skyttä, as in the initial patch from Christoph Haubrich).
- Fixed the vdr.1 man page (a single DVB card can record and do live tv).
- The preferred audio language is now automatically selected when starting replay.
- 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 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
  files as VDR itself, the definition of DVBDIR has been removed from the VDR
  Makefile. If you are using a driver version that has its header files at a location
  other than /usr/include/linux/dvb, you can define DVBDIR in the Make.config
  file (see also INSTALL). Note that if you already have a Make.config file of your
  own, you should add the lines

  ifdef DVBDIR
  INCLUDES += -I$(DVBDIR)/include
  endif

  to its end, as in the new Make.config.template.
  Any reference to DVBDIR should be removed from all plugins' Makefiles, like this:

  ------------------------------------------------------------
  --- PLUGINS/src/hello/Makefile  2005/11/11 13:20:14     1.10
  +++ PLUGINS/src/hello/Makefile  2006/04/15 11:58:46     1.11
  @@ -20,7 +20,6 @@

   ### The directory environment:

  -DVBDIR = ../../../../DVB
   VDRDIR = ../../..
   LIBDIR = ../../lib
   TMPDIR = /tmp
  @@ -40,7 +39,7 @@

   ### Includes and Defines (add further entries here):

  -INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include
  +INCLUDES += -I$(VDRDIR)/include

   DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
  ------------------------------------------------------------

  Thanks to Marco Schlüßler for pointing out this problem.
- Implemented kNext and kPrev keys (based on a patch from Peter Juszack).
  See MANUAL for details.
- Implemented kChanPrev (from a patch from Darren Salt).
- The "Update channels" parameter in the "Setup/DVB" menu has been extended to
  allow updating only the PIDs (see MANUAL for details). When updating to this
  version of VDR, please verify that the setting is as you want it to be, because
  the values have been shifted.
- The new APIVERSION (see config.h) now allows existing compiled plugins to be
  used with newer versions of VDR, as long as there have been no changes to the
  VDR header files since the last APIVERSION. Existing plugins' Makefiles should
  have all references to VDRVERSION changed to APIVERSION, like this:

  ------------------------------------------------------------
  --- PLUGINS/src/hello/Makefile  2006/04/15 11:58:46     1.11
  +++ PLUGINS/src/hello/Makefile  2006/04/16 09:03:50     1.12
  @@ -28,9 +28,9 @@

   -include $(VDRDIR)/Make.config

  -### The version number of VDR (taken from VDR's "config.h"):
  +### The version number of VDR's plugin API (taken from VDR's "config.h"):

  -VDRVERSION = $(shell grep 'define VDRVERSION ' $(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:

  @@ -67,7 +67,7 @@

   libvdr-$(PLUGIN).so: $(OBJS)
          $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
  -       @cp $@ $(LIBDIR)/$@.$(VDRVERSION)
  +       @cp $@ $(LIBDIR)/$@.$(APIVERSION)

   dist: clean
          @-rm -rf $(TMPDIR)/$(ARCHIVE)
  ------------------------------------------------------------
- If a timer is newly created from within the "Schedule" menu, and its event is
  already running or has its start time within the next two minutes, it now goes
  directly into the "Edit timer" menu in order to allow the user to make further
  changes to timer parameters before the actual recording starts (inspired by
  Christian Wieninger's "epgsearch" plugin).
- Added format check to syslog_with_tid().
- Updated the INSTALL file's section about non-VDR files in the video directory
  (since version 1.3.38 disk access is done in a separate thread, so the watchdog
  timer won't hit).
- Changed the behaviour of the "Use small font" setup option to *always* use the small
  font if set to '2' - even if it would have been a fixed font (suggested by Ronny
  Kornexl).
- No longer using characters 0x01 and 0x02 for mapping single quote and slash in
  recording names (thanks to Patrick Fischer for reporting that this was a problem
  with XML). The single quote is not mapped at all, and the slash is interchanged
  with the tilde. Existing recordings will be handled like before, so there is
  no need to actually rename them.
- The cRemote::CallPlugin() function now has a boolean return value that tells
  the caller whether initiating the plugin call was successful (suggested by
  Reinhard Nissl). If it returns false, another plugin call is currently pending
  and the caller should try again later. This also means that the SVDRP command
  PLUG can now return an error code is the call fails.
- 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-17 18:00:00 +02:00
Klaus Schmidinger
c23992b807 Version 1.3.42
- Removed leftover 'needsBufferReserve' variable from cTransfer (thanks to Marco
  Schlüßler).
- Fixed setting "No title" for broken event data (reported by Ronny Kornexl).
- Fixed channel up/down switching on single card systems (reported by Stefan
  Huelswitt).
- Fixed handling "pending" timers that blocked others that actually could record
  (reported by Thomas Koch).
- Speeded up cVideoRepacker (thanks to Reinhard Nissl).
- Added an 'Id' parameter to cDevice::PlayAudio() to allow plugins to easier
  process the audio data (thanks to Marco Schlüßler).
- Added Czech language texts (thanks to Vladimír Bárta).
  Plugin authors may want to add the new entries to their I18N texts and contact
  the translators to have their texts translated. Note that there are now 21
  different OSD languages, so please make sure you have 21 versions for each of
  your texts.
- Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski).
- Fixed auto advance in string entry fields when pressing Up/Down in insert mode
  (reported by Udo Richter).
- Fixed handling the "Setup/OSD/Menu button closes" option when set to 'yes' in
  case a replay is active (thanks to Udo Richter).
- Improved cUnbufferedFile; USE_FADVISE is now defined in tools.c by default, so
  if you don't want to use "fadvise" you need to comment out that line (thanks to
  Artur Skawina).
- Fixed a missing ',' in the Swedish OSD texts (thanks to Arthur Konovalov).
- cDevice::Transferring() can now be used to determine whether the (primary)
  device is currently playing in Transfer Mode (based on a suggestion by
  Reinhard Nissl).
- The 'runvdr' script no longer uses the $VDRUSR environment variable to set
  the user id under which 'vdr' shall run. Just add the '-u username' option
  when you call 'runvdr'.
- Fixed multiple entries of the same subdirectory in the "Recordings" menu
  (reported by Christian Jacobsen).
- Enabled generating a core dump if VDR is run with a different user id (thanks
  to Ville Skyttä).
- Fixed handling the "Blue" key in the "Schedule" menu for the current channel
  (thanks to Rolf Ahrenberg).
- Renamed the Makefile target 'plugins-clean' to 'clean-plugins' (suggested by
  Sebastian Frei).
- Made all font and image data 'const' (thanks to Darren Salt).
- Fixed scrolling with Up/Down in case there are non-selectable items at the
  beginning or end of the menu (reported by Helmut Auer).
- Added cSkin::GetTextAreaWidth() and cSkin::GetTextAreaFont(), so that a plugin
  that wants to do special text formatting can do so (thanks to Alexander Rieger).
2006-02-05 18:00:00 +01:00
Klaus Schmidinger
8c63e0fd96 Version 1.3.37
- Added compiler options "-fPIC -g" to all plugins (thanks to Rolf Ahrenberg).
- Fixed initializing the day index when editing the weekday parameter of a
  repeating timer (thanks to Marco Schlüßler).
- No longer removing superfluous hyphens in EPG data - would become too
  language dependent to handle all kinds of exceptions.
- Modified switching to Dolby Digital audio in live mode, if the driver
  and firmware can handle live DD without the need of a Transfer Mode (thanks
  to Werner Fink). Live DD mode requires a full featured DVB card and a
  LinuxDVB driver with firmware version 0x2622 or higher. Older versions will
  use Transfer Mode just like before.
- Implemented handling of the "CA PMT Reply" for CAMs (thanks to Marco
  Schlüßler for figuring out some obscure length bytes in the CA PMT Reply
  data of AlphaCrypt CAMs).
- Some preparations for being able to record several encrypted channels from
  the same transponder at the same time (or record and view different encrypted
  channels), provided the CAM in use can handle this. This is work in progress
  and isn't actively used, yet.
- Fixed SetProgress() in the 'skincurses' plugin in case Total is 0 (reported
  by Stefan Huelswitt).
- Added a copy constructor to cString and fixed its assignment operator
  (thanks to Holger Brunn).
- The new function Skins.QueueMessage() can be called from a background thread
  to queue a message for display. See VDR/skins.h for details.
- The SVDRP command MESG uses the new message queueing facility, so MESG
  commands may now be executed at any time, and the message will be displayed
  (no more "pending message").
2005-11-27 18:00:00 +01:00
Klaus Schmidinger
b8e837dbbb Version 1.3.2
- Fixed resetting the EPG data versions after changing the preferred languages
  (thanks to Teemu Rantanen for reporting this one and helping to debug it).
- Added LinkageDescriptor handling to 'libsi' (thanks to Marcel Wiesweg).
- Added Russian language texts (thanks to Vyacheslav Dikonov).
  Plugin authors may want to add the new entries to their I18N texts and contact
  the translators to have their texts translated. Note that there are now 17
  different OSD languages, so please make sure you have 17 versions for each of
  your texts.
- Some corrections and additions to the Finnish OSD texts (thanks to Rolf
  Ahrenberg and Niko Tarnanen).
- Fixed a wrong 'delta' value in the call to the shutdown script (thanks to
  Stephan Epstein for reporting this one).
- Activated detection of radio channels (to avoid reports about "channels not
  being detected that used to be detected with the 'scan' utility or the
  original 'autopid' patch ;-).
- Channels with a zero VPID no longer write a PPID into channels.conf.
- Short channel names are now only stored if they actually differ from the
  full name.
- The EPG scan now scans newly found transponders together with already existing
  ones.
- The "Red" button in the "Setup/EPG" menu can now be used to force an EPG
  scan on a single DVB card system (see MANUAL for details).
- The new SVDRP command 'SCAN' can be used to force  an EPG scan on a single
  DVB card system (see MANUAL under Setup/EPG for details).
- Fixed handling PID changes in 'Transfer Mode'.
- Excess blanks in channel names read from the SDT are now removed.
- Fixed wrong parameter settings when scanning NITs for terrestrial transponders
  (thanks to Christian Tramnitz for pointing out this one).
- Fixed some out of bounds parameter settings when scanning NITs for cable
  and satellite transponders.
- Added 'libsi' include files to the 'include' directory, so that plugins can
  use them (thanks to Marcel Wiesweg).
- Now only processing NITs that contain the transponder they are actually
  broadcast on.
- Fixed setting the source type for newly detected terrestrial transponders
  (thanks to Christian Tramnitz for his support in debugging this).
2004-01-18 18:00:00 +01:00
Klaus Schmidinger
93a94b18b5 Version 1.3.0
- Changed thread handling to make it work with NPTL ("Native Posix Thread Library").
  Thanks to Jon Burgess, Andreas Schultz, Werner Fink and Stefan Huelswitt.
- The cThread class now accepts a 'Description' parameter, which is used to log
  the beginning and end of the thread, together with its process and thread id.
  For descriptions that need additional parameters you can use the function
  cThread::SetDescription(), which accepts 'printf()' like arguments.
  Existing plugins that use threads should be changed to use this functionality
  instead of explicit 'dsyslog()' calls inside their Action() function in order
  to support logging the thread ids.
- Added "Slovak Link" and "Czech Link" to 'ca.conf' (thanks to Emil Petersky).
  However, 'ca.conf' is now pretty much obsolete due to the automatic CA handling.
- Mutexes are now created with PTHREAD_MUTEX_ERRORCHECK_NP, which makes the
  'lockingTid' stuff obsolete (thanks to Stefan Huelswitt).
- Changed font handling to allow language specific character sets.
- Adopted the small font character set from the "Elchi" patch (originally
  provided by Alessio Sangalli).
- Greek language texts now use iso8859-7 character set (thanks to Dimitrios
  Dimitrakos).
- Rearranged section data handling, so that the actual data handling can be done
  separately, even from within plugins.
- The EPG data structures have been moved from eit.[hc] to epg.[hc] and have been
  adapted to the general VDR coding style. Plugins that use these data structures
  may need to change some function names (which should be obvious).
  The name 'subtitle' has been changed to 'shortText' to avoid clashes with actual
  subtitles that are part of a movie. The name 'extendedDescription' has been
  shortened to 'description'.
- Replaced 'libdtv' with 'libsi' (thanks to Marcel Wiesweg), which is thread
  safe and can be used by multiple section filters simultaneously.
- Added 'cRwLock' to 'thread.[hc]'. Note that all plugin Makefiles need to
  define _GNU_SOURCE for this to work (see the example plugin Makefiles and
  'newplugin').
- Fixed a problem with crc32 in SI handling on 64bit systems (thanks to Pedro
  Miguel Sequeira de Justo Teixeira for reporting this one).
- Fixed an alignment problem in CAM access on 64bit systems  (thanks to Pedro
  Miguel Sequeira de Justo Teixeira for reporting this one).
- Added 'StreamType' setting to CAM communication, which is important for
  Aston/SECA CAMs (thanks to Antonino Sergi).
- Now the CA descriptors are sent to the CAM in the 'program' or 'ES level'
  sections, depending on where they are found in the PMT (thanks to Hans-Peter
  Raschke for reporting this one). This should make SkyCrypt CAMs work.
- Now using the 'version number' of EPG events to avoid unnecessary work.
- Channel data is now automatically derived from the DVB data stream (inspired
  by the 'autopid' patch from Andreas Schultz).
- The current channel is now automatically re-tuned if the PIDs or other settings
  change. If a recording is going on on a channel that has a change in its
  settings, the recording will be stopped and immediately restarted to use the
  new channel settings.
- EPG events now use the complete channel ID with NID, TID and SID.
- Channel names in 'channels.conf' can now have a short form, as provided
  by some tv stations (see man vdr(5)). Currently channels that provide short
  names in addition to long ones are listed in the OSD as "short,long name",
  as in "RTL,RTL Television". The short names will be used explicitly later.
- The Ca parameter in 'channels.conf' has been extended and now contains all the
  CA system ids for the given channel. When switching to a channel VDR now tests
  for a device that provides one of these CA system ids. The devices automatically
  get their supported ids from the CI handler.
- The values in 'ca.conf' are currently without any real meaning. Whether or not
  a channel with conditional access can be received is now determined automatically
  by evaluating its CA descriptors and comparing them to the CA system ids
  provided by the installed CAM. Only the special values 1-16 are used to assign
  a channel to a particular device.
- Increased the maximum number of possible OSD colors to 256.
- Limited the line length in the EPG bugfix report, which appears to fix a buffer
  overflow that caused a crash when cleaning up the EPG data (at 05:00 in the
  morning).
2004-01-04 18:00:00 +01:00
Klaus Schmidinger
48fd2b04e9 Version 1.1.20
- Now checking if there is a connection to the keyboard (thanks to Jaakko Hyvätti)
  and only creating the KBD remote control if VDR is running in the foreground.
- Fixed taking an active SVDRP connection into account when doing shutdown (thanks
  to Gregoire Favre for reporting this one).
- Changed setting of CXX and CXXFLAGS variables in Makefile, so that an externally
  defined value will be taken if present (suggested by Robert Schiele).
  Plugin authors should please change the lines

  CXX      = g++
  CXXFLAGS = -O2 -Wall -Woverloaded-virtual

  in their Makefile to

  CXX      ?= g++
  CXXFLAGS ?= -O2 -Wall -Woverloaded-virtual

- Fixed recording overlapping timers on the same channel in case
  DO_REC_AND_PLAY_ON_PRIMARY_DEVICE and/or DO_MULTIPLE_RECORDINGS is not defined
  (thanks to Jaakko Hyvätti).
- No longer stopping/restarting the DMX when switching audio channels (thanks to
  Sven Goethel).
- Fixed high CPU load in 'Transfer Mode' (thanks to Oliver Endriss).
- If a PC keyboard is used as remote control, the string entry fields in the
  menus now accept character input directly (however, this works only for keys that
  are not otherwise defined as remote control keys). Also, plugins can switch the
  cKbdRemote class into "raw mode", where all keyboard input will be made available
  through the new 'kKbd' key code and none of it will be processed as normal remote
  control functions (thanks to Jan Rieger for suggestions and testing).
- Fixed deleting characters in string entry fields in 'insert' mode.
- Now using "Doxygen" to generate source documentation (thanks to Walter Stroebel
  for providing an initial 'Doxyfile' configuration and adjusting some comments).
  See INSTALL for information how to do this. Some function descriptions have
  already been adapted to Doxygen, more will follow.
2002-12-15 18:00:00 +01:00
Klaus Schmidinger
96ebdbf4b1 Version 1.1.18
- Fixed missing initialization of 'number' in cChannel (thanks to Martin Hammerschmid
  for reporting this one).
- Fixed a misplaced ')' in the fix about the stale lock files (thanks again to
  Oliver Endriss for pointing this out - it was my fault).
- Group delimiters in the 'channels.conf' file that have no text (like a simple ":"
  or ":@201") no longer show up in the Channels menu (suggested by Guy Roussin).
- Added "Tele 5" to 'channels.conf' (thanks to Georg Hitsch).
- Changed the source directory name for plugins from 'SRC' to 'src' (suggested by
  Clemens Kirchgatterer).
- Removed transponders 10788, 11739 and 12266 from 'channels.conf' (apparently they
  are no longer active).
- Deactivated some templates in tools.h in case some plugin needs to use the STL
  (suggested by Gerald Berwolf).
- Timers now accept channel IDs even if the 'source' is 0 (thanks to Stefan Huelswitt
  for reporting this one).
- Now taking an active SVDRP connection into account when doing shutdown or
  housekeeping (suggested by Emil Naepflein).
- Macros in 'keymacros.conf' can now use "@plugin" to directly access the main menu
  function of a given plugin (see man vdr(5) for details).
- The new plugin 'sky' can be used to integrate a Sky Digibox into the VDR system,
  using a Kfir MPEG2 encoder card (see PLUGINS/src/sky/README for details).
2002-12-01 18:00:00 +01:00