diff --git a/src/aomusicplayer.cpp b/src/aomusicplayer.cpp index 585a7f4..0f87205 100644 --- a/src/aomusicplayer.cpp +++ b/src/aomusicplayer.cpp @@ -96,7 +96,7 @@ void AOMusicPlayer::play(QString p_song, int channel, bool loop, 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) BASS_ChannelSlideAttribute(oldstream, BASS_ATTRIB_VOL | BASS_SLIDE_LOG, -1, 4000); @@ -116,6 +116,7 @@ void AOMusicPlayer::play(QString p_song, int channel, bool loop, BASS_ChannelSlideAttribute(newstream, BASS_ATTRIB_VOL, static_cast(m_volume[channel] / 100.0f), 1000); + } else 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); } + void AOMusicPlayer::set_looping(bool toggle, int channel) { qDebug() << "Setting looping for channel" << channel << "to" << toggle;