diff options
Diffstat (limited to 'apps/settings.c')
-rw-r--r-- | apps/settings.c | 140 |
1 files changed, 72 insertions, 68 deletions
diff --git a/apps/settings.c b/apps/settings.c index 3cf5de58ac..1463176dc5 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -355,7 +355,7 @@ bool settings_load_config(const char* file, bool apply) | |||
355 | close(fd); | 355 | close(fd); |
356 | settings_save(); | 356 | settings_save(); |
357 | if (apply) | 357 | if (apply) |
358 | settings_apply(); | 358 | settings_apply(true); |
359 | return true; | 359 | return true; |
360 | } | 360 | } |
361 | 361 | ||
@@ -732,7 +732,7 @@ void sound_settings_apply(void) | |||
732 | #endif | 732 | #endif |
733 | } | 733 | } |
734 | 734 | ||
735 | void settings_apply(void) | 735 | void settings_apply(bool read_disk) |
736 | { | 736 | { |
737 | char buf[64]; | 737 | char buf[64]; |
738 | #if CONFIG_CODEC == SWCODEC | 738 | #if CONFIG_CODEC == SWCODEC |
@@ -812,41 +812,88 @@ void settings_apply(void) | |||
812 | global_settings.peak_meter_clip_hold); | 812 | global_settings.peak_meter_clip_hold); |
813 | #endif | 813 | #endif |
814 | 814 | ||
815 | if (read_disk) | ||
816 | { | ||
815 | #if LCD_DEPTH > 1 | 817 | #if LCD_DEPTH > 1 |
816 | unload_wps_backdrop(); | 818 | unload_wps_backdrop(); |
817 | #endif | 819 | #endif |
818 | #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 | 820 | #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 |
819 | unload_remote_wps_backdrop(); | 821 | unload_remote_wps_backdrop(); |
820 | #endif | 822 | #endif |
821 | if ( global_settings.wps_file[0] && | 823 | if ( global_settings.wps_file[0] && |
822 | global_settings.wps_file[0] != 0xff ) { | 824 | global_settings.wps_file[0] != 0xff ) { |
823 | snprintf(buf, sizeof buf, WPS_DIR "/%s.wps", | 825 | snprintf(buf, sizeof buf, WPS_DIR "/%s.wps", |
824 | global_settings.wps_file); | 826 | global_settings.wps_file); |
825 | wps_data_load(gui_wps[0].data, buf, true); | 827 | wps_data_load(gui_wps[0].data, buf, true); |
826 | } | 828 | } |
827 | else | 829 | else |
828 | { | 830 | { |
829 | wps_data_init(gui_wps[0].data); | 831 | wps_data_init(gui_wps[0].data); |
830 | #ifdef HAVE_REMOTE_LCD | 832 | #ifdef HAVE_REMOTE_LCD |
831 | gui_wps[0].data->remote_wps = false; | 833 | gui_wps[0].data->remote_wps = false; |
832 | #endif | 834 | #endif |
833 | } | 835 | } |
834 | 836 | ||
835 | #if LCD_DEPTH > 1 | 837 | #if LCD_DEPTH > 1 |
836 | if ( global_settings.backdrop_file[0] && | 838 | if ( global_settings.backdrop_file[0] && |
837 | global_settings.backdrop_file[0] != 0xff ) { | 839 | global_settings.backdrop_file[0] != 0xff ) { |
838 | snprintf(buf, sizeof buf, BACKDROP_DIR "/%s.bmp", | 840 | snprintf(buf, sizeof buf, BACKDROP_DIR "/%s.bmp", |
839 | global_settings.backdrop_file); | 841 | global_settings.backdrop_file); |
840 | load_main_backdrop(buf); | 842 | load_main_backdrop(buf); |
841 | } else { | 843 | } else { |
842 | unload_main_backdrop(); | 844 | unload_main_backdrop(); |
843 | } | 845 | } |
844 | show_main_backdrop(); | 846 | show_main_backdrop(); |
845 | #endif | 847 | #endif |
846 | #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 | 848 | #if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 |
847 | show_remote_main_backdrop(); | 849 | show_remote_main_backdrop(); |
848 | #endif | 850 | #endif |
849 | 851 | ||
852 | #if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) | ||
853 | if ( global_settings.rwps_file[0]) { | ||
854 | snprintf(buf, sizeof buf, WPS_DIR "/%s.rwps", | ||
855 | global_settings.rwps_file); | ||
856 | wps_data_load(gui_wps[1].data, buf, true); | ||
857 | } | ||
858 | else | ||
859 | { | ||
860 | wps_data_init(gui_wps[1].data); | ||
861 | gui_wps[1].data->remote_wps = true; | ||
862 | } | ||
863 | #endif | ||
864 | |||
865 | #ifdef HAVE_LCD_BITMAP | ||
866 | if ( global_settings.font_file[0]) { | ||
867 | snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt", | ||
868 | global_settings.font_file); | ||
869 | font_load(buf); | ||
870 | } | ||
871 | else | ||
872 | font_reset(); | ||
873 | |||
874 | if ( global_settings.kbd_file[0]) { | ||
875 | snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd", | ||
876 | global_settings.kbd_file); | ||
877 | load_kbd(buf); | ||
878 | } | ||
879 | else | ||
880 | load_kbd(NULL); | ||
881 | |||
882 | if ( global_settings.lang_file[0]) { | ||
883 | snprintf(buf, sizeof buf, LANG_DIR "/%s.lng", | ||
884 | global_settings.lang_file); | ||
885 | lang_load(buf); | ||
886 | talk_init(); /* use voice of same language */ | ||
887 | } | ||
888 | /* load the icon set */ | ||
889 | icons_init(); | ||
890 | |||
891 | #ifdef HAVE_LCD_COLOR | ||
892 | if (global_settings.colors_file[0]) | ||
893 | read_color_theme_file(); | ||
894 | #endif | ||
895 | } | ||
896 | |||
850 | #ifdef HAVE_LCD_COLOR | 897 | #ifdef HAVE_LCD_COLOR |
851 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); | 898 | screens[SCREEN_MAIN].set_foreground(global_settings.fg_color); |
852 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); | 899 | screens[SCREEN_MAIN].set_background(global_settings.bg_color); |
@@ -855,36 +902,6 @@ void settings_apply(void) | |||
855 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); | 902 | screens[SCREEN_MAIN].set_selector_text(global_settings.lst_color); |
856 | #endif | 903 | #endif |
857 | 904 | ||
858 | #if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) | ||
859 | if ( global_settings.rwps_file[0]) { | ||
860 | snprintf(buf, sizeof buf, WPS_DIR "/%s.rwps", | ||
861 | global_settings.rwps_file); | ||
862 | wps_data_load(gui_wps[1].data, buf, true); | ||
863 | } | ||
864 | else | ||
865 | { | ||
866 | wps_data_init(gui_wps[1].data); | ||
867 | gui_wps[1].data->remote_wps = true; | ||
868 | } | ||
869 | #endif | ||
870 | |||
871 | #ifdef HAVE_LCD_BITMAP | ||
872 | if ( global_settings.font_file[0]) { | ||
873 | snprintf(buf, sizeof buf, FONT_DIR "/%s.fnt", | ||
874 | global_settings.font_file); | ||
875 | font_load(buf); | ||
876 | } | ||
877 | else | ||
878 | font_reset(); | ||
879 | |||
880 | if ( global_settings.kbd_file[0]) { | ||
881 | snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd", | ||
882 | global_settings.kbd_file); | ||
883 | load_kbd(buf); | ||
884 | } | ||
885 | else | ||
886 | load_kbd(NULL); | ||
887 | |||
888 | lcd_scroll_step(global_settings.scroll_step); | 905 | lcd_scroll_step(global_settings.scroll_step); |
889 | gui_list_screen_scroll_step(global_settings.screen_scroll_step); | 906 | gui_list_screen_scroll_step(global_settings.screen_scroll_step); |
890 | gui_list_screen_scroll_out_of_view(global_settings.offset_out_of_view); | 907 | gui_list_screen_scroll_out_of_view(global_settings.offset_out_of_view); |
@@ -895,12 +912,6 @@ void settings_apply(void) | |||
895 | lcd_bidir_scroll(global_settings.bidir_limit); | 912 | lcd_bidir_scroll(global_settings.bidir_limit); |
896 | lcd_scroll_delay(global_settings.scroll_delay); | 913 | lcd_scroll_delay(global_settings.scroll_delay); |
897 | 914 | ||
898 | if ( global_settings.lang_file[0]) { | ||
899 | snprintf(buf, sizeof buf, LANG_DIR "/%s.lng", | ||
900 | global_settings.lang_file); | ||
901 | lang_load(buf); | ||
902 | talk_init(); /* use voice of same language */ | ||
903 | } | ||
904 | 915 | ||
905 | set_codepage(global_settings.default_codepage); | 916 | set_codepage(global_settings.default_codepage); |
906 | 917 | ||
@@ -944,13 +955,6 @@ void settings_apply(void) | |||
944 | #if defined(HAVE_RECORDING) && CONFIG_CODEC == SWCODEC | 955 | #if defined(HAVE_RECORDING) && CONFIG_CODEC == SWCODEC |
945 | enc_global_settings_apply(); | 956 | enc_global_settings_apply(); |
946 | #endif | 957 | #endif |
947 | /* load the icon set */ | ||
948 | icons_init(); | ||
949 | |||
950 | #ifdef HAVE_LCD_COLOR | ||
951 | if (global_settings.colors_file[0]) | ||
952 | read_color_theme_file(); | ||
953 | #endif | ||
954 | list_init_viewports(); | 958 | list_init_viewports(); |
955 | } | 959 | } |
956 | 960 | ||