diff -r 8bac7aac665c -r 5a9dbbc40c6b FutabaVfd.h --- a/FutabaVfd.h Sat Jul 12 13:15:31 2014 +0200 +++ b/FutabaVfd.h Thu Aug 21 21:30:38 2014 +0200 @@ -73,145 +73,5 @@ int iMaxSize; }; -/** -*/ -class FutabaVfd : public HidDevice - { -public: - virtual int MinBrightness() const=0; - virtual int MaxBrightness() const=0; - virtual void SetBrightness(int aBrightness)=0; - virtual void Clear()=0; - }; - - -/** -*/ -class FutabaGraphicVfd : public FutabaVfd - { -public: - virtual int WidthInPixels() const=0; - virtual int HeightInPixels() const=0; - virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn)=0; - virtual void SetAllPixels(unsigned char aOn)=0; - virtual int FrameBufferSizeInBytes() const=0; - //virtual int BitBlit(unsigned char* aSrc, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const=0; - - }; - -/** -Common functionality between GP1212A01A and GP1212A02A -*/ -class GP1212XXXX : public FutabaGraphicVfd - { -public: - //From FutabaVfd - virtual int MinBrightness() const {return 0;} - virtual int MaxBrightness() const {return 5;} - }; - -/** -GP1212A01A is a graphic display module using a FUTABA 256x64dots VFD. -The module do not include character ROM, the customer will compile the character -by themselves (from main system). -*/ -class GP1212A01A : public GP1212XXXX - { -public: - - -public: - GP1212A01A(); - ~GP1212A01A(); - - // - int Open(); - //From FutabaGraphicVfd - virtual int WidthInPixels() const {return KGP12xWidthInPixels;} - virtual int HeightInPixels() const {return KGP12xHeightInPixels;} - virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn); - virtual void SetAllPixels(unsigned char aPattern); - virtual int FrameBufferSizeInBytes() const {return KGP12xFrameBufferSizeInBytes;} - virtual void BitBlit(const BitArray& aBitmap, int aSrcWidth, int aSrcHeight, int aTargetX, int aTargetY) const; - //From FutabaVfd - virtual void SetBrightness(int aBrightness); - virtual void Clear(); - - //Specific to GP1212A01A - void SetPixelBlock(unsigned char aX, unsigned char aY, int aHeight, int aSize, unsigned char aValue); - void SetPixelBlock(unsigned char aX, unsigned char aY, int aHeight, int aSize, unsigned char* aPixels); - //Define display position within our display RAM - void SetDisplayPosition(unsigned char aX, unsigned char aY); - unsigned char DisplayPositionX() const {return iDisplayPositionX;} - unsigned char DisplayPositionY() const {return iDisplayPositionY;} - // - void SwapBuffers(); - // - void RequestDeviceId(); - void RequestFirmwareRevision(); - void RequestPowerSupplyStatus(); - // - void ToggleOffScreenMode(); - void SetOffScreenMode(bool aOn); - bool OffScreenMode() const {return iOffScreenMode;} - // - void SetFrameDifferencing(bool aOn){iUseFrameDifferencing=aOn;} - bool FrameDifferencing() const {return iUseFrameDifferencing;} - // - bool RequestPending(){return iRequest!=EMiniDisplayRequestNone;} - TMiniDisplayRequest CurrentRequest(){return iRequest;} - void CancelRequest(){iRequest=EMiniDisplayRequestNone;} - TMiniDisplayRequest AttemptRequestCompletion(); - FutabaVfdReport& InputReport() {return iInputReport;} - bool PowerOn(); - char* DeviceId(); - char* FirmwareRevision(); - -private: - enum DW - { - DW1=0xC0, - DW2=0xD0 - }; - - void SetDisplayPosition(DW aDw,unsigned char aX, unsigned char aY); - unsigned char OffScreenY() const; - void SendClearCommand(); - void OffScreenTranslation(unsigned char& aX, unsigned char& aY); - void ResetBuffers(); - void SendModifiedPixelBlocks(); - -private: - unsigned char iDisplayPositionX; - unsigned char iDisplayPositionY; - ///Off screen mode is the recommended default settings to avoid tearing. - ///Though turning it off can be useful for debugging - bool iOffScreenMode; - ///Frame differences algo is used to reduce USB bus traffic and improve frame rate in typical use case - bool iUseFrameDifferencing; - /// - //FutabaVfdReport iReport; - /// - //unsigned char iFrameBuffer[256*64]; - BitArray* iFrameNext; - BitArray* iFrameCurrent; - BitArray* iFramePrevious; - // - BitArray* iFrameAlpha; - BitArray* iFrameBeta; - BitArray* iFrameGamma; - // - int iNeedFullFrameUpdate; - //unsigned char iFrameBeta[256*64]; - //unsigned char *iFrontBuffer; - //unsigned char *iBackBuffer; - TMiniDisplayRequest iRequest; - FutabaVfdReport iInputReport; - // - char iDeviceId[KFutabaMaxHidReportSize]; - char iFirmwareRevision[KFutabaMaxHidReportSize]; - bool iPowerOn; - }; - #endif