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>
for suggesting to switch to the recording channel in case the current channel
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
device (thanks to Reinhard Walter Buchner for reporting this one).
- 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
* 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"
@ -2938,6 +2938,23 @@ cRecordControl::cRecordControl(cDevice *Device, cTimer *Timer, bool Pause)
}
cRecording Recording(timer, Title, Subtitle, Summary);
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);
const cChannel *ch = timer->Channel();
recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2());