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
|
/*
* iMON LCD plugin to VDR (C++)
*
* (C) 2009 Andreas Brachold <vdr07 AT deltab de>
*
* This code is distributed under the terms and conditions of the
* GNU GENERAL PUBLIC LICENSE. See the file 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;
bool m_bShowOsdMessage;
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 StatusMessage(const char *szMessage);
virtual bool SetFont(const char *szFont);
};
#endif
|