summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2006-01-08 13:33:57 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2006-01-08 13:33:57 +0100
commitf993ff108b83802c066f32adcc5647125fa735ed (patch)
treedb36f9c5e2fcefc6690ad06bc38dcaf1e80e9355
parent419f3ab5f7f188edf15af6400af5d622dfa6b45f (diff)
downloadvdr-f993ff108b83802c066f32adcc5647125fa735ed.tar.gz
vdr-f993ff108b83802c066f32adcc5647125fa735ed.tar.bz2
The SVDRP command LSTT now accepts the new option 'id'
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY6
-rw-r--r--config.h6
-rw-r--r--svdrp.c42
4 files changed, 41 insertions, 15 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d524a303..4e02e9e6 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -71,6 +71,8 @@ Matthias Schniedermeyer <ms@citd.de>
and had their start time changed into the future
for suggesting to give the timer status a bit that is set when that timer
is currently recording
+ for suggesting to make the SVDRP command LSTT optionally list the channels
+ of the timers with their unique channel ids instead of their numbers
Miha Setina <mihasetina@softhome.net>
for translating OSD texts to the Slovenian language
diff --git a/HISTORY b/HISTORY
index 49201ddc..2dd7c739 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4134,3 +4134,9 @@ Video Disk Recorder Revision History
- Added a SleepMs() in cRecorder::Action() to avoid a busy loop (thanks to Ingo
Schneider).
- Cleaned up some trailing white space.
+
+2006-01-08: Version 1.3.39
+
+- The SVDRP command LSTT now accepts the new option 'id' to have the channels
+ of the timers listed with their unique channel ids instead of their numbers
+ (suggested by Matthias Schniedermeyer).
diff --git a/config.h b/config.h
index 73c3d7d6..7df755ff 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.238 2006/01/07 12:57:42 kls Exp $
+ * $Id: config.h 1.239 2006/01/08 13:08:42 kls Exp $
*/
#ifndef __CONFIG_H
@@ -19,8 +19,8 @@
#include "i18n.h"
#include "tools.h"
-#define VDRVERSION "1.3.38"
-#define VDRVERSNUM 10338 // Version * 10000 + Major * 100 + Minor
+#define VDRVERSION "1.3.39"
+#define VDRVERSNUM 10339 // Version * 10000 + Major * 100 + Minor
#define MAXPRIORITY 99
#define MAXLIFETIME 99
diff --git a/svdrp.c b/svdrp.c
index 086b01cb..db07a1fd 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.89 2005/12/30 15:42:29 kls Exp $
+ * $Id: svdrp.c 1.90 2006/01/08 13:31:00 kls Exp $
*/
#include "svdrp.h"
@@ -229,9 +229,11 @@ const char *HelpPages[] = {
"LSTR [ <number> ]\n"
" List recordings. Without option, all recordings are listed. Otherwise\n"
" the information for the given recording is listed.",
- "LSTT [ <number> ]\n"
+ "LSTT [ <number> ] [ id ]\n"
" List timers. Without option, all timers are listed. Otherwise\n"
- " only the given timer is listed.",
+ " only the given timer is listed. If the keyword 'id' is given, the\n"
+ " channels will be listed with their unique channel ids instead of\n"
+ " their numbers.",
"MESG <message>\n"
" Displays the given message on the OSD. The message will be queued\n"
" and displayed whenever this is suitable.\n",
@@ -1009,22 +1011,38 @@ void cSVDRP::CmdLSTR(const char *Option)
void cSVDRP::CmdLSTT(const char *Option)
{
+ int Number = 0;
+ bool Id = false;
if (*Option) {
- if (isnumber(Option)) {
- cTimer *timer = Timers.Get(strtol(Option, NULL, 10) - 1);
- if (timer)
- Reply(250, "%d %s", timer->Index() + 1, *timer->ToText());
- else
- Reply(501, "Timer \"%s\" not defined", Option);
- }
+ char buf[strlen(Option) + 1];
+ strcpy(buf, Option);
+ const char *delim = " \t";
+ char *strtok_next;
+ char *p = strtok_r(buf, delim, &strtok_next);
+ while (p) {
+ if (isnumber(p))
+ Number = strtol(p, NULL, 10);
+ else if (strcasecmp(p, "ID") == 0)
+ Id = true;
+ else {
+ Reply(501, "Unknown option: \"%s\"", p);
+ return;
+ }
+ p = strtok_r(NULL, delim, &strtok_next);
+ }
+ }
+ if (Number) {
+ cTimer *timer = Timers.Get(Number - 1);
+ if (timer)
+ Reply(250, "%d %s", timer->Index() + 1, *timer->ToText(Id));
else
- Reply(501, "Error in timer number \"%s\"", Option);
+ Reply(501, "Timer \"%s\" not defined", Option);
}
else if (Timers.Count()) {
for (int i = 0; i < Timers.Count(); i++) {
cTimer *timer = Timers.Get(i);
if (timer)
- Reply(i < Timers.Count() - 1 ? -250 : 250, "%d %s", timer->Index() + 1, *timer->ToText());
+ Reply(i < Timers.Count() - 1 ? -250 : 250, "%d %s", timer->Index() + 1, *timer->ToText(Id));
else
Reply(501, "Timer \"%d\" not found", i + 1);
}