Display.h
author sl
Mon, 25 Aug 2014 22:05:30 +0200
changeset 11 2d749a2bea34
parent 10 1c3a4964a5bd
child 12 62356e3ecb84
permissions -rw-r--r--
Now having only one generic request API.
That will help us support different display types.
sl@8
     1
//
sl@8
     2
//
sl@8
     3
//
sl@8
     4
sl@8
     5
#ifndef DISPLAY_H
sl@8
     6
#define DISPLAY_H
sl@8
     7
sl@8
     8
/**
sl@8
     9
Define an interface to some basic display functionality
sl@8
    10
*/
sl@9
    11
class DisplayBase
sl@8
    12
	{
sl@8
    13
public:
sl@11
    14
	DisplayBase():iRequest(EMiniDisplayRequestNone){}
sl@10
    15
	virtual ~DisplayBase(){};
sl@10
    16
	//
sl@9
    17
	virtual int Open()=0;
sl@9
    18
	virtual void Close()=0;
sl@9
    19
	//
sl@8
    20
	virtual int MinBrightness() const=0;
sl@8
    21
	virtual int MaxBrightness() const=0;
sl@8
    22
	virtual void SetBrightness(int aBrightness)=0;
sl@8
    23
	virtual void Clear()=0;
sl@10
    24
	virtual void Fill()=0;
sl@10
    25
	//
sl@10
    26
	virtual void SwapBuffers()=0;
sl@11
    27
sl@11
    28
	//Request management
sl@11
    29
	virtual void Request(TMiniDisplayRequest /*aRequest*/){ /*No request supported by default*/ };
sl@11
    30
	virtual TMiniDisplayRequest AttemptRequestCompletion()=0;
sl@11
    31
	
sl@11
    32
	virtual TMiniDisplayRequest CurrentRequest(){return iRequest;}
sl@11
    33
    virtual void CancelRequest(){iRequest=EMiniDisplayRequestNone;}
sl@11
    34
	virtual bool RequestPending(){return iRequest!=EMiniDisplayRequestNone;}
sl@11
    35
sl@11
    36
protected:
sl@11
    37
	void SetRequest(TMiniDisplayRequest aRequest) { iRequest=aRequest; }
sl@11
    38
sl@11
    39
private:
sl@11
    40
	TMiniDisplayRequest iRequest;
sl@8
    41
	};
sl@8
    42
sl@8
    43
sl@8
    44
/**
sl@8
    45
*/
sl@8
    46
class GraphicDisplay : public DisplayBase
sl@8
    47
	{
sl@8
    48
public:
sl@8
    49
	virtual int WidthInPixels() const=0;
sl@8
    50
	virtual int HeightInPixels() const=0;
sl@8
    51
	virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn)=0;
sl@8
    52
	virtual void SetAllPixels(unsigned char aOn)=0;
sl@8
    53
	virtual int FrameBufferSizeInBytes() const=0;
sl@8
    54
	//virtual int BitBlit(unsigned char* aSrc, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const=0;
sl@8
    55
sl@8
    56
	};
sl@8
    57
sl@8
    58
sl@8
    59
sl@8
    60
#endif