From 97a1a9c1faf67cf7ab3b291afa79ac85fd525a91 Mon Sep 17 00:00:00 2001 From: jdgordon Date: Mon, 22 Feb 2010 07:19:42 +0000 Subject: [PATCH] do r24817 betterer to make it more generic and stuff. Skins will always be in the .rockbox/wps/ dir so there is no real need to add lots of duplicated logic git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24847 a1c6a512-1295-4272-9138-f99709370657 --- apps/settings.c | 59 +++++++++++++++++++++++---------------------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/apps/settings.c b/apps/settings.c index d72b28b50..14e6cca3d 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -743,59 +743,48 @@ void sound_settings_apply(void) /* call this after loading a .wps/.rwps pr other skin files, so that the * skin buffer is reset properly */ +struct skin_load_setting { + char* setting; + char* suffix; + void (*loadfunc)(enum screen_type screen, const char *buf, bool isfile); +}; +static struct skin_load_setting skins[] = { + /* This determins the load order. *sbs must be loaded before any other + * skin on that screen */ + { global_settings.sbs_file, "sbs", sb_skin_data_load}, + { global_settings.wps_file, "wps", wps_data_load}, +#ifdef HAVE_REMOTE_LCD + { global_settings.rsbs_file, "rsbs", sb_skin_data_load}, + { global_settings.rwps_file, "rwps", wps_data_load}, +#endif +}; void settings_apply_skins(void) { char buf[MAX_PATH]; /* re-initialize the skin buffer before we start reloading skins */ skin_buffer_init(); - int i; + unsigned int i; + enum screen_type screen = SCREEN_MAIN; #ifdef HAVE_LCD_BITMAP skin_backdrop_init(); skin_font_init(); - FOR_NB_SCREENS(i) + for (i=0; i 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 FOR_NB_SCREENS(i) -- 2.11.4.GIT