From 01729e7a1841d8aae7be37707dbc7146348c9a64 Mon Sep 17 00:00:00 2001 From: Nils Wallménius Date: Fri, 15 Aug 2008 08:27:39 +0000 Subject: FS#9281 Rename of splash functions. * Remove gui_splash() * Rename gui_syncsplash() to splashf() and remove its voice capabilities. * Rename the internal splash() to splash_internal() and introduce an externally visible splash() that handles simple splashing without printf functionality e.g. splash(HZ, ID2P(LANG_FOO)); or splash(HZ, "foo"); if a LANG_* id is passed it will be voiced. * Adjust all places that called gui_syncsplash() to use the correct variant from above. * Export both new functions to plugins and adjust places calling rb->splash() to use the correct variant so that we now have naming consistency between the core and plugins. * Fix one latent bug that would cause my sim to crash with the above changes and correct P2STR and P2ID macros, thanks to pondlife. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18282 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/color_picker.c | 2 +- apps/gui/gwps-common.c | 11 +++-------- apps/gui/option_select.c | 2 +- apps/gui/pitchscreen.c | 2 +- apps/gui/splash.c | 40 +++++++++++++++++----------------------- apps/gui/splash.h | 13 +++++-------- 6 files changed, 28 insertions(+), 42 deletions(-) (limited to 'apps/gui') diff --git a/apps/gui/color_picker.c b/apps/gui/color_picker.c index 8db9ba92f5..87af8ae3ed 100644 --- a/apps/gui/color_picker.c +++ b/apps/gui/color_picker.c @@ -461,7 +461,7 @@ bool set_color(struct screen *display, char *title, unsigned *color, if (banned_color != (unsigned)-1 && banned_color == rgb.color) { - gui_syncsplash(HZ*2, ID2P(LANG_COLOR_UNACCEPTABLE)); + splash(HZ*2, ID2P(LANG_COLOR_UNACCEPTABLE)); break; } *color = rgb.color; diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c index 8c349ea35c..26c5c5d637 100644 --- a/apps/gui/gwps-common.c +++ b/apps/gui/gwps-common.c @@ -152,7 +152,7 @@ bool update_onvol_change(struct gui_wps * gwps) gui_wps_refresh(gwps, 0, WPS_REFRESH_NON_STATIC); #ifdef HAVE_LCD_CHARCELLS - gui_splash(gwps->display, 0, "Vol: %3d dB", + splashf(0, "Vol: %3d dB", sound_val2phys(SOUND_VOLUME, global_settings.volume)); return true; #endif @@ -329,7 +329,7 @@ bool gui_wps_display(void) #ifdef HAVE_LCD_BITMAP gui_syncstatusbar_draw(&statusbars, true); #endif - gui_syncsplash(HZ, ID2P(LANG_END_PLAYLIST)); + splash(HZ, ID2P(LANG_END_PLAYLIST)); return true; } else @@ -485,16 +485,11 @@ bool update(struct gui_wps *gwps) void display_keylock_text(bool locked) { - char* s; int i; FOR_NB_SCREENS(i) gui_wps[i].display->stop_scroll(); - if(locked) - s = str(LANG_KEYLOCK_ON); - else - s = str(LANG_KEYLOCK_OFF); - gui_syncsplash(HZ, s); + splash(HZ, locked ? ID2P(LANG_KEYLOCK_ON) : ID2P(LANG_KEYLOCK_OFF)); } #ifdef HAVE_LCD_BITMAP diff --git a/apps/gui/option_select.c b/apps/gui/option_select.c index c68a8b0f39..bbad56bf47 100644 --- a/apps/gui/option_select.c +++ b/apps/gui/option_select.c @@ -530,7 +530,7 @@ bool option_screen(const struct settings_list *setting, *variable = oldvalue; if (var_type == F_T_BOOL && !use_temp_var) *(bool*)setting->setting = (oldvalue==1); - gui_syncsplash(HZ/2, ID2P(LANG_CANCEL)); + splash(HZ/2, ID2P(LANG_CANCEL)); } done = true; } diff --git a/apps/gui/pitchscreen.c b/apps/gui/pitchscreen.c index e0a7416ac6..2a568afc0a 100644 --- a/apps/gui/pitchscreen.c +++ b/apps/gui/pitchscreen.c @@ -109,7 +109,7 @@ static void pitch_screen_draw(struct screen *display, int pitch, int pitch_mode) w+1, (display->lcdheight-h)/2, 7, 8); /* "Pitch" */ - snprintf((char *)buf, sizeof(buf), str(LANG_PITCH)); + snprintf((char *)buf, sizeof(buf), "%s", str(LANG_PITCH)); display->getstringsize(buf,&w,&h); display->putsxy((display->lcdwidth-w)/2, (display->lcdheight/2)-h, buf); /* "XX.X%" */ diff --git a/apps/gui/splash.c b/apps/gui/splash.c index b4b451eed6..034e4a5912 100644 --- a/apps/gui/splash.c +++ b/apps/gui/splash.c @@ -45,7 +45,7 @@ #endif -static void splash(struct screen * screen, const char *fmt, va_list ap) +static void splash_internal(struct screen * screen, const char *fmt, va_list ap) { char splash_buf[MAXBUFFER]; short widths[MAXLINES]; @@ -187,41 +187,35 @@ static void splash(struct screen * screen, const char *fmt, va_list ap) screen->update(); } -void gui_splash(struct screen * screen, int ticks, - const char *fmt, ...) +void splashf(int ticks, const char *fmt, ...) { va_list ap; - va_start( ap, fmt ); - splash(screen, fmt, ap); - va_end( ap ); + int i; + + /* If fmt is a lang ID then get the corresponding string (which + still might contain % place holders). */ + fmt = P2STR((unsigned char *)fmt); + FOR_NB_SCREENS(i) + { + va_start(ap, fmt); + screens[i].set_viewport(NULL); + splash_internal(&(screens[i]), fmt, ap); + va_end(ap); + } if(ticks) sleep(ticks); } -void gui_syncsplash(int ticks, const char *fmt, ...) +void splash(int ticks, const char *str) { - va_list ap; - int i; #if !defined(SIMULATOR) || CONFIG_CODEC == SWCODEC long id; /* fmt may be a so called virtual pointer. See settings.h. */ - if((id = P2ID((unsigned char *)fmt)) >= 0) + if((id = P2ID((const unsigned char*)str)) >= 0) /* If fmt specifies a voicefont ID, and voice menus are enabled, then speak it. */ cond_talk_ids_fq(id); #endif - /* If fmt is a lang ID then get the corresponding string (which - still might contain % place holders). */ - fmt = P2STR((unsigned char *)fmt); - va_start( ap, fmt ); - FOR_NB_SCREENS(i) - { - screens[i].set_viewport(NULL); - splash(&(screens[i]), fmt, ap); - } - va_end( ap ); - - if(ticks) - sleep(ticks); + splashf(ticks, "%s", P2STR((const unsigned char*)str)); } diff --git a/apps/gui/splash.h b/apps/gui/splash.h index bb3c8727d1..1bbb9e9e49 100644 --- a/apps/gui/splash.h +++ b/apps/gui/splash.h @@ -25,20 +25,17 @@ #include "screen_access.h" /* - * Puts a splash message centered on the given screen for a given period - * - screen : the screen to put the splash on + * Puts a splash message centered on all the screens for a given period * - ticks : how long the splash is displayed (in rb ticks) * - fmt : what to say *printf style */ -extern void gui_splash(struct screen * screen, int ticks, - const char *fmt, ...) ATTRIBUTE_PRINTF(3, 4); +extern void splashf(int ticks, const char *fmt, ...) ATTRIBUTE_PRINTF(2, 3); /* * Puts a splash message centered on all the screens for a given period * - ticks : how long the splash is displayed (in rb ticks) - * - fmt : what to say *printf style + * - str : what to say, if this is a LANG_* string (from ID2P) + * it will be voiced */ -extern void gui_syncsplash(int ticks, const char *fmt, ...) - ATTRIBUTE_PRINTF(2, 3); - +extern void splash(int ticks, const char *str); #endif /* _GUI_ICON_H_ */ -- cgit v1.2.3