From ff3bb3aa18e71860d644a50632088ec282968de4 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Wed, 7 Feb 2007 02:48:19 +0000 Subject: Don't save the in-out state of the recording screen as a setting. Fixes the statusbar icons if settings were saved while recording screen was on. Humbly may I suggest a global_state structure to do all this state checking more efficiently\? Ignore me if that's being worked on by someone. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12221 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/statusbar.c | 6 ++++-- apps/recorder/recording.c | 11 +++++++++-- apps/recorder/recording.h | 1 + apps/settings.h | 1 - apps/settings_list.c | 1 - 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c index 2f6dfafc81..d3f4813e37 100644 --- a/apps/gui/statusbar.c +++ b/apps/gui/statusbar.c @@ -38,6 +38,7 @@ #include "statusbar.h" #ifdef HAVE_RECORDING #include "audio.h" +#include "recording.h" #endif /* FIXME: should be removed from icon.h to avoid redefinition, @@ -257,7 +258,8 @@ void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw) #endif #ifdef HAVE_RECORDING /* turn off volume display in recording screen */ - if (!global_settings.recscreen_on) + bool recscreen_on = in_recording_screen(); + if (!recscreen_on) #endif bar->redraw_volume = gui_statusbar_icon_volume(bar, bar->info.volume); gui_statusbar_icon_play_state(display, current_playmode() + Icon_Play); @@ -265,7 +267,7 @@ void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw) #ifdef HAVE_RECORDING /* If in recording screen, replace repeat mode, volume and shuffle icons with recording info */ - if (global_settings.recscreen_on) + if (recscreen_on) gui_statusbar_icon_recording_info(display); else #endif diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index a4662ab42e..cb934877a9 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -70,6 +70,13 @@ #include "radio.h" #ifdef HAVE_RECORDING +static bool in_screen = false; + +bool in_recording_screen(void) +{ + return in_screen; +} + #define PM_HEIGHT ((LCD_HEIGHT >= 72) ? 2 : 1) #if CONFIG_KEYPAD == RECORDER_PAD @@ -794,7 +801,7 @@ bool recording_screen(bool no_source) struct audio_recording_options rec_options; - global_settings.recscreen_on = true; + in_screen = true; cursor = 0; #if (CONFIG_LED == LED_REAL) && !defined(SIMULATOR) ata_set_led_enabled(false); @@ -1764,7 +1771,7 @@ bool recording_screen(bool no_source) peak_meter_trigger(false); peak_meter_set_trigger_listener(NULL); - global_settings.recscreen_on = false; + in_screen = false; sound_settings_apply(); FOR_NB_SCREENS(i) diff --git a/apps/recorder/recording.h b/apps/recorder/recording.h index a67337b9b6..1b313ecab5 100644 --- a/apps/recorder/recording.h +++ b/apps/recorder/recording.h @@ -19,6 +19,7 @@ #ifndef RECORDING_H #define RECORDING_H +bool in_recording_screen(void); bool recording_screen(bool no_source); char *rec_create_filename(char *buf); int rec_create_directory(void); diff --git a/apps/settings.h b/apps/settings.h index db78cb62a1..7321d39cf5 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -310,7 +310,6 @@ struct user_settings int rec_left_gain; /* depends on target */ int rec_right_gain; /* depands on target */ bool rec_editable; /* true means that the bit reservoir is off */ - bool recscreen_on; /* true if using the recording screen */ /* note: timesplit setting is not saved */ int rec_timesplit; /* 0 = off, diff --git a/apps/settings_list.c b/apps/settings_list.c index 939f83aea4..8641cd83b9 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -382,7 +382,6 @@ const struct settings_list settings[] = { #ifdef HAVE_RECORDING /* recording */ - OFFON_SETTING(0,recscreen_on,-1,false,"recscreen on",NULL), OFFON_SETTING(0,rec_startup,LANG_RECORD_STARTUP,false, "rec screen on startup",NULL), {F_T_INT,GS(rec_timesplit), LANG_SPLIT_TIME, INT(0),"rec timesplit", -- cgit v1.2.3