mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 17:58:31 +02:00
127 lines
3.7 KiB
C++
127 lines
3.7 KiB
C++
#ifndef __SKINDESIGNER_SETUP_H
|
|
#define __SKINDESIGNER_SETUP_H
|
|
|
|
#include "config.h"
|
|
#include "libskindesignerapi/skindesignerosdbase.h"
|
|
|
|
enum eItemType {
|
|
itSkinSetup,
|
|
itNoSkinSetup,
|
|
itSkinRepo
|
|
};
|
|
|
|
// --- 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:
|
|
static bool skinrepoUpdated;
|
|
skindesignerapi::cPluginStructure *skinPreviewStruct;
|
|
int numLogosPerSizeInitial;
|
|
int cacheImagesInitial;
|
|
int limitLogoCache;
|
|
int numLogosMax;
|
|
int debugImageLoading;
|
|
int rerunAmount;
|
|
int rerunDistance;
|
|
int rerunMaxChannel;
|
|
int numCustomTokens;
|
|
int FPS;
|
|
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);
|
|
void SkinSetup(void);
|
|
void InstallSkins(void);
|
|
public:
|
|
cSkinDesignerSetup(skindesignerapi::cPluginStructure *skinPreviewStruct);
|
|
virtual ~cSkinDesignerSetup(void);
|
|
};
|
|
|
|
// --- 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();
|
|
};
|
|
|
|
// --- cSkindesignerSkinPreview -----------------------------------------------------------
|
|
class cSkindesignerSkinPreview : public skindesignerapi::cSkindesignerOsdMenu, cInstallManager {
|
|
protected:
|
|
virtual eOSState ProcessKey(eKeys Key);
|
|
void Set(void);
|
|
const char *CheckFontInstalled(string fontName);
|
|
public:
|
|
cSkindesignerSkinPreview(string skin, skindesignerapi::cPluginStructure *plugStruct);
|
|
virtual ~cSkindesignerSkinPreview();
|
|
static void DefineTokens(skindesignerapi::cTokenContainer *tk);
|
|
void Display(void);
|
|
};
|
|
#endif //__SKINDESIGNER_SETUP_H
|