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
|
/*
* iMON LCD plugin for VDR (C++)
*
* (C) 2009 Andreas Brachold <vdr07 AT deltab de>
*
* This iMON LCD plugin is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published
* by the Free Software Foundation, version 3 of the License.
*
* See the files README and COPYING for details.
*
*/
#ifndef __IMON_WATCH_H
#define __IMON_WATCH_H
#include <vdr/thread.h>
#include <vdr/status.h>
#include "imon.h"
enum eWatchMode {
eUndefined,
eLiveTV,
eReplayNormal,
eReplayMusic,
eReplayDVD,
eReplayFile,
eReplayImage,
eReplayAudioCD
};
enum eReplayState {
eReplayNone,
eReplayPlay,
eReplayPaused,
eReplayForward1,
eReplayForward2,
eReplayForward3,
eReplayBackward1,
eReplayBackward2,
eReplayBackward3
};
enum eReplayMode {
eReplayModeNormal,
eReplayModeShuffle,
eReplayModeRepeat,
eReplayModeRepeatShuffle,
};
enum eVideoMode {
eVideoNone,
eVideoMPG,
eVideoDivX,
eVideoXviD,
eVideoWMV
};
enum eAudioMode {
eAudioNone = 0,
eAudioMPG = 1 << 0,
eAudioAC3 = 1 << 1,
eAudioDTS = 1 << 2,
eAudioWMA = 1 << 3,
eAudioMP3 = 1 << 4,
eAudioOGG = 1 << 5,
eAudioWAV = 1 << 6
};
class ciMonWatch
: public ciMonLCD
, protected cThread {
private:
cMutex mutex;
volatile bool m_bShutdown;
eWatchMode m_eWatchMode;
eVideoMode m_eVideoMode;
int m_eAudioMode;
int m_nScrollOffset;
bool m_bScrollBackward;
bool m_bUpdateScreen;
int m_nCardIsRecording[16];
const cControl *m_pControl;
tChannelID chID;
tEventID chEventID;
time_t chPresentTime;
time_t chFollowingTime;
cString* chName;
cString* chPresentTitle;
cString* chPresentShortTitle;
int m_nLastVolume;
bool m_bVolumeMute;
cString* osdItem;
cString* osdMessage;
eReplayMode m_eReplayMode;
cString* replayTitle;
cString* replayShortTitle;
cString* replayTitleLast;
protected:
virtual void Action(void);
bool Program();
bool Replay();
bool RenderScreen();
eReplayState ReplayMode() const;
bool ReplayPosition(int ¤t, int &total) const;
public:
ciMonWatch();
virtual ~ciMonWatch();
virtual int open(const char* szDevice, eProtocol pro);
virtual void close ();
void Replaying(const cControl *pControl, const char *szName, const char *szFileName, bool bOn);
void Recording(const cDevice *pDevice, const char *szName, const char *szFileName, bool bOn);
void Channel(int nChannelNumber);
bool Volume(int nVolume, bool bAbsolute);
void OsdClear();
void OsdCurrentItem(const char *sz);
void OsdStatusMessage(const char *sz);
virtual bool SetFont(const char *szFont);
};
#endif
|