Basically i glued Peter Drescher and Simon Ford libs in a GraphicsDisplay class, then derived TFT or LCD class (which inherits Protocols class), then the most derived ones (Inits), which are per-display and are the only part needed to be adapted to diff hw.

Dependents:   testUniGraphic_150217 maze_TFT_MMA8451Q TFT_test_frdm-kl25z TFT_test_NUCLEO-F411RE ... more

Revision:
21:ae0a4eedfc90
Parent:
20:14daa48ffd4c
Child:
25:daacdcf34e52
--- a/Display/LCD.cpp	Mon Mar 23 14:08:04 2015 +0000
+++ b/Display/LCD.cpp	Tue Mar 31 21:14:48 2015 +0000
@@ -41,6 +41,28 @@
   //  cls();
   //  locate(0,0);
 }
+LCD::LCD(proto_t displayproto, PinName* buspins, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const int lcdsize_x, const int lcdsize_y, const int ic_x_segs, const int ic_y_coms, const char *name)
+    : GraphicsDisplay(name), screensize_X(lcdsize_x), screensize_Y(lcdsize_y), _LCDPAGES(lcdsize_y>>3), _IC_X_SEGS(ic_x_segs), _IC_Y_COMS(ic_y_coms), _IC_PAGES(ic_y_coms>>3)
+{
+    if(displayproto==BUS_8)
+    {
+        PinName pins[16];
+        for(int i=0; i<16; i++) pins[i]=NC;
+        for(int i=0; i<8; i++) pins[i]=buspins[i];
+        proto = new BUS8(pins, CS, reset, DC, WR, RD);
+    }
+    useNOP=false;
+    buffer = (unsigned char*) malloc (screensize_X*_LCDPAGES);
+    buffer16 = (unsigned short*)buffer;
+    draw_mode = NORMAL;
+    set_orientation(1);
+    foreground(White);
+    background(Black);
+    set_auto_up(true);
+    tftID=0;
+  //  cls();
+  //  locate(0,0);
+}
 LCD::LCD(proto_t displayproto, int Hz, PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC, const int lcdsize_x, const int lcdsize_y, const int ic_x_segs, const int ic_y_coms, const char *name)
     : GraphicsDisplay(name), screensize_X(lcdsize_x), screensize_Y(lcdsize_y), _LCDPAGES(lcdsize_y>>3), _IC_X_SEGS(ic_x_segs), _IC_Y_COMS(ic_y_coms), _IC_PAGES(ic_y_coms>>3)
 {