The SVDRP command DELR no longer deletes recordings that are currently being written to by a timer

This commit is contained in:
Klaus Schmidinger 2005-05-26 10:00:59 +02:00
parent a05590796a
commit dc0209147e
3 changed files with 16 additions and 6 deletions

View File

@ -770,6 +770,8 @@ Sascha Volkenandt <sascha@akv-soft.de>
Digital audio after switching to a channel that has DD and selecting the DD audio
track
for reporting a bug in timeout handling in cRwLock::Lock()
for pointing out that the SVDRP command DELR deleted recordings that are currently
being written to by a timer
Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
for modifying LOF handling to allow for C-band reception

View File

@ -3513,7 +3513,7 @@ Video Disk Recorder Revision History
- Fixed a wrong inheritance in libsi's SubtitlingDescriptor::Subtitling (thanks to
Marco Schlüßler).
2005-05-22: Version 1.3.25
2005-05-26: Version 1.3.25
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Some cable providers don't mark short channel names according to the standard,
@ -3553,3 +3553,5 @@ Video Disk Recorder Revision History
from being set to a wrong value (thanks to Marco Schlüßler).
- Fixed a possible hangup when ending a replay session while cIndexFile::CatchUp()
is waiting (thanks to Marco Schlüßler).
- The SVDRP command DELR no longer deletes recordings that are currently being
written to by a timer (thanks to Sascha Volkenandt for pointing out this one).

16
svdrp.c
View File

@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection.
*
* $Id: svdrp.c 1.71 2005/05/16 14:20:25 kls Exp $
* $Id: svdrp.c 1.72 2005/05/26 09:59:09 kls Exp $
*/
#include "svdrp.h"
@ -31,6 +31,7 @@
#include "device.h"
#include "eitscan.h"
#include "keys.h"
#include "menu.h"
#include "remote.h"
#include "timers.h"
#include "tools.h"
@ -505,12 +506,17 @@ void cSVDRP::CmdDELR(const char *Option)
if (isnumber(Option)) {
cRecording *recording = Recordings.Get(strtol(Option, NULL, 10) - 1);
if (recording) {
if (recording->Delete()) {
Reply(250, "Recording \"%s\" deleted", Option);
::Recordings.Load(); // must make sure the global recordings list is updated
cRecordControl *rc = cRecordControls::GetRecordControl(recording->FileName());
if (!rc) {
if (recording->Delete()) {
Reply(250, "Recording \"%s\" deleted", Option);
::Recordings.Load(); // must make sure the global recordings list is updated
}
else
Reply(554, "Error while deleting recording!");
}
else
Reply(554, "Error while deleting recording!");
Reply(550, "Recording \"%s\" is in use by timer %d", Option, rc->Timer()->Index() + 1);
}
else
Reply(550, "Recording \"%s\" not found%s", Option, Recordings.Count() ? "" : " (use LSTR before deleting)");