summaryrefslogtreecommitdiff
path: root/svdrp.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2003-08-31 11:26:46 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2003-08-31 11:26:46 +0200
commit105825f3127e4edc5c490d67baf34abe2983b611 (patch)
tree3c81927b271b09ed6299ded2b0339340ff4a95a3 /svdrp.c
parentcf45c66062b61e46cb796702dad85854528a3a16 (diff)
downloadvdr-105825f3127e4edc5c490d67baf34abe2983b611.tar.gz
vdr-105825f3127e4edc5c490d67baf34abe2983b611.tar.bz2
Actually implemented the SVDRP command DELC
Diffstat (limited to 'svdrp.c')
-rw-r--r--svdrp.c28
1 files changed, 25 insertions, 3 deletions
diff --git a/svdrp.c b/svdrp.c
index c2c65948..228911e0 100644
--- a/svdrp.c
+++ b/svdrp.c
@@ -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.54 2003/08/30 09:35:00 kls Exp $
+ * $Id: svdrp.c 1.55 2003/08/31 11:24:47 kls Exp $
*/
#include "svdrp.h"
@@ -464,8 +464,30 @@ void cSVDRP::CmdCLRE(const char *Option)
void cSVDRP::CmdDELC(const char *Option)
{
- //TODO combine this with menu action (timers must be updated)
- Reply(502, "DELC not yet implemented");
+ if (*Option) {
+ if (isnumber(Option)) {
+ cChannel *channel = Channels.GetByNumber(strtol(Option, NULL, 10));
+ if (channel) {
+ for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) {
+ if (timer->Channel() == channel) {
+ Reply(550, "Channel \"%s\" is in use by timer %d", Option, timer->Index() + 1);
+ return;
+ }
+ }
+ Channels.Del(channel);
+ Channels.ReNumber();
+ Channels.Save();
+ isyslog("channel %s deleted", Option);
+ Reply(250, "Channel \"%s\" deleted", Option);
+ }
+ else
+ Reply(501, "Channel \"%s\" not defined", Option);
+ }
+ else
+ Reply(501, "Error in channel number \"%s\"", Option);
+ }
+ else
+ Reply(501, "Missing channel number");
}
void cSVDRP::CmdDELR(const char *Option)