Add 'Enable menu audio' setting

This commit is contained in:
twinaphex 2018-04-29 00:41:53 +02:00
parent 773fc1ebad
commit b0ef193117
27 changed files with 103 additions and 6 deletions

View File

@ -724,7 +724,6 @@ void audio_driver_sample(int16_t left, int16_t right)
void audio_driver_menu_sample(void)
{
#if 0
static int16_t samples_buf[4096] = {0};
struct retro_system_av_info
*av_info = video_viewport_get_system_av_info();
@ -732,7 +731,6 @@ void audio_driver_menu_sample(void)
(const struct retro_system_timing*)&av_info->timing;
unsigned sample_count = (info->sample_rate / info->fps) * 2;
audio_driver_flush(samples_buf, sample_count);
#endif
}
/**

View File

@ -1253,6 +1253,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
SETTING_BOOL("keyboard_gamepad_enable", &settings->bools.input_keyboard_gamepad_enable, true, true, false);
SETTING_BOOL("core_set_supports_no_game_enable", &settings->bools.set_supports_no_game_enable, true, true, false);
SETTING_BOOL("audio_enable", &settings->bools.audio_enable, true, audio_enable, false);
SETTING_BOOL("audio_enable_menu", &settings->bools.audio_enable_menu, true, false, false);
SETTING_BOOL("audio_mute_enable", audio_get_bool_ptr(AUDIO_ACTION_MUTE_ENABLE), true, false, false);
SETTING_BOOL("audio_mixer_mute_enable", audio_get_bool_ptr(AUDIO_ACTION_MIXER_MUTE_ENABLE), true, false, false);
SETTING_BOOL("location_allow", &settings->bools.location_allow, true, false, false);

View File

@ -99,6 +99,7 @@ typedef struct settings
/* Audio */
bool audio_enable;
bool audio_enable_menu;
bool audio_sync;
bool audio_rate_control;
bool audio_wasapi_exclusive_mode;

View File

@ -3457,3 +3457,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3243,3 +3243,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3235,3 +3235,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3349,3 +3349,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3108,3 +3108,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -5839,3 +5839,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3273,3 +3273,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3331,3 +3331,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3347,3 +3347,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3234,3 +3234,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -1485,3 +1485,5 @@ MSG_HASH(MENU_ENUM_LABEL_CONTENT_SHOW_LATENCY,
"menu_show_latency_settings")
MSG_HASH(MENU_ENUM_LABEL_CONTENT_SHOW_OVERLAYS,
"menu_show_overlay_settings")
MSG_HASH(MENU_ENUM_LABEL_AUDIO_ENABLE_MENU,
"audio_enable_menu")

View File

@ -3110,3 +3110,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3469,3 +3469,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -4338,3 +4338,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3208,3 +3208,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3292,3 +3292,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3506,3 +3506,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -3265,3 +3265,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS,
"Show/hide the Overlay options.")
MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS,
"Show Overlay Settings")
MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
"Enable menu audio")
MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU,
"Enable or disable menu sound.")

View File

@ -137,6 +137,7 @@ default_sublabel_macro(action_bind_sublabel_dummy_check_missing_firmware, MENU_
default_sublabel_macro(action_bind_sublabel_video_refresh_rate, MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE)
default_sublabel_macro(action_bind_sublabel_video_refresh_rate_polled, MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE_POLLED)
default_sublabel_macro(action_bind_sublabel_audio_enable, MENU_ENUM_SUBLABEL_AUDIO_ENABLE)
default_sublabel_macro(action_bind_sublabel_audio_enable_menu, MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU)
default_sublabel_macro(action_bind_sublabel_audio_max_timing_skew, MENU_ENUM_SUBLABEL_AUDIO_MAX_TIMING_SKEW)
default_sublabel_macro(action_bind_sublabel_pause_nonactive, MENU_ENUM_SUBLABEL_PAUSE_NONACTIVE)
default_sublabel_macro(action_bind_sublabel_video_disable_composition, MENU_ENUM_SUBLABEL_VIDEO_DISABLE_COMPOSITION)
@ -1331,6 +1332,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
case MENU_ENUM_LABEL_AUDIO_ENABLE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_audio_enable);
break;
case MENU_ENUM_LABEL_AUDIO_ENABLE_MENU:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_audio_enable_menu);
break;
case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE:
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_refresh_rate);
break;

View File

@ -6059,6 +6059,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_AUDIO_ENABLE,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_AUDIO_ENABLE_MENU,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(menu, info,
MENU_ENUM_LABEL_AUDIO_MUTE,
PARSE_ONLY_BOOL, false);

View File

@ -1656,6 +1656,8 @@ static void menu_driver_toggle(bool on)
settings_t *settings = config_get_ptr();
bool pause_libretro = settings ?
settings->bools.menu_pause_libretro : false;
bool enable_menu_sound = settings ?
settings->bools.audio_enable_menu : false;
menu_driver_toggled = on;
@ -1683,7 +1685,7 @@ static void menu_driver_toggle(bool on)
/* Stop all rumbling before entering the menu. */
command_event(CMD_EVENT_RUMBLE_STOP, NULL);
if (pause_libretro)
if (pause_libretro && !enable_menu_sound)
command_event(CMD_EVENT_AUDIO_STOP, NULL);
/* Override keyboard callback to redirect to menu instead.
@ -1702,7 +1704,7 @@ static void menu_driver_toggle(bool on)
if (!rarch_ctl(RARCH_CTL_IS_SHUTDOWN, NULL))
driver_set_nonblock_state();
if (pause_libretro)
if (pause_libretro && !enable_menu_sound)
command_event(CMD_EVENT_AUDIO_START, NULL);
/* Restore libretro keyboard callback. */

View File

@ -3801,7 +3801,23 @@ static bool setting_append_list(
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_ADVANCED
SD_FLAG_NONE
);
CONFIG_BOOL(
list, list_info,
&settings->bools.audio_enable_menu,
MENU_ENUM_LABEL_AUDIO_ENABLE_MENU,
MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE_MENU,
false,
MENU_ENUM_LABEL_VALUE_OFF,
MENU_ENUM_LABEL_VALUE_ON,
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE
);
CONFIG_BOOL(

View File

@ -1111,6 +1111,7 @@ enum msg_hash_enums
/* Audio */
MENU_LABEL(AUDIO_ENABLE),
MENU_LABEL(AUDIO_ENABLE_MENU),
MENU_LABEL(AUDIO_MAX_TIMING_SKEW),
MENU_LABEL(AUDIO_OUTPUT_RATE),
MENU_LABEL(AUDIO_DEVICE),

View File

@ -2633,7 +2633,8 @@ static enum runloop_state runloop_check_state(
(current_core_type == CORE_TYPE_DUMMY)
)
;
audio_driver_menu_sample();
if (settings->bools.audio_enable_menu)
audio_driver_menu_sample();
}
old_input = current_input;