namespace ytLive.Services.Audio; /// /// A live audio capture source (TASK 4 ship step 4 seam): produces PCM float /// chunks, runs only while live. The default implementations wrap NAudio's /// WASAPI capture (mic) / loopback (desktop/game); the mixer and the tests /// consume this interface, never NAudio directly. /// public interface IAudioSource : IDisposable { /// Starts capturing. Safe to call only once per Stop. void Start(); /// Stops capturing; a later Start begins a fresh session. void Stop(); /// Raises each captured chunk (interleaved PCM float, -1..1). event Action? SampleReady; /// Raises when capture dies or fails to start (e.g. no device). event Action? Failed; }