diff options
-rw-r--r-- | apps/settings.c | 39 | ||||
-rw-r--r-- | apps/settings.h | 1 | ||||
-rw-r--r-- | apps/settings_menu.c | 1 | ||||
-rw-r--r-- | firmware/mpeg.c | 7 |
4 files changed, 37 insertions, 11 deletions
diff --git a/apps/settings.c b/apps/settings.c index e93411a8a2..2667df743b 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -344,6 +344,32 @@ int settings_save( void ) | |||
344 | return 0; | 344 | return 0; |
345 | } | 345 | } |
346 | 346 | ||
347 | void settings_apply(void) | ||
348 | { | ||
349 | mpeg_sound_set(SOUND_BASS, global_settings.bass); | ||
350 | mpeg_sound_set(SOUND_TREBLE, global_settings.treble); | ||
351 | mpeg_sound_set(SOUND_BALANCE, global_settings.balance); | ||
352 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | ||
353 | |||
354 | #ifdef HAVE_MAS3587F | ||
355 | mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); | ||
356 | mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); | ||
357 | mpeg_sound_set(SOUND_AVC, global_settings.avc); | ||
358 | #endif | ||
359 | |||
360 | lcd_set_contrast(global_settings.contrast); | ||
361 | lcd_scroll_speed(global_settings.scroll_speed); | ||
362 | backlight_set_timeout(global_settings.backlight_timeout); | ||
363 | #ifdef HAVE_CHARGE_CTRL | ||
364 | backlight_set_on_when_charging(global_settings.backlight_on_when_charging); | ||
365 | #endif | ||
366 | ata_spindown(global_settings.disk_spindown); | ||
367 | set_poweroff_timeout(global_settings.poweroff); | ||
368 | #ifdef HAVE_CHARGE_CTRL | ||
369 | charge_restart_level = global_settings.discharge ? CHARGE_RESTART_LO : CHARGE_RESTART_HI; | ||
370 | #endif | ||
371 | } | ||
372 | |||
347 | /* | 373 | /* |
348 | * load settings from disk or RTC RAM | 374 | * load settings from disk or RTC RAM |
349 | */ | 375 | */ |
@@ -448,17 +474,8 @@ void settings_load(void) | |||
448 | strncpy(global_settings.resume_file, &config_block[0xFC], MAX_PATH); | 474 | strncpy(global_settings.resume_file, &config_block[0xFC], MAX_PATH); |
449 | global_settings.resume_file[MAX_PATH]=0; | 475 | global_settings.resume_file[MAX_PATH]=0; |
450 | } | 476 | } |
451 | lcd_set_contrast(global_settings.contrast); | 477 | |
452 | lcd_scroll_speed(global_settings.scroll_speed); | 478 | settings_apply(); |
453 | backlight_set_timeout(global_settings.backlight_timeout); | ||
454 | #ifdef HAVE_CHARGE_CTRL | ||
455 | backlight_set_on_when_charging(global_settings.backlight_on_when_charging); | ||
456 | #endif | ||
457 | ata_spindown(global_settings.disk_spindown); | ||
458 | set_poweroff_timeout(global_settings.poweroff); | ||
459 | #ifdef HAVE_CHARGE_CTRL | ||
460 | charge_restart_level = global_settings.discharge ? CHARGE_RESTART_LO : CHARGE_RESTART_HI; | ||
461 | #endif | ||
462 | } | 479 | } |
463 | 480 | ||
464 | static int read_line(int fd, char* buffer, int buffer_size) | 481 | static int read_line(int fd, char* buffer, int buffer_size) |
diff --git a/apps/settings.h b/apps/settings.h index 437f0937dd..35c345aaad 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -110,6 +110,7 @@ struct user_settings | |||
110 | int settings_save(void); | 110 | int settings_save(void); |
111 | void settings_load(void); | 111 | void settings_load(void); |
112 | void settings_reset(void); | 112 | void settings_reset(void); |
113 | void settings_apply(void); | ||
113 | void settings_display(void); | 114 | void settings_display(void); |
114 | 115 | ||
115 | bool settings_load_eq(char* file); | 116 | bool settings_load_eq(char* file); |
diff --git a/apps/settings_menu.c b/apps/settings_menu.c index 3b83e18fe4..9b18a11493 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c | |||
@@ -345,6 +345,7 @@ static bool reset_settings(void) | |||
345 | button = button_get(true); | 345 | button = button_get(true); |
346 | if (button == BUTTON_PLAY) { | 346 | if (button == BUTTON_PLAY) { |
347 | settings_reset(); | 347 | settings_reset(); |
348 | settings_apply(); | ||
348 | lcd_clear_display(); | 349 | lcd_clear_display(); |
349 | lcd_puts(0,0,str(LANG_RESET_DONE_SETTING)); | 350 | lcd_puts(0,0,str(LANG_RESET_DONE_SETTING)); |
350 | lcd_puts(0,1,str(LANG_RESET_DONE_CLEAR)); | 351 | lcd_puts(0,1,str(LANG_RESET_DONE_CLEAR)); |
diff --git a/firmware/mpeg.c b/firmware/mpeg.c index 61a8fc8208..d7c360550a 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c | |||
@@ -170,6 +170,7 @@ static struct id3tag _id3tags[MAX_ID3_TAGS]; | |||
170 | 170 | ||
171 | static unsigned int current_track_counter = 0; | 171 | static unsigned int current_track_counter = 0; |
172 | static unsigned int last_track_counter = 0; | 172 | static unsigned int last_track_counter = 0; |
173 | static bool mpeg_is_initialized = false; | ||
173 | 174 | ||
174 | #ifndef SIMULATOR | 175 | #ifndef SIMULATOR |
175 | 176 | ||
@@ -1601,6 +1602,9 @@ void mpeg_sound_set(int setting, int value) | |||
1601 | #else | 1602 | #else |
1602 | int tmp; | 1603 | int tmp; |
1603 | #endif | 1604 | #endif |
1605 | |||
1606 | if(!mpeg_is_initialized) | ||
1607 | return; | ||
1604 | 1608 | ||
1605 | switch(setting) | 1609 | switch(setting) |
1606 | { | 1610 | { |
@@ -2013,6 +2017,9 @@ void mpeg_init(int volume, int bass, int treble, int balance, int loudness, int | |||
2013 | mpeg_sound_channel_config(MPEG_SOUND_STEREO); | 2017 | mpeg_sound_channel_config(MPEG_SOUND_STEREO); |
2014 | 2018 | ||
2015 | #endif | 2019 | #endif |
2020 | |||
2021 | /* Must be done before calling mpeg_sound_set() */ | ||
2022 | mpeg_is_initialized = true; | ||
2016 | 2023 | ||
2017 | mpeg_sound_set(SOUND_BASS, bass); | 2024 | mpeg_sound_set(SOUND_BASS, bass); |
2018 | mpeg_sound_set(SOUND_TREBLE, treble); | 2025 | mpeg_sound_set(SOUND_TREBLE, treble); |