summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--svdrp.c11
2 files changed, 10 insertions, 3 deletions
diff --git a/HISTORY b/HISTORY
index ba8b874f..df5cb287 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3781,3 +3781,5 @@ Video Disk Recorder Revision History
- Added missing help for the 'help' keyword in the SVDRP command PLUG.
- The main menu function of a plugin can now be called programmatically through
the static function cRemote::CallPlugin().
+- The SVDRP command PLUG now has a new option 'main' which can be used to initiate
+ a call to the main menu function of a plugin (using part of a patch by Hardy Flor).
diff --git a/svdrp.c b/svdrp.c
index b25d8b0b..e1364df5 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.78 2005/09/03 12:17:35 kls Exp $
+ * $Id: svdrp.c 1.79 2005/09/03 12:46:57 kls Exp $
*/
#include "svdrp.h"
@@ -269,7 +269,7 @@ const char *HelpPages[] = {
" at the position where any previous replay was stopped, or from the beginning\n"
" by default. To control or stop the replay session, use the usual remote\n"
" control keypresses via the HITK command.",
- "PLUG <name> [ help ] [ <command> [ <options> ]]\n"
+ "PLUG <name> [ help | main ] [ <command> [ <options> ]]\n"
" Send a command to a plugin.\n"
" The PLUG command without any parameters lists all plugins.\n"
" If only a name is given, all commands known to that plugin are listed.\n"
@@ -277,7 +277,8 @@ const char *HelpPages[] = {
" is sent to the plugin, and the result will be displayed.\n"
" The keyword 'help' lists all the SVDRP commands known to the named plugin.\n"
" If 'help' is followed by a command, the detailed help for that command is\n"
- " given.",
+ " given. The keyword 'main' initiates a call to the main menu function of the\n"
+ " given plugin.\n",
"PUTE\n"
" Put data into the EPG list. The data entered has to strictly follow the\n"
" format defined in vdr(5) for the 'epg.data' file. A '.' on a line\n"
@@ -1207,6 +1208,10 @@ void cSVDRP::CmdPLUG(const char *Option)
Reply(214, "This plugin has no SVDRP commands");
}
}
+ else if (strcasecmp(cmd, "MAIN") == 0) {
+ cRemote::CallPlugin(plugin->Name());
+ Reply(250, "Initiated call to main menu function of plugin \"%s\"", plugin->Name());
+ }
else {
int ReplyCode = 900;
cString s = plugin->SVDRPCommand(cmd, option, ReplyCode);