mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Added cRecording::Undelete()
This commit is contained in:
28
recording.c
28
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.155 2007/10/12 14:48:20 kls Exp $
|
||||
* $Id: recording.c 1.156 2007/10/14 10:21:54 kls Exp $
|
||||
*/
|
||||
|
||||
#include "recording.h"
|
||||
@@ -829,6 +829,32 @@ bool cRecording::Remove(void)
|
||||
return RemoveVideoFile(FileName());
|
||||
}
|
||||
|
||||
bool cRecording::Undelete(void)
|
||||
{
|
||||
bool result = true;
|
||||
char *NewName = strdup(FileName());
|
||||
char *ext = strrchr(NewName, '.');
|
||||
if (ext && strcmp(ext, DELEXT) == 0) {
|
||||
strncpy(ext, RECEXT, strlen(ext));
|
||||
if (access(NewName, F_OK) == 0) {
|
||||
// the new name already exists, so let's not remove that one:
|
||||
esyslog("ERROR: attempt to undelete '%s', while recording '%s' exists", FileName(), NewName);
|
||||
result = false;
|
||||
}
|
||||
else {
|
||||
isyslog("undeleting recording '%s'", FileName());
|
||||
if (access(FileName(), F_OK) == 0)
|
||||
result = RenameVideoFile(FileName(), NewName);
|
||||
else {
|
||||
isyslog("deleted recording '%s' vanished", FileName());
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
free(NewName);
|
||||
return result;
|
||||
}
|
||||
|
||||
void cRecording::ResetResume(void) const
|
||||
{
|
||||
resume = RESUME_NOT_INITIALIZED;
|
||||
|
||||
Reference in New Issue
Block a user