blob: 407f07c8eb0db756b8d7cb06f22355c3b50664f4 (
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
|
/*
* display_message.h: Display simple message
*
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
* $Id: display_message.h,v 1.2 2007-01-06 04:28:08 phintuka Exp $
*
*/
#ifndef __DISPLAY_MESSAGE_H
#define __DISPLAY_MESSAGE_H
#include <vdr/osdbase.h>
#include <vdr/skins.h>
class cDisplayMessage : public cOsdObject
{
cSkinDisplayMessage *displayMessage;
char *Message;
int Timer;
int Timeout;
public:
cDisplayMessage(const char *message, int timeout = 3)
{
displayMessage = NULL;
Message = strdup(message);
Timer = 0;
Timeout = timeout;
}
virtual ~cDisplayMessage()
{
delete displayMessage;
free(Message);
}
void Update(const char *message)
{
Timer = 0;
free(Message);
Message = strdup(message);
Show();
}
virtual eOSState ProcessKey(eKeys Key)
{
if(Key == kNone && Timer++ > Timeout)
return osEnd;
if(Key != kNone) {
// put back and close
cRemote::Put(Key, true);
return osEnd;
}
return osContinue;
}
virtual void Show(void)
{
if(!displayMessage)
displayMessage = Skins.Current()->DisplayMessage();
displayMessage->SetMessage(mtInfo, Message);
displayMessage->Flush();
}
};
#endif
|