mirror of
https://github.com/got-feedBack/feedBack-desktop.git
synced 2026-09-10 23:54:10 +00:00
NaN/Inf from any JS caller (audio:setGain does no validation) previously reached the gain atomics raw; a NaN master gain multiplies the whole device output to NaN and poisons the peak meters (TLC deep-read §2). Clamp at the four setters — the single choke point covering the legacy facade, the source-indexed API, and the audio-effects executor. Bounds 0..32 match the executor's clampGain (Phase 0.b compat pin); stream/ renderer-bus keep their historical 0..8 via the same JUCE-free helper, now testable in the new tests/engine_units target (Phase 0.c harness). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8 lines
486 B
CMake
8 lines
486 B
CMake
# engine_units — home for the per-unit tests of the audio-engine decomposition
|
|
# (docs/audio-engine-tlc.md Part IV §4/0.c). JUCE-free targets only: units are
|
|
# extracted so they can be tested against a state struct + fake ring, without a
|
|
# real device. One executable per unit keeps failures attributable.
|
|
add_executable(gain_sanitize_test gain_sanitize_test.cpp)
|
|
target_compile_features(gain_sanitize_test PRIVATE cxx_std_17)
|
|
add_test(NAME gain_sanitize COMMAND gain_sanitize_test)
|