summaryrefslogtreecommitdiff
path: root/libskindesignerapi/skindesignerapi.h
blob: 64155aeb44e211ae554701ad0bb3c9d876d858f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#ifndef __LIBSKINDESIGNERAPI_SERVICES_H
#define __LIBSKINDESIGNERAPI_SERVICES_H

using namespace std;

#include <string>
#include <map>
#include <vector>
#include <vdr/osdbase.h>
#include "pluginstructure.h"
#include "tokencontainer.h"

namespace skindesignerapi {

enum eMenuType {
    mtList,
    mtText
};

class ISDDisplayMenu : public cSkinDisplayMenu {
public:
    virtual void SetTitle(const char *Title) = 0;
    virtual void SetPluginMenu(int plugId, int menuId, int type, bool init) = 0;
    virtual bool SetItemPlugin(cTokenContainer *tk, int Index, bool Current, bool Selectable) = 0;
    virtual bool SetPluginText(cTokenContainer *tk) = 0;
};

class ISkinDisplayPlugin {
public:
    virtual ~ISkinDisplayPlugin(void) {};
    virtual bool InitOsd(void) = 0;
    virtual void CloseOsd(void) = 0;
    virtual void Deactivate(int viewId, bool hide) = 0;
    virtual void Activate(int viewId) = 0;
    virtual void SetViewElementTokens(int id, int viewId, skindesignerapi::cTokenContainer *tk) = 0;
    virtual void ClearViewElement(int id, int viewId) = 0;
    virtual void DisplayViewElement(int id, int viewId) = 0;
    virtual void SetGrid(long id, int viewId, int viewGridId,  double x, double y, double width, double height, skindesignerapi::cTokenContainer *tk) = 0;
    virtual void SetGridCurrent(long id, int viewId, int viewGridId, bool current) = 0;
    virtual void DeleteGrid(long id, int viewId, int viewGridId) = 0;
    virtual void DisplayGrids(int viewId, int viewGridId) = 0;
    virtual void ClearGrids(int viewId, int viewGridId) = 0;
    virtual void SetTabTokens(int viewId, skindesignerapi::cTokenContainer *tk) = 0;
    virtual void TabLeft(int viewId) = 0;
    virtual void TabRight(int viewId) = 0;
    virtual void TabUp(int viewId) = 0;
    virtual void TabDown(int viewId) = 0;
    virtual void DisplayTabs(int viewId) = 0;
    virtual void ClearTab(int viewId) = 0;
    virtual void Flush(void) = 0;
    virtual bool ChannelLogoExists(string channelId) = 0;
    virtual string GetEpgImagePath(void) = 0;
};

class SkindesignerAPI {
private:
    static SkindesignerAPI* skindesigner;
protected:
    SkindesignerAPI(void);
    virtual ~SkindesignerAPI(void);
    virtual bool ServiceRegisterPlugin(cPluginStructure *plugStructure) = 0;
    virtual ISDDisplayMenu *ServiceGetDisplayMenu(void) = 0;
    virtual ISkinDisplayPlugin *ServiceGetDisplayPlugin(int plugId) = 0;
public:
    static bool ServiceAvailable(void);
    static bool RegisterPlugin(cPluginStructure *plugStructure);
    static ISDDisplayMenu *GetDisplayMenu(void);
    static ISkinDisplayPlugin *GetDisplayPlugin(int plugId);
};

}

#endif //__LIBSKINDESIGNERAPI_SERVICES_H