diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2003-02-07 10:08:02 +0000 |
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2003-02-07 10:08:02 +0000 |
| commit | e597ca4732c82148f37cb6931ca917818ee31c8a (patch) | |
| tree | 3174a2cbfa020d02cf7db1c218d3d461533c5102 /firmware/export/lcd.h | |
| parent | 70e59ede4e28a0972f0c4b3c2fab156ed186dd92 (diff) | |
| download | rockbox-e597ca4732c82148f37cb6931ca917818ee31c8a.zip rockbox-e597ca4732c82148f37cb6931ca917818ee31c8a.tar.gz rockbox-e597ca4732c82148f37cb6931ca917818ee31c8a.tar.bz2 rockbox-e597ca4732c82148f37cb6931ca917818ee31c8a.tar.xz | |
Move publicly (from apps) accessed files from drivers/ to export/.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3219 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export/lcd.h')
| -rw-r--r-- | firmware/export/lcd.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h new file mode 100644 index 0000000..6149dc3 --- /dev/null +++ b/firmware/export/lcd.h @@ -0,0 +1,136 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2002 by Alan Korr + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef __LCD_H__ +#define __LCD_H__ + +#include <stdbool.h> +#include "sh7034.h" +#include "config.h" + +/* common functions */ +extern void lcd_init(void); +extern void lcd_clear_display(void); +extern void lcd_backlight(bool on); +extern void lcd_puts(int x, int y, unsigned char *string); +extern void lcd_putc(int x, int y, unsigned short ch); + +extern void lcd_puts_scroll(int x, int y, unsigned char* string ); +extern void lcd_icon(int icon, bool enable); +extern void lcd_stop_scroll(void); +extern void lcd_scroll_speed( int speed ); +extern void lcd_scroll_delay( int ms ); +extern void lcd_set_contrast(int val); +extern void lcd_write( bool command, int byte ); + +#if defined(SIMULATOR) || defined(HAVE_LCD_BITMAP) +extern void lcd_update(void); + +/* update a fraction of the screen */ +extern void lcd_update_rect(int x, int y, int width, int height); +#else + #define lcd_update() + #define lcd_update_rect(x,y,w,h) +#endif + +#if defined(SIMULATOR) +#include "sim_icons.h" +#endif + +#ifdef HAVE_LCD_CHARCELLS + +/* Icon definitions for lcd_icon() */ +enum +{ + ICON_BATTERY = 0, + ICON_BATTERY_1, + ICON_BATTERY_2, + ICON_BATTERY_3, + ICON_USB, + ICON_PLAY, + ICON_RECORD, + ICON_PAUSE, + ICON_AUDIO, + ICON_REPEAT, + ICON_1, + ICON_VOLUME, + ICON_VOLUME_1, + ICON_VOLUME_2, + ICON_VOLUME_3, + ICON_VOLUME_4, + ICON_VOLUME_5, + ICON_PARAM +}; + +extern void lcd_define_hw_pattern (int which,char *pattern,int length); +extern void lcd_define_pattern (int which,char *pattern); +extern void lcd_double_height (bool on); +unsigned char lcd_get_locked_pattern(void); +void lcd_unlock_pattern(unsigned char pat); +void lcd_allow_bidirectional_scrolling(bool on); +extern void lcd_bidir_scroll(int threshold); +void lcd_put_cursor(int x, int y, char cursor_char); +void lcd_remove_cursor(void); +#endif + +#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR) +#if defined(HAVE_LCD_CHARCELLS) && defined(SIMULATOR) +#define LCD_WIDTH (4*11*6) /* Display width in pixels */ +#define LCD_HEIGHT (4*16+2*24) /* 4*char + 2*icons */ +#else +#define LCD_WIDTH 112 /* Display width in pixels */ +#define LCD_HEIGHT 64 /* Display height in pixels */ +#endif + +#define DRAW_PIXEL(x,y) lcd_framebuffer[(x)][(y)/8] |= (1<<((y)&7)) +#define CLEAR_PIXEL(x,y) lcd_framebuffer[(x)][(y)/8] &= ~(1<<((y)&7)) +#define INVERT_PIXEL(x,y) lcd_framebuffer[(x)][(y)/8] ^= (1<<((y)&7)) + +/* + * Memory copy of display bitmap + */ +extern unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8]; + +extern void lcd_setmargins(int xmargin, int ymargin); +extern int lcd_getxmargin(void); +extern int lcd_getymargin(void); +extern void lcd_bitmap (unsigned char *src, int x, int y, int nx, int ny, + bool clear); +extern void lcd_clearrect (int x, int y, int nx, int ny); +extern void lcd_fillrect (int x, int y, int nx, int ny); +extern void lcd_drawrect (int x, int y, int nx, int ny); +extern void lcd_invertrect (int x, int y, int nx, int ny); +extern void lcd_drawline( int x1, int y1, int x2, int y2 ); +extern void lcd_clearline( int x1, int y1, int x2, int y2 ); +extern void lcd_drawpixel(int x, int y); +extern void lcd_clearpixel(int x, int y); +extern void lcd_invertpixel(int x, int y); +extern void lcd_roll(int pixels); + +extern void lcd_bidir_scroll(int threshold); +extern void lcd_scroll_step(int pixels); +extern void lcd_setfont(int font); +extern void lcd_putsxy(int x, int y, unsigned char *string); +extern int lcd_getstringsize(unsigned char *str, int *w, int *h); +extern int lcd_getstringsize(unsigned char *str, int *w, int *h); + +#endif /* CHARCELLS / BITMAP */ + + +#endif /* __LCD_H__ */ |