Display.h
author StephaneLenclud
Thu, 05 Feb 2015 22:26:15 +0100
changeset 31 0a2b658e0d56
parent 29 9b44c6e1651c
child 32 2c844ef1ff4b
permissions -rw-r--r--
MDM166AA: Adding icon support.
     1 //
     2 //
     3 //
     4 
     5 #ifndef DISPLAY_H
     6 #define DISPLAY_H
     7 
     8 
     9 #include "HidDevice.h"
    10 const int KMaxDisplayStringLength = 256;
    11 
    12 /**
    13 Define an interface to some basic display functionality
    14 */
    15 class DisplayBase: public HidDevice
    16 	{
    17 public:
    18 	DisplayBase():iRequest(EMiniDisplayRequestNone),iPowerOn(false)
    19 		{	    
    20 		iDeviceId[0]=0;
    21 		iFirmwareRevision[0]=0;
    22 		}
    23 
    24 	virtual ~DisplayBase(){};
    25 	//
    26 	virtual int Open()=0;
    27 	virtual void Close()=0;
    28 	//
    29 	virtual int MinBrightness() const=0;
    30 	virtual int MaxBrightness() const=0;
    31 	virtual void SetBrightness(int aBrightness)=0;
    32 	//
    33 	virtual void Clear()=0;
    34 	virtual void Fill()=0;
    35 	//
    36 	virtual void SwapBuffers()=0;
    37 
    38 	//Request management
    39 	virtual void Request(TMiniDisplayRequest /*aRequest*/){ /*No request supported by default*/ };
    40 	virtual TMiniDisplayRequest AttemptRequestCompletion(){return EMiniDisplayRequestNone;};
    41 	
    42 	virtual TMiniDisplayRequest CurrentRequest(){return iRequest;}
    43     virtual void CancelRequest(){iRequest=EMiniDisplayRequestNone;}
    44 	virtual bool RequestPending(){return iRequest!=EMiniDisplayRequestNone;}
    45 
    46     virtual bool IsPowerOn()	{return iPowerOn;}
    47 	virtual char* DeviceId() {return iDeviceId;}
    48 	virtual char* FirmwareRevision() {return iFirmwareRevision;}
    49 
    50 	virtual void TurnPowerOn(){}
    51 	virtual void TurnPowerOff(){}
    52 	virtual bool SupportPowerOnOff(){return false;}
    53 
    54 	virtual void ShowClock(){}
    55 	virtual void HideClock(){}
    56 	virtual bool SupportClock(){return false;}
    57 
    58 	//Icon management
    59 	//Icon support queries return the number of segments an icon supports.
    60 	virtual int IconNetworkCount(){return 0;}
    61 	virtual int IconEmailCount(){return 0;}
    62 	virtual int IconMuteCount(){return 0;}
    63 	virtual int IconVolumeCount(){return 0;}
    64 	virtual int IconPlayCount(){return 0;}
    65 	virtual int IconPauseCount(){return 0;}
    66 	virtual int IconRecordingCount(){return 0;}
    67 	//
    68 	virtual void SetIconNetwork(int /*aIndex*/, int /*aStatus*/){}
    69 	virtual void SetIconEmail(int /*aIndex*/, int /*aStatus*/){}
    70 	virtual void SetIconMute(int /*aIndex*/, int /*aStatus*/){}
    71 	virtual void SetIconVolume(int /*aIndex*/, int /*aStatus*/){}
    72 	virtual void SetIconPlay(int /*aIndex*/, int /*aStatus*/){}
    73 	virtual void SetIconPause(int /*aIndex*/, int /*aStatus*/){}
    74 	virtual void SetIconRecording(int /*aIndex*/, int /*aStatus*/){}
    75 
    76 protected:
    77 	void SetRequest(TMiniDisplayRequest aRequest) { iRequest=aRequest; }
    78 
    79 protected:
    80 	char iDeviceId[KMaxDisplayStringLength];
    81 	char iFirmwareRevision[KMaxDisplayStringLength];
    82     bool iPowerOn;
    83 
    84 
    85 private:
    86 	TMiniDisplayRequest iRequest;
    87 	};
    88 
    89 
    90 /**
    91 */
    92 class GraphicDisplay : public DisplayBase
    93 	{
    94 public:
    95 	virtual int WidthInPixels() const=0;
    96 	virtual int HeightInPixels() const=0;
    97 	virtual void SetPixel(unsigned char aX, unsigned char aY, unsigned int aPixel)=0;
    98 	virtual void SetAllPixels(unsigned char aOn)=0;
    99 	virtual int FrameBufferSizeInBytes() const=0;
   100 	//virtual int BitBlit(unsigned char* aSrc, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const=0;
   101 
   102 	};
   103 
   104 
   105 
   106 #endif