diff options
Diffstat (limited to 'aomusicplayer.cpp')
| -rw-r--r-- | aomusicplayer.cpp | 49 |
1 files changed, 17 insertions, 32 deletions
diff --git a/aomusicplayer.cpp b/aomusicplayer.cpp index 3881829..ca72624 100644 --- a/aomusicplayer.cpp +++ b/aomusicplayer.cpp @@ -8,45 +8,30 @@ AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app) { m_parent = parent; ao_app = p_ao_app; +} + +AOMusicPlayer::~AOMusicPlayer() +{ + BASS_ChannelStop(m_stream); +} + +void AOMusicPlayer::play(QString p_song, int p_volume) +{ + BASS_ChannelStop(m_stream); + QString f_path = ao_app->get_music_path(p_song); - BASS_Init(-1, 44100, BASS_DEVICE_LATENCY, 0, NULL); + m_stream = BASS_StreamCreateFile(FALSE, f_path.toStdString().c_str(), 0, 0, BASS_STREAM_AUTOFREE); + this->set_volume(p_volume); + BASS_ChannelPlay(m_stream, false); } -void AOMusicPlayer::play(QString p_song) +void AOMusicPlayer::set_volume(int p_value) { + float volume = p_value / 100.0f; - BASS_ChannelStop(m_stream); - - QString f_path = ao_app->get_music_path(p_song); + BASS_ChannelSetAttribute(m_stream, BASS_ATTRIB_VOL, volume); - m_stream = BASS_StreamCreateFile(FALSE, f_path.toStdString().c_str(), 0, 0, BASS_STREAM_PRESCAN); - - /* - if ((BASS_StreamPutFileData( - m_stream, - p_path.toStdString().c_str(), - BASS_FILEDATA_END - ) == -1)) - { - qDebug() << "BASS_StreamPutFileData failllled!"; - qDebug() << "Error: " << QString::number(BASS_ErrorGetCode()); - } - - if (m_stream == 0) - { - qDebug() << "OHSHIT something broke. error code: " << QString::number(BASS_ErrorGetCode()); - } - */ - - //m_stream = BASS_StreamCreateFileUser(STREAMFILE_BUFFERPUSH, BASS_STREAM_AUTOFREE, nullptr, p_path.toStdString().c_str()); - - if (BASS_ChannelPlay(m_stream, true)) - qDebug() <<"success."; - else - qDebug() <<"error"; - - qDebug() << QString::number(BASS_ErrorGetCode()); } |
