namespace axXez.TS3.Protocol
{
/// Common delegate for connection-level events shared by all TeamSpeak client implementations.
public delegate void TeamspeakClientHandler(ITeamspeakClient sender);
/// Common delegate for events that carry additional data, shared by all TeamSpeak client implementations.
public delegate void TeamspeakClientHandler(ITeamspeakClient sender, T args);
/// Defines the common contract shared by all TeamSpeak client implementations.
public interface ITeamspeakClient
{
/// Host name or IP address this client targets.
string Host { get; }
/// Port this client targets.
int Port { get; }
/// Whether the client is currently connected.
bool IsConnected { get; }
/// Raised after the connection is established.
event TeamspeakClientHandler OnConnected;
/// Raised when the connection is lost.
event TeamspeakClientHandler OnDisconnected;
/// Raised when a text message is received.
event TeamspeakClientHandler OnTextMessage;
/// Sends a text message. Returns false if not connected.
bool SendTextMessage(MessageTargetMode mode, int targetId, string message);
}
}