namespace ytLive.Services;

/// <summary>
/// Detects "a working game with sound is up in the preview" (TASK 4 game audio
/// bar): becomes active once a full-screen foreground app is producing desktop
/// audio, and stays active as long as that full-screen app remains — silence
/// never hides the bar, only the game leaving fullscreen/foreground does. Seam
/// so the VM and tests never touch Win32 or audio interop directly.
/// </summary>
public interface IGameAudioDetector
{
    /// <summary>True while the game audio bar should be visible.</summary>
    bool IsGameAudioActive { get; }

    /// <summary>Raised when the bar should appear or disappear.</summary>
    event Action<bool>? IsGameAudioActiveChanged;

    /// <summary>Samples the injected providers and advances the state machine.</summary>
    void Poll();
}
