summaryrefslogtreecommitdiff
path: root/tvguide.c
diff options
context:
space:
mode:
Diffstat (limited to 'tvguide.c')
-rw-r--r--tvguide.c141
1 files changed, 40 insertions, 101 deletions
diff --git a/tvguide.c b/tvguide.c
index a22fb37..b23ca23 100644
--- a/tvguide.c
+++ b/tvguide.c
@@ -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);