diff options
Diffstat (limited to 'glcddrivers')
43 files changed, 129 insertions, 278 deletions
diff --git a/glcddrivers/Makefile b/glcddrivers/Makefile index a309b85..d9f5fc8 100644 --- a/glcddrivers/Makefile +++ b/glcddrivers/Makefile @@ -37,10 +37,6 @@ ifeq ($(shell pkg-config --exists libusb && echo 1), 1) endif -### Inner graphlcd-base dependencies -LIBS += -L../glcdgraphics -lglcdgraphics - - ### Implicit rules: %.o: %.c diff --git a/glcddrivers/avrctl.c b/glcddrivers/avrctl.c index 1f5d155..2261d95 100644 --- a/glcddrivers/avrctl.c +++ b/glcddrivers/avrctl.c @@ -51,10 +51,8 @@ const int kBufferHeight = 128; cDriverAvrCtl::cDriverAvrCtl(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - port = new cSerialPort(); //width = config->width; @@ -65,7 +63,6 @@ cDriverAvrCtl::cDriverAvrCtl(cDriverConfig * config) cDriverAvrCtl::~cDriverAvrCtl() { delete port; - delete oldConfig; } int cDriverAvrCtl::Init() @@ -190,7 +187,7 @@ void cDriverAvrCtl::SetPixel(int x, int y, uint32_t data) } int offset = 7 - (y % 8); - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) newLCD[x][y / 8] |= (1 << offset); else newLCD[x][y / 8] &= ( 0xFF ^ (1 << offset) ); diff --git a/glcddrivers/avrctl.h b/glcddrivers/avrctl.h index 53a8c2b..a7ecb42 100644 --- a/glcddrivers/avrctl.h +++ b/glcddrivers/avrctl.h @@ -27,8 +27,6 @@ private: cSerialPort * port; unsigned char ** newLCD; // wanted state unsigned char ** oldLCD; // current state - cDriverConfig * config; - cDriverConfig * oldConfig; int refreshCounter; int WaitForAck(void); diff --git a/glcddrivers/ax206dpf.c b/glcddrivers/ax206dpf.c index ce5b15d..9ff2c39 100644 --- a/glcddrivers/ax206dpf.c +++ b/glcddrivers/ax206dpf.c @@ -72,14 +72,8 @@ static int lastbrightness; cDriverAX206DPF::cDriverAX206DPF(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); -} - -cDriverAX206DPF::~cDriverAX206DPF() -{ - delete oldConfig; } int cDriverAX206DPF::Init(void) @@ -532,9 +526,9 @@ void cDriverAX206DPF::Refresh(bool refreshAll) //fprintf(stderr, "\n"); } -GLCD::cColor cDriverAX206DPF::GetBackgroundColor(void) +uint32_t cDriverAX206DPF::GetBackgroundColor(void) { - return GLCD::cColor::Black; + return GRAPHLCD_Black; } void cDriverAX206DPF::SetSingleDisplayBrightness(unsigned int di, unsigned int percent) diff --git a/glcddrivers/ax206dpf.h b/glcddrivers/ax206dpf.h index dc94873..cc5e608 100644 --- a/glcddrivers/ax206dpf.h +++ b/glcddrivers/ax206dpf.h @@ -50,9 +50,6 @@ class cDriverConfig; class cDriverAX206DPF : public cDriver { private: - cDriverConfig * config; - cDriverConfig * oldConfig; - unsigned char * tempLCD; // temp transfer buffer bool portrait; // portrait or landscape mode @@ -74,7 +71,6 @@ private: public: cDriverAX206DPF(cDriverConfig * config); - virtual ~cDriverAX206DPF(); virtual int Init(); virtual int DeInit(); @@ -82,7 +78,7 @@ public: virtual void Clear(); virtual void SetPixel(int x, int y, uint32_t data); virtual void Refresh(bool refreshAll = false); - virtual GLCD::cColor GetBackgroundColor(void); + virtual uint32_t GetBackgroundColor(void); virtual void SetBrightness(unsigned int); virtual bool GetDriverFeature (const std::string & Feature, int & value); }; diff --git a/glcddrivers/dm140gink.c b/glcddrivers/dm140gink.c index 0b00a5f..ec3a3e1 100644 --- a/glcddrivers/dm140gink.c +++ b/glcddrivers/dm140gink.c @@ -31,16 +31,10 @@ namespace GLCD { cDriverDM140GINK::cDriverDM140GINK(cDriverConfig * config) -: config(config), +: cDriver(config), fd(-1), framebuff(0) { - oldConfig = new cDriverConfig(*config); -} - -cDriverDM140GINK::~cDriverDM140GINK() -{ - delete oldConfig; } /* hack - fix improper signed char handling - it's seeing 0x80 as a negative value*/ @@ -268,7 +262,7 @@ void cDriverDM140GINK::SetPixel(int x, int y, uint32_t data) int offset = (y/8) * width + x; char mask = (1 << (7 - (y%8))); - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) framebuff[offset] |= mask; else framebuff[offset] &= (0xFF ^ mask); @@ -287,7 +281,7 @@ void cDriverDM140GINK::Set8Pixels(int x, int y, unsigned char data) for (int n = 0; n < 8; ++n) { if (data & (0x80 >> n)) // if bit is set - SetPixel(x + n, y, GLCD::cColor::White); + SetPixel(x + n, y, GRAPHLCD_White); } } #endif diff --git a/glcddrivers/dm140gink.h b/glcddrivers/dm140gink.h index e5199a5..c37e527 100644 --- a/glcddrivers/dm140gink.h +++ b/glcddrivers/dm140gink.h @@ -25,9 +25,6 @@ class cDriverConfig; class cDriverDM140GINK : public cDriver { private: - cDriverConfig * config; - cDriverConfig * oldConfig; - int fd; int vendor; @@ -42,7 +39,6 @@ private: public: cDriverDM140GINK(cDriverConfig * config); - virtual ~cDriverDM140GINK(); virtual int Init(); virtual int DeInit(); diff --git a/glcddrivers/driver.c b/glcddrivers/driver.c index 8ba192a..ffd6d6a 100644 --- a/glcddrivers/driver.c +++ b/glcddrivers/driver.c @@ -15,7 +15,7 @@ #include "common.h" #include "driver.h" - +#include "config.h" namespace GLCD { @@ -24,14 +24,22 @@ cSimpleTouchEvent::cSimpleTouchEvent() : x(0), y(0), touch(0) { } -cDriver::cDriver() +cDriver::cDriver(cDriverConfig * config) : width(0), - height(0) + height(0), + config(config) { fgcol = GetDefaultForegroundColor(); bgcol = GetDefaultBackgroundColor(); + oldConfig = new cDriverConfig(*config); } +cDriver::~cDriver(void) +{ + delete oldConfig; +} + + //void cDriver::SetScreen(const unsigned char * data, int wid, int hgt, int lineSize) void cDriver::SetScreen(const uint32_t * data, int wid, int hgt) { diff --git a/glcddrivers/driver.h b/glcddrivers/driver.h index a7175b7..7f95afc 100644 --- a/glcddrivers/driver.h +++ b/glcddrivers/driver.h @@ -38,6 +38,7 @@ public: cSimpleTouchEvent(); }; +class cDriverConfig; class cDriver { @@ -46,13 +47,15 @@ protected: int height; uint32_t bgcol; uint32_t fgcol; + cDriverConfig * config; + cDriverConfig * oldConfig; virtual bool GetDriverFeature (const std::string & Feature, int & value) { return false; } - virtual GLCD::cColor GetDefaultBackgroundColor(void) { return GLCD::cColor(GLCD::cColor::Black); } - GLCD::cColor GetDefaultForegroundColor(void) { return GLCD::cColor(GetDefaultBackgroundColor()).Invert(); } + virtual uint32_t GetDefaultBackgroundColor(void) { return GRAPHLCD_Black; } + uint32_t GetDefaultForegroundColor(void) { return GetDefaultBackgroundColor() ^ 0x00FFFFFF; } public: - cDriver(); - virtual ~cDriver() {} + cDriver(cDriverConfig * config); + virtual ~cDriver(); int Width() const { return width; } int Height() const { return height; } @@ -72,18 +75,18 @@ public: virtual bool SetFeature (const std::string & Feature, int value) { return false; } - GLCD::cColor GetBackgroundColor(bool driverdefault=false) { + uint32_t GetBackgroundColor(bool driverdefault=false) { return ( - (driverdefault || bgcol == GLCD::cColor::ERRCOL || bgcol == GLCD::cColor::Transparent) + (driverdefault || bgcol == GRAPHLCD_ERRCOL || bgcol == GRAPHLCD_Transparent) ? GetDefaultBackgroundColor() - : GLCD::cColor(bgcol) + : bgcol ); } - GLCD::cColor GetForegroundColor(bool driverdefault=false) { + uint32_t GetForegroundColor(bool driverdefault=false) { return ( - (driverdefault || fgcol == GLCD::cColor::ERRCOL || fgcol == GLCD::cColor::Transparent) + (driverdefault || fgcol == GRAPHLCD_ERRCOL || fgcol == GRAPHLCD_Transparent) ? GetDefaultForegroundColor() - : GLCD::cColor(fgcol) + : fgcol ); } diff --git a/glcddrivers/framebuffer.c b/glcddrivers/framebuffer.c index 440af89..a77900d 100644 --- a/glcddrivers/framebuffer.c +++ b/glcddrivers/framebuffer.c @@ -29,16 +29,10 @@ namespace GLCD { cDriverFramebuffer::cDriverFramebuffer(cDriverConfig * config) -: config(config), +: cDriver(config), offbuff(0), fbfd(-1) { - oldConfig = new cDriverConfig(*config); -} - -cDriverFramebuffer::~cDriverFramebuffer() -{ - delete oldConfig; } int cDriverFramebuffer::Init() @@ -170,7 +164,7 @@ void cDriverFramebuffer::SetPixel(int x, int y, uint32_t data) location = (x*(1+zoom)+vinfo.xoffset) * (vinfo.bits_per_pixel/8) + (y*(1+zoom)+vinfo.yoffset) * finfo.line_length; - if (data == GLCD::cColor::White) { + if (data == GRAPHLCD_White) { if (vinfo.bits_per_pixel <= 8) { outcol = 15; } else { @@ -243,7 +237,7 @@ void cDriverFramebuffer::Set8Pixels(int x, int y, unsigned char data) for (n = 0; n < 8; ++n) { if (data & (0x80 >> n)) // if bit is set - SetPixel(x + n, y, GLCD::cColor::White); + SetPixel(x + n, y, GRAPHLCD_White); } } #endif diff --git a/glcddrivers/framebuffer.h b/glcddrivers/framebuffer.h index cd8f003..0d94562 100644 --- a/glcddrivers/framebuffer.h +++ b/glcddrivers/framebuffer.h @@ -27,8 +27,6 @@ class cDriverFramebuffer : public cDriver { private: unsigned char ** LCD; - cDriverConfig * config; - cDriverConfig * oldConfig; char *offbuff; int fbfd; struct fb_var_screeninfo vinfo; @@ -41,7 +39,6 @@ private: public: cDriverFramebuffer(cDriverConfig * config); - virtual ~cDriverFramebuffer(); virtual int Init(); virtual int DeInit(); diff --git a/glcddrivers/futabaMDM166A.c b/glcddrivers/futabaMDM166A.c index 14b858d..dfa74b2 100644 --- a/glcddrivers/futabaMDM166A.c +++ b/glcddrivers/futabaMDM166A.c @@ -226,20 +226,14 @@ const char *cHIDQueue::hiderror(hid_return ret) const cDriverFutabaMDM166A::cDriverFutabaMDM166A(cDriverConfig * config) -: config(config) +: cDriver(config) , m_pDrawMem(0) , m_pVFDMem(0) { - oldConfig = new cDriverConfig(*config); m_nRefreshCounter = 0; lastIconState = 0; } -cDriverFutabaMDM166A::~cDriverFutabaMDM166A() -{ - delete oldConfig; -} - int cDriverFutabaMDM166A::Init() { // default values @@ -363,7 +357,7 @@ void cDriverFutabaMDM166A::SetPixel(int x, int y, uint32_t data) c = 0x80 >> (y % 8); //m_pDrawMem[n] |= c; - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) m_pDrawMem[n] |= c; else m_pDrawMem[n] &= (0xFF ^ c); diff --git a/glcddrivers/futabaMDM166A.h b/glcddrivers/futabaMDM166A.h index c01a2e0..ec3b046 100644 --- a/glcddrivers/futabaMDM166A.h +++ b/glcddrivers/futabaMDM166A.h @@ -43,8 +43,6 @@ namespace GLCD class cDriverFutabaMDM166A : public cDriver, cHIDQueue { - cDriverConfig * config; - cDriverConfig * oldConfig; unsigned char *m_pDrawMem; // the draw "memory" unsigned char *m_pVFDMem; // the double buffed display "memory" unsigned int m_iSizeYb; @@ -59,7 +57,6 @@ namespace GLCD public: cDriverFutabaMDM166A(cDriverConfig * config); - virtual ~cDriverFutabaMDM166A(); virtual int Init(); virtual int DeInit(); diff --git a/glcddrivers/g15daemon.c b/glcddrivers/g15daemon.c index 88619c3..20049bc 100644 --- a/glcddrivers/g15daemon.c +++ b/glcddrivers/g15daemon.c @@ -107,16 +107,10 @@ namespace GLCD { cDriverG15daemon::cDriverG15daemon(cDriverConfig * config) -: config(config), +: cDriver(config), offbuff(0), sockfd(-1) { - oldConfig = new cDriverConfig(*config); -} - -cDriverG15daemon::~cDriverG15daemon() -{ - delete oldConfig; } int cDriverG15daemon::Init() @@ -193,7 +187,7 @@ void cDriverG15daemon::SetPixel(int x, int y, uint32_t data) y = height - 1 - y; } - offbuff[x + (width * y)] = ( (data == GLCD::cColor::White) ? 1 : 0 ); + offbuff[x + (width * y)] = ( (data == GRAPHLCD_White) ? 1 : 0 ); } void cDriverG15daemon::Clear() @@ -211,7 +205,7 @@ void cDriverG15daemon::Set8Pixels(int x, int y, unsigned char data) for (n = 0; n < 8; ++n) { if (data & (0x80 >> n)) // if bit is set - SetPixel(x + n, y, GLCD::cColor::White); + SetPixel(x + n, y, GRAPHLCD_White); } } #endif diff --git a/glcddrivers/g15daemon.h b/glcddrivers/g15daemon.h index 839102c..e5884bf 100644 --- a/glcddrivers/g15daemon.h +++ b/glcddrivers/g15daemon.h @@ -23,8 +23,6 @@ class cDriverG15daemon : public cDriver { private: unsigned char ** LCD; - cDriverConfig * config; - cDriverConfig * oldConfig; char *offbuff; int sockfd; long int screensize; @@ -35,7 +33,6 @@ private: public: cDriverG15daemon(cDriverConfig * config); - virtual ~cDriverG15daemon(); virtual int Init(); virtual int DeInit(); diff --git a/glcddrivers/gu126x64D-K610A4.c b/glcddrivers/gu126x64D-K610A4.c index 955174a..6770467 100644 --- a/glcddrivers/gu126x64D-K610A4.c +++ b/glcddrivers/gu126x64D-K610A4.c @@ -91,9 +91,8 @@ static const long ADJUST_FACTOR = 100; // used to adjust timing //----------------------------------------------------------------------------- cDriverGU126X64D_K610A4::cDriverGU126X64D_K610A4(cDriverConfig * config) - : port (0) - , config (config) - , oldConfig (0) + : cDriver (config) + , port (0) , myNumRows (0) , myDrawMem (0) , myVFDMem (0) @@ -105,14 +104,8 @@ cDriverGU126X64D_K610A4::cDriverGU126X64D_K610A4(cDriverConfig * config) , myDataPendingCounter(0) , myLogFlags (0) { - oldConfig = new cDriverConfig(*config); } // cDriverGU126X64D_K610A4::cDriverGU126X64D_K610A4() -//----------------------------------------------------------------------------- -cDriverGU126X64D_K610A4::~cDriverGU126X64D_K610A4() -{ - delete oldConfig; -} // cDriverGU126X64D_K610A4::cDriverGU126X64D_K610A4() //----------------------------------------------------------------------------- int cDriverGU126X64D_K610A4::Init() @@ -432,7 +425,7 @@ void cDriverGU126X64D_K610A4::SetPixel(int x, int y, uint32_t data) unsigned char c = 0x80 >> (y % 8); - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) myDrawMem[x][y/8] |= c; else myDrawMem[x][y/8] &= ( 0xFF ^ c ); @@ -449,7 +442,7 @@ void cDriverGU126X64D_K610A4::Set8Pixels(int x, int y, unsigned char data) { if ((data & (0x80 >> n)) != 0) // if bit is set { - setPixel(x + n, y, GLCD::cColor::White); + setPixel(x + n, y, GRAPHLCD_White); } // if } // for } // cDriverGU126X64D_K610A4::Set8Pixels() diff --git a/glcddrivers/gu126x64D-K610A4.h b/glcddrivers/gu126x64D-K610A4.h index 3d989e4..422705f 100644 --- a/glcddrivers/gu126x64D-K610A4.h +++ b/glcddrivers/gu126x64D-K610A4.h @@ -46,7 +46,6 @@ public: // constructor/destructor //--------------------------------------------------------------------------- cDriverGU126X64D_K610A4(cDriverConfig * config); - virtual ~cDriverGU126X64D_K610A4(); //--------------------------------------------------------------------------- // from cDriver @@ -109,9 +108,6 @@ private: //--------------------------------------------------------------------------- cParallelPort *port; - cDriverConfig *config; - cDriverConfig *oldConfig; - int myNumRows; unsigned char **myDrawMem; unsigned char **myVFDMem; diff --git a/glcddrivers/gu140x32f.c b/glcddrivers/gu140x32f.c index 3baf6f1..3cf568e 100644 --- a/glcddrivers/gu140x32f.c +++ b/glcddrivers/gu140x32f.c @@ -98,12 +98,10 @@ static const std::string kWiringWindows = "Windows"; cDriverGU140X32F::cDriverGU140X32F(cDriverConfig * config) -: config(config), +: cDriver(config), m_pDrawMem(0), m_pVFDMem(0) { - oldConfig = new cDriverConfig(*config); - port = new cParallelPort(); m_nRefreshCounter = 0; @@ -112,7 +110,6 @@ cDriverGU140X32F::cDriverGU140X32F(cDriverConfig * config) cDriverGU140X32F::~cDriverGU140X32F() { delete port; - delete oldConfig; } int cDriverGU140X32F::Init() @@ -350,7 +347,7 @@ void cDriverGU140X32F::SetPixel(int x, int y, uint32_t data) n = x + ((y / 8) * width); c = 0x80 >> (y % 8); - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) m_pDrawMem[n] |= c; else m_pDrawMem[n] &= (0xFF ^ c); @@ -367,7 +364,7 @@ void cDriverGU140X32F::Set8Pixels(int x, int y, unsigned char data) for (n = 0; n < 8; ++n) { if (data & (0x80 >> n)) // if bit is set - SetPixel(x + n, y, GLCD::cColor::White); + SetPixel(x + n, y, GRAPHLCD_White); } } #endif diff --git a/glcddrivers/gu140x32f.h b/glcddrivers/gu140x32f.h index 47ab748..2a94f03 100644 --- a/glcddrivers/gu140x32f.h +++ b/glcddrivers/gu140x32f.h @@ -39,9 +39,6 @@ class cDriverGU140X32F : public cDriver cParallelPort * port; - cDriverConfig * config; - cDriverConfig * oldConfig; - int m_iSizeYb; int m_nRefreshCounter; unsigned char *m_pDrawMem; // the draw "memory" diff --git a/glcddrivers/gu256x64-372.c b/glcddrivers/gu256x64-372.c index 5615708..c3eeb34 100644 --- a/glcddrivers/gu256x64-372.c +++ b/glcddrivers/gu256x64-372.c @@ -84,10 +84,8 @@ const unsigned char kWindowsCDLO = 0x08; // cDriverGU256X64_372::cDriverGU256X64_372(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - port = new cParallelPort(); m_nRefreshCounter = 0; @@ -95,7 +93,6 @@ cDriverGU256X64_372::cDriverGU256X64_372(cDriverConfig * config) cDriverGU256X64_372::~cDriverGU256X64_372() { - delete oldConfig; delete port; } @@ -366,7 +363,7 @@ void cDriverGU256X64_372::SetPixel(int x, int y, uint32_t data) c = 0x80 >> (y % 8); - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) m_pDrawMem[x][y/8] |= c; else m_pDrawMem[x][y/8] &= ( 0xFF ^ c ); @@ -383,7 +380,7 @@ void cDriverGU256X64_372::Set8Pixels(int x, int y, unsigned char data) for (n = 0; n < 8; ++n) { if (data & (0x80 >> n)) // if bit is set - SetPixel(x + n, y, GLCD::cColor::White); + SetPixel(x + n, y, GRAPHLCD_White); } } #endif diff --git a/glcddrivers/gu256x64-372.h b/glcddrivers/gu256x64-372.h index 54719d0..a0d511f 100644 --- a/glcddrivers/gu256x64-372.h +++ b/glcddrivers/gu256x64-372.h @@ -35,9 +35,6 @@ class cDriverGU256X64_372 : public cDriver { cParallelPort * port; - cDriverConfig * config; - cDriverConfig * oldConfig; - int m_iSizeYb; int m_nRefreshCounter; diff --git a/glcddrivers/gu256x64-3900.c b/glcddrivers/gu256x64-3900.c index 2d379bd..d135c88 100644 --- a/glcddrivers/gu256x64-3900.c +++ b/glcddrivers/gu256x64-3900.c @@ -104,19 +104,12 @@ static const int kInterfaceSerial = 1; // serial mode cDriverGU256X64_3900::cDriverGU256X64_3900(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - portFd = -1; m_nRefreshCounter = 0; } -cDriverGU256X64_3900::~cDriverGU256X64_3900() -{ - delete oldConfig; -} - int cDriverGU256X64_3900::Init() { int x; @@ -525,7 +518,7 @@ void cDriverGU256X64_3900::SetPixel(int x, int y, uint32_t data) c = 0x80 >> (y % 8); - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) m_pDrawMem[x][y/8] |= c; else m_pDrawMem[x][y/8] &= ( 0xFF ^ c ); @@ -542,7 +535,7 @@ void cDriverGU256X64_3900::Set8Pixels(int x, int y, unsigned char data) for (n = 0; n < 8; ++n) { if (data & (0x80 >> n)) // if bit is set - SetPixel(x + n, y, GLCD::cColor::White); + SetPixel(x + n, y, GRAPHLCD_White); } } #endif diff --git a/glcddrivers/gu256x64-3900.h b/glcddrivers/gu256x64-3900.h index 95d7d7f..9703a04 100644 --- a/glcddrivers/gu256x64-3900.h +++ b/glcddrivers/gu256x64-3900.h @@ -41,9 +41,6 @@ class cDriverGU256X64_3900 : public cDriver cParallelPort * port; int portFd; - cDriverConfig * config; - cDriverConfig * oldConfig; - int m_iSizeYb; int m_nRefreshCounter; int interface; @@ -71,7 +68,6 @@ protected: void Write(unsigned char data); public: cDriverGU256X64_3900(cDriverConfig * config); - virtual ~cDriverGU256X64_3900(); virtual int Init(); virtual int DeInit(); diff --git a/glcddrivers/hd61830.c b/glcddrivers/hd61830.c index 2f383bd..69fee54 100644 --- a/glcddrivers/hd61830.c +++ b/glcddrivers/hd61830.c @@ -57,10 +57,8 @@ namespace GLCD cDriverHD61830::cDriverHD61830(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - port = new cParallelPort(); useSleepInit = false; @@ -72,7 +70,6 @@ cDriverHD61830::cDriverHD61830(cDriverConfig * config) cDriverHD61830::~cDriverHD61830() { delete port; - delete oldConfig; } int cDriverHD61830::Init() @@ -318,7 +315,7 @@ void cDriverHD61830::SetPixel(int x, int y, uint32_t data) pos = 7 - pos; // reverse bit position } - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) newLCD[x / 8][y] |= ( 1 << pos ); else newLCD[x / 8][y] &= ( 0xFF ^ ( 1 << pos ) ); diff --git a/glcddrivers/hd61830.h b/glcddrivers/hd61830.h index a6908e2..4d70446 100644 --- a/glcddrivers/hd61830.h +++ b/glcddrivers/hd61830.h @@ -29,8 +29,6 @@ private: unsigned char ** newLCD; // wanted state unsigned char ** oldLCD; // current state - cDriverConfig * config; - cDriverConfig * oldConfig; int refreshCounter; long timeForPortCmdInNs; bool useSleepInit; diff --git a/glcddrivers/image.c b/glcddrivers/image.c index 6a67ddd..6a89ffa 100644 --- a/glcddrivers/image.c +++ b/glcddrivers/image.c @@ -25,15 +25,13 @@ namespace GLCD { cDriverImage::cDriverImage(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); } cDriverImage::~cDriverImage() { DeInit(); - delete oldConfig; } int cDriverImage::Init() @@ -146,7 +144,7 @@ void cDriverImage::SetPixel(int x, int y, uint32_t data) pos = 7 - pos; // reverse bit position } - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) newLCD[y * x] |= ( 1 << pos ); else newLCD[y * x] &= ( 0xFF ^ ( 1 << pos) ); diff --git a/glcddrivers/image.h b/glcddrivers/image.h index 972a38e..2d3cb71 100644 --- a/glcddrivers/image.h +++ b/glcddrivers/image.h @@ -28,8 +28,6 @@ class cDriverImage : public cDriver private: uint32_t * newLCD; uint32_t * oldLCD; - cDriverConfig * config; - cDriverConfig * oldConfig; int lineSize; int counter; diff --git a/glcddrivers/ks0108.c b/glcddrivers/ks0108.c index 250bbcd..2a723f9 100644 --- a/glcddrivers/ks0108.c +++ b/glcddrivers/ks0108.c @@ -42,10 +42,8 @@ const unsigned char kCS2LO = 0x04; cDriverKS0108::cDriverKS0108(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - port = new cParallelPort(); refreshCounter = 0; @@ -56,7 +54,6 @@ cDriverKS0108::cDriverKS0108(cDriverConfig * config) cDriverKS0108::~cDriverKS0108() { delete port; - delete oldConfig; } int cDriverKS0108::Init() @@ -435,7 +432,7 @@ void cDriverKS0108::SetPixel(int x, int y, uint32_t data) pos = 7 - pos; // reverse bit position } - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) LCD[x / 8][y] |= (1 << pos); else LCD[x / 8][y] &= ( 0xFF ^ (1 << pos) ); diff --git a/glcddrivers/ks0108.h b/glcddrivers/ks0108.h index 462c1af..ffed14f 100644 --- a/glcddrivers/ks0108.h +++ b/glcddrivers/ks0108.h @@ -31,8 +31,6 @@ private: int refreshCounter; long timeForPortCmdInNs; long timeForLCDInNs; - cDriverConfig * config; - cDriverConfig * oldConfig; bool useSleepInit; int CheckSetup(); diff --git a/glcddrivers/network.c b/glcddrivers/network.c index 367962b..40399bc 100644 --- a/glcddrivers/network.c +++ b/glcddrivers/network.c @@ -30,19 +30,13 @@ namespace GLCD { cDriverNetwork::cDriverNetwork(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); childTid = 0; running = false; clientConnected = false; } -cDriverNetwork::~cDriverNetwork() -{ - delete oldConfig; -} - int cDriverNetwork::Init() { width = config->width; @@ -137,7 +131,7 @@ void cDriverNetwork::SetPixel(int x, int y, uint32_t data) pos = 7 - pos; // reverse bit position } - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) newLCD[lineSize * y + x / 8] |= (1 << pos); else newLCD[lineSize * y + x / 8] &= ( 0xFF ^ (1 << pos) ); diff --git a/glcddrivers/network.h b/glcddrivers/network.h index 934b8d0..9251c50 100644 --- a/glcddrivers/network.h +++ b/glcddrivers/network.h @@ -29,8 +29,6 @@ class cDriverNetwork : public cDriver private: unsigned char * newLCD; unsigned char * oldLCD; - cDriverConfig * config; - cDriverConfig * oldConfig; int lineSize; bool running; pthread_t childTid; @@ -42,7 +40,6 @@ private: public: cDriverNetwork(cDriverConfig * config); - virtual ~cDriverNetwork(); virtual int Init(); virtual int DeInit(); diff --git a/glcddrivers/noritake800.c b/glcddrivers/noritake800.c index bb0b43a..10dd4ba 100644 --- a/glcddrivers/noritake800.c +++ b/glcddrivers/noritake800.c @@ -91,7 +91,7 @@ static const std::string kWiringMZ = "MZ"; #define SETPOSITION 0xff -cDriverNoritake800::cDriverNoritake800(cDriverConfig * config) +cDriverNoritake800::cDriverNoritake800(cDriverConfig * config) : cDriver(config) { int x = 0; m_bGraphScreen0_On = true; @@ -99,18 +99,15 @@ cDriverNoritake800::cDriverNoritake800(cDriverConfig * config) // default initilaization for the wiring m_nWiring = WIRING_LIQUIDMP3; - m_Config = config; - m_oldConfig = new cDriverConfig(* config); - m_pport = new cParallelPort(); m_nTimingAdjustCmd = 0; m_nRefreshCounter = 0; - width = m_Config->width; // 128 + width = config->width; // 128 if (width <= 0) width = 128; - height = m_Config->height; // 64 + height = config->height; // 64 if (height <= 0) height = 64; m_iSizeYb = (height + 7)/8; // 8 @@ -118,15 +115,15 @@ cDriverNoritake800::cDriverNoritake800(cDriverConfig * config) // // initialize wiring // - for (unsigned int i = 0; i < m_Config->options.size(); i++) + for (unsigned int i = 0; i < config->options.size(); i++) { - if (m_Config->options[i].name == "Wiring") + if (config->options[i].name == "Wiring") { - if (m_Config->options[i].value == kWiringLiquidmp3) + if (config->options[i].value == kWiringLiquidmp3) { m_nWiring = WIRING_LIQUIDMP3; } - else if (m_Config->options[i].value == kWiringMZ) + else if (config->options[i].value == kWiringMZ) { m_nWiring = WIRING_MZ; } @@ -184,7 +181,6 @@ cDriverNoritake800::~cDriverNoritake800() } delete[] m_pDrawMem; delete[] m_pWiringMaskCache; - delete m_oldConfig; delete m_pport; } @@ -213,27 +209,27 @@ int cDriverNoritake800::DeInit() int cDriverNoritake800::CheckSetup() { - if (m_Config->device != m_oldConfig->device || - m_Config->port != m_oldConfig->port || - m_Config->width != m_oldConfig->width || - m_Config->height != m_oldConfig->height) + if (config->device != oldConfig->device || + config->port != oldConfig->port || + config->width != oldConfig->width || + config->height != oldConfig->height) { DeInit(); Init(); return 0; } - if (m_Config->brightness != m_oldConfig->brightness) + if (config->brightness != oldConfig->brightness) { - m_oldConfig->brightness = m_Config->brightness; - SetBrightness(m_Config->brightness); + oldConfig->brightness = config->brightness; + SetBrightness(config->brightness); } - if (m_Config->upsideDown != m_oldConfig->upsideDown || - m_Config->invert != m_oldConfig->invert) + if (config->upsideDown != oldConfig->upsideDown || + config->invert != oldConfig->invert) { - m_oldConfig->upsideDown = m_Config->upsideDown; - m_oldConfig->invert = m_Config->invert; + oldConfig->upsideDown = config->upsideDown; + oldConfig->invert = config->invert; return 1; } return 0; @@ -244,23 +240,23 @@ int cDriverNoritake800::Init() int x; struct timeval tv1, tv2; - if (m_Config->device == "") + if (config->device == "") { // use DirectIO - if (m_pport->Open(m_Config->port) != 0) + if (m_pport->Open(config->port) != 0) return -1; uSleep(10); } else { // use ppdev - if (m_pport->Open(m_Config->device.c_str()) != 0) + if (m_pport->Open(config->device.c_str()) != 0) return -1; } if (nSleepInit() != 0) { - syslog(LOG_ERR, "%s: INFO: cannot change wait parameters Err: %s (cDriver::Init)\n", m_Config->name.c_str(), strerror(errno)); + syslog(LOG_ERR, "%s: INFO: cannot change wait parameters Err: %s (cDriver::Init)\n", config->name.c_str(), strerror(errno)); m_bSleepIsInit = false; } else @@ -270,7 +266,7 @@ int cDriverNoritake800::Init() // benchmark port access m_pport->Claim(); - syslog(LOG_DEBUG, "%s: benchmark started.\n", m_Config->name.c_str()); + syslog(LOG_DEBUG, "%s: benchmark started.\n", config->name.c_str()); gettimeofday(&tv1, 0); int nBenchIterations = 10000; for (x = 0; x < nBenchIterations; x++) @@ -281,7 +277,7 @@ int cDriverNoritake800::Init() nSleepDeInit(); // calculate port command duration in nanoseconds m_nTimingAdjustCmd = long(double((tv2.tv_sec - tv1.tv_sec) * 1000000000 + (tv2.tv_usec - tv1.tv_usec) * 1000) / double(nBenchIterations)); - syslog(LOG_DEBUG, "%s: benchmark stopped. Time for Port Command: %ldns\n", m_Config->name.c_str(), m_nTimingAdjustCmd); + syslog(LOG_DEBUG, "%s: benchmark stopped. Time for Port Command: %ldns\n", config->name.c_str(), m_nTimingAdjustCmd); m_pport->Release(); // initialize display @@ -291,13 +287,13 @@ int cDriverNoritake800::Init() for (n=0; n < 15; n++) { N800Cmd(0x62); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); N800Cmd(n); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); N800Data(0xff); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); } - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); N800Cmd(LAYERSOFF | LAYER0ON); // layer 0 of the graphic RAM on @@ -313,15 +309,15 @@ int cDriverNoritake800::Init() m_pport->Release(); - *m_oldConfig = *m_Config; + //*oldConfig = *config; // Set Display SetBrightness - SetBrightness(m_Config->brightness); + SetBrightness(config->brightness); // clear display ClearVFDMem(); Refresh(true); - syslog(LOG_INFO, "%s: initialization done.\n", m_Config->name.c_str()); + syslog(LOG_INFO, "%s: initialization done.\n", config->name.c_str()); return 0; } @@ -335,9 +331,9 @@ void cDriverNoritake800::Refresh(bool refreshAll) if (!m_pVFDMem || !m_pDrawMem) return; - if (m_Config->refreshDisplay > 0) + if (config->refreshDisplay > 0) { - m_nRefreshCounter = (m_nRefreshCounter + 1) % m_Config->refreshDisplay; + m_nRefreshCounter = (m_nRefreshCounter + 1) % config->refreshDisplay; if (m_nRefreshCounter == 0) refreshAll = true; } @@ -357,7 +353,7 @@ void cDriverNoritake800::Refresh(bool refreshAll) m_nRefreshCounter = 0; // actually write to display N800WriteByte( - (m_pVFDMem[xb][yb]) ^ ((m_Config->invert != 0) ? 0xff : 0x00), + (m_pVFDMem[xb][yb]) ^ ((config->invert != 0) ? 0xff : 0x00), xb, yb, 0); @@ -376,13 +372,13 @@ void cDriverNoritake800::N800Cmd(unsigned char data) m_pport->WriteControl(m_pWiringMaskCache[0x00]); // write to data port m_pport->WriteData(data); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); // set /WR on the control port m_pport->WriteControl(m_pWiringMaskCache[VFDSGN_WR]); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); // reset /WR on the control port m_pport->WriteControl(m_pWiringMaskCache[0x00]); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); // set direction to "port_input" m_pport->WriteControl(LPT_CTL_HI_DIR | m_pWiringMaskCache[0x00]); } @@ -396,13 +392,13 @@ void cDriverNoritake800::N800Data(unsigned char data) m_pport->WriteControl(m_pWiringMaskCache[VFDSGN_CD]); // write to data port m_pport->WriteData(data); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); // set /WR on the control port m_pport->WriteControl(m_pWiringMaskCache[VFDSGN_CD | VFDSGN_WR]); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); // reset /WR on the control port m_pport->WriteControl(m_pWiringMaskCache[VFDSGN_CD]); - nSleep(100 + (100 * m_Config->adjustTiming) - m_nTimingAdjustCmd); + nSleep(100 + (100 * config->adjustTiming) - m_nTimingAdjustCmd); // set direction to "port_input" m_pport->WriteControl(LPT_CTL_HI_DIR | m_pWiringMaskCache[0x00]); } @@ -419,7 +415,7 @@ void cDriverNoritake800::SetPixel(int x, int y, uint32_t data) if (y >= height || y < 0) return; - if (m_Config->upsideDown) + if (config->upsideDown) { x = width - 1 - x; y = height - 1 - y; @@ -427,7 +423,7 @@ void cDriverNoritake800::SetPixel(int x, int y, uint32_t data) c = 0x80 >> (y % 8); - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) m_pDrawMem[x][y/8] |= c; else m_pDrawMem[x][y/8] &= ( 0xFF ^ c); diff --git a/glcddrivers/noritake800.h b/glcddrivers/noritake800.h index f41aa7a..e7523a8 100644 --- a/glcddrivers/noritake800.h +++ b/glcddrivers/noritake800.h @@ -47,9 +47,6 @@ class cDriverNoritake800 : public cDriver { cParallelPort * m_pport; - cDriverConfig * m_Config; - cDriverConfig * m_oldConfig; - int m_iSizeYb; int m_nRefreshCounter; int m_nWiring; diff --git a/glcddrivers/sed1330.c b/glcddrivers/sed1330.c index 80a8970..588d8d3 100644 --- a/glcddrivers/sed1330.c +++ b/glcddrivers/sed1330.c @@ -131,10 +131,8 @@ const unsigned char kYASEDWCSLO = kSelectLow; cDriverSED1330::cDriverSED1330(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - port = new cParallelPort(); refreshCounter = 0; @@ -143,7 +141,6 @@ cDriverSED1330::cDriverSED1330(cDriverConfig * config) cDriverSED1330::~cDriverSED1330() { delete port; - delete oldConfig; } int cDriverSED1330::Init() @@ -555,7 +552,7 @@ void cDriverSED1330::SetPixel(int x, int y, uint32_t data) pos = 7 - pos; // reverse bit position } - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) newLCD[x / 8][y] |= (1 << pos); else newLCD[x / 8][y] &= ( 0xFF ^ (1 << pos) ); diff --git a/glcddrivers/sed1330.h b/glcddrivers/sed1330.h index 6f2a837..ad2eef5 100644 --- a/glcddrivers/sed1330.h +++ b/glcddrivers/sed1330.h @@ -39,8 +39,6 @@ private: unsigned char ** oldLCD; // current state int refreshCounter; long timeForPortCmdInNs; - cDriverConfig * config; - cDriverConfig * oldConfig; bool useSleepInit; int oscillatorFrequency; diff --git a/glcddrivers/sed1520.c b/glcddrivers/sed1520.c index edd445b..d48f11e 100644 --- a/glcddrivers/sed1520.c +++ b/glcddrivers/sed1520.c @@ -46,10 +46,8 @@ const unsigned char kLEDLO = 0x00; cDriverSED1520::cDriverSED1520(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - port = new cParallelPort(); refreshCounter = 0; @@ -58,7 +56,6 @@ cDriverSED1520::cDriverSED1520(cDriverConfig * config) cDriverSED1520::~cDriverSED1520() { delete port; - delete oldConfig; } int cDriverSED1520::Init() @@ -318,7 +315,7 @@ void cDriverSED1520::SetPixel (int x, int y, uint32_t data) pos = 7 - pos; // reverse bit position } - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) LCD[x / 8][y] |= ( 1 << pos ); else LCD[x / 8][y] &= (0xFF ^ ( 1 << pos )); diff --git a/glcddrivers/sed1520.h b/glcddrivers/sed1520.h index 1d301ff..e72befc 100644 --- a/glcddrivers/sed1520.h +++ b/glcddrivers/sed1520.h @@ -30,8 +30,6 @@ private: unsigned char ** LCD_page; // paged lcd display "memory" int refreshCounter; long timeForPortCmdInNs; - cDriverConfig * config; - cDriverConfig * oldConfig; bool useSleepInit; int SEAD; diff --git a/glcddrivers/serdisp.c b/glcddrivers/serdisp.c index 1e20cbe..e9e15c4 100644 --- a/glcddrivers/serdisp.c +++ b/glcddrivers/serdisp.c @@ -45,19 +45,12 @@ static bool simpleTouchChanged=false; cDriverSerDisp::cDriverSerDisp(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - dd = (void *) NULL; simpleTouchChanged = false; } -cDriverSerDisp::~cDriverSerDisp(void) -{ - delete oldConfig; -} - int cDriverSerDisp::Init(void) { char* errmsg; // error message returned by dlerror() @@ -86,8 +79,8 @@ int cDriverSerDisp::Init(void) /* pre-init some flags, function pointers, ... */ supports_options = 0; - fgcol = GLCD::cColor::Black; /* set foreground colour to black */ - bgcol = GLCD::cColor::ERRCOL; + fgcol = GRAPHLCD_Black; /* set foreground colour to black */ + bgcol = GRAPHLCD_ERRCOL; // get serdisp version fp_serdisp_getversioncode = (long int (*)()) dlsym(sdhnd, "serdisp_getversioncode"); @@ -297,9 +290,9 @@ int cDriverSerDisp::Init(void) // self-emitting displays (like OLEDs): default background colour => black if ( supports_options && fp_serdisp_isoption(dd, "SELFEMITTING") && (fp_serdisp_getoption(dd, "SELFEMITTING", 0)) ) { if (!bg_forced) - bgcol = GLCD::cColor::Black; /* set background colour to black */ + bgcol = GRAPHLCD_Black; /* set background colour to black */ if (!fg_forced) - fgcol = GLCD::cColor::White; /* set foreground colour to white */ + fgcol = GRAPHLCD_White; /* set foreground colour to white */ } width = config->width; @@ -431,7 +424,7 @@ int cDriverSerDisp::CheckSetup() void cDriverSerDisp::Clear(void) { - if (bgcol == GLCD::cColor::ERRCOL) // bgcol not set + if (bgcol == GRAPHLCD_ERRCOL) // bgcol not set fp_serdisp_clearbuffer(dd); else { /* if bgcol is set, draw background 'by hand' */ int x,y; @@ -453,7 +446,7 @@ void cDriverSerDisp::Set8Pixels(int x, int y, unsigned char data) { pixel = data & (1 << i); if (pixel) { SetPixel(start + i, y, (long)fgcol); - } else if (!pixel && bgcol != GLCD::cColor::ERRCOL) { /* if bgcol is set: use it if pixel is not set */ + } else if (!pixel && bgcol != GRAPHLCD_ERRCOL) { /* if bgcol is set: use it if pixel is not set */ SetPixel(start + i, y, (long)bgcol); } } @@ -513,11 +506,11 @@ void cDriverSerDisp::SetBrightness(unsigned int percent) fp_serdisp_setoption(dd, "BRIGHTNESS", (long)percent); } -GLCD::cColor cDriverSerDisp::GetDefaultBackgroundColor(void) { +uint32_t cDriverSerDisp::GetDefaultBackgroundColor(void) { if ( supports_options && fp_serdisp_isoption(dd, "SELFEMITTING") && (fp_serdisp_getoption(dd, "SELFEMITTING", 0)) ) { - return GLCD::cColor::Black; + return GRAPHLCD_Black; } - return GLCD::cColor::White; + return GRAPHLCD_White; } diff --git a/glcddrivers/serdisp.h b/glcddrivers/serdisp.h index 659b789..ea1be90 100644 --- a/glcddrivers/serdisp.h +++ b/glcddrivers/serdisp.h @@ -59,9 +59,6 @@ class cDriverSerDisp : public cDriver { private: - cDriverConfig * config; - cDriverConfig * oldConfig; - long serdisp_version; int supports_options; @@ -100,22 +97,18 @@ private: protected: virtual bool GetDriverFeature (const std::string & Feature, int & value); - virtual GLCD::cColor GetDefaultBackgroundColor(void); + virtual uint32_t GetDefaultBackgroundColor(void); public: cDriverSerDisp(cDriverConfig * config); - virtual ~cDriverSerDisp(); virtual int Init(); virtual int DeInit(); virtual void Clear(); virtual void SetPixel(int x, int y, uint32_t data); - //virtual void Set8Pixels(int x, int y, unsigned char data); -#if 0 - virtual void SetScreen(const unsigned char * data, int width, int height, int lineSize); -#endif + virtual void Refresh(bool refreshAll = false); virtual void SetBrightness(unsigned int percent); diff --git a/glcddrivers/simlcd.c b/glcddrivers/simlcd.c index b7c548b..d1da90f 100644 --- a/glcddrivers/simlcd.c +++ b/glcddrivers/simlcd.c @@ -32,15 +32,8 @@ namespace GLCD { -cDriverSimLCD::cDriverSimLCD(cDriverConfig * config) -: config(config) +cDriverSimLCD::cDriverSimLCD(cDriverConfig * config) : cDriver(config) { - oldConfig = new cDriverConfig(*config); -} - -cDriverSimLCD::~cDriverSimLCD(void) -{ - delete oldConfig; } int cDriverSimLCD::Init(void) @@ -120,7 +113,7 @@ void cDriverSimLCD::Clear(void) { for (int x = 0; x < width; x++) { - LCD[x][y] = GLCD::cColor::White; + LCD[x][y] = GRAPHLCD_White; } } } @@ -160,7 +153,7 @@ void cDriverSimLCD::Refresh(bool refreshAll) { for (x = 0; x < width; x++) { - if (LCD[x][y] == GLCD::cColor::Black) + if (LCD[x][y] == GRAPHLCD_Black) { if (!config->invert) { @@ -195,9 +188,9 @@ void cDriverSimLCD::Refresh(bool refreshAll) } } -GLCD::cColor cDriverSimLCD::GetBackgroundColor(void) +uint32_t cDriverSimLCD::GetBackgroundColor(void) { - return GLCD::cColor::White; + return GRAPHLCD_White; } bool cDriverSimLCD::GetDriverFeature(const std::string & Feature, int & value) diff --git a/glcddrivers/simlcd.h b/glcddrivers/simlcd.h index e79e52a..12f819c 100644 --- a/glcddrivers/simlcd.h +++ b/glcddrivers/simlcd.h @@ -28,14 +28,10 @@ class cDriverSimLCD : public cDriver { private: uint32_t ** LCD; - cDriverConfig * config; - cDriverConfig * oldConfig; - int CheckSetup(); public: cDriverSimLCD(cDriverConfig * config); - virtual ~cDriverSimLCD(); virtual int Init(); virtual int DeInit(); @@ -43,7 +39,7 @@ public: virtual void Clear(); virtual void SetPixel(int x, int y, uint32_t data); virtual void Refresh(bool refreshAll = false); - virtual GLCD::cColor GetBackgroundColor(void); + virtual uint32_t GetBackgroundColor(void); virtual bool GetDriverFeature (const std::string & Feature, int & value); }; diff --git a/glcddrivers/t6963c.c b/glcddrivers/t6963c.c index de3a59f..671d4f3 100644 --- a/glcddrivers/t6963c.c +++ b/glcddrivers/t6963c.c @@ -108,10 +108,8 @@ const unsigned char kSerialCDLO = 0x04; // cDriverT6963C::cDriverT6963C(cDriverConfig * config) -: config(config) +: cDriver(config) { - oldConfig = new cDriverConfig(*config); - port = new cParallelPort(); //width = config->width; @@ -126,7 +124,6 @@ cDriverT6963C::cDriverT6963C(cDriverConfig * config) cDriverT6963C::~cDriverT6963C() { delete port; - delete oldConfig; } int cDriverT6963C::Init() @@ -397,7 +394,7 @@ void cDriverT6963C::SetPixel(int x, int y, uint32_t data) //int cols = (width + 6 - 1 ) / 6; int col = x / 6; - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) newLCD[col][y] |= (1 << pos); else newLCD[col][y] &= ( 0x3F ^ (1 << pos) ); @@ -412,7 +409,7 @@ void cDriverT6963C::SetPixel(int x, int y, uint32_t data) pos = 7 - pos; // reverse bit position } - if (data == GLCD::cColor::White) + if (data == GRAPHLCD_White) newLCD[x / 8][y] |= (1 << pos); else newLCD[x / 8][y] &= ( 0xFF ^ (1 << pos) ); diff --git a/glcddrivers/t6963c.h b/glcddrivers/t6963c.h index 4377697..a9388b4 100644 --- a/glcddrivers/t6963c.h +++ b/glcddrivers/t6963c.h @@ -29,8 +29,6 @@ private: cParallelPort * port; unsigned char ** newLCD; // wanted state unsigned char ** oldLCD; // current state - cDriverConfig * config; - cDriverConfig * oldConfig; int refreshCounter; int bidirectLPT; int displayMode; |