Checking for duplicate recordings with the same file name and disabling the second timer

This commit is contained in:
Klaus Schmidinger 2003-05-25 12:56:26 +02:00
parent b92bb866f6
commit 0eb11ea3de
3 changed files with 23 additions and 1 deletions

View File

@ -691,3 +691,6 @@ Ralf Klueber <ralf.klueber@vodafone.com>
Hermann Gausterer <mrq1@gmx.net> Hermann Gausterer <mrq1@gmx.net>
for suggesting to switch to the recording channel in case the current channel for suggesting to switch to the recording channel in case the current channel
becomes unavailable becomes unavailable
Peter Bieringer <pb@bieringer.de>
for reporting a problem with duplicate recordings with the same file name

View File

@ -2202,3 +2202,5 @@ Video Disk Recorder Revision History
will be used for FTA recordings in case the CAM is connected to a non-primary will be used for FTA recordings in case the CAM is connected to a non-primary
device (thanks to Reinhard Walter Buchner for reporting this one). device (thanks to Reinhard Walter Buchner for reporting this one).
- The cCiHandler now closes its file handle when it gets destroyed. - The cCiHandler now closes its file handle when it gets destroyed.
- Checking for duplicate recordings with the same file name and disabling the
second timer (thanks to Peter Bieringer for reporting this one).

19
menu.c
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: menu.c 1.246 2003/05/24 16:35:34 kls Exp $ * $Id: menu.c 1.247 2003/05/25 12:47:30 kls Exp $
*/ */
#include "menu.h" #include "menu.h"
@ -2938,6 +2938,23 @@ cRecordControl::cRecordControl(cDevice *Device, cTimer *Timer, bool Pause)
} }
cRecording Recording(timer, Title, Subtitle, Summary); cRecording Recording(timer, Title, Subtitle, Summary);
fileName = strdup(Recording.FileName()); fileName = strdup(Recording.FileName());
// crude attempt to avoid duplicate recordings:
if (cRecordControls::GetRecordControl(fileName)) {
isyslog("already recording: '%s'", fileName);
if (Timer) {
timer->SetPending(false);
timer->SetRecording(false);
timer->OnOff();
}
else {
Timers.Del(timer);
Timers.Save();
}
timer = NULL;
return;
}
cRecordingUserCommand::InvokeCommand(RUC_BEFORERECORDING, fileName); cRecordingUserCommand::InvokeCommand(RUC_BEFORERECORDING, fileName);
const cChannel *ch = timer->Channel(); const cChannel *ch = timer->Channel();
recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2()); recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2());