summaryrefslogtreecommitdiffstats
path: root/firmware/export/lcd.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/lcd.h')
-rw-r--r--firmware/export/lcd.h136
1 files changed, 136 insertions, 0 deletions
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h
new file mode 100644
index 0000000000..6149dc38d7
--- /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__ */