Base LCDPanel based, required for all LCDPanel drivers
LCDPanel.h@0:3f345274c737, 2012-03-09 (annotated)
- Committer:
- silviogissi
- Date:
- Fri Mar 09 00:55:25 2012 +0000
- Revision:
- 0:3f345274c737
- Child:
- 1:073d4f161f23
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
silviogissi | 0:3f345274c737 | 1 | /* |
silviogissi | 0:3f345274c737 | 2 | Placeholder for Copyright notice, etc |
silviogissi | 0:3f345274c737 | 3 | |
silviogissi | 0:3f345274c737 | 4 | Author: silviogissi |
silviogissi | 0:3f345274c737 | 5 | */ |
silviogissi | 0:3f345274c737 | 6 | |
silviogissi | 0:3f345274c737 | 7 | #ifndef LCDPANEL_BASE_H |
silviogissi | 0:3f345274c737 | 8 | #define LCDPANEL_BASE_H |
silviogissi | 0:3f345274c737 | 9 | |
silviogissi | 0:3f345274c737 | 10 | class LCDPanel { |
silviogissi | 0:3f345274c737 | 11 | |
silviogissi | 0:3f345274c737 | 12 | public: |
silviogissi | 0:3f345274c737 | 13 | LCDPanel(unsigned int width, unsigned int height); |
silviogissi | 0:3f345274c737 | 14 | |
silviogissi | 0:3f345274c737 | 15 | virtual void fill(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, unsigned int color); |
silviogissi | 0:3f345274c737 | 16 | virtual void fill(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, const unsigned int* color); |
silviogissi | 0:3f345274c737 | 17 | virtual void set_pixel(unsigned int x, unsigned int y, unsigned int color); |
silviogissi | 0:3f345274c737 | 18 | |
silviogissi | 0:3f345274c737 | 19 | inline unsigned int height() { return _ymax+1; } |
silviogissi | 0:3f345274c737 | 20 | inline unsigned int width() { return _xmax+1; } |
silviogissi | 0:3f345274c737 | 21 | |
silviogissi | 0:3f345274c737 | 22 | protected: |
silviogissi | 0:3f345274c737 | 23 | unsigned int _ymax; |
silviogissi | 0:3f345274c737 | 24 | unsigned int _xmax; |
silviogissi | 0:3f345274c737 | 25 | DigitalOut _cs; |
silviogissi | 0:3f345274c737 | 26 | |
silviogissi | 0:3f345274c737 | 27 | class CsTransaction |
silviogissi | 0:3f345274c737 | 28 | { |
silviogissi | 0:3f345274c737 | 29 | private: LCDPanel &p; |
silviogissi | 0:3f345274c737 | 30 | public: |
silviogissi | 0:3f345274c737 | 31 | CsTransaction(LCDPanel* panel) : p(panel) { p._cs=0; } |
silviogissi | 0:3f345274c737 | 32 | ~CsTransaction() { p._cs=1; } |
silviogissi | 0:3f345274c737 | 33 | } |
silviogissi | 0:3f345274c737 | 34 | |
silviogissi | 0:3f345274c737 | 35 | virtual void pixel(unsigned int x, unsigned int y, unsigned int color)=0; |
silviogissi | 0:3f345274c737 | 36 | virtual void window(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2)=0; |
silviogissi | 0:3f345274c737 | 37 | |
silviogissi | 0:3f345274c737 | 38 | }; |
silviogissi | 0:3f345274c737 | 39 | |
silviogissi | 0:3f345274c737 | 40 | #endif // LCDPANEL_BASE_H |