diff options
| author | stonedDiscord <stoned@derpymail.org> | 2020-03-06 16:43:03 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-06 16:43:03 +0100 |
| commit | b668bb227652f0b19f0d0b7251c2afa2f36473c5 (patch) | |
| tree | 9f23859a30574d9ce9220dd0f5fd2450b5ec7e2c /src/aomusicplayer.cpp | |
| parent | c2fd3796a97ee8d87544ec26df7d6797acfebd80 (diff) | |
| parent | 8c93cce0be0a316723284349d1f618dbf770ba3f (diff) | |
Merge branch 'master' into music_list_update
Diffstat (limited to 'src/aomusicplayer.cpp')
| -rw-r--r-- | src/aomusicplayer.cpp | 61 |
1 files changed, 54 insertions, 7 deletions
diff --git a/src/aomusicplayer.cpp b/src/aomusicplayer.cpp index 2791809..74dcc63 100644 --- a/src/aomusicplayer.cpp +++ b/src/aomusicplayer.cpp @@ -1,7 +1,7 @@ #include "aomusicplayer.h" #if defined(BASSAUDIO) -AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app) +AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app): QObject() { m_parent = parent; ao_app = p_ao_app; @@ -9,14 +9,14 @@ AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app) AOMusicPlayer::~AOMusicPlayer() { - BASS_ChannelStop(m_stream); + kill_loop(); } void AOMusicPlayer::play(QString p_song) { BASS_ChannelStop(m_stream); - QString f_path = ao_app->get_music_path(p_song); + f_path = ao_app->get_music_path(p_song); m_stream = BASS_StreamCreateFile(FALSE, f_path.utf16(), 0, 0, BASS_STREAM_AUTOFREE | BASS_UNICODE | BASS_ASYNCFILE); @@ -24,7 +24,18 @@ void AOMusicPlayer::play(QString p_song) if (ao_app->get_audio_output_device() != "default") BASS_ChannelSetDevice(m_stream, BASS_GetDevice()); + if(enable_looping) + { + BASS_ChannelFlags(m_stream, BASS_SAMPLE_LOOP, BASS_SAMPLE_LOOP); + } + else + { + BASS_ChannelFlags(m_stream, 0, BASS_SAMPLE_LOOP); + } BASS_ChannelPlay(m_stream, false); + + + } void AOMusicPlayer::set_volume(int p_value) @@ -33,8 +44,19 @@ void AOMusicPlayer::set_volume(int p_value) float volume = m_volume / 100.0f; BASS_ChannelSetAttribute(m_stream, BASS_ATTRIB_VOL, volume); } + +QString AOMusicPlayer::get_path() +{ + return f_path; +} + +void AOMusicPlayer::kill_loop() +{ + BASS_ChannelStop(m_stream); +} + #elif defined(QTAUDIO) -AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app) +AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app): QObject() { m_parent = parent; ao_app = p_ao_app; @@ -53,7 +75,7 @@ void AOMusicPlayer::play(QString p_song) m_player.setMedia(QUrl::fromLocalFile(f_path)); - this->set_volume(m_volume); + this->set_volume(100); m_player.play(); } @@ -61,10 +83,25 @@ void AOMusicPlayer::play(QString p_song) void AOMusicPlayer::set_volume(int p_value) { m_volume = p_value; - m_player.setVolume(m_volume); + + qreal linearVolume = QAudio::convertVolume(m_volume / qreal(100), + QAudio::LogarithmicVolumeScale, + QAudio::LinearVolumeScale); + + m_player.setVolume(linearVolume*100); +} + +QString AOMusicPlayer::get_path() +{ + return f_path; +} + +void AOMusicPlayer::kill_loop() +{ + m_player.stop(); } #else -AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app) +AOMusicPlayer::AOMusicPlayer(QWidget *parent, AOApplication *p_ao_app): QObject() { m_parent = parent; ao_app = p_ao_app; @@ -84,4 +121,14 @@ void AOMusicPlayer::set_volume(int p_value) { } + +QString AOMusicPlayer::get_path() +{ + return f_path; +} + +void AOMusicPlayer::kill_loop() +{ + +} #endif |
