summaryrefslogtreecommitdiff
path: root/apps/settings.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2008-03-06 07:03:14 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2008-03-06 07:03:14 +0000
commite1ba7f76efce1c9eabd33577ee4dc4efaa218f70 (patch)
treeaf35f13d4d9554a6f017811763172810337acec0 /apps/settings.c
parent012833ce1561d9a9d864f608a63a9189ec29b023 (diff)
downloadrockbox-e1ba7f76efce1c9eabd33577ee4dc4efaa218f70.zip
rockbox-e1ba7f76efce1c9eabd33577ee4dc4efaa218f70.tar.gz
rockbox-e1ba7f76efce1c9eabd33577ee4dc4efaa218f70.tar.bz2
rockbox-e1ba7f76efce1c9eabd33577ee4dc4efaa218f70.tar.xz
there is no need to load the filename settings unless reading from a .cfg, so stop them being read every time settings_apply() is called
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16535 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings.c')
-rw-r--r--apps/settings.c140
1 files changed, 72 insertions, 68 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 3cf5de5..1463176 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -355,7 +355,7 @@ bool settings_load_config(const char* file, bool apply)
close(fd);
settings_save();
if (apply)
- settings_apply();
+ settings_apply(true);
return true;
}
@@ -732,7 +732,7 @@ void sound_settings_apply(void)
#endif
}
-void settings_apply(void)
+void settings_apply(bool read_disk)
{
char buf[64];
#if CONFIG_CODEC == SWCODEC
@@ -812,41 +812,88 @@ void settings_apply(void)
global_settings.peak_meter_clip_hold);
#endif
+ if (read_disk)
+ {
#if LCD_DEPTH > 1
- unload_wps_backdrop();
+ unload_wps_backdrop();
#endif
#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
- unload_remote_wps_backdrop();
+ unload_remote_wps_backdrop();
#endif
- if ( global_settings.wps_file[0] &&
- global_settings.wps_file[0] != 0xff ) {
- snprintf(buf, sizeof buf, WPS_DIR "/%s.wps",
- global_settings.wps_file);
- wps_data_load(gui_wps[0].data, buf, true);
- }
- else
- {
- wps_data_init(gui_wps[0].data);
+ if ( global_settings.wps_file[0] &&
+ global_settings.wps_file[0] != 0xff ) {
+ snprintf(buf, sizeof buf, WPS_DIR "/%s.wps",
+ global_settings.wps_file);
+ wps_data_load(gui_wps[0].data, buf, true);
+ }
+ else
+ {
+ wps_data_init(gui_wps[0].data);
#ifdef HAVE_REMOTE_LCD
- gui_wps[0].data->remote_wps = false;
+ gui_wps[0].data->remote_wps = false;
#endif
- }
+ }
#if LCD_DEPTH > 1
- if ( global_settings.backdrop_file[0] &&
- global_settings.backdrop_file[0] != 0xff ) {
- snprintf(buf, sizeof buf, BACKDROP_DIR "/%s.bmp",
- global_settings.backdrop_file);
- load_main_backdrop(buf);
- } else {
- unload_main_backdrop();
- }
- show_main_backdrop();
+ if ( global_settings.backdrop_file[0] &&
+ global_settings.backdrop_file[0] != 0xff ) {
+ snprintf(buf, sizeof buf, BACKDROP_DIR "/%s.bmp",
+ global_settings.backdrop_file);
+ load_main_backdrop(buf);
+ } else {
+ unload_main_backdrop();
+ }
+ show_main_backdrop();
#endif
#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
- show_remote_main_backdrop();
+ show_remote_main_backdrop();
#endif
+#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1)
+ if ( global_settings.rwps_file[0]) {
+ snprintf(buf, sizeof buf, WPS_DIR "/%s.rwps",
+ global_settings.rwps_file);
+ wps_data_load(gui_wps[1].data, buf, true);
+ }
+ else
+ {
+ wps_data_init(gui_wps[1].data);
+ gui_wps[1].data->remote_wps = true;
+ }
+#endif
+
+#ifdef HAVE_LCD_BITMAP
+ if ( global_settings.font_file[0]) {
+ snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt",
+ global_settings.font_file);
+ font_load(buf);
+ }
+ else
+ font_reset();
+
+ if ( global_settings.kbd_file[0]) {
+ snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd",
+ global_settings.kbd_file);
+ load_kbd(buf);
+ }
+ else
+ load_kbd(NULL);
+
+ if ( global_settings.lang_file[0]) {
+ snprintf(buf, sizeof buf, LANG_DIR "/%s.lng",
+ global_settings.lang_file);
+ lang_load(buf);
+ talk_init(); /* use voice of same language */
+ }
+ /* load the icon set */
+ icons_init();
+
+#ifdef HAVE_LCD_COLOR
+ if (global_settings.colors_file[0])
+ read_color_theme_file();
+#endif
+ }
+
#ifdef HAVE_LCD_COLOR
screens[SCREEN_MAIN].set_foreground(global_settings.fg_color);
screens[SCREEN_MAIN].set_background(global_settings.bg_color);
@@ -855,36 +902,6 @@ void settings_apply(void)
screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color);
#endif
-#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1)
- if ( global_settings.rwps_file[0]) {
- snprintf(buf, sizeof buf, WPS_DIR "/%s.rwps",
- global_settings.rwps_file);
- wps_data_load(gui_wps[1].data, buf, true);
- }
- else
- {
- wps_data_init(gui_wps[1].data);
- gui_wps[1].data->remote_wps = true;
- }
-#endif
-
-#ifdef HAVE_LCD_BITMAP
- if ( global_settings.font_file[0]) {
- snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt",
- global_settings.font_file);
- font_load(buf);
- }
- else
- font_reset();
-
- if ( global_settings.kbd_file[0]) {
- snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd",
- global_settings.kbd_file);
- load_kbd(buf);
- }
- else
- load_kbd(NULL);
-
lcd_scroll_step(global_settings.scroll_step);
gui_list_screen_scroll_step(global_settings.screen_scroll_step);
gui_list_screen_scroll_out_of_view(global_settings.offset_out_of_view);
@@ -895,12 +912,6 @@ void settings_apply(void)
lcd_bidir_scroll(global_settings.bidir_limit);
lcd_scroll_delay(global_settings.scroll_delay);
- if ( global_settings.lang_file[0]) {
- snprintf(buf, sizeof buf, LANG_DIR "/%s.lng",
- global_settings.lang_file);
- lang_load(buf);
- talk_init(); /* use voice of same language */
- }
set_codepage(global_settings.default_codepage);
@@ -944,13 +955,6 @@ void settings_apply(void)
#if defined(HAVE_RECORDING) && CONFIG_CODEC == SWCODEC
enc_global_settings_apply();
#endif
- /* load the icon set */
- icons_init();
-
-#ifdef HAVE_LCD_COLOR
- if (global_settings.colors_file[0])
- read_color_theme_file();
-#endif
list_init_viewports();
}