inc/FutabaVfd.h
changeset 25 233a997193b8
parent 23 d4e164906a1b
child 26 df50d7cb4dd0
     1.1 --- a/inc/FutabaVfd.h	Thu May 22 22:36:43 2014 +0200
     1.2 +++ b/inc/FutabaVfd.h	Sat May 24 00:43:18 2014 +0200
     1.3 @@ -7,6 +7,7 @@
     1.4  
     1.5  #include "hidapi.h"
     1.6  #include "HidDevice.h"
     1.7 +#include "BitArray.h"
     1.8  
     1.9  #ifndef MIN
    1.10  #define MIN(a,b) (((a)<(b))?(a):(b))
    1.11 @@ -29,6 +30,11 @@
    1.12  const unsigned short KFutabaVendorId = 0x1008;
    1.13  const unsigned short KFutabaProductIdGP1212A01A = 0x100C;
    1.14  const unsigned short KFutabaProductIdGP1212A02A = 0x1013; //Or is it 0x1015
    1.15 +const int KGP12xWidthInPixels = 256;
    1.16 +const int KGP12xHeightInPixels = 64;
    1.17 +const int KGP12xPixelsPerByte = 8;
    1.18 +const int KGP12xFrameBufferSizeInBytes = KGP12xWidthInPixels*KGP12xHeightInPixels/KGP12xPixelsPerByte; //256*64/8=2048
    1.19 +const int KGP12xFrameBufferPixelCount = KGP12xWidthInPixels*KGP12xHeightInPixels;
    1.20  
    1.21  //typedef struct hid_device_info HidDeviceInfo;
    1.22  
    1.23 @@ -88,6 +94,8 @@
    1.24  	virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn)=0;
    1.25  	virtual void SetAllPixels(unsigned char aOn)=0;
    1.26  	virtual int FrameBufferSizeInBytes() const=0;
    1.27 +	//virtual int BitBlit(unsigned char* aSrc, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const=0;
    1.28 +
    1.29  	};
    1.30  
    1.31  /**
    1.32 @@ -110,14 +118,16 @@
    1.33  	{
    1.34  public:
    1.35  	GP1212A01A();
    1.36 +	~GP1212A01A();
    1.37  	//
    1.38  	int Open();
    1.39  	//From FutabaGraphicVfd
    1.40 -	virtual int WidthInPixels() const {return 256;};
    1.41 -	virtual int HeightInPixels() const {return 64;};
    1.42 +	virtual int WidthInPixels() const {return KGP12xWidthInPixels;};
    1.43 +	virtual int HeightInPixels() const {return KGP12xHeightInPixels;};
    1.44  	virtual void SetPixel(unsigned char aX, unsigned char aY, bool aOn);
    1.45  	virtual void SetAllPixels(unsigned char aPattern);
    1.46 -	virtual int FrameBufferSizeInBytes() const {return 2048;}; //256*64/8
    1.47 +	virtual int FrameBufferSizeInBytes() const {return KGP12xFrameBufferSizeInBytes;};
    1.48 +	virtual void BitBlit(BitArray& aBitmap, unsigned char aSrcWidth, unsigned char aSrcHeight, unsigned char aTargetX, unsigned char aTargetY) const;
    1.49  	//From FutabaVfd
    1.50  	virtual void SetBrightness(int aBrightness);
    1.51  	virtual void Clear();
    1.52 @@ -135,6 +145,8 @@
    1.53  	//
    1.54  	void ToggleOffScreenMode();
    1.55  	bool OffScreenMode() const {return iOffScreenMode;};
    1.56 +	//
    1.57 +
    1.58  	
    1.59  private:
    1.60  	enum DW
    1.61 @@ -147,6 +159,7 @@
    1.62  	unsigned char OffScreenY() const;
    1.63  	void SendClearCommand();
    1.64  	void OffScreenTranslation(unsigned char& aX, unsigned char& aY);
    1.65 +	void ResetBuffers();
    1.66  
    1.67  private:
    1.68  	unsigned char iDisplayPositionX;
    1.69 @@ -157,7 +170,11 @@
    1.70  	///
    1.71  	//FutabaVfdReport iReport;
    1.72  	///
    1.73 -	//unsigned char iPixelBuffer[256][128];
    1.74 +	//unsigned char iFrameBuffer[256*64];
    1.75 +	BitArray* iFrameBuffer;
    1.76 +	//unsigned char iFrameBeta[256*64];
    1.77 +	//unsigned char *iFrontBuffer;
    1.78 +	//unsigned char *iBackBuffer;
    1.79  	};
    1.80  
    1.81