From aa5e2205bbc3a7abc05fc50854ba086777541f13 Mon Sep 17 00:00:00 2001 From: mrwastl Date: Tue, 3 May 2011 22:58:16 +0200 Subject: added extended SVDRP patch (issue 488) --- plugin.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'plugin.c') diff --git a/plugin.c b/plugin.c index bdeea86..b81fbdd 100644 --- a/plugin.c +++ b/plugin.c @@ -53,6 +53,8 @@ public: virtual bool Initialize(); virtual bool Start(); virtual void Housekeeping(); + virtual const char **SVDRPHelpPages(void); + virtual cString SVDRPCommand(const char *Command, const char *Option, int &ReplyCode); virtual void MainThreadHook(void); virtual const char * MainMenuEntry() { return MAINMENUENTRY; } virtual cOsdObject * MainMenuAction(); @@ -223,6 +225,48 @@ void cPluginGraphLCD::MainThreadHook() mDisplay->Tick(); } +const char **cPluginGraphLCD::SVDRPHelpPages(void) +{ + static const char *HelpPages[] = { + "CLS Clear Display.", + "UPD Update Display.", + "OFF Switch Plugin off.", + "ON Switch Plugin on.", + NULL + }; + return HelpPages; +} + +cString cPluginGraphLCD::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) +{ + if (strcasecmp(Command, "CLS") == 0) { + if (GraphLCDSetup.PluginActive == 1) { + return "Error: Plugin is active."; + } else { + mDisplay->Clear(); + return "GraphLCD cleared."; + }; + } + if (strcasecmp(Command, "UPD") == 0) { + if (GraphLCDSetup.PluginActive == 0) { + return "Error: Plugin is not active."; + } else { + mDisplay->Update(); + return "GraphLCD updated."; + }; + } + + if (strcasecmp(Command, "OFF") == 0) { + GraphLCDSetup.PluginActive = 0; + return "GraphLCD Plugin switched off."; + } + if (strcasecmp(Command, "ON") == 0) { + GraphLCDSetup.PluginActive = 1; + return "GraphLCD Plugin switched on."; + } + return NULL; +} + cOsdObject * cPluginGraphLCD::MainMenuAction() { return NULL; -- cgit v1.2.3