author | StephaneLenclud |
Sat, 07 Feb 2015 13:50:11 +0100 | |
changeset 32 | 2c844ef1ff4b |
parent 31 | 0a2b658e0d56 |
child 35 | 638eb0763e20 |
permissions | -rw-r--r-- |
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 |