blob: ccdfe74e720f62771be0153aa7beaee980d127b6 (
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
|
/*
* osd.h: Xinelib On Screen Display control
*
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
* $Id: osd.h,v 1.1 2006-06-03 09:50:54 phintuka Exp $
*
*/
#ifndef __XINELIB_OSD_H
#define __XINELIB_OSD_H
#include <vdr/config.h>
#include <vdr/osd.h>
#include <vdr/thread.h> // cMutex
#include <vdr/tools.h> // cListObject
class cXinelibDevice;
class cXinelibOsd : public cOsd, public cListObject
{
private:
cXinelibOsd();
cXinelibOsd(cXinelibOsd&);
cXinelibDevice *m_Device;
protected:
cMutex m_Lock;
bool m_IsVisible;
bool m_Shown;
virtual eOsdError CanHandleAreas(const tArea *Areas, int NumAreas);
virtual eOsdError SetAreas(const tArea *Areas, int NumAreas);
virtual void Flush(void);
// Messages from cXinelibOsdProvider
void Show(void);
void Hide(void);
void Refresh(void);
friend class cXinelibOsdProvider;
public:
cXinelibOsd(cXinelibDevice *Device, int x, int y);
virtual ~cXinelibOsd();
};
class cXinelibOsdProvider : public cOsdProvider
{
protected:
cXinelibDevice *m_Device;
static cList<cXinelibOsd> m_OsdStack;
static cMutex m_Lock;
// Messages from cXinelibOsd
static void OsdClosing(cXinelibOsd *Osd);
static void OsdClosed(cXinelibOsd *Osd);
friend class cXinelibOsd;
public:
cXinelibOsdProvider(cXinelibDevice *Device);
virtual ~cXinelibOsdProvider();
virtual cOsd *CreateOsd(int Left, int Top);
static void RefreshOsd(void);
};
#endif //__XINELIB_OSD_H
|