fix music fading being audible when volume is 0 (#416)

This commit is contained in:
in1tiate 2021-01-19 05:26:07 -06:00 committed by GitHub
parent a929c950a0
commit 75c1df5312
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -96,7 +96,7 @@ void AOMusicPlayer::play(QString p_song, int channel, bool loop,
BASS_ChannelLock(oldstream, false); BASS_ChannelLock(oldstream, false);
} }
if (effect_flags & FADE_OUT) { if (effect_flags & FADE_OUT & (m_volume[channel] != 0)) {
// Fade out the other sample and stop it (due to -1) // Fade out the other sample and stop it (due to -1)
BASS_ChannelSlideAttribute(oldstream, BASS_ATTRIB_VOL | BASS_SLIDE_LOG, BASS_ChannelSlideAttribute(oldstream, BASS_ATTRIB_VOL | BASS_SLIDE_LOG,
-1, 4000); -1, 4000);
@ -116,6 +116,7 @@ void AOMusicPlayer::play(QString p_song, int channel, bool loop,
BASS_ChannelSlideAttribute(newstream, BASS_ATTRIB_VOL, BASS_ChannelSlideAttribute(newstream, BASS_ATTRIB_VOL,
static_cast<float>(m_volume[channel] / 100.0f), static_cast<float>(m_volume[channel] / 100.0f),
1000); 1000);
} }
else else
this->set_volume(m_volume[channel], channel); this->set_volume(m_volume[channel], channel);
@ -155,6 +156,7 @@ void CALLBACK loopProc(HSYNC handle, DWORD channel, DWORD data, void *user)
BASS_ChannelLock(channel, false); BASS_ChannelLock(channel, false);
} }
void AOMusicPlayer::set_looping(bool toggle, int channel) void AOMusicPlayer::set_looping(bool toggle, int channel)
{ {
qDebug() << "Setting looping for channel" << channel << "to" << toggle; qDebug() << "Setting looping for channel" << channel << "to" << toggle;