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
|
/**
* GraphLCD plugin for the Video Disk Recorder
*
* state.h - status monitor class
*
* (c) 2001-2004 Carsten Siebholz <c.siebholz AT t-online de>
**/
#ifndef _GRAPHLCD_STATE_H_
#define _GRAPHLCD_STATE_H_
#include <stdint.h>
#include <string.h>
#include <vdr/status.h>
struct tChannelState
{
tChannelID id;
int number;
std::string str;
std::string strTmp;
};
struct tEventState
{
time_t presentTime;
std::string presentTitle;
std::string presentSubtitle;
time_t followingTime;
std::string followingTitle;
std::string followingSubtitle;
};
enum eReplayMode
{
eReplayNormal,
eReplayMusic,
eReplayDVD,
eReplayFile,
eReplayImage,
eReplayAudioCD
};
struct tReplayState
{
std::string name;
std::string loopmode;
cControl * control;
eReplayMode mode;
int current;
int currentLast;
int total;
int totalLast;
};
struct tCardState
{
int recordingCount;
std::string recordingName;
};
struct tOsdState
{
std::string currentItem;
std::vector <std::string> items;
std::string title;
std::string colorButton[4];
std::string textItem;
std::string message;
int currentItemIndex;
};
struct tVolumeState
{
int value;
uint64_t lastChange;
};
class cGraphLCDDisplay;
class cGraphLCDState : public cStatus
{
private:
cGraphLCDDisplay * mDisplay;
bool first;
bool tickUsed;
cMutex mutex;
tChannelState channel;
tEventState event;
tReplayState replay;
tCardState card[MAXDEVICES];
tOsdState osd;
tVolumeState volume;
void SetChannel(int ChannelNumber);
void GetProgramme();
protected:
virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber);
#if VDRVERSNUM < 10338
virtual void Recording(const cDevice *Device, const char *Name);
virtual void Replaying(const cControl *Control, const char *Name);
#else
virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On);
virtual void Replaying(const cControl *Control, const char *Name, const char *FileName, bool On);
#endif
virtual void SetVolume(int Volume, bool Absolute);
virtual void OsdClear();
virtual void OsdTitle(const char *Title);
virtual void OsdStatusMessage(const char *Message);
virtual void OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue);
virtual void OsdItem(const char *Text, int Index);
virtual void OsdCurrentItem(const char *Text);
virtual void OsdTextItem(const char *Text, bool Scroll);
virtual void OsdChannel(const char *Text);
virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle);
public:
cGraphLCDState(cGraphLCDDisplay * Display);
virtual ~cGraphLCDState();
void Tick();
tChannelState GetChannelState();
tEventState GetEventState();
tReplayState GetReplayState();
tCardState GetCardState(int number);
tOsdState GetOsdState();
tVolumeState GetVolumeState();
};
#endif
|