Fork of SSD1289 lib for Landtiger board
ssd1289.h
- Committer:
- ttodorov
- Date:
- 2012-11-21
- Revision:
- 1:f4f77e6729cd
- Parent:
- 0:d7202c9fc5db
- Child:
- 2:799c4fb113c5
File content as of revision 1:f4f77e6729cd:
#ifndef SSD1289_H #define SSD1289_H #include "mbed.h" #include "fonts.h" #define RGB( r, g, b ) ( ( ( ( r ) & 248 ) | ( ( g ) >> 5 ) ) << 8 ) | ( ( ( ( g ) & 28 ) << 3 ) | ( ( b ) >> 3 ) ) #define COLOR_BLACK RGB( 0x00, 0x00, 0x00 ) #define COLOR_WHITE RGB( 0xFF, 0xFF, 0xFF ) #define COLOR_RED RGB( 0xFF, 0x00, 0x00 ) #define COLOR_GREEN RGB( 0x00, 0xFF, 0x00 ) #define COLOR_BLIUE RGB( 0x00, 0x00, 0xFF ) typedef enum Orientation_enum { PORTRAIT = 0, LANDSCAPE = 1, } orientation_t; typedef enum Alignment_enum { LEFT = 0, CENTER = 9998, RIGHT = 9999, } align_t; typedef struct Font_struct { const char* font; unsigned char width; unsigned char height; unsigned char offset; unsigned char numchars; } font_metrics_t; typedef unsigned short* bitmap_t; class SSD1289 : public Stream { public: SSD1289( PinName CS_PIN, PinName RESET_PIN, PinName RS_PIN, PinName WR_PIN, PinName RD_PIN, BusOut* DATA_PORT ); void Initialize( orientation_t orientation = LANDSCAPE ); void SetForeground( unsigned short color = COLOR_WHITE ); void SetBackground( unsigned short color = COLOR_BLACK ); void SetFont( const char* font ); void FillScreen( int color = -1 ); void ClearScreen( void ); void DrawPixel( unsigned short x, unsigned short y, int color = -2 ); void DrawLine( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); void DrawRect( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); void DrawRoundRect( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); void FillRect( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); void FillRoundRect( unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2, int color = -2 ); void DrawCircle( unsigned short x, unsigned short y, unsigned short radius, int color = -2 ); void FillCircle( unsigned short x, unsigned short y, unsigned short radius, int color = -2 ); void Print( const char *str, unsigned short x, unsigned short y, int fgColor = -2, int bgColor = -1, unsigned short deg = 0 ); void DrawBitmap( unsigned short x, unsigned short y, unsigned short sx, unsigned short sy, bitmap_t data, unsigned char scale = 1 ); 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 ); /* void PrintNumI( long num, int x, int y ); void PrintNumF( double num, uint8_t dec, int x, int y, char divider = '.' ); */ private: DigitalOut _lcd_pin_cs, _lcd_pin_reset, _lcd_pin_rs, _lcd_pin_wr, _lcd_pin_rd; BusOut* _lcd_port; orientation_t _orientation; static const long _disp_width = 239; static const long _disp_height = 319; unsigned short _foreground, _background; font_metrics_t _font; private: virtual void writeCmd( unsigned short cmd ); virtual void writeData( unsigned short data ); virtual void writeCmdData( unsigned short cmd, unsigned short data ); void setXY( uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2 ); void clearXY( void ); void drawHLine( unsigned short x, unsigned short y, unsigned short len, int color = -2 ); void drawVLine( unsigned short x, unsigned short y, unsigned short len, int color = -2 ); void printChar( char c, unsigned short x, unsigned short y, int fgColor = -2, int bgColor = -1 ); void rotateChar( char c, unsigned short x, unsigned short y, int pos, int fgColor = -2, int bgColor = -1, unsigned short deg = 0 ); // from Stream virtual int _putc( int value ); virtual int _getc(); }; #endif /* SSD1289_H */