diff options
Diffstat (limited to 'tvguide.c')
-rw-r--r-- | tvguide.c | 141 |
1 files changed, 40 insertions, 101 deletions
@@ -14,6 +14,9 @@ #include <vdr/menu.h> #define DEFINE_CONFIG 1 +#include "geometrymanager.h" +#include "fontmanager.h" +#include "imagecache.h" #include "config.h" #include "setup.h" #include "tvguideosd.h" @@ -23,15 +26,11 @@ #error "VDR-2.0.0 API version or greater is required!" #endif -static const char *VERSION = "1.1.0"; +static const char *VERSION = "1.2.0pre"; static const char *DESCRIPTION = "A fancy 2d EPG Viewer"; static const char *MAINMENUENTRY = "Tvguide"; class cPluginTvguide : public cPlugin { -private: - bool logoPathSet; - bool imagesPathSet; - bool iconsPathSet; public: cPluginTvguide(void); virtual ~cPluginTvguide(); @@ -55,146 +54,90 @@ public: virtual cString SVDRPCommand(const char *Command, const char *Option, int &ReplyCode); }; -cPluginTvguide::cPluginTvguide(void) -{ - // Initialize any member variables here. - // DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL - // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT! - logoPathSet = false; - imagesPathSet = false; - iconsPathSet = false; +cPluginTvguide::cPluginTvguide(void) { } -cPluginTvguide::~cPluginTvguide() -{ - // Clean up after yourself! +cPluginTvguide::~cPluginTvguide() { } -const char *cPluginTvguide::CommandLineHelp(void) -{ - // Return a string that describes all known command line options. +const char *cPluginTvguide::CommandLineHelp(void) { return - " -i <IMAGESDIR>, --epgimages=<IMAGESDIR> Set directory where epgimages are stored.\n" - " -c <ICONDIR>, --icons=<ICONDIR> Set directory where icons are stored.\n" + " -e <IMAGESDIR>, --epgimages=<IMAGESDIR> Set directory where epgimages are stored.\n" + " -i <ICONDIR>, --icons=<ICONDIR> Set directory where icons are stored.\n" " -l <LOGODIR>, --logodir=<LOGODIR> Set directory where logos are stored.\n"; } -bool cPluginTvguide::ProcessArgs(int argc, char *argv[]) -{ - // Implement command line argument processing here if applicable. +bool cPluginTvguide::ProcessArgs(int argc, char *argv[]) { static const struct option long_options[] = { - { "epgimages", required_argument, NULL, 'i' }, - { "icons", required_argument, NULL, 'c' }, + { "epgimages", required_argument, NULL, 'e' }, + { "iconpath", required_argument, NULL, 'i' }, { "logopath", required_argument, NULL, 'l' }, { 0, 0, 0, 0 } }; - int c; - cString *path = NULL; - while ((c = getopt_long(argc, argv, "i:c:l:", long_options, NULL)) != -1) { + while ((c = getopt_long(argc, argv, "e:i:l:", long_options, NULL)) != -1) { switch (c) { - case 'i': - path = new cString(optarg); - tvguideConfig.SetImagesPath(*path); - imagesPathSet = true; + case 'e': + tvguideConfig.SetImagesPath(cString(optarg)); break; - case 'c': - path = new cString(optarg); - tvguideConfig.SetIconsPath(*path); - iconsPathSet = true; - break; + case 'i': + tvguideConfig.SetIconsPath(cString(optarg)); + break; case 'l': - path = new cString(optarg); - tvguideConfig.SetLogoPath(*path); - logoPathSet = true; + tvguideConfig.SetLogoPath(cString(optarg)); break; default: return false; } - if (path) - delete path; } return true; } bool cPluginTvguide::Initialize(void) { - esyslog("tvguide: Initialize"); - esyslog("tvguide: OSD Wwidth %d, OSD Height %d", cOsd::OsdWidth(), cOsd::OsdHeight()); - esyslog("tvguide: numRows: %d, numCols: %d", tvguideConfig.channelRows, tvguideConfig.channelCols); + tvguideConfig.SetDefaultPathes(); + tvguideConfig.LoadTheme(); + tvguideConfig.SetStyle(); + tvguideConfig.setDynamicValues(); + geoManager.SetGeometry(cOsd::OsdWidth(), cOsd::OsdHeight()); + fontManager.SetFonts(); + imgCache.CreateCache(); return true; } -bool cPluginTvguide::Start(void) -{ - if (!logoPathSet) { - cString path = cString::sprintf("%s/channellogos/", cPlugin::ConfigDirectory(PLUGIN_NAME_I18N)); - tvguideConfig.SetLogoPath(path); - logoPathSet = true; - } - - if (!imagesPathSet) { - cString path = cString::sprintf("%s/epgimages/", cPlugin::ConfigDirectory(PLUGIN_NAME_I18N)); - tvguideConfig.SetImagesPath(path); - logoPathSet = true; - } - - if (!iconsPathSet) { - cString path = cString::sprintf("%s/icons/", cPlugin::ResourceDirectory(PLUGIN_NAME_I18N)); - tvguideConfig.SetIconsPath(path); - iconsPathSet = true; - } - +bool cPluginTvguide::Start(void) { return true; } -void cPluginTvguide::Stop(void) -{ - // Stop any background activities the plugin is performing. +void cPluginTvguide::Stop(void) { } -void cPluginTvguide::Housekeeping(void) -{ - // Perform any cleanup or other regular tasks. +void cPluginTvguide::Housekeeping(void) { } -void cPluginTvguide::MainThreadHook(void) -{ - // Perform actions in the context of the main program thread. - // WARNING: Use with great care - see PLUGINS.html! +void cPluginTvguide::MainThreadHook(void) { } -cString cPluginTvguide::Active(void) -{ - // Return a message string if shutdown should be postponed +cString cPluginTvguide::Active(void) { return NULL; } -time_t cPluginTvguide::WakeupTime(void) -{ - // Return custom wakeup time for shutdown script +time_t cPluginTvguide::WakeupTime(void) { return 0; } -cOsdObject *cPluginTvguide::MainMenuAction(void) -{ - // Perform the action when selected from the main VDR menu. - return new cTvGuideOsd; +cOsdObject *cPluginTvguide::MainMenuAction(void) { + return new cTvGuideOsd; } -cMenuSetupPage *cPluginTvguide::SetupMenu(void) -{ - // Return a setup menu in case the plugin supports one. +cMenuSetupPage *cPluginTvguide::SetupMenu(void) { return new cTvguideSetup(); } -bool cPluginTvguide::SetupParse(const char *Name, const char *Value) -{ - // Parse your own setup parameters and store their values. +bool cPluginTvguide::SetupParse(const char *Name, const char *Value) { return tvguideConfig.SetupParse(Name, Value); } -bool cPluginTvguide::Service(const char *Id, void *Data) -{ +bool cPluginTvguide::Service(const char *Id, void *Data) { if (strcmp(Id, "MainMenuHooksPatch-v1.0::osSchedule") == 0 && tvguideConfig.replaceOriginalSchedule != 0) { if (Data == NULL) return true; @@ -206,16 +149,12 @@ bool cPluginTvguide::Service(const char *Id, void *Data) return false; } -const char **cPluginTvguide::SVDRPHelpPages(void) -{ - // Return help text for SVDRP commands this plugin implements +const char **cPluginTvguide::SVDRPHelpPages(void) { return NULL; } -cString cPluginTvguide::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) -{ - // Process SVDRP commands this plugin implements +cString cPluginTvguide::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) { return NULL; } -VDRPLUGINCREATOR(cPluginTvguide); // Don't touch this! +VDRPLUGINCREATOR(cPluginTvguide); |