From 7f53ca4ab59f04f44c5bf650782c28a838f7b45a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 16 Jan 2015 23:25:58 +0100 Subject: [PATCH] audio mute enable is now saved to config file --- audio/audio_driver.c | 2 +- general.h | 2 +- libretro_version_1.c | 2 +- retroarch.c | 8 ++++---- retroarch.cfg | 3 +++ settings.c | 3 +++ settings_data.c | 2 +- 7 files changed, 14 insertions(+), 8 deletions(-) diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 4ba39bac2f..5ff5279b60 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -374,7 +374,7 @@ void init_audio(void) g_extern.measure_data.buffer_free_samples_count = 0; - if (driver.audio_active && !g_extern.audio_data.mute && + if (driver.audio_active && !g_settings.audio.mute_enable && g_extern.system.audio_callback.callback) { /* Threaded driver is initially stopped. */ diff --git a/general.h b/general.h index 48bd2e08cb..340ad1fdcc 100644 --- a/general.h +++ b/general.h @@ -230,6 +230,7 @@ struct settings { char driver[32]; bool enable; + bool mute_enable; unsigned out_rate; unsigned block_frames; char device[PATH_MAX_LENGTH]; @@ -512,7 +513,6 @@ struct global float in_rate; bool use_float; - bool mute; float *outsamples; int16_t *conv_outsamples; diff --git a/libretro_version_1.c b/libretro_version_1.c index 1be9dc0a4f..b49c187e66 100644 --- a/libretro_version_1.c +++ b/libretro_version_1.c @@ -175,7 +175,7 @@ bool retro_flush_audio(const int16_t *data, size_t samples) driver.recording->push_audio(driver.recording_data, &ffemu_data); } - if (g_extern.is_paused || g_extern.audio_data.mute) + if (g_extern.is_paused || g_settings.audio.mute_enable) return true; if (!driver.audio_active || !g_extern.audio_data.data) return false; diff --git a/retroarch.c b/retroarch.c index b789d20a3c..5afce9d7c6 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2604,7 +2604,7 @@ bool rarch_main_command(unsigned cmd) if (!driver.audio_data || driver.audio->alive(driver.audio_data)) return false; - if (!g_extern.audio_data.mute + if (!g_settings.audio.mute_enable && !driver.audio->start(driver.audio_data)) { RARCH_ERR("Failed to start audio driver. Will continue without audio.\n"); @@ -2613,18 +2613,18 @@ bool rarch_main_command(unsigned cmd) break; case RARCH_CMD_AUDIO_MUTE_TOGGLE: { - const char *msg = !g_extern.audio_data.mute ? + const char *msg = !g_settings.audio.mute_enable ? "Audio muted." : "Audio unmuted."; if (!driver.audio_data || !driver.audio_active) return false; - g_extern.audio_data.mute = !g_extern.audio_data.mute; + g_settings.audio.mute_enable = !g_settings.audio.mute_enable; msg_queue_clear(g_extern.msg_queue); msg_queue_push(g_extern.msg_queue, msg, 1, 180); - if (g_extern.audio_data.mute) + if (g_settings.audio.mute_enable) rarch_main_command(RARCH_CMD_AUDIO_STOP); else if (!rarch_main_command(RARCH_CMD_AUDIO_START)) { diff --git a/retroarch.cfg b/retroarch.cfg index ce31ef8a27..97af99a03c 100644 --- a/retroarch.cfg +++ b/retroarch.cfg @@ -242,6 +242,9 @@ # Enable audio. # audio_enable = true +# Mutes audio. +# audio_mute_enable = false + # Audio output samplerate. # audio_out_rate = 48000 diff --git a/settings.c b/settings.c index 9230f40519..fd84d70956 100644 --- a/settings.c +++ b/settings.c @@ -467,6 +467,7 @@ static void config_set_defaults(void) g_settings.video.rotation = ORIENTATION_NORMAL; g_settings.audio.enable = audio_enable; + g_settings.audio.mute_enable = false; g_settings.audio.out_rate = out_rate; g_settings.audio.block_frames = 0; if (audio_device) @@ -1243,6 +1244,7 @@ static bool config_load_file(const char *path, bool set_defaults) /* Audio settings. */ CONFIG_GET_BOOL(audio.enable, "audio_enable"); + CONFIG_GET_BOOL(audio.mute_enable, "audio_mute_enable"); CONFIG_GET_INT(audio.out_rate, "audio_out_rate"); CONFIG_GET_INT(audio.block_frames, "audio_block_frames"); CONFIG_GET_STRING(audio.device, "audio_device"); @@ -1843,6 +1845,7 @@ bool config_save_file(const char *path) config_set_string(conf, "video_context_driver", g_settings.video.context_driver); config_set_string(conf, "audio_driver", g_settings.audio.driver); config_set_bool(conf, "audio_enable", g_settings.audio.enable); + config_set_bool(conf, "audio_mute_enable", g_settings.audio.mute_enable); config_set_int(conf, "audio_out_rate", g_settings.audio.out_rate); config_set_bool(conf, "location_allow", g_settings.location.allow); diff --git a/settings_data.c b/settings_data.c index 173adceacf..0498f4eb87 100644 --- a/settings_data.c +++ b/settings_data.c @@ -4587,7 +4587,7 @@ static bool setting_data_append_list_audio_options( general_read_handler); CONFIG_BOOL( - g_extern.audio_data.mute, + g_settings.audio.mute_enable, "audio_mute_enable", "Audio Mute", false,