mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +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,
|
static void audio_driver_load_menu_bgm_callback(retro_task_t *task,
|
||||||
void *task_data, void *user_data, const char *error)
|
void *task_data, void *user_data, const char *error)
|
||||||
{
|
{
|
||||||
uint8_t flags = content_get_flags();
|
#if defined(HAVE_AUDIOMIXER) && defined(HAVE_MENU)
|
||||||
if (!(flags & CONTENT_ST_FLAG_IS_INITED))
|
if (menu_state_get_ptr()->flags & MENU_ST_FLAG_ALIVE)
|
||||||
audio_driver_mixer_play_menu_sound_looped(AUDIO_MIXER_SYSTEM_SLOT_BGM);
|
audio_driver_mixer_play_menu_sound_looped(AUDIO_MIXER_SYSTEM_SLOT_BGM);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void audio_driver_load_system_sounds(void)
|
void audio_driver_load_system_sounds(void)
|
||||||
@ -1460,6 +1461,7 @@ void audio_driver_load_system_sounds(void)
|
|||||||
if (path_down)
|
if (path_down)
|
||||||
task_push_audio_mixer_load(path_down, NULL, NULL, true, AUDIO_MIXER_SLOT_SELECTION_MANUAL, AUDIO_MIXER_SYSTEM_SLOT_DOWN);
|
task_push_audio_mixer_load(path_down, NULL, NULL, true, AUDIO_MIXER_SLOT_SELECTION_MANUAL, AUDIO_MIXER_SYSTEM_SLOT_DOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (list)
|
if (list)
|
||||||
string_list_free(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;
|
break;
|
||||||
case CMD_EVENT_AUDIO_STOP:
|
case CMD_EVENT_AUDIO_STOP:
|
||||||
midi_driver_set_all_sounds_off();
|
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())
|
if (!audio_driver_stop())
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case CMD_EVENT_AUDIO_START:
|
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 &
|
if (!audio_driver_start(runloop_st->flags &
|
||||||
RUNLOOP_FLAG_SHUTDOWN_INITIATED))
|
RUNLOOP_FLAG_SHUTDOWN_INITIATED))
|
||||||
return false;
|
return false;
|
||||||
@ -3931,6 +3941,13 @@ bool command_event(enum event_command cmd, void *data)
|
|||||||
video_st->flags &= ~VIDEO_FLAG_IS_SWITCHING_DISPLAY_MODE;
|
video_st->flags &= ~VIDEO_FLAG_IS_SWITCHING_DISPLAY_MODE;
|
||||||
audio_st->flags &= ~AUDIO_FLAG_SUSPENDED;
|
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)
|
if (userdata && *userdata == true)
|
||||||
video_driver_cached_frame();
|
video_driver_cached_frame();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user