Luski.Net/Luski.net/Interfaces/IAudioClient.cs

49 lines
1.5 KiB
C#
Raw Normal View History

2023-01-01 22:50:39 -05:00
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();
}