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