summaryrefslogtreecommitdiff
path: root/common.h
blob: ef13be0dfd1012605ce746742d9a0899273e757e (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/*
 * $Id: common.h,v 1.8 2004/06/11 15:01:58 lordjaxom Exp $
 */

#ifndef VDR_TEXT2SKIN_COMMON_H
#define VDR_TEXT2SKIN_COMMON_H

#include <string>
#include <vector>
#include <map>
#include <vdr/osd.h>

using std::string;
using std::vector;
using std::map;

#ifdef DEBUG
#	define Dprintf(x...) fprintf(stderr, x);
#else
#	define Dprintf(x...)
#endif

// sections and items known by skin files

enum eSkinSection {
	sectionSkin,
	sectionChannelSmall,
	sectionChannel,
	sectionVolume,
	sectionReplayMode,
	sectionReplay,
	sectionMessage,
	sectionMenu,
	__SECTION_COUNT__
};

enum eSkinItem {
	itemUnknown,
	itemSkin, // item identifying the Skin itself
	itemBackground,
	itemText,
	itemScrolltext,
	itemImage,
	itemRectangle,
	itemEllipse,
	itemSlope,
	itemProgress,
	itemLogo,
	itemSymbol,
	itemMenuArea,
	itemMenuItem,
	__ITEM_COUNT__
};

enum eSkinDisplay {
	displayAlways,
	displayDateTimeF,                  // exc: text
	displayDateTime,                   // exc: text
	displayDate,                       // exc: text
	displayTime,                       // exc: text
	displayChannelNumberName,          // exc: text
	displayChannelNumber,              // exc: text
	displayChannelName,                // exc: text, logo
	displayLanguage,                   // exc: text, logo
	displayPresentDateTimeF,           // exc: text
	displayPresentStartTime,           // exc: text
	displayPresentDate,                // exc: text
	displayPresentVPSTime,             // exc: text
	displayPresentEndTime,             // exc: text
	displayPresentDuration,            // exc: text, progress
	displayPresentVPS,                 // exc: symbol
	displayPresentRunning,             // exc: symbol
	displayPresentTimer,               // exc: symbol
	displayPresentTitle,               // exc: text
	displayPresentShortText,           // exc: text
	displayPresentDescription,         // exc: text
	displayFollowingStartTime,         // exc: text, progress
	displayFollowingEndTime,           // exc: text, progress
	displayFollowingDuration,          // exc: text, progress
	displayFollowingTitle,             // exc: text
	displayFollowingShortText,         // exc: text
	displayTeletext,                   // exc: symbol
	displayAudio,                      // exc: symbol
	displayDolby,                      // exc: symbol
	displayEncrypted,                  // exc: symbol
	displayRecording,                  // exc: symbol
	displayRadio,                      // exc: symbol
	displayVolumeCurrent,              // exc: text, progress
	displayVolumeTotal,                // exc: text, progress
	displayMute,                       // exc: symbol
	displayReplayTime,                 // exc: text, progress
	displayReplayDuration,             // exc: text
	displayReplayTitle,                // exc: text
	displayReplayPrompt,               // exc: text
	displayPlay,                       // exc: symbol
	displayPause,                      // exc: symbol
	displayFastFwd,                    // exc: symbol
	displayFastRew,                    // exc: symbol
	displaySlowFwd,                    // exc: symbol
	displaySlowRew,                    // exc: symbol
	displayMessage,                    // exc: text
	displayMessageStatus,              // exc: text
	displayMessageInfo,                // exc: text
	displayMessageWarning,             // exc: text
	displayMessageError,               // exc: text
	displayMenuTitle,                  // exc: text (TODO: logo?)
	displayMenuRed,                    // exc: text
	displayMenuGreen,                  // exc: text
	displayMenuYellow,                 // exc: text
	displayMenuBlue,                   // exc: text
	displayMenuText,                   // exc: text
	displayMenuRecording,              // exc: text
	displayMenuScrollUp,               // exc: symbol
	displayMenuScrollDown,             // exc: symbol
	displayMenuItems,
	displayMenuCurrent,
	displayMenuGroups,
	__DISPLAY_COUNT__
};
	
extern const string SectionNames[__SECTION_COUNT__];
extern const string ItemNames[__ITEM_COUNT__];
extern const string DisplayNames[__DISPLAY_COUNT__];

// geometrical structures

struct POINT {
	int x, y;
	POINT &operator+=(const POINT &pt) { x += pt.x; y += pt.y; return *this; }
};

struct SIZE {
	int w, h;
};

// class forwards

class cChannel;
class cText2SkinItem;

// helper functions

const char *SkinPath(void);
const char *ChannelNumber(const cChannel *Channel, int Number);
const char *ChannelName(const cChannel *Channel, int Number);
	
bool ParseVar(const char *Text, const char *Name, eSkinItem *Value);
bool ParseVar(const char *Text, const char *Name, eSkinDisplay *Value);
bool ParseVar(const char *Text, const char *Name, int *Value);
bool ParseVar(const char *Text, const char *Name, const cFont **Value);
bool ParseVar(const char *Text, const char *Name, string &Value);
bool ParseVar(const char *Text, const char *Name, tColor **Value);
bool ParseVar(const char *Text, const char *Name, eTextAlignment *Value);

#endif // VDR_TEXT2SKIN_COMMON_H