From 5190490a07f929aef3ee0198f5bce251ff28dbea Mon Sep 17 00:00:00 2001 From: Rose Witchaven <32779090+in1tiate@users.noreply.github.com> Date: Fri, 18 Jun 2021 23:58:46 -0500 Subject: [PATCH] Set BASS_CONFIG_DEV_DEFAULT to 1 to enable automatic reinitialization of the default device when it is lost (#564) fixes #561 --- src/aoapplication.cpp | 2 ++ src/aoblipplayer.cpp | 6 ------ src/aosfxplayer.cpp | 6 ------ 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/aoapplication.cpp b/src/aoapplication.cpp index 7485759..e71f4c8 100644 --- a/src/aoapplication.cpp +++ b/src/aoapplication.cpp @@ -194,6 +194,7 @@ void AOApplication::call_announce_menu(Courtroom *court) } // Callback for when BASS device is lost +// Only actually used for music syncs void CALLBACK AOApplication::BASSreset(HSTREAM handle, DWORD channel, DWORD data, void *user) { @@ -213,6 +214,7 @@ void AOApplication::doBASSreset() void AOApplication::initBASS() { + BASS_SetConfig(BASS_CONFIG_DEV_DEFAULT, 1); BASS_Free(); // Change the default audio output device to be the one the user has given // in his config.ini file for now. diff --git a/src/aoblipplayer.cpp b/src/aoblipplayer.cpp index 6607d46..307a0bd 100644 --- a/src/aoblipplayer.cpp +++ b/src/aoblipplayer.cpp @@ -34,12 +34,6 @@ void AOBlipPlayer::blip_tick() HSTREAM f_stream = m_stream_list[f_cycle]; BASS_ChannelSetDevice(f_stream, BASS_GetDevice()); - int f_bass_error = BASS_ErrorGetCode(); - if (f_bass_error == BASS_ERROR_DEVICE) { - ao_app->doBASSreset(); - BASS_ChannelSetDevice(f_stream, BASS_GetDevice()); - } - BASS_ChannelPlay(f_stream, false); } diff --git a/src/aosfxplayer.cpp b/src/aosfxplayer.cpp index 000b6a7..fcdeb94 100644 --- a/src/aosfxplayer.cpp +++ b/src/aosfxplayer.cpp @@ -47,12 +47,6 @@ void AOSfxPlayer::play(QString p_sfx, QString p_character, QString p_misc) set_volume_internal(m_volume); BASS_ChannelSetDevice(m_stream_list[m_channel], BASS_GetDevice()); - int f_bass_error = BASS_ErrorGetCode(); - if (f_bass_error == BASS_ERROR_DEVICE) { - ao_app->doBASSreset(); - BASS_ChannelSetDevice(m_stream_list[m_channel], BASS_GetDevice()); - } - BASS_ChannelPlay(m_stream_list[m_channel], false); BASS_ChannelSetSync(m_stream_list[m_channel], BASS_SYNC_DEV_FAIL, 0, ao_app->BASSreset, 0);