aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRose Witchaven <32779090+in1tiate@users.noreply.github.com>2021-06-18 23:58:46 -0500
committerGitHub <noreply@github.com>2021-06-18 23:58:46 -0500
commit5190490a07f929aef3ee0198f5bce251ff28dbea (patch)
treee1ceff14a88e183f203009fbc549049480a61aec
parent65f812cf7331acb5d5d1f1dfbac4bc99fd0aed04 (diff)
Set BASS_CONFIG_DEV_DEFAULT to 1 to enable automatic reinitialization of the default device when it is lost (#564)
fixes #561
-rw-r--r--src/aoapplication.cpp2
-rw-r--r--src/aoblipplayer.cpp6
-rw-r--r--src/aosfxplayer.cpp6
3 files changed, 2 insertions, 12 deletions
diff --git a/src/aoapplication.cpp b/src/aoapplication.cpp
index 74857593..e71f4c8a 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 6607d463..307a0bdd 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 000b6a7e..fcdeb949 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);