mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 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.
This commit is contained in:
20
recording.c
20
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 ----------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user