aboutsummaryrefslogtreecommitdiff
path: root/src/aomusicplayer.cpp
diff options
context:
space:
mode:
authorCrystalwarrior <varsash@gmail.com>2021-01-10 14:27:27 +0300
committerCrystalwarrior <varsash@gmail.com>2021-01-10 14:27:27 +0300
commit1ad8f3bf24a4e0a3dcbd0d172c9bfa1641907d7d (patch)
tree2f4345fcc09eafa846cf5552e19e3443bdc07744 /src/aomusicplayer.cpp
parentde3533fbf2615a40efc60c9ed2e96f1a3b5da3c1 (diff)
parente65072f8f1e885f7bbade9e9d84fbeea2ef8a097 (diff)
Merge branch 'master' into feature/timerclock
# Conflicts: # include/courtroom.h # src/courtroom.cpp
Diffstat (limited to 'src/aomusicplayer.cpp')
-rw-r--r--src/aomusicplayer.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/aomusicplayer.cpp b/src/aomusicplayer.cpp
index 0c50d505..6219edfb 100644
--- a/src/aomusicplayer.cpp
+++ b/src/aomusicplayer.cpp
@@ -23,14 +23,26 @@ void AOMusicPlayer::play(QString p_song, int channel, bool loop,
unsigned int flags = BASS_STREAM_PRESCAN | BASS_STREAM_AUTOFREE |
BASS_UNICODE | BASS_ASYNCFILE;
- if (loop)
+ unsigned int streaming_flags = BASS_STREAM_AUTOFREE;
+ if (loop) {
flags |= BASS_SAMPLE_LOOP;
+ streaming_flags |= BASS_SAMPLE_LOOP;
+ }
DWORD newstream;
- if (f_path.endsWith(".opus"))
- newstream = BASS_OPUS_StreamCreateFile(FALSE, f_path.utf16(), 0, 0, flags);
- else
- newstream = BASS_StreamCreateFile(FALSE, f_path.utf16(), 0, 0, flags);
+ if (f_path.startsWith("http")) {
+ if (f_path.endsWith(".opus"))
+ newstream = BASS_OPUS_StreamCreateURL(f_path.toStdString().c_str(), 0, streaming_flags, nullptr, 0);
+ else
+ newstream = BASS_StreamCreateURL(f_path.toStdString().c_str(), 0, streaming_flags, nullptr, 0);
+
+ } else {
+ if (f_path.endsWith(".opus"))
+ newstream = BASS_OPUS_StreamCreateFile(FALSE, f_path.utf16(), 0, 0, flags);
+ else
+ newstream = BASS_StreamCreateFile(FALSE, f_path.utf16(), 0, 0, flags);
+ }
+
if (ao_app->get_audio_output_device() != "default")
BASS_ChannelSetDevice(m_stream_list[channel], BASS_GetDevice());