From 7309ec2f40177b76af7d360d703d784428095895 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Sat, 24 Aug 2024 17:33:48 -0400 Subject: [PATCH] Now I can play a sound! Yay! --- assets/click.mp3 | Bin 0 -> 4440 bytes audiotest.cpp | 32 ++++++++++++++++++++++++++++++++ dbc.hpp | 1 + efsw.wrap | 1 + libgit2.wrap | 1 - meson.build | 11 ++++++----- scripts/reset_build.ps1 | 9 +++++++-- 7 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 assets/click.mp3 create mode 100644 audiotest.cpp diff --git a/assets/click.mp3 b/assets/click.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..903f0365499cff6eccf7968b337c47c6ee4be59a GIT binary patch literal 4440 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 R0cMYHC1`XY?EpY+@IMm!aEkx{ literal 0 HcmV?d00001 diff --git a/audiotest.cpp b/audiotest.cpp new file mode 100644 index 0000000..cefb08f --- /dev/null +++ b/audiotest.cpp @@ -0,0 +1,32 @@ +#include +#include // for sleep_for +#include +#include +#include + +int main(int argc, char *argv[]) { + sf::SoundBuffer buffer; + sf::Sound click; + + if(argc != 2) { + fmt::println("USAGE: audiotest click.mp3"); + return 0; + } + + const char *in_file = argv[1]; + + if(!buffer.loadFromFile(in_file)) { + fmt::println("Failed to load {}", in_file); + } + + click.setBuffer(buffer); + + fmt::println("Playing {}. Hit ctrl-c to exit.", in_file); + + while(true) { + click.play(); + std::this_thread::sleep_for(std::chrono::milliseconds(1000)); + } + + return 0; +} diff --git a/dbc.hpp b/dbc.hpp index 759793b..a8b675d 100644 --- a/dbc.hpp +++ b/dbc.hpp @@ -46,6 +46,7 @@ namespace dbc { void check(bool test, const string &message) { if(!test) { string err = fmt::format("[CHECK!] {}\n", message); + fmt::println("{}", err); throw CheckError{err}; } } diff --git a/efsw.wrap b/efsw.wrap index 4de1f1f..f7844f5 100644 --- a/efsw.wrap +++ b/efsw.wrap @@ -2,6 +2,7 @@ url = https://github.com/SpartanJ/efsw.git revision = 1.3.1 depth = 1 +method = cmake # patch_filename = # patch_hash = diff --git a/libgit2.wrap b/libgit2.wrap index cefe2ec..9291d77 100644 --- a/libgit2.wrap +++ b/libgit2.wrap @@ -7,6 +7,5 @@ wrapdb_version = 2.4.1-3 # patch_filename = # patch_hash = - [provide] libgit2 = libgit2_dep diff --git a/meson.build b/meson.build index 3c6a8ad..e8fcf73 100644 --- a/meson.build +++ b/meson.build @@ -13,20 +13,18 @@ opts.add_cmake_defines({ libgit2_proj = cmake.subproject('libgit2', options: opts) libgit2package_dep = libgit2_proj.dependency('libgit2package') -efsw_proj = cmake.subproject('efsw') -efsw_dep = efsw_proj.dependency('efsw') - +efsw_dep = dependency('efsw') fmt = dependency('fmt') ftxui_screen = dependency('ftxui-screen') ftxui_dom = dependency('ftxui-dom') ftxui_component = dependency('ftxui-component') catch2 = dependency('catch2-with-main') -openal = dependency('openal') +sfml = dependency('sfml') dependencies = [ fmt, libgit2package_dep, efsw_dep, ftxui_screen, ftxui_dom, ftxui_component, - openal + sfml ] executable('escape_turings_tarpit', @@ -46,6 +44,9 @@ executable('ftxtest', 'ftxtest.cpp', executable('ftx_thread_test', 'ftx_thread_test.cpp', dependencies: dependencies) +executable('audiotest', 'audiotest.cpp', + dependencies: dependencies) + runtests = executable('runtests', [ 'game_engine.cpp', 'tests/game_engine.cpp'], diff --git a/scripts/reset_build.ps1 b/scripts/reset_build.ps1 index 06b7aec..7de185d 100644 --- a/scripts/reset_build.ps1 +++ b/scripts/reset_build.ps1 @@ -3,14 +3,19 @@ rm -recurse -force .\subprojects\,.\builddir\ mkdir subprojects mv .\packagecache .\subprojects\ cp *.wrap subprojects -# cp -recurse -force packagefiles subprojects mkdir builddir meson wrap install fmt -meson wrap install openal-soft meson wrap install sqlite3 meson wrap install sqlitecpp meson wrap install ftxui meson wrap install catch2 +meson wrap install libpng +meson wrap install vorbis +meson wrap install ogg +meson wrap install flac +meson wrap install freetype2 +meson wrap install openal-soft +meson wrap install sfml # $env:CC="clang" # $env:CXX="clang++" meson setup --default-library=static --prefer-static builddir