mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 17:58:31 +02:00
117 lines
3.2 KiB
C++
117 lines
3.2 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:
|
|
int numLogosPerSizeInitial;
|
|
int limitLogoCache;
|
|
int numLogosMax;
|
|
int debugImageLoading;
|
|
int rerunAmount;
|
|
int rerunDistance;
|
|
int rerunMaxChannel;
|
|
int blockFlush;
|
|
int framesPerSecond;
|
|
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(void);
|
|
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;
|
|
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);
|
|
string CheckFontInstalled(string fontName);
|
|
public:
|
|
cSkindesignerSkinPreview(string skin);
|
|
virtual ~cSkindesignerSkinPreview();
|
|
void Display(void);
|
|
};
|
|
|
|
#endif //__SKINDESIGNER_SETUP_H
|