feedBack-desktop/tests/engine_units
OmikronApex b51f88a574 feat(audio): engine-owned Mixer — RendererBus generalized to N channels
Phase B core (plan §5/§8):
- engine/Mixer.h: lock-free slot state machine (Free→Active→Draining→Free),
  channel #0 = the RendererBus byte-compatible permanent default, lazy
  ~512KB ring allocation per claimed slot (high-water, never freed under a
  live audio thread), per-channel gain/mute with block ramps (click-free),
  fade-to-silence reclaim (§5), hard cap 24 with no-capacity refusal
  (§8.9), group start gates at block granularity (§8.13), native gain
  clamp via sanitizeStreamGain (§5.1 tier 2).
- AudioEngine: mixer replaces the bare rendererBus member;
  setRendererBus/pushRendererAudio/getRendererBusMetrics delegate to
  channel #0 unchanged; pullRendererBus now mixes all ready channels
  (duplex + split paths and the StreamSink submix carry every channel).
- N-API: mixerCreateChannel/Release/Push/SetGain/SetMute/SetGroup/List.
- tests/engine_units/mixer_test.cpp: byte-compat vs plain RendererBus,
  cap refusal, live-consumer fade-then-free, ramp clamps, group gate,
  bounded strings. renderer_bus_test still green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 22:27:08 +02:00
..
CMakeLists.txt feat(audio): engine-owned Mixer — RendererBus generalized to N channels 2026-07-14 22:27:08 +02:00
engine_state_test.cpp refactor(audio): extract EngineState with intent/state split (phase 1) 2026-07-13 23:42:29 +02:00
gain_sanitize_test.cpp fix(audio): sanitize input/chain/output/backing gains at the engine setters 2026-07-13 23:28:34 +02:00
mixer_test.cpp feat(audio): engine-owned Mixer — RendererBus generalized to N channels 2026-07-14 22:27:08 +02:00
packed_stereo_ring_test.cpp refactor(audio): extract PackedStereoRing — one SPSC ring template (phase 1) 2026-07-13 23:38:56 +02:00
rate_match_test.cpp refactor(audio): extract DeviceSetup + shared rate-match helpers (phase 4) 2026-07-14 00:27:51 +02:00
renderer_bus_test.cpp fix(audio): close the PR #107 review findings 2026-07-14 14:29:03 +02:00