diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-02-03 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-02-03 18:00:00 +0100 |
commit | ef0a53af7282b14bd40f2087de28fc12a94e672b (patch) | |
tree | 8346e35a67828712f467afe6e371e54383f496ae /recording.c | |
parent | 3db2d636b2757326323418b5293ebc7307bf161d (diff) | |
download | vdr-patch-lnbsharing-ef0a53af7282b14bd40f2087de28fc12a94e672b.tar.gz vdr-patch-lnbsharing-ef0a53af7282b14bd40f2087de28fc12a94e672b.tar.bz2 |
Version 0.99pre5vdr-0.99pre5
- Updated channel settings for 'N24' (thanks to Andreas Gebel).
- Fixed handling hierarchical recordings menu in case of directories starting
with the same sequence of characters.
- Fixed handling timers on the 29th, 30th or 31st of a month in case the next
month has less than 31 days.
- Added a description of the sort order of individual episodes in the
recordings menu to the MANUAL.
- Removed the EPG bugfix for "Title / Subtitle" cleanup. Apparently Pro-7 has
finally stopped this nasty habit.
- Added some EPG bugfix statistics (printed to the log file every time the EPG
data is cleaned up and when VDR is terminated). Maybe somebody in charge of
the EPG data at the listed channels will read this and take the necessary
actions to fix these things...
- Changed the [dei]syslog macros in tools.h to use a variable number of args,
thus making it safe to use them in nested 'if/else' statements.
- Fixed error handling in establishing an SVDRP connection (thanks to Davide
Achilli) for pointing this out).
- The new configuration file 'svdrphosts.conf' is now used to define which
hosts may access the SVDRP port (by default only 'localhost' has access).
See FORMATS for details.
- The special keywords TITLE and EPISODE can now be used in timer file names
(see MANUAL and FORMATS for details).
- The new setup parameter NameInstantRecord can be used to define how an
instant recording will be named (see MANUAL for details).
- When looking for the EPG record of the timer that starts a recording, now
that record is taken which covers the time calculated as
'start + (Setup.MarginStart * 2) + 1)' in order to have a better chance of
hitting the right record in case of an instant recording. Timers that start
further in the future should always be programmed via the "Schedules" menu.
- The special VPIDs '0' and '1' are now used to enable recording radio channels.
Actually '0' should be enough, but '1' must be used with encrypted channels
(driver bug?). Note, though, that since VDR is mainly a *video recorder*, some
features like, e. g., the progress display, may not work as expected with
radio recordings. Thanks to Michael Paar.
- Fixed a problem with the ERR macro defined by ncurses.h (thanks to Artur
Skawina).
Diffstat (limited to 'recording.c')
-rw-r--r-- | recording.c | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/recording.c b/recording.c index acdf264..7a55e1a 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.48 2002/01/27 15:14:45 kls Exp $ + * $Id: recording.c 1.49 2002/02/03 15:46:42 kls Exp $ */ #include "recording.h" @@ -41,6 +41,9 @@ #define DISKCHECKDELTA 100 // seconds between checks for free disk space #define REMOVELATENCY 10 // seconds to wait until next check after removing a file +#define TIMERMACRO_TITLE "TITLE" +#define TIMERMACRO_EPISODE "EPISODE" + void RemoveDeletedRecordings(void) { static time_t LastRemoveCheck = 0; @@ -214,19 +217,33 @@ char *ExchangeChars(char *s, bool ToFileSystem) return s; } -cRecording::cRecording(cTimer *Timer, const char *Subtitle, const char *Summary) +cRecording::cRecording(cTimer *Timer, const char *Title, const char *Subtitle, const char *Summary) { resume = RESUME_NOT_INITIALIZED; titleBuffer = NULL; sortBuffer = NULL; fileName = NULL; - if (Timer->IsSingleEvent() || !Setup.UseSubtitle) + name = NULL; + // set up the actual name: + if (isempty(Title)) + Title = Channels.GetChannelNameByNumber(Timer->channel); + if (isempty(Subtitle)) + Subtitle = " "; + char *macroTITLE = strstr(Timer->file, TIMERMACRO_TITLE); + char *macroEPISODE = strstr(Timer->file, TIMERMACRO_EPISODE); + if (macroTITLE || macroEPISODE) { name = strdup(Timer->file); - else { - if (isempty(Subtitle)) - Subtitle = " "; - asprintf(&name, "%s~%s", Timer->file, Subtitle); + name = strreplace(name, TIMERMACRO_TITLE, Title); + name = strreplace(name, TIMERMACRO_EPISODE, Subtitle); + if (Timer->IsSingleEvent()) { + Timer->SetFile(name); // this was an instant recording, so let's set the actual data + Timers.Save(); + } } + else if (Timer->IsSingleEvent() || !Setup.UseSubtitle) + name = strdup(Timer->file); + else + asprintf(&name, "%s~%s", Timer->file, Subtitle); // substitute characters that would cause problems in file names: strreplace(name, '\n', ' '); start = Timer->StartTime(); |