Edited recordings will now never be deleted automatically if the disk runs full

This commit is contained in:
Klaus Schmidinger 2003-10-17 14:40:37 +02:00
parent 1a22d480a8
commit 8de5fbcbe1
5 changed files with 17 additions and 3 deletions

View File

@ -594,6 +594,7 @@ Emil Naepflein <Emil.Naepflein@philosys.de>
housekeeping housekeeping
for fixing selecting the device, because sometimes an FTA recording terminated a for fixing selecting the device, because sometimes an FTA recording terminated a
CA recording CA recording
for suggesting to never delete edited recordings automatically if the disk runs full
Gerald Berwolf <genka@genka.de> Gerald Berwolf <genka@genka.de>
for suggesting to deactivate some templates in tools.h in case some plugin needs to for suggesting to deactivate some templates in tools.h in case some plugin needs to

View File

@ -2429,3 +2429,5 @@ Video Disk Recorder Revision History
Oliver Endriss). Note that in an existing VDR installation the current Oliver Endriss). Note that in an existing VDR installation the current
value as set in 'setup.conf' will still be used - this change only affects value as set in 'setup.conf' will still be used - this change only affects
new VDR installations. new VDR installations.
- Edited recordings will now never be deleted automatically if the disk runs
full (suggested by Emil Naepflein).

3
MANUAL
View File

@ -327,6 +327,9 @@ Version 1.2
a second. A "start" mark marks the first frame of a resulting video a second. A "start" mark marks the first frame of a resulting video
sequence, and an "end" mark marks the last frame of that sequence. sequence, and an "end" mark marks the last frame of that sequence.
An edited recording (indicated by the '%' character) will never be deleted
automatically in case the disk runs full (no matter what "lifetime" it has).
* Programming the Timer * Programming the Timer
Use the "Timer" menu to maintain your list of timer controlled recordings. Use the "Timer" menu to maintain your list of timer controlled recordings.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.c 1.83 2003/09/09 16:02:55 kls Exp $ * $Id: recording.c 1.84 2003/10/17 14:36:58 kls Exp $
*/ */
#include "recording.h" #include "recording.h"
@ -124,7 +124,7 @@ void AssertFreeDiskSpace(int Priority)
cRecording *r = Recordings.First(); cRecording *r = Recordings.First();
cRecording *r0 = NULL; cRecording *r0 = NULL;
while (r) { while (r) {
if (r->lifetime < MAXLIFETIME) { // recordings with MAXLIFETIME live forever if (!r->IsEdited() && r->lifetime < MAXLIFETIME) { // edited recordings and recordings with MAXLIFETIME live forever
if ((r->lifetime == 0 && Priority > r->priority) || // the recording has no guaranteed lifetime and the new recording has higher priority if ((r->lifetime == 0 && Priority > r->priority) || // the recording has no guaranteed lifetime and the new recording has higher priority
(time(NULL) - r->start) / SECSINDAY > r->lifetime) { // the recording's guaranteed lifetime has expired (time(NULL) - r->start) / SECSINDAY > r->lifetime) { // the recording's guaranteed lifetime has expired
if (r0) { if (r0) {
@ -559,6 +559,13 @@ int cRecording::HierarchyLevels(void)
return level; return level;
} }
bool cRecording::IsEdited(void)
{
const char *s = strrchr(name, '~');
s = !s ? name : s + 1;
return *s == '%';
}
bool cRecording::WriteSummary(void) bool cRecording::WriteSummary(void)
{ {
if (summary) { if (summary) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.h 1.27 2003/09/09 16:00:56 kls Exp $ * $Id: recording.h 1.28 2003/10/17 14:27:36 kls Exp $
*/ */
#ifndef __RECORDING_H #ifndef __RECORDING_H
@ -58,6 +58,7 @@ public:
const char *PrefixFileName(char Prefix); const char *PrefixFileName(char Prefix);
int HierarchyLevels(void); int HierarchyLevels(void);
bool IsNew(void) { return GetResume() <= 0; } bool IsNew(void) { return GetResume() <= 0; }
bool IsEdited(void);
bool WriteSummary(void); bool WriteSummary(void);
bool Delete(void); bool Delete(void);
// Changes the file name so that it will no longer be visible in the "Recordings" menu // Changes the file name so that it will no longer be visible in the "Recordings" menu