summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2005-04-19 12:47:16 +0000
committerChristian Gmeiner <christian.gmeiner@gmail.com>2005-04-19 12:47:16 +0000
commitc6ec0f48a5999c4456439eb4e0b54467b464ed02 (patch)
tree5ef7e0368a7863c07500f1f89991ae6551c1a530
parented0c8764c44ca5d651b08fdd19bb2597f3a8300b (diff)
downloadrockbox-c6ec0f48a5999c4456439eb4e0b54467b464ed02.zip
rockbox-c6ec0f48a5999c4456439eb4e0b54467b464ed02.tar.gz
rockbox-c6ec0f48a5999c4456439eb4e0b54467b464ed02.tar.bz2
rockbox-c6ec0f48a5999c4456439eb4e0b54467b464ed02.tar.xz
moved lcd_getstringsize into font.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6321 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/lcd-h100.c19
-rw-r--r--firmware/export/font.h1
-rw-r--r--firmware/font.c25
3 files changed, 27 insertions, 18 deletions
diff --git a/firmware/drivers/lcd-h100.c b/firmware/drivers/lcd-h100.c
index d27a62d..157791d 100644
--- a/firmware/drivers/lcd-h100.c
+++ b/firmware/drivers/lcd-h100.c
@@ -319,24 +319,7 @@ void lcd_setfont(int newfont)
int lcd_getstringsize(const unsigned char *str, int *w, int *h)
{
- struct font* pf = font_get(curfont);
- int ch;
- int width = 0;
-
- while((ch = *str++)) {
- /* check input range*/
- if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
- ch = pf->defaultchar;
- ch -= pf->firstchar;
-
- /* get proportional width and glyph bits*/
- width += pf->width? pf->width[ch]: pf->maxwidth;
- }
- if ( w )
- *w = width;
- if ( h )
- *h = pf->height;
- return width;
+ return font_getstringsize(str, w, h, curfont);
}
/* put a string at a given char position */
diff --git a/firmware/export/font.h b/firmware/export/font.h
index 8b3f373..01751ad 100644
--- a/firmware/export/font.h
+++ b/firmware/export/font.h
@@ -91,6 +91,7 @@ void font_init(void);
struct font* font_load(const char *path);
struct font* font_get(int font);
void font_reset(void);
+int font_getstringsize(const unsigned char *str, int *w, int *h, int fontnumber);
#else /* HAVE_LCD_BITMAP */
diff --git a/firmware/font.c b/firmware/font.c
index 37c082f..3038877 100644
--- a/firmware/font.c
+++ b/firmware/font.c
@@ -225,6 +225,31 @@ struct font* font_get(int font)
panicf("No font!");
}
}
+/*
+ * Returns the stringsize of a given string.
+ */
+int font_getstringsize(const unsigned char *str, int *w, int *h, int fontnumber)
+{
+ struct font* pf = font_get(fontnumber);
+ int ch;
+ int width = 0;
+
+ while((ch = *str++)) {
+ /* check input range*/
+ if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
+ ch = pf->defaultchar;
+ ch -= pf->firstchar;
+
+ /* get proportional width and glyph bits*/
+ width += pf->width? pf->width[ch]: pf->maxwidth;
+ }
+ if ( w )
+ *w = width;
+ if ( h )
+ *h = pf->height;
+ return width;
+}
+
#endif /* HAVE_LCD_BITMAP */