FutabaVfd.h
changeset 8 5a9dbbc40c6b
parent 6 b1c1b2be9a1c
child 9 6b08e3e81cf3
     1.1 --- a/FutabaVfd.h	Sat Jul 12 13:15:31 2014 +0200
     1.2 +++ b/FutabaVfd.h	Thu Aug 21 21:30:38 2014 +0200
     1.3 @@ -73,145 +73,5 @@
     1.4      int iMaxSize;
     1.5      };
     1.6  
     1.7 -/**
     1.8 -*/
     1.9 -class FutabaVfd : public HidDevice
    1.10 -	{
    1.11 -public:
    1.12 -	virtual int MinBrightness() const=0;
    1.13 -	virtual int MaxBrightness() const=0;
    1.14 -	virtual void SetBrightness(int aBrightness)=0;
    1.15 -	virtual void Clear()=0;
    1.16 -	};
    1.17 -
    1.18 -
    1.19 -/**
    1.20 -*/
    1.21 -class FutabaGraphicVfd : public FutabaVfd
    1.22 -	{
    1.23 -public:
    1.24 -	virtual int WidthInPixels() const=0;
    1.25 -	virtual int HeightInPixels() const=0;
    1.26 -	virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn)=0;
    1.27 -	virtual void SetAllPixels(unsigned char aOn)=0;
    1.28 -	virtual int FrameBufferSizeInBytes() const=0;
    1.29 -	//virtual int BitBlit(unsigned char* aSrc, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const=0;
    1.30 -
    1.31 -	};
    1.32 -
    1.33 -/**
    1.34 -Common functionality between GP1212A01A and GP1212A02A
    1.35 -*/
    1.36 -class GP1212XXXX : public FutabaGraphicVfd
    1.37 -	{
    1.38 -public:
    1.39 -	//From FutabaVfd
    1.40 -    virtual int MinBrightness() const {return 0;}
    1.41 -    virtual int MaxBrightness() const {return 5;}
    1.42 -	};
    1.43 -
    1.44 -/**
    1.45 -GP1212A01A is a graphic display module using a FUTABA 256x64dots VFD.
    1.46 -The module do not include character ROM, the customer will compile the character
    1.47 -by themselves (from main system).
    1.48 -*/
    1.49 -class GP1212A01A : public GP1212XXXX
    1.50 -	{
    1.51 -public:
    1.52 -
    1.53 -
    1.54 -public:
    1.55 -    GP1212A01A();
    1.56 -    ~GP1212A01A();
    1.57 -
    1.58 -	//
    1.59 -	int Open();
    1.60 -	//From FutabaGraphicVfd
    1.61 -    virtual int WidthInPixels() const {return KGP12xWidthInPixels;}
    1.62 -    virtual int HeightInPixels() const {return KGP12xHeightInPixels;}
    1.63 -	virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn);
    1.64 -	virtual void SetAllPixels(unsigned char aPattern);
    1.65 -    virtual int FrameBufferSizeInBytes() const {return KGP12xFrameBufferSizeInBytes;}
    1.66 -    virtual void BitBlit(const BitArray& aBitmap, int aSrcWidth, int aSrcHeight, int aTargetX, int aTargetY) const;
    1.67 -	//From FutabaVfd
    1.68 -	virtual void SetBrightness(int aBrightness);
    1.69 -	virtual void Clear();
    1.70 -
    1.71 -	//Specific to GP1212A01A
    1.72 -	void SetPixelBlock(unsigned char aX, unsigned char aY, int aHeight, int aSize, unsigned char aValue);
    1.73 -    void SetPixelBlock(unsigned char aX, unsigned char aY, int aHeight, int aSize, unsigned char* aPixels);
    1.74 -    //Define display position within our display RAM
    1.75 -	void SetDisplayPosition(unsigned char aX, unsigned char aY);
    1.76 -    unsigned char DisplayPositionX() const {return iDisplayPositionX;}
    1.77 -    unsigned char DisplayPositionY() const {return iDisplayPositionY;}
    1.78 -    //
    1.79 -	void SwapBuffers();
    1.80 -    //
    1.81 -    void RequestDeviceId();
    1.82 -    void RequestFirmwareRevision();
    1.83 -    void RequestPowerSupplyStatus();
    1.84 -	//
    1.85 -	void ToggleOffScreenMode();
    1.86 -    void SetOffScreenMode(bool aOn);
    1.87 -    bool OffScreenMode() const {return iOffScreenMode;}
    1.88 -    //
    1.89 -    void SetFrameDifferencing(bool aOn){iUseFrameDifferencing=aOn;}
    1.90 -    bool FrameDifferencing() const {return iUseFrameDifferencing;}
    1.91 -    //
    1.92 -    bool RequestPending(){return iRequest!=EMiniDisplayRequestNone;}
    1.93 -    TMiniDisplayRequest CurrentRequest(){return iRequest;}
    1.94 -    void CancelRequest(){iRequest=EMiniDisplayRequestNone;}
    1.95 -    TMiniDisplayRequest AttemptRequestCompletion();
    1.96 -    FutabaVfdReport& InputReport() {return iInputReport;}
    1.97 -    bool PowerOn();
    1.98 -	char* DeviceId();
    1.99 -	char* FirmwareRevision();
   1.100 -
   1.101 -private:
   1.102 -	enum DW
   1.103 -		{
   1.104 -        DW1=0xC0,
   1.105 -        DW2=0xD0
   1.106 -		};
   1.107 -
   1.108 -	void SetDisplayPosition(DW aDw,unsigned char aX, unsigned char aY);
   1.109 -	unsigned char OffScreenY() const;
   1.110 -	void SendClearCommand();
   1.111 -	void OffScreenTranslation(unsigned char& aX, unsigned char& aY);
   1.112 -	void ResetBuffers();
   1.113 -    void SendModifiedPixelBlocks();
   1.114 -
   1.115 -private:
   1.116 -	unsigned char iDisplayPositionX;
   1.117 -	unsigned char iDisplayPositionY;
   1.118 -	///Off screen mode is the recommended default settings to avoid tearing.
   1.119 -	///Though turning it off can be useful for debugging
   1.120 -	bool iOffScreenMode;
   1.121 -    ///Frame differences algo is used to reduce USB bus traffic and improve frame rate in typical use case
   1.122 -    bool iUseFrameDifferencing;
   1.123 -	///
   1.124 -	//FutabaVfdReport iReport;
   1.125 -	///
   1.126 -	//unsigned char iFrameBuffer[256*64];
   1.127 -    BitArray* iFrameNext;
   1.128 -    BitArray* iFrameCurrent;
   1.129 -    BitArray* iFramePrevious;
   1.130 -    //
   1.131 -    BitArray* iFrameAlpha;
   1.132 -    BitArray* iFrameBeta;
   1.133 -    BitArray* iFrameGamma;
   1.134 -    //
   1.135 -    int iNeedFullFrameUpdate;
   1.136 -	//unsigned char iFrameBeta[256*64];
   1.137 -	//unsigned char *iFrontBuffer;
   1.138 -	//unsigned char *iBackBuffer;
   1.139 -    TMiniDisplayRequest iRequest;
   1.140 -    FutabaVfdReport iInputReport;
   1.141 -	//
   1.142 -	char iDeviceId[KFutabaMaxHidReportSize];
   1.143 -	char iFirmwareRevision[KFutabaMaxHidReportSize];
   1.144 -    bool iPowerOn;
   1.145 -	};
   1.146 -
   1.147  
   1.148  #endif