diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2006-03-26 19:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2006-03-26 19:00:00 +0200 |
commit | 49b561fcad16d3315fce8cb854de9f4ee6156640 (patch) | |
tree | 5612d6646e299dec266787f6068834f28c7ca81b /recording.c | |
parent | 9d12ac30f006ed63b4c9ab4c1a076b7d4f025022 (diff) | |
download | vdr-patch-lnbsharing-49b561fcad16d3315fce8cb854de9f4ee6156640.tar.gz vdr-patch-lnbsharing-49b561fcad16d3315fce8cb854de9f4ee6156640.tar.bz2 |
Version 1.3.45vdr-1.3.45
- Fixed updating the "Info" button in the "Timers" menu.
- Reduced the number of events to actually check when setting events to timers.
- cMenuEditIntItem now checks the given value and forces it to be between the
given min and max limits.
- The status changes of EPG events are now logged for all channels that have timers.
- Removed the log message "deleting plugin: ..." when shutting down VDR (thanks to
Christoph Haubrich for reporting that this is irritating when calling "vdr --help").
- Fixed cReadLine::Read() for lines that end with the infamous "\r\n" (thanks to
Rolf Ahrenberg).
- Fixed cDvbDevice::SetAudioBypass() in case setTransferModeForDolbyDigital is false
(thanks to Werner Fink).
- Updated 'sources.conf' (thanks to Oleg Roitburd).
- Fixed the shutdown timeout (thanks to Alexander Wenzel).
- Only calling RemoveEmptyVideoDirectories() once in case a recording has been
deleted (reported by Hardy Flor).
- Fixed deleting recordings that have been removed externally when running out of
disk space (reported by Jan Lenz).
- Fixed handling repeating VPS timers (they stopped recording too early).
- Timer log messages now show "VPS" if this is a VPS timer.
- Fixed getting the present EPG event in case none is currently 'running' (it
then returns the one that just ended).
- Fixed calling a plugin's main menu function while a message is being displayed
(reported by Helmut Auer).
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- Made cMenuRecordings::GetRecording() 'protected' (suggested by Marius Heidenstecker).
- Speeded up cRemux::ScanVideoPacket() (thanks to Reinhard Nissl).
- Enhanced logging EPG event data.
- Fixed format string handling (thanks to Darren Salt).
- The new function cDevice::ForceTransferMode() can be used to force the primary
device into transfer mode (thanks to Reinhard Nissl).
- The 'version' of EPG events is now ignored when reading EPG data from 'epg.data'
or via SVDRP/PUTE to avoid problems with double EPG events.
- The 'running status' of EPG events is now only set to SI::RunningStatusNotRunning
for events before the present event.
- Fixed some #include sequences.
- Single shot VPS timers are now only considered 'expired' if their associated
EPG event has been explicitly set to SI::RunningStatusNotRunning.
- The check for timers to be deleted is now done only every 30 seconds.
Diffstat (limited to 'recording.c')
-rw-r--r-- | recording.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/recording.c b/recording.c index b8db264..379627c 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.140 2006/02/26 11:59:59 kls Exp $ + * $Id: recording.c 1.143 2006/03/26 09:11:00 kls Exp $ */ #include "recording.h" @@ -83,6 +83,7 @@ void cRemoveDeletedRecordingsThread::Action(void) // Make sure only one instance of VDR does this: cLockFile LockFile(VideoDirectory); if (LockFile.Lock()) { + bool deleted = false; cThreadLock DeletedRecordingsLock(&DeletedRecordings); for (cRecording *r = DeletedRecordings.First(); r; ) { if (r->deleted && time(NULL) - r->deleted > DELETEDLIFETIME) { @@ -90,11 +91,13 @@ void cRemoveDeletedRecordingsThread::Action(void) r->Remove(); DeletedRecordings.Del(r); r = next; - RemoveEmptyVideoDirectories(); + deleted = true; continue; } r = DeletedRecordings.Next(r); } + if (deleted) + RemoveEmptyVideoDirectories(); } } @@ -801,11 +804,16 @@ bool cRecording::Delete(void) strncpy(ext, DELEXT, strlen(ext)); if (access(NewName, F_OK) == 0) { // the new name already exists, so let's remove that one first: - isyslog("removing recording %s", NewName); + isyslog("removing recording '%s'", NewName); RemoveVideoFile(NewName); } - isyslog("deleting recording %s", FileName()); - result = RenameVideoFile(FileName(), NewName); + isyslog("deleting recording '%s'", FileName()); + if (access(FileName(), F_OK) == 0) + result = RenameVideoFile(FileName(), NewName); + else { + isyslog("recording '%s' vanished", FileName()); + result = true; // well, we were going to delete it, anyway + } } free(NewName); return result; @@ -1049,7 +1057,7 @@ bool cMark::Parse(const char *s) bool cMark::Save(FILE *f) { - return fprintf(f, ToText()) > 0; + return fprintf(f, "%s", *ToText()) > 0; } // --- cMarks ---------------------------------------------------------------- |