Base LCDPanel based, required for all LCDPanel drivers

Committer:
silviogissi
Date:
Fri Mar 09 01:49:18 2012 +0000
Revision:
1:073d4f161f23
Parent:
0:3f345274c737
Child:
2:ab4040a7e8c9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
silviogissi 1:073d4f161f23 1 /*
silviogissi 1:073d4f161f23 2 Placeholder for Copyright notice, etc
silviogissi 1:073d4f161f23 3
silviogissi 1:073d4f161f23 4 Author: silviogissi
silviogissi 1:073d4f161f23 5 */
silviogissi 1:073d4f161f23 6 #include "LCDPanel.h"
silviogissi 1:073d4f161f23 7
silviogissi 1:073d4f161f23 8 LCDPanel::LCDPanel(unsigned int width, unsigned int height, PinName cs)
silviogissi 1:073d4f161f23 9 : _ymax(height-1)
silviogissi 1:073d4f161f23 10 , _xmax(width-1)
silviogissi 1:073d4f161f23 11 , _cs(cs)
silviogissi 1:073d4f161f23 12 {
silviogissi 1:073d4f161f23 13 }
silviogissi 1:073d4f161f23 14
silviogissi 1:073d4f161f23 15 // Default implementation, pixel by pixel
silviogissi 1:073d4f161f23 16 void LCDPanel::fill(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, unsigned int color) {
silviogissi 1:073d4f161f23 17 CsTransaction(this);
silviogissi 1:073d4f161f23 18 if (x1>x2) {unsigned int tmp=x1; x1=x2; x2=tmp;}
silviogissi 1:073d4f161f23 19 if (y1>y2) {unsigned int tmp=y1; y1=y2; y2=tmp;}
silviogissi 1:073d4f161f23 20 window(x1,y1,x2,y2);
silviogissi 1:073d4f161f23 21 for(unsigned int i=0;i<(x2-x1)*(y2-y1);i++) { pixel(color); }
silviogissi 1:073d4f161f23 22 }
silviogissi 1:073d4f161f23 23
silviogissi 1:073d4f161f23 24 // Default implementation, pixel by pixel
silviogissi 1:073d4f161f23 25 void LCDPanel::fill(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, const unsigned int* color) {
silviogissi 1:073d4f161f23 26 if (x1>x2) {unsigned int tmp=x1; x1=x2; x2=tmp;}
silviogissi 1:073d4f161f23 27 if (y1>y2) {unsigned int tmp=y1; y1=y2; y2=tmp;}
silviogissi 1:073d4f161f23 28 CsTransaction(this);
silviogissi 1:073d4f161f23 29 window(x1,y1,x2,y2);
silviogissi 1:073d4f161f23 30 for(unsigned int i=0;i<(x2-x1)*(y2-y1);i++) { pixel(color[i]); }
silviogissi 1:073d4f161f23 31 }
silviogissi 1:073d4f161f23 32
silviogissi 1:073d4f161f23 33 void LCDPanel::set_pixel(unsigned int x, unsigned int y, unsigned int color) {
silviogissi 1:073d4f161f23 34 CsTransaction(this);
silviogissi 1:073d4f161f23 35 window(x,y,1,1);
silviogissi 1:073d4f161f23 36 pixel(color);
silviogissi 0:3f345274c737 37 }