Display.h
author StephaneLenclud
Sat, 07 Feb 2015 13:50:11 +0100
changeset 32 2c844ef1ff4b
parent 31 0a2b658e0d56
child 35 638eb0763e20
permissions -rw-r--r--
MDM166AA: Improved icon APIs.
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
StephaneLenclud@32
     8
#include "MiniDisplay.h"
sl@15
     9
#include "HidDevice.h"
sl@12
    10
const int KMaxDisplayStringLength = 256;
sl@12
    11
sl@8
    12
/**
sl@8
    13
Define an interface to some basic display functionality
sl@8
    14
*/
sl@15
    15
class DisplayBase: public HidDevice
sl@8
    16
	{
sl@8
    17
public:
sl@13
    18
	DisplayBase():iRequest(EMiniDisplayRequestNone),iPowerOn(false)
sl@13
    19
		{	    
sl@13
    20
		iDeviceId[0]=0;
sl@13
    21
		iFirmwareRevision[0]=0;
sl@13
    22
		}
sl@13
    23
sl@10
    24
	virtual ~DisplayBase(){};
sl@10
    25
	//
sl@9
    26
	virtual int Open()=0;
sl@9
    27
	virtual void Close()=0;
sl@9
    28
	//
sl@8
    29
	virtual int MinBrightness() const=0;
sl@8
    30
	virtual int MaxBrightness() const=0;
sl@8
    31
	virtual void SetBrightness(int aBrightness)=0;
StephaneLenclud@29
    32
	//
sl@8
    33
	virtual void Clear()=0;
sl@10
    34
	virtual void Fill()=0;
sl@10
    35
	//
sl@10
    36
	virtual void SwapBuffers()=0;
sl@11
    37
sl@11
    38
	//Request management
sl@11
    39
	virtual void Request(TMiniDisplayRequest /*aRequest*/){ /*No request supported by default*/ };
StephaneLenclud@29
    40
	virtual TMiniDisplayRequest AttemptRequestCompletion(){return EMiniDisplayRequestNone;};
sl@11
    41
	
sl@11
    42
	virtual TMiniDisplayRequest CurrentRequest(){return iRequest;}
sl@11
    43
    virtual void CancelRequest(){iRequest=EMiniDisplayRequestNone;}
sl@11
    44
	virtual bool RequestPending(){return iRequest!=EMiniDisplayRequestNone;}
sl@11
    45
sl@16
    46
    virtual bool IsPowerOn()	{return iPowerOn;}
sl@12
    47
	virtual char* DeviceId() {return iDeviceId;}
sl@12
    48
	virtual char* FirmwareRevision() {return iFirmwareRevision;}
sl@12
    49
sl@16
    50
	virtual void TurnPowerOn(){}
sl@16
    51
	virtual void TurnPowerOff(){}
sl@17
    52
	virtual bool SupportPowerOnOff(){return false;}
sl@17
    53
sl@17
    54
	virtual void ShowClock(){}
sl@17
    55
	virtual void HideClock(){}
sl@17
    56
	virtual bool SupportClock(){return false;}
sl@16
    57
StephaneLenclud@31
    58
	//Icon management
StephaneLenclud@31
    59
	//Icon support queries return the number of segments an icon supports.
StephaneLenclud@32
    60
	virtual int IconCount(TMiniDisplayIconType /*aIcon*/){return 0;}
StephaneLenclud@32
    61
	virtual int IconStatusCount(TMiniDisplayIconType /*aIcon*/){return 0;}
StephaneLenclud@32
    62
	virtual void SetIconStatus(TMiniDisplayIconType /*aIcon*/, int /*aIndex*/, int /*aStatus*/){}
StephaneLenclud@31
    63
sl@11
    64
protected:
sl@11
    65
	void SetRequest(TMiniDisplayRequest aRequest) { iRequest=aRequest; }
sl@11
    66
sl@12
    67
protected:
sl@12
    68
	char iDeviceId[KMaxDisplayStringLength];
sl@12
    69
	char iFirmwareRevision[KMaxDisplayStringLength];
sl@12
    70
    bool iPowerOn;
sl@12
    71
sl@12
    72
sl@11
    73
private:
sl@11
    74
	TMiniDisplayRequest iRequest;
sl@8
    75
	};
sl@8
    76
sl@8
    77
sl@8
    78
/**
sl@8
    79
*/
sl@8
    80
class GraphicDisplay : public DisplayBase
sl@8
    81
	{
sl@8
    82
public:
sl@8
    83
	virtual int WidthInPixels() const=0;
sl@8
    84
	virtual int HeightInPixels() const=0;
sl@22
    85
	virtual void SetPixel(unsigned char aX, unsigned char aY, unsigned int aPixel)=0;
sl@8
    86
	virtual void SetAllPixels(unsigned char aOn)=0;
sl@8
    87
	virtual int FrameBufferSizeInBytes() const=0;
sl@8
    88
	//virtual int BitBlit(unsigned char* aSrc, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const=0;
sl@8
    89
sl@8
    90
	};
sl@8
    91
sl@8
    92
sl@8
    93
sl@8
    94
#endif