path: root/firmware
diff options
authorRafaël Carré <>2010-08-28 21:46:18 +0000
committerRafaël Carré <>2010-08-28 21:46:18 +0000
commit0f063b7d725e2c418aa0fb6f06193c79cc9ebea6 (patch)
tree706a782ecdb656a3a59fb70d1ac185a3f9f34286 /firmware
parente78a12bca72cb5b1d559cda0fc68bd324017f9b0 (diff)
Implement lcd(_remote)_putsxyf() and export to plugins
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
3 files changed, 13 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-bitmap-common.c b/firmware/drivers/lcd-bitmap-common.c
index fba09cf06b..9f1d5fef68 100644
--- a/firmware/drivers/lcd-bitmap-common.c
+++ b/firmware/drivers/lcd-bitmap-common.c
@@ -219,6 +219,17 @@ void LCDFN(putsxy)(int x, int y, const unsigned char *str)
LCDFN(putsxyofs)(x, y, 0, str);
+/* Formatting version of LCDFN(putsxy) */
+void LCDFN(putsxyf)(int x, int y, const unsigned char *fmt, ...)
+ va_list ap;
+ char buf[256];
+ va_start(ap, fmt);
+ vsnprintf(buf, sizeof (buf), fmt, ap);
+ va_end(ap);
+ LCDFN(putsxy)(x, y, buf);
static void LCDFN(putsxyofs_style)(int xpos, int ypos,
const unsigned char *str, int style,
int w, int h, int offset)
diff --git a/firmware/export/lcd-remote.h b/firmware/export/lcd-remote.h
index 62e82ca6ac..5b96863536 100644
--- a/firmware/export/lcd-remote.h
+++ b/firmware/export/lcd-remote.h
@@ -178,6 +178,7 @@ extern void lcd_remote_bitmap_part(const fb_remote_data *src, int src_x,
extern void lcd_remote_bitmap(const fb_remote_data *src, int x, int y,
int width, int height);
extern void lcd_remote_putsxy(int x, int y, const unsigned char *str);
+extern void lcd_remote_putsxyf(int x, int y, const unsigned char *fmt, ...);
extern void lcd_remote_bidir_scroll(int threshold);
extern void lcd_remote_scroll_step(int pixels);
diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h
index 35720900fe..1cbb286ad1 100644
--- a/firmware/export/lcd.h
+++ b/firmware/export/lcd.h
@@ -191,6 +191,7 @@ extern void lcd_update_viewport(void);
extern void lcd_clear_viewport(void);
extern void lcd_clear_display(void);
extern void lcd_putsxy(int x, int y, const unsigned char *string);
+extern void lcd_putsxyf(int x, int y, const unsigned char *fmt, ...);
extern void lcd_puts(int x, int y, const unsigned char *string);
extern void lcd_putsf(int x, int y, const unsigned char *fmt, ...);
extern void lcd_puts_style(int x, int y, const unsigned char *string, int style);