diff options
Diffstat (limited to 'skinflatplus.c')
-rw-r--r-- | skinflatplus.c | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/skinflatplus.c b/skinflatplus.c new file mode 100644 index 00000000..609c8d9e --- /dev/null +++ b/skinflatplus.c @@ -0,0 +1,134 @@ +/* + * skinflat.c: A plugin for the Video Disk Recorder + * + * See the README file for copyright information and how to reach the author. + * + * $Id$ + */ +#include <getopt.h> +#include <vdr/plugin.h> + +#if defined(APIVERSNUM) && APIVERSNUM < 10734 +#error "VDR-1.7.34 API version or greater is required!" +#endif + +#include "flat.h" +#include "setup.h" + +static const char *VERSION = "0.0.1"; +static const char *DESCRIPTION = "skin flatplus"; + +class cPluginFlat : public cPlugin { + private: + cFlat *flat; + public: + cPluginFlat(void); + virtual ~cPluginFlat(); + virtual const char *Version(void) { return VERSION; } + virtual const char *Description(void) { return DESCRIPTION; } + virtual const char *CommandLineHelp(void); + virtual bool ProcessArgs(int argc, char *argv[]); + virtual bool Initialize(void); + virtual bool Start(void); + virtual void Stop(void); + virtual void Housekeeping(void); + virtual void MainThreadHook(void); + virtual cString Active(void); + virtual time_t WakeupTime(void); + virtual const char *MainMenuEntry(void) {return NULL;} + virtual cOsdObject *MainMenuAction(void); + virtual cMenuSetupPage *SetupMenu(void); + virtual bool SetupParse(const char *Name, const char *Value); + virtual bool Service(const char *Id, void *Data = NULL); + virtual const char **SVDRPHelpPages(void); + virtual cString SVDRPCommand(const char *Command, const char *Option, int &ReplyCode); +}; + +cPluginFlat::cPluginFlat(void) { + flat = NULL; +} + +cPluginFlat::~cPluginFlat() { +} + +const char *cPluginFlat::CommandLineHelp(void) { + return " -l <LOGOPATH>, --logopath=<LOGOPATH> Set directory where Channel Logos are stored.\n"; +} + +bool cPluginFlat::ProcessArgs(int argc, char *argv[]) { + // Implement command line argument processing here if applicable. + static const struct option long_options[] = { + { "logopath", required_argument, NULL, 'l' }, + { NULL } + }; + + int c; + while ((c = getopt_long(argc, argv, "l:", long_options, NULL)) != -1) { + switch (c) { + case 'l': + Config.SetLogoPath(cString(optarg)); + break; + default: + return false; + } + } + return true; +} + +bool cPluginFlat::Initialize(void) { + Config.Init(); + return true; +} + +bool cPluginFlat::Start(void) { + if (!cOsdProvider::SupportsTrueColor()) { + esyslog("skinflat: No TrueColor OSD found! Aborting!"); + return false; + } else + dsyslog("skinflat: TrueColor OSD found"); + flat = new cFlat; + return flat; +} + +void cPluginFlat::Stop(void) { +} + +void cPluginFlat::Housekeeping(void) { +} + +void cPluginFlat::MainThreadHook(void) { +} + +cString cPluginFlat::Active(void) { + return NULL; +} + +time_t cPluginFlat::WakeupTime(void) { + return 0; +} + +cOsdObject *cPluginFlat::MainMenuAction(void) { + return NULL; +} + +cMenuSetupPage *cPluginFlat::SetupMenu(void) { + return new cFlatSetup(); +} + +bool cPluginFlat::SetupParse(const char *Name, const char *Value) { + return Config.SetupParse(Name, Value); +} + +bool cPluginFlat::Service(const char *Id, void *Data) { + return false; +} + +const char **cPluginFlat::SVDRPHelpPages(void) { + return NULL; +} + +cString cPluginFlat::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) { + return NULL; +} + +VDRPLUGINCREATOR(cPluginFlat); // Don't touch this! |