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:   Brew

Revision:
21:ae0a4eedfc90
Parent:
20:14daa48ffd4c
Child:
25:daacdcf34e52
diff -r 14daa48ffd4c -r ae0a4eedfc90 Display/TFT.cpp
--- a/Display/TFT.cpp	Mon Mar 23 14:08:04 2015 +0000
+++ b/Display/TFT.cpp	Tue Mar 31 21:14:48 2015 +0000
@@ -43,6 +43,36 @@
   //  cls();
   //  locate(0,0);
 }
+TFT::TFT(proto_t displayproto, PinName* buspins, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const int lcdsize_x, const int lcdsize_y, const char *name)
+    : GraphicsDisplay(name), screensize_X(lcdsize_x), screensize_Y(lcdsize_y)
+{
+    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);
+    }
+    else if(displayproto==BUS_16)
+    {
+        proto = new BUS16(buspins, CS, reset, DC, WR, RD);
+    }
+    useNOP=false;
+    scrollbugfix=0;
+    mipistd=false;
+    set_orientation(0);
+    foreground(White);
+    background(Black);
+    set_auto_up(false); //we don't have framebuffer
+    topfixedareasize=0;
+    scrollareasize=0;
+    usefastwindow=false;
+    fastwindowready=false;
+    is18bit=false;
+    isBGR=false;
+  //  cls();
+  //  locate(0,0);
+}
 TFT::TFT(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 char *name)
     : GraphicsDisplay(name), screensize_X(lcdsize_x), screensize_Y(lcdsize_y)
 {