Fork of SSD1289 lib for Landtiger board

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?

UserRevisionLine numberNew 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 */