Cleaned up several accessibilities, docstrings, and a few audio classes
This commit is contained in:
@@ -50,34 +50,21 @@ namespace Discord.Audio
|
||||
private ConnectionState _gatewayState;
|
||||
|
||||
internal Logger Logger { get; }
|
||||
|
||||
/// <summary> Gets the unique identifier for this client. </summary>
|
||||
|
||||
public int Id { get; }
|
||||
/// <summary> Gets the service managing this client. </summary>
|
||||
public AudioService Service { get; }
|
||||
/// <summary> Gets the configuration object used to make this client. </summary>
|
||||
public AudioServiceConfig Config { get; }
|
||||
/// <summary> Gets the internal RestClient for the Client API endpoint. </summary>
|
||||
public RestClient ClientAPI { get; }
|
||||
/// <summary> Gets the internal WebSocket for the Gateway event stream. </summary>
|
||||
public GatewaySocket GatewaySocket { get; }
|
||||
/// <summary> Gets the internal WebSocket for the Voice control stream. </summary>
|
||||
public VoiceSocket VoiceSocket { get; }
|
||||
/// <summary> Gets the JSON serializer used by this client. </summary>
|
||||
public JsonSerializer Serializer { get; }
|
||||
/// <summary> </summary>
|
||||
public Stream OutputStream { get; }
|
||||
|
||||
/// <summary> Gets a cancellation token that triggers when the client is manually disconnected. </summary>
|
||||
|
||||
public CancellationToken CancelToken { get; private set; }
|
||||
/// <summary> Gets the session id for the current connection. </summary>
|
||||
public string SessionId { get; private set; }
|
||||
|
||||
/// <summary> Gets the current state of this client. </summary>
|
||||
|
||||
public ConnectionState State => VoiceSocket.State;
|
||||
/// <summary> Gets the server this client is bound to. </summary>
|
||||
public Server Server => VoiceSocket.Server;
|
||||
/// <summary> Gets the channel </summary>
|
||||
public Channel Channel => VoiceSocket.Channel;
|
||||
|
||||
public AudioClient(DiscordClient client, Server server, int id)
|
||||
@@ -116,7 +103,6 @@ namespace Discord.Audio
|
||||
OutputStream = new OutStream(this);
|
||||
}
|
||||
|
||||
/// <summary> Connects to the Discord server with the provided token. </summary>
|
||||
public async Task Connect()
|
||||
{
|
||||
if (Config.EnableMultiserver)
|
||||
@@ -172,7 +158,6 @@ namespace Discord.Audio
|
||||
_gatewayState = ConnectionState.Connected;
|
||||
}
|
||||
|
||||
/// <summary> Disconnects from the Discord server, canceling any pending requests. </summary>
|
||||
public async Task Disconnect()
|
||||
{
|
||||
await _taskManager.Stop(true).ConfigureAwait(false);
|
||||
@@ -277,9 +262,6 @@ namespace Discord.Audio
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary> Sends a PCM frame to the voice server. Will block until space frees up in the outgoing buffer. </summary>
|
||||
/// <param name="data">PCM frame to send. This must be a single or collection of uncompressed 48Kz monochannel 20ms PCM frames. </param>
|
||||
/// <param name="count">Number of bytes in this frame. </param>
|
||||
public void Send(byte[] data, int offset, int count)
|
||||
{
|
||||
if (data == null) throw new ArgumentException(nameof(data));
|
||||
@@ -291,14 +273,11 @@ namespace Discord.Audio
|
||||
VoiceSocket.SendPCMFrames(data, offset, count);
|
||||
}
|
||||
|
||||
/// <summary> Clears the PCM buffer. </summary>
|
||||
public void Clear()
|
||||
{
|
||||
if (VoiceSocket.Server == null) return; //Has been closed
|
||||
VoiceSocket.ClearPCMFrames();
|
||||
}
|
||||
|
||||
/// <summary> Returns a task that completes once the voice output buffer is empty. </summary>
|
||||
public void Wait()
|
||||
{
|
||||
if (VoiceSocket.Server == null) return; //Has been closed
|
||||
|
||||
@@ -1,16 +1,38 @@
|
||||
using System.IO;
|
||||
using Discord.Net.Rest;
|
||||
using Discord.Net.WebSockets;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Discord.Audio
|
||||
{
|
||||
public interface IAudioClient
|
||||
{
|
||||
/// <summary> Gets the unique identifier for this client. </summary>
|
||||
int Id { get; }
|
||||
/// <summary> Gets the session id for the current connection. </summary>
|
||||
string SessionId { get; }
|
||||
/// <summary> Gets the current state of this client. </summary>
|
||||
ConnectionState State { get; }
|
||||
/// <summary> Gets the channel this client is currently a member of. </summary>
|
||||
Channel Channel { get; }
|
||||
/// <summary> Gets the server this client is bound to. </summary>
|
||||
Server Server { get; }
|
||||
/// <summary> Gets a stream object that wraps the Send() function. </summary>
|
||||
Stream OutputStream { get; }
|
||||
/// <summary> Gets a cancellation token that triggers when the client is manually disconnected. </summary>
|
||||
CancellationToken CancelToken { get; }
|
||||
|
||||
/// <summary> Gets the internal RestClient for the Client API endpoint. </summary>
|
||||
RestClient ClientAPI { get; }
|
||||
/// <summary> Gets the internal WebSocket for the Gateway event stream. </summary>
|
||||
GatewaySocket GatewaySocket { get; }
|
||||
/// <summary> Gets the internal WebSocket for the Voice control stream. </summary>
|
||||
VoiceSocket VoiceSocket { get; }
|
||||
|
||||
/// <summary> Moves the client to another channel on the same server. </summary>
|
||||
Task Join(Channel channel);
|
||||
/// <summary> Disconnects from the Discord server, canceling any pending requests. </summary>
|
||||
Task Disconnect();
|
||||
|
||||
/// <summary> Sends a PCM frame to the voice server. Will block until space frees up in the outgoing buffer. </summary>
|
||||
|
||||
@@ -4,13 +4,13 @@ using System.Security;
|
||||
|
||||
namespace Discord.Audio.Opus
|
||||
{
|
||||
public enum OpusApplication : int
|
||||
internal enum OpusApplication : int
|
||||
{
|
||||
Voice = 2048,
|
||||
MusicOrMixed = 2049,
|
||||
LowLatency = 2051
|
||||
}
|
||||
public enum OpusError : int
|
||||
internal enum OpusError : int
|
||||
{
|
||||
OK = 0,
|
||||
BadArg = -1,
|
||||
@@ -22,7 +22,7 @@ namespace Discord.Audio.Opus
|
||||
AllocFail = -7
|
||||
}
|
||||
|
||||
public abstract class OpusConverter : IDisposable
|
||||
internal abstract class OpusConverter : IDisposable
|
||||
{
|
||||
protected enum Ctl : int
|
||||
{
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace Discord.Audio.Opus
|
||||
{
|
||||
/// <summary> Opus codec wrapper. </summary>
|
||||
internal class OpusDecoder : OpusConverter
|
||||
{
|
||||
/// <summary> Creates a new Opus decoder. </summary>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace Discord.Audio.Opus
|
||||
{
|
||||
/// <summary> Opus codec wrapper. </summary>
|
||||
internal class OpusEncoder : OpusConverter
|
||||
{
|
||||
/// <summary> Gets the bit rate in kbit/s. </summary>
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
using System.IO;
|
||||
using Discord.Net.Rest;
|
||||
using Discord.Net.WebSockets;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Discord.Audio
|
||||
@@ -9,9 +12,17 @@ namespace Discord.Audio
|
||||
|
||||
public Server Server { get; }
|
||||
|
||||
public ConnectionState State => _client.VoiceSocket.Server == Server ? _client.VoiceSocket.State : ConnectionState.Disconnected;
|
||||
public Channel Channel => _client.VoiceSocket.Server == Server ? _client.VoiceSocket.Channel : null;
|
||||
public Stream OutputStream => _client.VoiceSocket.Server == Server ? _client.OutputStream : null;
|
||||
public int Id => 0;
|
||||
public string SessionId => _client.Server == Server ? _client.SessionId : null;
|
||||
|
||||
public ConnectionState State => _client.Server == Server ? _client.State : ConnectionState.Disconnected;
|
||||
public Channel Channel => _client.Server == Server ? _client.Channel : null;
|
||||
public Stream OutputStream => _client.Server == Server ? _client.OutputStream : null;
|
||||
public CancellationToken CancelToken => _client.Server == Server ? _client.CancelToken : CancellationToken.None;
|
||||
|
||||
public RestClient ClientAPI => _client.Server == Server ? _client.ClientAPI : null;
|
||||
public GatewaySocket GatewaySocket => _client.Server == Server ? _client.GatewaySocket : null;
|
||||
public VoiceSocket VoiceSocket => _client.Server == Server ? _client.VoiceSocket : null;
|
||||
|
||||
public VirtualClient(AudioClient client, Server server)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user