0f4ee5d965
Allocates an ansnd voice per stream and configures/starts it in single-buffer mode (no continuous re-feed needed yet, matching the PSP/Linux single-shot approach). Real linear panning from directionality via left/right voice volume. ansnd has no polling API for voice state, so finish detection uses a voice_callback (fired from ansnd's own audio DMA interrupt, not the main thread) that sets a flag audioStreamDolphinIsFinished() reads. Links libansnd (new for this project) and wires duskdolphin/audio into the CMake build for the first time. Verified via the dusk-dolphin toolchain: both GameCube and Wii targets compile and link cleanly. Runtime verification in headless Dolphin was inconclusive - confirmed via an A/B test against a pre-audio baseline build that a pre-existing MMIO flood (unrelated to this change, reproduces identically with zero audio code present) keeps the harness from reaching the game's own steady state before timing out.
28 lines
555 B
CMake
28 lines
555 B
CMake
# Copyright (c) 2026 Dominic Masters
|
|
#
|
|
# This software is released under the MIT License.
|
|
# https://opensource.org/licenses/MIT
|
|
|
|
# Includes
|
|
target_include_directories(${DUSK_LIBRARY_TARGET_NAME}
|
|
PUBLIC
|
|
${CMAKE_CURRENT_LIST_DIR}
|
|
)
|
|
|
|
# Sources
|
|
target_sources(${DUSK_BINARY_TARGET_NAME}
|
|
PUBLIC
|
|
)
|
|
|
|
# Subdirs
|
|
add_subdirectory(asset)
|
|
add_subdirectory(audio)
|
|
add_subdirectory(log)
|
|
add_subdirectory(display)
|
|
add_subdirectory(input)
|
|
if(DUSK_NETWORK)
|
|
add_subdirectory(network)
|
|
endif()
|
|
add_subdirectory(save)
|
|
add_subdirectory(system)
|
|
add_subdirectory(time) |