Display.h
author sl
Sun, 31 Aug 2014 18:33:31 +0200
changeset 16 42ba42be810d
parent 15 105f2c0d3cf1
child 17 591e9f922c63
permissions -rw-r--r--
Adding support for power on/off.
     1 //
     2 //
     3 //
     4 
     5 #ifndef DISPLAY_H
     6 #define DISPLAY_H
     7 
     8 #include "HidDevice.h"
     9 const int KMaxDisplayStringLength = 256;
    10 
    11 /**
    12 Define an interface to some basic display functionality
    13 */
    14 class DisplayBase: public HidDevice
    15 	{
    16 public:
    17 	DisplayBase():iRequest(EMiniDisplayRequestNone),iPowerOn(false)
    18 		{	    
    19 		iDeviceId[0]=0;
    20 		iFirmwareRevision[0]=0;
    21 		}
    22 
    23 	virtual ~DisplayBase(){};
    24 	//
    25 	virtual int Open()=0;
    26 	virtual void Close()=0;
    27 	//
    28 	virtual int MinBrightness() const=0;
    29 	virtual int MaxBrightness() const=0;
    30 	virtual void SetBrightness(int aBrightness)=0;
    31 	virtual void Clear()=0;
    32 	virtual void Fill()=0;
    33 	//
    34 	virtual void SwapBuffers()=0;
    35 
    36 	//Request management
    37 	virtual void Request(TMiniDisplayRequest /*aRequest*/){ /*No request supported by default*/ };
    38 	virtual TMiniDisplayRequest AttemptRequestCompletion()=0;
    39 	
    40 	virtual TMiniDisplayRequest CurrentRequest(){return iRequest;}
    41     virtual void CancelRequest(){iRequest=EMiniDisplayRequestNone;}
    42 	virtual bool RequestPending(){return iRequest!=EMiniDisplayRequestNone;}
    43 
    44     virtual bool IsPowerOn()	{return iPowerOn;}
    45 	virtual char* DeviceId() {return iDeviceId;}
    46 	virtual char* FirmwareRevision() {return iFirmwareRevision;}
    47 
    48 	virtual void TurnPowerOn(){}
    49 	virtual void TurnPowerOff(){}
    50 	virtual bool SupportPowerOnOff(){return false;} 
    51 
    52 protected:
    53 	void SetRequest(TMiniDisplayRequest aRequest) { iRequest=aRequest; }
    54 
    55 protected:
    56 	char iDeviceId[KMaxDisplayStringLength];
    57 	char iFirmwareRevision[KMaxDisplayStringLength];
    58     bool iPowerOn;
    59 
    60 
    61 private:
    62 	TMiniDisplayRequest iRequest;
    63 	};
    64 
    65 
    66 /**
    67 */
    68 class GraphicDisplay : public DisplayBase
    69 	{
    70 public:
    71 	virtual int WidthInPixels() const=0;
    72 	virtual int HeightInPixels() const=0;
    73 	virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn)=0;
    74 	virtual void SetAllPixels(unsigned char aOn)=0;
    75 	virtual int FrameBufferSizeInBytes() const=0;
    76 	//virtual int BitBlit(unsigned char* aSrc, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const=0;
    77 
    78 	};
    79 
    80 
    81 
    82 #endif