diff options
Diffstat (limited to 'src/aomusicplayer.cpp')
| -rw-r--r-- | src/aomusicplayer.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/aomusicplayer.cpp b/src/aomusicplayer.cpp index 585a7f42..b36de486 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<float>(m_volume[channel] / 100.0f), 1000); + } else this->set_volume(m_volume[channel], channel); @@ -149,15 +150,17 @@ void AOMusicPlayer::set_volume(int p_value, int channel) void CALLBACK loopProc(HSYNC handle, DWORD channel, DWORD data, void *user) { + UNUSED(handle); + UNUSED(data); QWORD loop_start = *(static_cast<unsigned *>(user)); BASS_ChannelLock(channel, true); BASS_ChannelSetPosition(channel, loop_start, BASS_POS_BYTE); BASS_ChannelLock(channel, false); } + void AOMusicPlayer::set_looping(bool toggle, int channel) { - qDebug() << "Setting looping for channel" << channel << "to" << toggle; m_looping = toggle; if (!m_looping) { if (BASS_ChannelFlags(m_stream_list[channel], 0, 0) & BASS_SAMPLE_LOOP) |
