mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Menu sounds fixes (#15384)
This commit is contained in:
parent
410242c164
commit
610207dcfd
@ -1338,9 +1338,10 @@ static void audio_driver_mixer_play_stream_internal(
|
||||
static void audio_driver_load_menu_bgm_callback(retro_task_t *task,
|
||||
void *task_data, void *user_data, const char *error)
|
||||
{
|
||||
uint8_t flags = content_get_flags();
|
||||
if (!(flags & CONTENT_ST_FLAG_IS_INITED))
|
||||
#if defined(HAVE_AUDIOMIXER) && defined(HAVE_MENU)
|
||||
if (menu_state_get_ptr()->flags & MENU_ST_FLAG_ALIVE)
|
||||
audio_driver_mixer_play_menu_sound_looped(AUDIO_MIXER_SYSTEM_SLOT_BGM);
|
||||
#endif
|
||||
}
|
||||
|
||||
void audio_driver_load_system_sounds(void)
|
||||
@ -1460,6 +1461,7 @@ void audio_driver_load_system_sounds(void)
|
||||
if (path_down)
|
||||
task_push_audio_mixer_load(path_down, NULL, NULL, true, AUDIO_MIXER_SLOT_SELECTION_MANUAL, AUDIO_MIXER_SYSTEM_SLOT_DOWN);
|
||||
}
|
||||
|
||||
end:
|
||||
if (list)
|
||||
string_list_free(list);
|
||||
|
17
retroarch.c
17
retroarch.c
@ -2958,10 +2958,20 @@ bool command_event(enum event_command cmd, void *data)
|
||||
break;
|
||||
case CMD_EVENT_AUDIO_STOP:
|
||||
midi_driver_set_all_sounds_off();
|
||||
#if defined(HAVE_AUDIOMIXER) && defined(HAVE_MENU)
|
||||
if ( settings->bools.audio_enable_menu
|
||||
&& menu_state_get_ptr()->flags & MENU_ST_FLAG_ALIVE)
|
||||
return false;
|
||||
#endif
|
||||
if (!audio_driver_stop())
|
||||
return false;
|
||||
break;
|
||||
case CMD_EVENT_AUDIO_START:
|
||||
#if defined(HAVE_AUDIOMIXER) && defined(HAVE_MENU)
|
||||
if ( settings->bools.audio_enable_menu
|
||||
&& menu_state_get_ptr()->flags & MENU_ST_FLAG_ALIVE)
|
||||
return false;
|
||||
#endif
|
||||
if (!audio_driver_start(runloop_st->flags &
|
||||
RUNLOOP_FLAG_SHUTDOWN_INITIATED))
|
||||
return false;
|
||||
@ -3931,6 +3941,13 @@ bool command_event(enum event_command cmd, void *data)
|
||||
video_st->flags &= ~VIDEO_FLAG_IS_SWITCHING_DISPLAY_MODE;
|
||||
audio_st->flags &= ~AUDIO_FLAG_SUSPENDED;
|
||||
|
||||
#if defined(HAVE_AUDIOMIXER) && defined(HAVE_MENU)
|
||||
/* Menu sounds require audio reinit. */
|
||||
if ( settings->bools.audio_enable_menu
|
||||
&& menu_st->flags & MENU_ST_FLAG_ALIVE)
|
||||
command_event(CMD_EVENT_AUDIO_REINIT, NULL);
|
||||
#endif
|
||||
|
||||
if (userdata && *userdata == true)
|
||||
video_driver_cached_frame();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user