Now I can play a sound! Yay!

This commit is contained in:
Zed A. Shaw 2024-08-24 17:33:48 -04:00
parent f83c0c7ff9
commit 7309ec2f40
7 changed files with 47 additions and 8 deletions

BIN
assets/click.mp3 Normal file

Binary file not shown.

32
audiotest.cpp Normal file
View file

@ -0,0 +1,32 @@
#include <SFML/Audio.hpp>
#include <thread> // for sleep_for
#include <iostream>
#include <fmt/core.h>
#include <chrono>
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;
}

View file

@ -46,6 +46,7 @@ namespace dbc {
void check(bool test, const string &message) { void check(bool test, const string &message) {
if(!test) { if(!test) {
string err = fmt::format("[CHECK!] {}\n", message); string err = fmt::format("[CHECK!] {}\n", message);
fmt::println("{}", err);
throw CheckError{err}; throw CheckError{err};
} }
} }

View file

@ -2,6 +2,7 @@
url = https://github.com/SpartanJ/efsw.git url = https://github.com/SpartanJ/efsw.git
revision = 1.3.1 revision = 1.3.1
depth = 1 depth = 1
method = cmake
# patch_filename = # patch_filename =
# patch_hash = # patch_hash =

View file

@ -7,6 +7,5 @@ wrapdb_version = 2.4.1-3
# patch_filename = # patch_filename =
# patch_hash = # patch_hash =
[provide] [provide]
libgit2 = libgit2_dep libgit2 = libgit2_dep

View file

@ -13,20 +13,18 @@ opts.add_cmake_defines({
libgit2_proj = cmake.subproject('libgit2', options: opts) libgit2_proj = cmake.subproject('libgit2', options: opts)
libgit2package_dep = libgit2_proj.dependency('libgit2package') libgit2package_dep = libgit2_proj.dependency('libgit2package')
efsw_proj = cmake.subproject('efsw') efsw_dep = dependency('efsw')
efsw_dep = efsw_proj.dependency('efsw')
fmt = dependency('fmt') fmt = dependency('fmt')
ftxui_screen = dependency('ftxui-screen') ftxui_screen = dependency('ftxui-screen')
ftxui_dom = dependency('ftxui-dom') ftxui_dom = dependency('ftxui-dom')
ftxui_component = dependency('ftxui-component') ftxui_component = dependency('ftxui-component')
catch2 = dependency('catch2-with-main') catch2 = dependency('catch2-with-main')
openal = dependency('openal') sfml = dependency('sfml')
dependencies = [ dependencies = [
fmt, libgit2package_dep, efsw_dep, fmt, libgit2package_dep, efsw_dep,
ftxui_screen, ftxui_dom, ftxui_component, ftxui_screen, ftxui_dom, ftxui_component,
openal sfml
] ]
executable('escape_turings_tarpit', executable('escape_turings_tarpit',
@ -46,6 +44,9 @@ executable('ftxtest', 'ftxtest.cpp',
executable('ftx_thread_test', 'ftx_thread_test.cpp', executable('ftx_thread_test', 'ftx_thread_test.cpp',
dependencies: dependencies) dependencies: dependencies)
executable('audiotest', 'audiotest.cpp',
dependencies: dependencies)
runtests = executable('runtests', [ runtests = executable('runtests', [
'game_engine.cpp', 'game_engine.cpp',
'tests/game_engine.cpp'], 'tests/game_engine.cpp'],

View file

@ -3,14 +3,19 @@ rm -recurse -force .\subprojects\,.\builddir\
mkdir subprojects mkdir subprojects
mv .\packagecache .\subprojects\ mv .\packagecache .\subprojects\
cp *.wrap subprojects cp *.wrap subprojects
# cp -recurse -force packagefiles subprojects
mkdir builddir mkdir builddir
meson wrap install fmt meson wrap install fmt
meson wrap install openal-soft
meson wrap install sqlite3 meson wrap install sqlite3
meson wrap install sqlitecpp meson wrap install sqlitecpp
meson wrap install ftxui meson wrap install ftxui
meson wrap install catch2 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:CC="clang"
# $env:CXX="clang++" # $env:CXX="clang++"
meson setup --default-library=static --prefer-static builddir meson setup --default-library=static --prefer-static builddir