diff options
| -rw-r--r-- | CONTRIBUTORS | 3 | ||||
| -rw-r--r-- | HISTORY | 2 | ||||
| -rw-r--r-- | menu.c | 19 | 
3 files changed, 23 insertions, 1 deletions
| diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 70e1a4f0..78e1dc0d 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -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 @@ -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). @@ -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()); | 
