diff --git a/CMakeLists.txt b/CMakeLists.txt index 244d966..1c302fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,7 +112,14 @@ add_executable(test_provisioning tests/test_provisioning.cpp ) target_include_directories(test_provisioning PRIVATE src) -target_link_libraries(test_provisioning PRIVATE SDL3::SDL3) +# provisioning.h pulls in app_state.h, so the test compiles against the SDL3, +# SDL3_mixer, and SQLite headers transitively (app_state.h -> audio_manager.h -> +# SDL3_mixer; app_state.h -> database_manager.h -> sqlite3.h). +target_link_libraries(test_provisioning PRIVATE + SDL3::SDL3 + SDL3_mixer::SDL3_mixer + SQLite3::SQLite3 +) add_executable(test_assets tests/test_assets.cpp diff --git a/nixos/vm.nix b/nixos/vm.nix index db9ed59..3f7ecc9 100644 --- a/nixos/vm.nix +++ b/nixos/vm.nix @@ -112,6 +112,18 @@ in export WLR_RENDERER=pixman export WLR_NO_HARDWARE_CURSORS=1 + # Prefer the PipeWire audio backend so SDL enumerates every sink + # (built-in analog, HDMI, and the loopback virtual speaker) instead of + # silently falling back to an ALSA-only device view that hides the + # PipeWire sinks and makes the device selector show a single entry. + export SDL_AUDIODRIVER=pipewire + if [ -n "$${XDG_RUNTIME_DIR:-}" ]; then + for i in {1..20}; do + [ -S "$XDG_RUNTIME_DIR/pipewire-0" ] && break + sleep 0.5 + done + fi + cage -- ${radiantWaveApp}/bin/radiantwave > /tmp/kiosk.log 2>&1 fi '';