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); } }