Audio render-hook M4: audio panel source indicator + stream-count debug view

Surfaces the render-hook diagnostics in the Audio panel.

- HookStatusView / IpcServer::hook_status(): carry audio_streams_seen +
  audio_streams[] from the hook's back-channel.
- InjectionPanel: expose hook_status() so the audio panel can read the counts.
- AudioPanel::draw_ui(HookStatusView): show the active Source (green Hooked
  vs amber Loopback); only warn about the local echo on the loopback path. Add
  the required render-stream table: one row per stream with format, cumulative
  frames, the primary tagged, and a live/idle dot derived from frame-count
  deltas. Notes overflow when the game exceeds kMaxAudioStreams slots.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 12:05:28 +02:00
parent 679b243974
commit 31390d8c15
6 changed files with 121 additions and 9 deletions

View File

@@ -27,6 +27,10 @@ struct HookStatusView
bool raw_input_gamepad = false;
bool raw_input_gamepad_sink = false;
bool dinput_loaded = false;
// Audio render-hook diagnostics (for the Audio panel's stream-count view).
std::uint32_t audio_streams_seen = 0;
AudioStreamInfo audio_streams[kMaxAudioStreams] = {};
};
class IpcServer