Display.h
author sl
Tue, 26 Aug 2014 19:24:57 +0200
changeset 12 62356e3ecb84
parent 11 2d749a2bea34
child 13 70907579a3b6
permissions -rw-r--r--
Request results getters moved to display base.
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@12
     8
const int KMaxDisplayStringLength = 256;
sl@12
     9
sl@8
    10
/**
sl@8
    11
Define an interface to some basic display functionality
sl@8
    12
*/
sl@9
    13
class DisplayBase
sl@8
    14
	{
sl@8
    15
public:
sl@12
    16
	DisplayBase():iRequest(EMiniDisplayRequestNone),iPowerOn(false){	    
sl@12
    17
	iDeviceId[0]=0;
sl@12
    18
	iFirmwareRevision[0]=0;
sl@12
    19
}
sl@10
    20
	virtual ~DisplayBase(){};
sl@10
    21
	//
sl@9
    22
	virtual int Open()=0;
sl@9
    23
	virtual void Close()=0;
sl@9
    24
	//
sl@8
    25
	virtual int MinBrightness() const=0;
sl@8
    26
	virtual int MaxBrightness() const=0;
sl@8
    27
	virtual void SetBrightness(int aBrightness)=0;
sl@8
    28
	virtual void Clear()=0;
sl@10
    29
	virtual void Fill()=0;
sl@10
    30
	//
sl@10
    31
	virtual void SwapBuffers()=0;
sl@11
    32
sl@11
    33
	//Request management
sl@11
    34
	virtual void Request(TMiniDisplayRequest /*aRequest*/){ /*No request supported by default*/ };
sl@11
    35
	virtual TMiniDisplayRequest AttemptRequestCompletion()=0;
sl@11
    36
	
sl@11
    37
	virtual TMiniDisplayRequest CurrentRequest(){return iRequest;}
sl@11
    38
    virtual void CancelRequest(){iRequest=EMiniDisplayRequestNone;}
sl@11
    39
	virtual bool RequestPending(){return iRequest!=EMiniDisplayRequestNone;}
sl@11
    40
sl@12
    41
    virtual bool PowerOn()	{return iPowerOn;}
sl@12
    42
	virtual char* DeviceId() {return iDeviceId;}
sl@12
    43
	virtual char* FirmwareRevision() {return iFirmwareRevision;}
sl@12
    44
sl@11
    45
protected:
sl@11
    46
	void SetRequest(TMiniDisplayRequest aRequest) { iRequest=aRequest; }
sl@11
    47
sl@12
    48
protected:
sl@12
    49
	char iDeviceId[KMaxDisplayStringLength];
sl@12
    50
	char iFirmwareRevision[KMaxDisplayStringLength];
sl@12
    51
    bool iPowerOn;
sl@12
    52
sl@12
    53
sl@11
    54
private:
sl@11
    55
	TMiniDisplayRequest iRequest;
sl@8
    56
	};
sl@8
    57
sl@8
    58
sl@8
    59
/**
sl@8
    60
*/
sl@8
    61
class GraphicDisplay : public DisplayBase
sl@8
    62
	{
sl@8
    63
public:
sl@8
    64
	virtual int WidthInPixels() const=0;
sl@8
    65
	virtual int HeightInPixels() const=0;
sl@8
    66
	virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn)=0;
sl@8
    67
	virtual void SetAllPixels(unsigned char aOn)=0;
sl@8
    68
	virtual int FrameBufferSizeInBytes() const=0;
sl@8
    69
	//virtual int BitBlit(unsigned char* aSrc, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const=0;
sl@8
    70
sl@8
    71
	};
sl@8
    72
sl@8
    73
sl@8
    74
sl@8
    75
#endif