aboutsummaryrefslogtreecommitdiff
path: root/mwe
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-09-22 19:03:20 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-09-22 19:03:20 +0200
commit6a3e61197ed1f6ba235192cc1b5a8f1cd24f00c1 (patch)
treea01c3f77a4694fb9c2782b3c6e96616c6bf5133d /mwe
parenta12702c912ae0ce96c754ffcb2ab5d901c504b65 (diff)
add soloud audio POCpoc/audio-soloud
Diffstat (limited to 'mwe')
-rw-r--r--mwe/audio/bgm.oggbin0 -> 125020 bytes
-rw-r--r--mwe/audio/sfx1.wavbin0 -> 44144 bytes
-rw-r--r--mwe/audio/sfx2.wavbin0 -> 44144 bytes
-rw-r--r--mwe/audio/sfx3.wavbin0 -> 44144 bytes
-rw-r--r--mwe/audio/soloud/CMakeLists.txt19
-rw-r--r--mwe/audio/soloud/main.cpp48
6 files changed, 67 insertions, 0 deletions
diff --git a/mwe/audio/bgm.ogg b/mwe/audio/bgm.ogg
new file mode 100644
index 0000000..d6397fb
--- /dev/null
+++ b/mwe/audio/bgm.ogg
Binary files differ
diff --git a/mwe/audio/sfx1.wav b/mwe/audio/sfx1.wav
new file mode 100644
index 0000000..576377a
--- /dev/null
+++ b/mwe/audio/sfx1.wav
Binary files differ
diff --git a/mwe/audio/sfx2.wav b/mwe/audio/sfx2.wav
new file mode 100644
index 0000000..908ec86
--- /dev/null
+++ b/mwe/audio/sfx2.wav
Binary files differ
diff --git a/mwe/audio/sfx3.wav b/mwe/audio/sfx3.wav
new file mode 100644
index 0000000..20b7c84
--- /dev/null
+++ b/mwe/audio/sfx3.wav
Binary files differ
diff --git a/mwe/audio/soloud/CMakeLists.txt b/mwe/audio/soloud/CMakeLists.txt
new file mode 100644
index 0000000..f2df20a
--- /dev/null
+++ b/mwe/audio/soloud/CMakeLists.txt
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 3.28)
+
+set(CMAKE_C_STANDARD 11)
+set(CMAKE_CXX_STANDARD 20)
+set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
+set(CMAKE_BUILD_TYPE Debug)
+
+add_subdirectory(../../../lib/soloud soloud)
+
+project(poc C CXX)
+
+add_executable(main
+ main.cpp
+)
+
+target_link_libraries(main
+ soloud
+)
+
diff --git a/mwe/audio/soloud/main.cpp b/mwe/audio/soloud/main.cpp
new file mode 100644
index 0000000..25ba003
--- /dev/null
+++ b/mwe/audio/soloud/main.cpp
@@ -0,0 +1,48 @@
+#include <soloud.h>
+#include <soloud_wav.h>
+#include <soloud_wavstream.h>
+
+#include <chrono>
+#include <thread>
+
+using namespace std;
+using namespace std::chrono_literals;
+
+int main() {
+ SoLoud::Soloud soloud;
+ soloud.init();
+
+ // load background track
+ SoLoud::WavStream bgm;
+ bgm.load("../bgm.ogg");
+ // NOTE: SoLoud::Wav is poorly named as it also supports FLAC, MP3 and OGG
+
+ // load three short samples
+ SoLoud::Wav sfx[3];
+ sfx[0].load("../sfx1.wav");
+ sfx[1].load("../sfx2.wav");
+ sfx[2].load("../sfx3.wav");
+
+ // start the background track
+ SoLoud::handle bgm_handle = soloud.play(bgm);
+
+ // play each sample sequentially
+ this_thread::sleep_for(500ms);
+ soloud.play(sfx[0]);
+ this_thread::sleep_for(500ms);
+ soloud.play(sfx[1]);
+ soloud.setPause(bgm_handle, true);
+ this_thread::sleep_for(500ms);
+ soloud.play(sfx[2]);
+ soloud.setPause(bgm_handle, false);
+ this_thread::sleep_for(500ms);
+
+ // play all samples simultaniously
+ for (unsigned i = 0; i < 3; i++)
+ soloud.play(sfx[i]);
+ this_thread::sleep_for(1000ms);
+
+ // stop all audio and exit
+ soloud.deinit();
+ return 0;
+}