using Luski.net.Sound; using System; using System.Threading.Tasks; using static Luski.net.Exceptions; namespace Luski.net.Interfaces; public interface IAudioClient { /// <summary> /// the event is fired when your <see cref="IAudioClient"/> has joined the call /// </summary> event Func<Task> Connected; /// <summary> /// Tells you if you are muted /// </summary> bool Muted { get; } /// <summary> /// Tells you if you are deafned /// </summary> bool Deafened { get; } /// <summary> /// Toggles if you are speaking to your friends /// </summary> void ToggleMic(); /// <summary> /// Toggles if you can hear audio /// </summary> void ToggleAudio(); /// <summary> /// Changes what <see cref="RecordingDevice"/> the call gets its data from /// </summary> /// <param name="Device">This is the <see cref="RecordingDevice"/> you want to recored from</param> /// <exception cref="NotConnectedException"></exception> void RecordSoundFrom(RecordingDevice Device); /// <summary> /// Changes what <see cref="PlaybackDevice"/> the call gets its data from /// </summary> /// <param name="Device">This is the <see cref="PlaybackDevice"/> you want to heare outhers</param> /// <exception cref="NotConnectedException"></exception> void PlaySoundTo(PlaybackDevice Device); /// <summary> /// Joins the Voice call /// </summary> /// <exception cref="MissingEventException"></exception> void JoinCall(); void LeaveCall(); }