aboutsummaryrefslogtreecommitdiff
path: root/lib/gdi/lcd.h
blob: 567d06494273dd46b0700e1a385ed290b0ed3119 (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
#ifndef DISABLE_LCD

#ifndef __lcd_h
#define __lcd_h

#include <asm/types.h>
#include <lib/gdi/esize.h>
#include <lib/gdi/erect.h>

#define LCD_CONTRAST_MIN 0
#define LCD_CONTRAST_MAX 63
#define LCD_BRIGHTNESS_MIN 0
#define LCD_BRIGHTNESS_MAX 255

class eLCD
{
protected:
	eSize res;
	unsigned char *_buffer;
	int lcdfd;
	int _stride;
	int locked;
public:
	int lock();
	void unlock();

	eLCD(eSize size);
	virtual ~eLCD();

	__u8 *buffer() { return (__u8*)_buffer; }
	int stride() { return _stride; }
	eSize size() { return res; }
	
	virtual void update()=0;
};

class eDBoxLCD: public eLCD
{
	static eDBoxLCD *instance;
	unsigned char inverted;
public:
	static eDBoxLCD *getInstance();
	int switchLCD(int state);
	int setLCDParameter(int brightness, int contrast);
	void setInverted( unsigned char );
	eDBoxLCD();
	~eDBoxLCD();
	void update();
};

#endif

#endif //DISABLE_LCD