vdr-plugin-skindesigner/setup.h

125 lines
3.7 KiB
C
Raw Normal View History

2014-09-27 09:25:14 +02:00
#ifndef __SKINDESIGNER_SETUP_H
#define __SKINDESIGNER_SETUP_H
#include "config.h"
2015-05-30 16:43:59 +02:00
#include "libskindesignerapi/skindesignerosdbase.h"
enum eItemType {
itSkinSetup,
itNoSkinSetup,
itSkinRepo
};
2014-09-27 09:25:14 +02:00
// --- cInstallManager -----------------------------------------------------------
class cInstallManager {
private:
uint64_t installationStart;
int lastInstallDuration;
int timeout;
bool installing;
bool updating;
cSkinRepo *runningInst;
protected:
string currentSkin;
bool StartInstallation(string skin);
bool StartUpdate(string skin);
bool Installing(void) { return installing; };
bool Updating(void) { return updating; };
bool Finished(void);
bool SuccessfullyInstalled(void);
bool SuccessfullyUpdated(void);
int Duration(void);
eOSState ProcessInstallationStatus(void);
public:
cInstallManager(void);
virtual ~cInstallManager(void);
};
// --- cSkinDesignerSetup -----------------------------------------------------------
class cSkinDesignerSetup : public cMenuSetupPage, cInstallManager {
private:
2016-01-26 18:32:38 +01:00
skindesignerapi::cPluginStructure *skinPreviewStruct;
int numLogosPerSizeInitial;
2016-01-26 18:32:38 +01:00
int cacheImagesInitial;
int limitLogoCache;
int numLogosMax;
int debugImageLoading;
int rerunAmount;
int rerunDistance;
int rerunMaxChannel;
2016-01-26 18:32:38 +01:00
int numCustomTokens;
const char *menuDisplayStyle[2];
void Setup(void);
virtual void Store(void);
virtual eOSState ProcessKey(eKeys Key);
cOsdItem *InfoItem(const char *label);
void PluginSetup(void);
void ImageCacheStatistics(void);
2015-05-30 16:43:59 +02:00
void SkinSetup(void);
void InstallSkins(void);
public:
2016-01-26 18:32:38 +01:00
cSkinDesignerSetup(skindesignerapi::cPluginStructure *skinPreviewStruct);
virtual ~cSkinDesignerSetup(void);
};
2015-05-30 16:43:59 +02:00
// --- cSkinMenuItem -----------------------------------------------------------
class cSkinMenuItem : public cOsdItem {
private:
string skinName;
eItemType type;
public:
cSkinMenuItem(string skinName, string displayText, eItemType type);
virtual ~cSkinMenuItem() {};
string GetSkinName(void) { return skinName; };
eItemType Type(void) { return type; };
};
// --- cSkinSetupSubMenu -----------------------------------------------------------
class cSkinSetupSubMenu : public cOsdItem {
private:
string name;
string displayText;
public:
cSkinSetupSubMenu(string name, string displayText);
virtual ~cSkinSetupSubMenu() {};
string GetName(void) { return name; };
string GetDisplayText(void) { return displayText; };
};
// --- cSkindesignerSkinSetup -----------------------------------------------------------
class cSkindesignerSkinSetup : public cOsdMenu, cInstallManager {
private:
string skin;
string menu;
vector<string> helpTexts;
string buttonRed;
string buttonGreen;
string buttonYellow;
bool showRed;
bool showYellow;
bool hadHelp;
void ShowButtons(int current, bool force = false);
protected:
virtual eOSState ProcessKey(eKeys Key);
void Set(void);
public:
cSkindesignerSkinSetup(string skin, string menu, string header);
virtual ~cSkindesignerSkinSetup();
2014-09-27 09:25:14 +02:00
};
2015-05-30 16:43:59 +02:00
// --- cSkindesignerSkinPreview -----------------------------------------------------------
class cSkindesignerSkinPreview : public skindesignerapi::cSkindesignerOsdMenu, cInstallManager {
2015-05-30 16:43:59 +02:00
protected:
virtual eOSState ProcessKey(eKeys Key);
void Set(void);
2016-01-26 18:32:38 +01:00
const char *CheckFontInstalled(string fontName);
2015-05-30 16:43:59 +02:00
public:
2016-01-26 18:32:38 +01:00
cSkindesignerSkinPreview(string skin, skindesignerapi::cPluginStructure *plugStruct);
2015-05-30 16:43:59 +02:00
virtual ~cSkindesignerSkinPreview();
2016-01-26 18:32:38 +01:00
static void DefineTokens(skindesignerapi::cTokenContainer *tk);
2015-05-30 16:43:59 +02:00
void Display(void);
};
2014-09-27 09:25:14 +02:00
#endif //__SKINDESIGNER_SETUP_H