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