Fork of SSD1289 lib for Landtiger board
ssd1289.h@1:f4f77e6729cd, 2012-11-21 (annotated)
- Committer:
- ttodorov
- Date:
- Wed Nov 21 23:11:20 2012 +0000
- Revision:
- 1:f4f77e6729cd
- Parent:
- 0:d7202c9fc5db
- Child:
- 2:799c4fb113c5
- finished porting of the UTFT library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ttodorov | 1:f4f77e6729cd | 1 | #ifndef SSD1289_H |
ttodorov | 0:d7202c9fc5db | 2 | #define SSD1289_H |
ttodorov | 0:d7202c9fc5db | 3 | |
ttodorov | 0:d7202c9fc5db | 4 | #include "mbed.h" |
ttodorov | 1:f4f77e6729cd | 5 | #include "fonts.h" |
ttodorov | 0:d7202c9fc5db | 6 | |
ttodorov | 1:f4f77e6729cd | 7 | #define RGB( r, g, b ) ( ( ( ( r ) & 248 ) | ( ( g ) >> 5 ) ) << 8 ) | ( ( ( ( g ) & 28 ) << 3 ) | ( ( b ) >> 3 ) ) |
ttodorov | 1:f4f77e6729cd | 8 | #define COLOR_BLACK RGB( 0x00, 0x00, 0x00 ) |
ttodorov | 1:f4f77e6729cd | 9 | #define COLOR_WHITE RGB( 0xFF, 0xFF, 0xFF ) |
ttodorov | 1:f4f77e6729cd | 10 | #define COLOR_RED RGB( 0xFF, 0x00, 0x00 ) |
ttodorov | 1:f4f77e6729cd | 11 | #define COLOR_GREEN RGB( 0x00, 0xFF, 0x00 ) |
ttodorov | 1:f4f77e6729cd | 12 | #define COLOR_BLIUE RGB( 0x00, 0x00, 0xFF ) |
ttodorov | 1:f4f77e6729cd | 13 | |
ttodorov | 1:f4f77e6729cd | 14 | typedef enum Orientation_enum |
ttodorov | 0:d7202c9fc5db | 15 | { |
ttodorov | 0:d7202c9fc5db | 16 | PORTRAIT = 0, |
ttodorov | 0:d7202c9fc5db | 17 | LANDSCAPE = 1, |
ttodorov | 0:d7202c9fc5db | 18 | } orientation_t; |
ttodorov | 0:d7202c9fc5db | 19 | |
ttodorov | 1:f4f77e6729cd | 20 | typedef enum Alignment_enum |
ttodorov | 1:f4f77e6729cd | 21 | { |
ttodorov | 1:f4f77e6729cd | 22 | LEFT = 0, |
ttodorov | 1:f4f77e6729cd | 23 | CENTER = 9998, |
ttodorov | 1:f4f77e6729cd | 24 | RIGHT = 9999, |
ttodorov | 1:f4f77e6729cd | 25 | } align_t; |
ttodorov | 1:f4f77e6729cd | 26 | |
ttodorov | 1:f4f77e6729cd | 27 | typedef struct Font_struct |
ttodorov | 0:d7202c9fc5db | 28 | { |
ttodorov | 1:f4f77e6729cd | 29 | const char* font; |
ttodorov | 1:f4f77e6729cd | 30 | unsigned char width; |
ttodorov | 1:f4f77e6729cd | 31 | unsigned char height; |
ttodorov | 1:f4f77e6729cd | 32 | unsigned char offset; |
ttodorov | 1:f4f77e6729cd | 33 | unsigned char numchars; |
ttodorov | 0:d7202c9fc5db | 34 | } font_metrics_t; |
ttodorov | 0:d7202c9fc5db | 35 | |
ttodorov | 1:f4f77e6729cd | 36 | typedef unsigned short* bitmap_t; |
ttodorov | 1:f4f77e6729cd | 37 | |
ttodorov | 0:d7202c9fc5db | 38 | class SSD1289 : public Stream |
ttodorov | 0:d7202c9fc5db | 39 | { |
ttodorov | 0:d7202c9fc5db | 40 | public: |
ttodorov | 0:d7202c9fc5db | 41 | SSD1289( PinName CS_PIN, PinName RESET_PIN, PinName RS_PIN, PinName WR_PIN, PinName RD_PIN, BusOut* DATA_PORT ); |
ttodorov | 1:f4f77e6729cd | 42 | void Initialize( orientation_t orientation = LANDSCAPE ); |
ttodorov | 1:f4f77e6729cd | 43 | |
ttodorov | 1:f4f77e6729cd | 44 | void SetForeground( unsigned short color = COLOR_WHITE ); |
ttodorov | 1:f4f77e6729cd | 45 | void SetBackground( unsigned short color = COLOR_BLACK ); |
ttodorov | 1:f4f77e6729cd | 46 | void SetFont( const char* font ); |
ttodorov | 1:f4f77e6729cd | 47 | |
ttodorov | 1:f4f77e6729cd | 48 | void FillScreen( int color = -1 ); |
ttodorov | 1:f4f77e6729cd | 49 | void ClearScreen( void ); |
ttodorov | 1:f4f77e6729cd | 50 | void DrawPixel( unsigned short x, unsigned short y, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 51 | void DrawLine( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 52 | void DrawRect( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 53 | void DrawRoundRect( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 54 | void FillRect( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 55 | void FillRoundRect( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 56 | void DrawCircle( unsigned short x, unsigned short y, unsigned short radius, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 57 | void FillCircle( unsigned short x, unsigned short y, unsigned short radius, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 58 | void Print( const char *str, unsigned short x, unsigned short y, int fgColor = -2, int bgColor = -1, unsigned short deg = 0 ); |
ttodorov | 1:f4f77e6729cd | 59 | void DrawBitmap( unsigned short x, unsigned short y, unsigned short sx, unsigned short sy, bitmap_t data, unsigned char scale = 1 ); |
ttodorov | 1:f4f77e6729cd | 60 | void DrawBitmap( unsigned short x, unsigned short y, unsigned short sx, unsigned short sy, bitmap_t data, unsigned short deg, unsigned short rox, unsigned short roy ); |
ttodorov | 1:f4f77e6729cd | 61 | |
ttodorov | 1:f4f77e6729cd | 62 | /* |
ttodorov | 1:f4f77e6729cd | 63 | void PrintNumI( long num, int x, int y ); |
ttodorov | 1:f4f77e6729cd | 64 | void PrintNumF( double num, uint8_t dec, int x, int y, char divider = '.' ); |
ttodorov | 1:f4f77e6729cd | 65 | */ |
ttodorov | 0:d7202c9fc5db | 66 | |
ttodorov | 0:d7202c9fc5db | 67 | private: |
ttodorov | 0:d7202c9fc5db | 68 | DigitalOut _lcd_pin_cs, _lcd_pin_reset, _lcd_pin_rs, _lcd_pin_wr, _lcd_pin_rd; |
ttodorov | 0:d7202c9fc5db | 69 | BusOut* _lcd_port; |
ttodorov | 0:d7202c9fc5db | 70 | orientation_t _orientation; |
ttodorov | 1:f4f77e6729cd | 71 | static const long _disp_width = 239; |
ttodorov | 1:f4f77e6729cd | 72 | static const long _disp_height = 319; |
ttodorov | 1:f4f77e6729cd | 73 | unsigned short _foreground, _background; |
ttodorov | 1:f4f77e6729cd | 74 | font_metrics_t _font; |
ttodorov | 0:d7202c9fc5db | 75 | |
ttodorov | 0:d7202c9fc5db | 76 | private: |
ttodorov | 0:d7202c9fc5db | 77 | virtual void writeCmd( unsigned short cmd ); |
ttodorov | 0:d7202c9fc5db | 78 | virtual void writeData( unsigned short data ); |
ttodorov | 0:d7202c9fc5db | 79 | virtual void writeCmdData( unsigned short cmd, unsigned short data ); |
ttodorov | 1:f4f77e6729cd | 80 | |
ttodorov | 1:f4f77e6729cd | 81 | void setXY( uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2 ); |
ttodorov | 1:f4f77e6729cd | 82 | void clearXY( void ); |
ttodorov | 1:f4f77e6729cd | 83 | void drawHLine( unsigned short x, unsigned short y, unsigned short len, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 84 | void drawVLine( unsigned short x, unsigned short y, unsigned short len, int color = -2 ); |
ttodorov | 1:f4f77e6729cd | 85 | |
ttodorov | 1:f4f77e6729cd | 86 | void printChar( char c, unsigned short x, unsigned short y, int fgColor = -2, int bgColor = -1 ); |
ttodorov | 1:f4f77e6729cd | 87 | void rotateChar( char c, unsigned short x, unsigned short y, int pos, int fgColor = -2, int bgColor = -1, unsigned short deg = 0 ); |
ttodorov | 1:f4f77e6729cd | 88 | |
ttodorov | 1:f4f77e6729cd | 89 | // from Stream |
ttodorov | 1:f4f77e6729cd | 90 | virtual int _putc( int value ); |
ttodorov | 1:f4f77e6729cd | 91 | virtual int _getc(); |
ttodorov | 0:d7202c9fc5db | 92 | }; |
ttodorov | 0:d7202c9fc5db | 93 | |
ttodorov | 0:d7202c9fc5db | 94 | #endif /* SSD1289_H */ |