updated sdk and fixed build errors

This commit is contained in:
2023-08-05 22:01:47 +02:00
parent 72a9b50298
commit 6bf4676bc1
26 changed files with 6659 additions and 1166 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -3,389 +3,577 @@
#include "teamlog/logtypes.h"
//limited length, measured in characters
#define TS3_MAX_SIZE_CHANNEL_NAME 40
#define TS3_MAX_SIZE_VIRTUALSERVER_NAME 64
#define TS3_MAX_SIZE_CLIENT_NICKNAME 64
#define TS3_MIN_SIZE_CLIENT_NICKNAME 3
#define TS3_MAX_SIZE_REASON_MESSAGE 80
#define TS3_MAX_SIZE_CHANNEL_NAME 40 // channel name maximum length in characters
#define TS3_MAX_SIZE_VIRTUALSERVER_NAME 64 // virtual server name maximum length in characters
#define TS3_MAX_SIZE_CLIENT_NICKNAME 64 // client display name length limit in characters
#define TS3_MIN_SIZE_CLIENT_NICKNAME 3 // client display name minimum length in characters
#define TS3_MAX_SIZE_REASON_MESSAGE 80 // length limit in characters for kick, move, etc reasons
//limited length, measured in bytes (utf8 encoded)
#define TS3_MAX_SIZE_TEXTMESSAGE 8192
#define TS3_MAX_SIZE_CHANNEL_TOPIC 255
#define TS3_MAX_SIZE_CHANNEL_DESCRIPTION 8192
#define TS3_MAX_SIZE_TEXTMESSAGE 8192 // text message length limit, measured in bytes (utf8 encoded)
#define TS3_MAX_SIZE_CHANNEL_TOPIC 255 // channel topic lengt limith, measured in bytes (utf8 encoded)
#define TS3_MAX_SIZE_CHANNEL_DESCRIPTION 8192 // channel description length limit, measured in bytes (utf8 encoded)
// server welcome message length limit measured in bytes (utf8 encoded)
#define TS3_MAX_SIZE_VIRTUALSERVER_WELCOMEMESSAGE 1024
#define TS3_SIZE_MYTSID 44
//minimum amount of seconds before a clientID that was in use can be assigned to a new client
// minimum amount of seconds before a clientID that was in use can be assigned to a new client
#define TS3_MIN_SECONDS_CLIENTID_REUSE 300
#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32)
typedef unsigned __int16 anyID;
typedef unsigned __int64 uint64;
#ifdef BUILDING_DLL
#define EXPORTDLL __declspec(dllexport)
#else
#define EXPORTDLL
#endif
typedef unsigned __int16 anyID;
typedef unsigned __int64 uint64;
#ifndef EXPORTDLL
#ifdef BUILDING_DLL
#define EXPORTDLL __declspec(dllexport)
#else
#include <stdint.h>
typedef uint16_t anyID;
typedef uint64_t uint64;
#ifdef BUILDING_DLL
#define EXPORTDLL __attribute__ ((visibility("default")))
#else
#define EXPORTDLL
#endif
#define EXPORTDLL
#endif
#endif
#else
#include <stdint.h>
typedef uint16_t anyID;
typedef uint64_t uint64;
#ifndef EXPORTDLL
#ifdef BUILDING_DLL
#define EXPORTDLL __attribute__((visibility("default")))
#else
#define EXPORTDLL
#endif
#endif
#endif
enum Visibility {
ENTER_VISIBILITY = 0, ///< Client joined from an unsubscribed channel, or joined the server.
RETAIN_VISIBILITY, ///< Client switched from one subscribed channel to a different subscribed channel.
LEAVE_VISIBILITY ///< Client switches to an unsubscribed channel, or disconnected from server.
};
enum ConnectStatus {
STATUS_DISCONNECTED = 0, ///< There is no activity to the server, this is the default value
STATUS_CONNECTING, ///< We are trying to connect, we haven't got a client id yet, we haven't been accepted by the server
STATUS_CONNECTED, ///< The server has accepted us, we can talk and hear and we have a client id, but we don't
///< have the channels and clients yet, we can get server infos (welcome msg etc.)
STATUS_CONNECTION_ESTABLISHING, ///< we are connected and we are visible
STATUS_CONNECTION_ESTABLISHED, ///< we are connected and we have the client and channels available
};
enum LocalTestMode { TEST_MODE_OFF = 0, TEST_MODE_VOICE_LOCAL_ONLY, TEST_MODE_VOICE_LOCAL_AND_REMOTE, TEST_MODE_TALK_STATUS_CHANGES_ONLY };
enum TalkStatus {
STATUS_NOT_TALKING = 0,
STATUS_TALKING = 1,
STATUS_TALKING_WHILE_DISABLED = 2,
STATUS_NOT_TALKING = 0, ///< client is not talking
STATUS_TALKING = 1, ///< client is talking
STATUS_TALKING_WHILE_DISABLED = 2, ///< client is talking while the microphone is muted (only valid for own client)
};
enum CodecType {
CODEC_SPEEX_NARROWBAND = 0, //mono, 16bit, 8kHz, bitrate dependent on the quality setting
CODEC_SPEEX_WIDEBAND, //mono, 16bit, 16kHz, bitrate dependent on the quality setting
CODEC_SPEEX_ULTRAWIDEBAND, //mono, 16bit, 32kHz, bitrate dependent on the quality setting
CODEC_CELT_MONO, //mono, 16bit, 48kHz, bitrate dependent on the quality setting
CODEC_OPUS_VOICE, //mono, 16bit, 48khz, bitrate dependent on the quality setting, optimized for voice
CODEC_OPUS_MUSIC, //stereo, 16bit, 48khz, bitrate dependent on the quality setting, optimized for music
CODEC_SPEEX_NARROWBAND = 0, ///< (deprecated) mono, 16bit, 8kHz, bitrate dependent on the quality setting
CODEC_SPEEX_WIDEBAND, ///< (deprecated) mono, 16bit, 16kHz, bitrate dependent on the quality setting
CODEC_SPEEX_ULTRAWIDEBAND, ///< (deprecated) mono, 16bit, 32kHz, bitrate dependent on the quality setting
CODEC_CELT_MONO, ///< (deprecated) mono, 16bit, 48kHz, bitrate dependent on the quality setting
CODEC_OPUS_VOICE, ///< mono, 16bit, 48khz, bitrate dependent on the quality setting, optimized for voice
CODEC_OPUS_MUSIC, ///< stereo, 16bit, 48khz, bitrate dependent on the quality setting, optimized for music
};
enum CodecEncryptionMode {
CODEC_ENCRYPTION_PER_CHANNEL = 0,
CODEC_ENCRYPTION_FORCED_OFF,
CODEC_ENCRYPTION_FORCED_ON,
CODEC_ENCRYPTION_PER_CHANNEL = 0, ///< voice data encryption decided per channel
CODEC_ENCRYPTION_FORCED_OFF, ///< voice data encryption disabled
CODEC_ENCRYPTION_FORCED_ON, ///< voice data encryption enabled
};
enum TextMessageTargetMode {
TextMessageTarget_CLIENT=1,
TextMessageTarget_CHANNEL,
TextMessageTarget_SERVER,
TextMessageTarget_MAX
TextMessageTarget_CLIENT = 1, ///< Message is a private message to another client
TextMessageTarget_CHANNEL, ///< Message is sent to a channel, received by all clients in that channel at the time
TextMessageTarget_SERVER, ///< Message is sent to every client on the server
TextMessageTarget_MAX
};
enum MuteInputStatus {
MUTEINPUT_NONE = 0,
MUTEINPUT_MUTED,
MUTEINPUT_NONE = 0, ///< Microphone is not muted, audio is sent to the server
MUTEINPUT_MUTED, ///< Microphone is muted, no audio is transmitted to the server
};
enum MuteOutputStatus {
MUTEOUTPUT_NONE = 0,
MUTEOUTPUT_MUTED,
MUTEOUTPUT_NONE = 0, ///< Speaker is active, server is sending us audio
MUTEOUTPUT_MUTED, ///< Speaker is muted, server is not sending audio to us
};
enum HardwareInputStatus {
HARDWAREINPUT_DISABLED = 0,
HARDWAREINPUT_ENABLED,
HARDWAREINPUT_DISABLED = 0, ///< no capture device opened
HARDWAREINPUT_ENABLED, ///< capture device open
};
enum HardwareOutputStatus {
HARDWAREOUTPUT_DISABLED = 0,
HARDWAREOUTPUT_ENABLED,
HARDWAREOUTPUT_DISABLED = 0, ///< no playback device opened
HARDWAREOUTPUT_ENABLED, ///< playback device open
};
enum InputDeactivationStatus {
INPUT_ACTIVE = 0,
INPUT_DEACTIVATED = 1,
INPUT_ACTIVE = 0, ///< Audio is captured from the capture device.
INPUT_DEACTIVATED = 1, ///< No audio is captured from the capture device.
};
enum ReasonIdentifier {
REASON_NONE = 0, //no reason data
REASON_MOVED = 1, //{SectionInvoker}
REASON_SUBSCRIPTION = 2, //no reason data
REASON_LOST_CONNECTION = 3, //reasonmsg=reason
REASON_KICK_CHANNEL = 4, //{SectionInvoker} reasonmsg=reason //{SectionInvoker} is only added server->client
REASON_KICK_SERVER = 5, //{SectionInvoker} reasonmsg=reason //{SectionInvoker} is only added server->client
REASON_KICK_SERVER_BAN = 6, //{SectionInvoker} reasonmsg=reason bantime=time //{SectionInvoker} is only added server->client
REASON_SERVERSTOP = 7, //reasonmsg=reason
REASON_CLIENTDISCONNECT = 8, //reasonmsg=reason
REASON_CHANNELUPDATE = 9, //no reason data
REASON_CHANNELEDIT = 10, //{SectionInvoker}
REASON_CLIENTDISCONNECT_SERVER_SHUTDOWN = 11, //reasonmsg=reason
REASON_NONE = 0, ///< no reason data
REASON_MOVED = 1, ///< client was moved
REASON_SUBSCRIPTION = 2, // no reason data
REASON_LOST_CONNECTION = 3, // reasonmsg=reason
REASON_KICK_CHANNEL = 4, //{SectionInvoker} reasonmsg=reason //{SectionInvoker} is only added server->client
REASON_KICK_SERVER = 5, //{SectionInvoker} reasonmsg=reason //{SectionInvoker} is only added server->client
REASON_KICK_SERVER_BAN = 6, //{SectionInvoker} reasonmsg=reason bantime=time //{SectionInvoker} is only added server->client
REASON_SERVERSTOP = 7, // reasonmsg=reason
REASON_CLIENTDISCONNECT = 8, // reasonmsg=reason
REASON_CHANNELUPDATE = 9, // no reason data
REASON_CHANNELEDIT = 10, //{SectionInvoker}
REASON_CLIENTDISCONNECT_SERVER_SHUTDOWN = 11, // reasonmsg=reason
};
enum Protocol_Encryption_Cipher { AES_128 = 0, AES_256, PROTOCOL_ENCRYPTION_CIPHER_END_MARKER };
enum ChannelProperties {
CHANNEL_NAME = 0, //Available for all channels that are "in view", always up-to-date
CHANNEL_TOPIC, //Available for all channels that are "in view", always up-to-date
CHANNEL_DESCRIPTION, //Must be requested (=> requestChannelDescription)
CHANNEL_PASSWORD, //not available client side
CHANNEL_CODEC, //Available for all channels that are "in view", always up-to-date
CHANNEL_CODEC_QUALITY, //Available for all channels that are "in view", always up-to-date
CHANNEL_MAXCLIENTS, //Available for all channels that are "in view", always up-to-date
CHANNEL_MAXFAMILYCLIENTS, //Available for all channels that are "in view", always up-to-date
CHANNEL_ORDER, //Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_PERMANENT, //Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_SEMI_PERMANENT, //Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_DEFAULT, //Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_PASSWORD, //Available for all channels that are "in view", always up-to-date
CHANNEL_CODEC_LATENCY_FACTOR, //Available for all channels that are "in view", always up-to-date
CHANNEL_CODEC_IS_UNENCRYPTED, //Available for all channels that are "in view", always up-to-date
CHANNEL_SECURITY_SALT, //Not available client side, not used in teamspeak, only SDK. Sets the options+salt for security hash.
CHANNEL_DELETE_DELAY, //How many seconds to wait before deleting this channel
CHANNEL_ENDMARKER,
CHANNEL_NAME = 0, ///< String. Read/Write. Name of the channel. Always available.
CHANNEL_TOPIC, ///< String. Read/Write. Short single line text describing what the channel is about. Always available.
CHANNEL_DESCRIPTION, ///< String. Read/Write. Arbitrary text (up to 8k bytes) with information about the channel.
///< Must be requested (\ref ts3client_requestChannelDescription)
CHANNEL_PASSWORD, ///< String. Read/Write. Password of the channel. Read access is limited to the server. Clients
///< will only ever see the last password they attempted to use when joining the channel. Always available.
CHANNEL_CODEC, ///< Integer. Read/Write. The codec this channel is using. One of the values from the \ref CodecType
///< enum. Always available.
CHANNEL_CODEC_QUALITY, ///< Integer. Read/Write. The quality setting of the channel. Valid values are 0 to 10 inclusive.
///< Higher value means better voice quality but also more bandwidth usage. Always available.
CHANNEL_MAXCLIENTS, ///< Integer. Read/Write. The number of clients that can be in the channel simultaneously.
///< Always available.
CHANNEL_MAXFAMILYCLIENTS, ///< Integer. Read/Write. The total number of clients that can be in this channel and all
///< sub channels of this channel. Always available.
CHANNEL_ORDER, ///< UInt64. Read/Write. The ID of the channel below which this channel should be displayed. If 0
///< the channel is sorted at the top of the current level. Always available.
CHANNEL_FLAG_PERMANENT, ///< Integer. Read/Write. Boolean (1/0) indicating whether the channel remains when empty.
///< Permanent channels are stored to the database and available after server restart. SDK
///< users will need to take care of restoring channel at server start on their own.
///< Mutually exclusive with \ref CHANNEL_FLAG_SEMI_PERMANENT. Always available.
CHANNEL_FLAG_SEMI_PERMANENT, ///< Integer. Read/Write. Boolean (1/0) indicating whether the channel remains when
///< empty. Semi permanent channels are not stored to disk and gone after server
///< restart but remain while empty. Mutually exclusive with \ref
///< CHANNEL_FLAG_PERMANENT. Always available.
CHANNEL_FLAG_DEFAULT, ///< Integer. Read/Write. Boolean (1/0). The default channel is the channel that all clients
///< are located in when they join the server, unless the client explicitly specified a
///< different channel when connecting and is allowed to join their preferred channel. Only
///< one channel on the server can have this flag set. The default channel must have \ref
///< CHANNEL_FLAG_PERMANENT set. Always available.
CHANNEL_FLAG_PASSWORD, ///< Integer. Read/Write. Boolean (1/0) indicating whether this channel is password protected.
///< When removing or setting \ref CHANNEL_PASSWORD you also need to adjust this flag.
CHANNEL_CODEC_LATENCY_FACTOR, ///< (deprecated) Integer. Read/Write. Allows to increase packet size, reducing
///< bandwith at the cost of higher latency of voice transmission. Valid values are
///< 1-10 inclusive. 1 is the default and offers the lowest latency. Always available.
CHANNEL_CODEC_IS_UNENCRYPTED, ///< Integer. Read/Write. Boolean (1/0). If 0 voice data is encrypted, if 1 the voice
///< data is not encrypted. Only used if the server \ref
///< VIRTUALSERVER_CODEC_ENCRYPTION_MODE is set to \ref CODEC_ENCRYPTION_PER_CHANNEL.
///< Always available.
CHANNEL_SECURITY_SALT, ///< String. Read/Write. SDK Only, not used by TeamSpeak. This channels security hash. When
///< a client joins their \ref CLIENT_SECURITY_HASH is compared to this value, to allow or
///< deny the client access to the channel. Used to enforce clients joining the server with
///< specific identity and \ref CLIENT_META_DATA. See SDK Documentation about this feature
///< for further details. Always available.
CHANNEL_DELETE_DELAY, ///< UInt64. Read/Write. Number of seconds deletion of temporary channels is delayed after
///< the last client leaves the channel. Channel is only deleted if empty when the delete
///< delay expired. Always available.
CHANNEL_UNIQUE_IDENTIFIER, ///< String. Read only. An identifier that uniquely identifies a channel. Available in
///< Server >= 3.10.0
CHANNEL_ENDMARKER,
};
enum ClientProperties {
CLIENT_UNIQUE_IDENTIFIER = 0, //automatically up-to-date for any client "in view", can be used to identify this particular client installation
CLIENT_NICKNAME, //automatically up-to-date for any client "in view"
CLIENT_VERSION, //for other clients than ourself, this needs to be requested (=> requestClientVariables)
CLIENT_PLATFORM, //for other clients than ourself, this needs to be requested (=> requestClientVariables)
CLIENT_FLAG_TALKING, //automatically up-to-date for any client that can be heard (in room / whisper)
CLIENT_INPUT_MUTED, //automatically up-to-date for any client "in view", this clients microphone mute status
CLIENT_OUTPUT_MUTED, //automatically up-to-date for any client "in view", this clients headphones/speakers/mic combined mute status
CLIENT_OUTPUTONLY_MUTED, //automatically up-to-date for any client "in view", this clients headphones/speakers only mute status
CLIENT_INPUT_HARDWARE, //automatically up-to-date for any client "in view", this clients microphone hardware status (is the capture device opened?)
CLIENT_OUTPUT_HARDWARE, //automatically up-to-date for any client "in view", this clients headphone/speakers hardware status (is the playback device opened?)
CLIENT_INPUT_DEACTIVATED, //only usable for ourself, not propagated to the network
CLIENT_IDLE_TIME, //internal use
CLIENT_DEFAULT_CHANNEL, //only usable for ourself, the default channel we used to connect on our last connection attempt
CLIENT_DEFAULT_CHANNEL_PASSWORD, //internal use
CLIENT_SERVER_PASSWORD, //internal use
CLIENT_META_DATA, //automatically up-to-date for any client "in view", not used by TeamSpeak, free storage for sdk users
CLIENT_IS_MUTED, //only make sense on the client side locally, "1" if this client is currently muted by us, "0" if he is not
CLIENT_IS_RECORDING, //automatically up-to-date for any client "in view"
CLIENT_VOLUME_MODIFICATOR, //internal use
CLIENT_VERSION_SIGN, //sign
CLIENT_SECURITY_HASH, //SDK use, not used by teamspeak. Hash is provided by an outside source. A channel will use the security salt + other client data to calculate a hash, which must be the same as the one provided here.
CLIENT_ENCRYPTION_CIPHERS, //internal use
CLIENT_ENDMARKER,
CLIENT_UNIQUE_IDENTIFIER = 0, ///< String. Read only. Public Identity, can be used to identify a client
///< installation. Remains identical as long as the client keeps using the same
///< identity. Available for visible clients.
CLIENT_NICKNAME, ///< String. Read/Write. Display name of the client. Available for visible clients.
CLIENT_VERSION, ///< String. Read only. Version String of the client used. For clients other than ourself this
///< needs to be requested (\ref ts3client_requestClientVariables).
CLIENT_PLATFORM, ///< String. Read only. Operating system used by the client. For other clients other than ourself
///< this needs to be requested (\ref ts3client_requestClientVariables).
CLIENT_FLAG_TALKING, ///< Integer. Read only. Whether the client is talking. Available on clients that are either
///< whispering to us, or in our channel.
CLIENT_INPUT_MUTED, ///< Integer. Read/Write. Microphone mute status. Available for visible clients. One of the
///< values from the \ref MuteInputStatus enum.
CLIENT_OUTPUT_MUTED, ///< Integer. Read only. Speaker mute status. Speaker mute implies microphone mute. Available
///< for visible clients. One of the values from the \ref MuteOutputStatus enum.
CLIENT_OUTPUTONLY_MUTED, ///< Integer. Read only. Speaker mute status. Microphone may be active. Available for
///< visible clients. One of the values from the \ref MuteOutputStatus enum.
CLIENT_INPUT_HARDWARE, ///< Integer. Read only. Indicates whether a capture device is open. Available for visible
///< clients. One of the values from the \ref HardwareInputStatus enum.
CLIENT_OUTPUT_HARDWARE, ///< Integer. Read only. Indicates whether a playback device is open. Available for visible
///< clients. One of the values from the \ref HardwareOutputStatus enum.
CLIENT_INPUT_DEACTIVATED, ///< Integer. Read/Write. Not available server side. Local microphone mute status.
///< Available only for own client. Used to implement Push To Talk. One of the values from
///< the \ref InputDeactivationStatus enum.
CLIENT_IDLE_TIME, ///< UInt64. Read only. Seconds since last activity. Available only for own client.
CLIENT_DEFAULT_CHANNEL, ///< String. Read only. User specified channel they joined when connecting to the server.
///< Available only for own client.
CLIENT_DEFAULT_CHANNEL_PASSWORD, ///< String. Read only. User specified channel password for the channel they
///< attempted to join when connecting to the server. Available only for own
///< client.
CLIENT_SERVER_PASSWORD, ///< String. Read only. User specified server password. Available only for own client.
CLIENT_META_DATA, ///< String. Read/Write. Can be used to store up to 4096 bytes of information on clients. Not
///< used by TeamSpeak. Available for visible clients.
CLIENT_IS_MUTED, ///< Integer. Read only. Not available server side. Indicates whether we have muted the client
///< using \ref ts3client_requestMuteClients. Available for visible clients other than ourselves.
CLIENT_IS_RECORDING, ///< Integer. Read only. Indicates whether the client is recording incoming audio. Available
///< for visible clients.
CLIENT_VOLUME_MODIFICATOR, ///< Integer. Read only. Volume adjustment for this client as set by \ref
///< ts3client_setClientVolumeModifier. Available for visible clients.
CLIENT_VERSION_SIGN, ///< String. Read only. TeamSpeak internal signature.
CLIENT_SECURITY_HASH, ///< String. Read/Write. This clients security hash. Not used by TeamSpeak, SDK only. Hash is
///< provided by an outside source. A channel will use the security salt + other client data
///< to calculate a hash, which must be the same as the one provided here. See SDK
///< documentation about Client / Channel Security Hashes for more details.
CLIENT_ENCRYPTION_CIPHERS, ///< String. Read only. SDK only. List of available ciphers this client can use.
CLIENT_ENDMARKER,
};
enum VirtualServerProperties {
VIRTUALSERVER_UNIQUE_IDENTIFIER = 0, //available when connected, can be used to identify this particular server installation
VIRTUALSERVER_NAME, //available and always up-to-date when connected
VIRTUALSERVER_WELCOMEMESSAGE, //available when connected, (=> requestServerVariables)
VIRTUALSERVER_PLATFORM, //available when connected
VIRTUALSERVER_VERSION, //available when connected
VIRTUALSERVER_MAXCLIENTS, //only available on request (=> requestServerVariables), stores the maximum number of clients that may currently join the server
VIRTUALSERVER_PASSWORD, //not available to clients, the server password
VIRTUALSERVER_CLIENTS_ONLINE, //only available on request (=> requestServerVariables),
VIRTUALSERVER_CHANNELS_ONLINE, //only available on request (=> requestServerVariables),
VIRTUALSERVER_CREATED, //available when connected, stores the time when the server was created
VIRTUALSERVER_UPTIME, //only available on request (=> requestServerVariables), the time since the server was started
VIRTUALSERVER_CODEC_ENCRYPTION_MODE, //available and always up-to-date when connected
VIRTUALSERVER_ENCRYPTION_CIPHERS, //internal use
VIRTUALSERVER_ENDMARKER,
VIRTUALSERVER_UNIQUE_IDENTIFIER = 0, ///< String. Read only. Unique identifier for a virtual server, does not
///< change on server restart. Available if \ref ts3client_getConnectionStatus
///< is >= \ref STATUS_CONNECTED.
VIRTUALSERVER_NAME, ///< String. Read/Write. The virtual server display name. Available if \ref
///< ts3client_getConnectionStatus is >= \ref STATUS_CONNECTED.
VIRTUALSERVER_WELCOMEMESSAGE, ///< String. Read/Write. The welcome message displayed to clients on connect.
///< Available if \ref ts3client_getConnectionStatus is >= \ref STATUS_CONNECTED. Not
///< updated automatically when changed, updates need to be requested (\ref
///< ts3client_requestServerVariables).
VIRTUALSERVER_PLATFORM, ///< String. Read only. The operating system the server is running on. Available if \ref
///< ts3client_getConnectionStatus is >= \ref STATUS_CONNECTED.
VIRTUALSERVER_VERSION, ///< String. Read only. The server software version string. Available if \ref
///< ts3client_getConnectionStatus is >= \ref STATUS_CONNECTED.
VIRTUALSERVER_MAXCLIENTS, ///< UInt64. Read/Write. The maximum number of clients that can be connected
///< simultaneously. Only available on request (\ref ts3client_requestServerVariables).
VIRTUALSERVER_PASSWORD, ///< String. Read/Write. The server password. Read access is limited to the server. Clients
///< will only get the password they supplied when connecting. Available if \ref
///< ts3client_getConnectionStatus is >= \ref STATUS_CONNECTED.
VIRTUALSERVER_CLIENTS_ONLINE, ///< UInt64. Read only. The current number of clients connected to the server,
///< including query connections. Only available on request (\ref
///< ts3client_requestServerVariables).
VIRTUALSERVER_CHANNELS_ONLINE, ///< UInt64. Read only. The current number of channels on the server. Only
///< available on request (\ref ts3client_requestServerVariables).
VIRTUALSERVER_CREATED, ///< Integer. Read only. The time this virtual server was created as unix timestamp.
///< Available if \ref ts3client_getConnectionStatus is >= \ref STATUS_CONNECTED.
VIRTUALSERVER_UPTIME, ///< UInt64. Read only. Number of seconds that have passed since the virtual server was
///< started. Only available on request (\ref ts3client_requestServerVariables).
VIRTUALSERVER_CODEC_ENCRYPTION_MODE, ///< Integer. Read/Write. Boolean (1/0) that specifies if voice data is encrypted
///< during transfer. One of the values from the \ref CodecEncryptionMode enum.
///< Available if \ref ts3client_getConnectionStatus is >= \ref STATUS_CONNECTED.
VIRTUALSERVER_ENCRYPTION_CIPHERS, ///< String. Read/Write. Comma separated list of available ciphers to encrypt the
///< connection. The server will use the first cipher in the list that is also
///< listed in the \ref CLIENT_ENCRYPTION_CIPHERS of the connecting client.
///< Clients will fail to connect if no match is found. Always available.
VIRTUALSERVER_ENDMARKER,
VIRTUALSERVER_FILEBASE = 24, ///< String. Read only. The path to the base directory used to store files
///< transferred using file transfer. Available only on the server. Is set by \ref
///< ts3server_enableFileManager
VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH = 29, ///< UInt64. Read/Write. Maximum traffic in bytes the server can
///< use for file transfer downloads. Only available on request
///< (\ref ts3client_requestServerVariables).
VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH = 30, ///< UInt64. Read/Write. Maximum traffic in bytes the server can use
///< for file transfer uploads. Only available on request (=>
///< requestServerVariables)
VIRTUALSERVER_LOG_FILETRANSFER = 64 ///< Integer. Read/Write. Boolean (1/0) indicating whether to include file
///< transfer activities (uploading or downloading of files) in the server log.
///< Always available.
};
/**
* Various connection properties.
* These are all read only, and except for your own client must be requested using \ref ts3client_requestConnectionInfo
*/
enum ConnectionProperties {
CONNECTION_PING = 0, //average latency for a round trip through and back this connection
CONNECTION_PING_DEVIATION, //standard deviation of the above average latency
CONNECTION_CONNECTED_TIME, //how long the connection exists already
CONNECTION_IDLE_TIME, //how long since the last action of this client
CONNECTION_CLIENT_IP, //IP of this client (as seen from the server side)
CONNECTION_CLIENT_PORT, //Port of this client (as seen from the server side)
CONNECTION_SERVER_IP, //IP of the server (seen from the client side) - only available on yourself, not for remote clients, not available server side
CONNECTION_SERVER_PORT, //Port of the server (seen from the client side) - only available on yourself, not for remote clients, not available server side
CONNECTION_PACKETS_SENT_SPEECH, //how many Speech packets were sent through this connection
CONNECTION_PACKETS_SENT_KEEPALIVE,
CONNECTION_PACKETS_SENT_CONTROL,
CONNECTION_PACKETS_SENT_TOTAL, //how many packets were sent totally (this is PACKETS_SENT_SPEECH + PACKETS_SENT_KEEPALIVE + PACKETS_SENT_CONTROL)
CONNECTION_BYTES_SENT_SPEECH,
CONNECTION_BYTES_SENT_KEEPALIVE,
CONNECTION_BYTES_SENT_CONTROL,
CONNECTION_BYTES_SENT_TOTAL,
CONNECTION_PACKETS_RECEIVED_SPEECH,
CONNECTION_PACKETS_RECEIVED_KEEPALIVE,
CONNECTION_PACKETS_RECEIVED_CONTROL,
CONNECTION_PACKETS_RECEIVED_TOTAL,
CONNECTION_BYTES_RECEIVED_SPEECH,
CONNECTION_BYTES_RECEIVED_KEEPALIVE,
CONNECTION_BYTES_RECEIVED_CONTROL,
CONNECTION_BYTES_RECEIVED_TOTAL,
CONNECTION_PACKETLOSS_SPEECH,
CONNECTION_PACKETLOSS_KEEPALIVE,
CONNECTION_PACKETLOSS_CONTROL,
CONNECTION_PACKETLOSS_TOTAL, //the probability with which a packet round trip failed because a packet was lost
CONNECTION_SERVER2CLIENT_PACKETLOSS_SPEECH, //the probability with which a speech packet failed from the server to the client
CONNECTION_SERVER2CLIENT_PACKETLOSS_KEEPALIVE,
CONNECTION_SERVER2CLIENT_PACKETLOSS_CONTROL,
CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL,
CONNECTION_CLIENT2SERVER_PACKETLOSS_SPEECH,
CONNECTION_CLIENT2SERVER_PACKETLOSS_KEEPALIVE,
CONNECTION_CLIENT2SERVER_PACKETLOSS_CONTROL,
CONNECTION_CLIENT2SERVER_PACKETLOSS_TOTAL,
CONNECTION_BANDWIDTH_SENT_LAST_SECOND_SPEECH, //howmany bytes of speech packets we sent during the last second
CONNECTION_BANDWIDTH_SENT_LAST_SECOND_KEEPALIVE,
CONNECTION_BANDWIDTH_SENT_LAST_SECOND_CONTROL,
CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL,
CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_SPEECH, //howmany bytes/s of speech packets we sent in average during the last minute
CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_KEEPALIVE,
CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_CONTROL,
CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL,
CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_SPEECH,
CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_KEEPALIVE,
CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_CONTROL,
CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL,
CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_SPEECH,
CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_KEEPALIVE,
CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_CONTROL,
CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL,
CONNECTION_ENDMARKER,
CONNECTION_PING = 0, ///< UInt64. Round trip latency for the connection based on the last 5 seconds. On the server
///< this is the average across all connected clients for the last 5 seconds.
CONNECTION_PING_DEVIATION, ///< Double. Standard deviation for the round trip latency in \ref CONNECTION_PING
CONNECTION_CONNECTED_TIME, ///< UInt64. Seconds the client has been connected.
CONNECTION_IDLE_TIME, ///< UInt64. Time in seconds since the last activity (voice transmission, switching channels,
///< changing mic / speaker mute status) of the client.
CONNECTION_CLIENT_IP, ///< String. IP of this client (as seen from the server side)
CONNECTION_CLIENT_PORT, ///< UInt64. Client side port of this client (as seen from the server side)
CONNECTION_SERVER_IP, ///< String. The IP or hostname used to connect to the server. Only available on yourself.
CONNECTION_SERVER_PORT, ///< UInt64. The server port connected to. Only available on yourself.
CONNECTION_PACKETS_SENT_SPEECH, ///< UInt64. The number of voice packets transmitted by the client.
CONNECTION_PACKETS_SENT_KEEPALIVE, ///< UInt64. The number of keep alive packets transmitted by the client.
CONNECTION_PACKETS_SENT_CONTROL, ///< UInt64. The number of command & control packets transmitted by the client.
CONNECTION_PACKETS_SENT_TOTAL, ///< UInt64. Total number of packets transmitted by the client. Equal to the sum of
///< \ref CONNECTION_PACKETS_SENT_SPEECH, \ref CONNECTION_PACKETS_SENT_KEEPALIVE and
///< \ref CONNECTION_PACKETS_SENT_CONTROL
CONNECTION_BYTES_SENT_SPEECH, ///< UInt64. Outgoing traffic used for voice data by the client.
CONNECTION_BYTES_SENT_KEEPALIVE, ///< UInt64. Outgoing traffic used for keeping the connection alive by the client.
CONNECTION_BYTES_SENT_CONTROL, ///< UInt64. Outgoing traffic used for command & control data by the client.
CONNECTION_BYTES_SENT_TOTAL, ///< UInt64. Total outgoing traffic to the server by this client. Equal to the sum of
///< \ref CONNECTION_BYTES_SENT_SPEECH, \ref CONNECTION_BYTES_SENT_KEEPALIVE and \ref
///< CONNECTION_BYTES_SENT_CONTROL
CONNECTION_PACKETS_RECEIVED_SPEECH, ///< UInt64. Number of voice packets received by the client.
CONNECTION_PACKETS_RECEIVED_KEEPALIVE, ///< UInt64. Number of keep alive packets received by the client.
CONNECTION_PACKETS_RECEIVED_CONTROL, ///< UInt64. Number of command & control packets received by the client.
CONNECTION_PACKETS_RECEIVED_TOTAL, ///< UInt64. Total number of packets received by the client. Equal to the sum of
///< \ref CONNECTION_PACKETS_RECEIVED_SPEECH, \ref
///< CONNECTION_PACKETS_RECEIVED_KEEPALIVE and \ref
///< CONNECTION_PACKETS_RECEIVED_CONTROL
CONNECTION_BYTES_RECEIVED_SPEECH, ///< UInt64. Incoming traffic used by the client for voice data.
CONNECTION_BYTES_RECEIVED_KEEPALIVE, ///< UInt64. Incoming traffic used by the client to keep the connection alive.
CONNECTION_BYTES_RECEIVED_CONTROL, ///< UInt64. Incoming traffic used by the client for command & control data.
CONNECTION_BYTES_RECEIVED_TOTAL, ///< UInt64. Total incoming traffic used by the client. Equal to the sum of \ref
///< CONNECTION_BYTES_RECEIVED_SPEECH, \ref CONNECTION_BYTES_RECEIVED_KEEPALIVE and
///< \ref CONNECTION_BYTES_RECEIVED_CONTROL
CONNECTION_PACKETLOSS_SPEECH, ///< Double. Percentage points of voice packets for the client that did not arrive at
///< the client or server averaged across the last 5 seconds.
CONNECTION_PACKETLOSS_KEEPALIVE, ///< Double. Percentage points of keep alive packets for the client that did not
///< arrive at the client or server averaged across the last 5 seconds.
CONNECTION_PACKETLOSS_CONTROL, ///< Double. Percentage points of command & control packets for the client that did
///< not arrive at the client or server averaged across the last 5 seconds.
CONNECTION_PACKETLOSS_TOTAL, ///< Double. Cumulative chance in percentage points with which a packet round trip
///< failed because a packet was lost
CONNECTION_SERVER2CLIENT_PACKETLOSS_SPEECH, ///< Double. Probability with which a voice packet sent by the server
///< was not received by the client.
CONNECTION_SERVER2CLIENT_PACKETLOSS_KEEPALIVE, ///< Double. Probability with which a keepalive packet sent by the
///< server was not received by the client.
CONNECTION_SERVER2CLIENT_PACKETLOSS_CONTROL, ///< Double. Probability with which a control packet sent by the server
///< was not received by the client.
CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL, ///< Double. Probability with which a packet sent by the server was not
///< received by the client.
CONNECTION_CLIENT2SERVER_PACKETLOSS_SPEECH, ///< Double. Probability with which a speech packet sent by the client
///< was not received by the server.
CONNECTION_CLIENT2SERVER_PACKETLOSS_KEEPALIVE, ///< Double. Probability with which a keepalive packet sent by the
///< client was not received by the server.
CONNECTION_CLIENT2SERVER_PACKETLOSS_CONTROL, ///< Double. Probability with which a control packet sent by the client
///< was not received by the server.
CONNECTION_CLIENT2SERVER_PACKETLOSS_TOTAL, ///< Double. Probability with which a packet sent by the client was not
///< received by the server.
CONNECTION_BANDWIDTH_SENT_LAST_SECOND_SPEECH, ///< UInt64. Number of bytes sent for speech data in the last second.
CONNECTION_BANDWIDTH_SENT_LAST_SECOND_KEEPALIVE, ///< UInt64. Number of bytes sent for keepalive data in the last second.
CONNECTION_BANDWIDTH_SENT_LAST_SECOND_CONTROL, ///< UInt64. Number of bytes sent for control data in the last second.
CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL, ///< UInt64. Number of bytes sent in the last second.
CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_SPEECH, ///< UInt64. Bytes per second sent for speech data, averaged over the
///< last minute.
CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_KEEPALIVE, ///< UInt64. Bytes per second sent for keepalive data, averaged
///< over the last minute.
CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_CONTROL, ///< UInt64. Bytes per second sent for control data, averaged over
///< the last minute.
CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL, ///< UInt64. Bytes per second sent, averaged over the last minute.
CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_SPEECH, ///< UInt64. Number of bytes received for speech data in the last second.
CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_KEEPALIVE, ///< UInt64. Number of bytes received for keepalive data in the
///< last second.
CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_CONTROL, ///< UInt64. Number of bytes received for control data in the
///< last second.
CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL, ///< UInt64. Number of bytes received in the last second.
CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_SPEECH, ///< UInt64. Bytes per second received for speech data, averaged
///< over the last minute.
CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_KEEPALIVE, ///< UInt64. Bytes per second received for keepalive data,
///< averaged over the last minute.
CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_CONTROL, ///< UInt64. Bytes per second received for control data, averaged
///< over the last minute.
CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL, ///< UInt64. Bytes per second received, averaged over the last minute.
CONNECTION_DUMMY_0,
CONNECTION_DUMMY_1,
CONNECTION_DUMMY_2,
CONNECTION_DUMMY_3,
CONNECTION_DUMMY_4,
CONNECTION_DUMMY_5,
CONNECTION_DUMMY_6,
CONNECTION_DUMMY_7,
CONNECTION_DUMMY_8,
CONNECTION_DUMMY_9,
CONNECTION_FILETRANSFER_BANDWIDTH_SENT, ///< UInt64. Current file transfer upstream activity in bytes per second.
///< Only available on request (\ref ts3client_requestServerConnectionInfo).
CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED, ///< UInt64. Current file transfer downstream activity in bytes per
///< second. Only available on request (\ref
///< ts3client_requestServerConnectionInfo).
CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL, ///< UInt64. Total downstream traffic, in bytes, used for file
///< transfer since the server was started. Only available on request
///< (\ref ts3client_requestServerConnectionInfo).
CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL, ///< UInt64. Total upstream traffic, in bytes, used for file transfer
///< since the server was started. Only available on request (\ref
///< ts3client_requestServerConnectionInfo).
CONNECTION_ENDMARKER
};
/**
* Describes a client position in 3 dimensional space, used for 3D Sound.
*/
typedef struct {
float x; /* X co-ordinate in 3D space. */
float y; /* Y co-ordinate in 3D space. */
float z; /* Z co-ordinate in 3D space. */
float x; ///< X co-ordinate in 3D space.
float y; ///< Y co-ordinate in 3D space.
float z; ///< Z co-ordinate in 3D space.
} TS3_VECTOR;
enum GroupWhisperType {
GROUPWHISPERTYPE_SERVERGROUP = 0,
GROUPWHISPERTYPE_CHANNELGROUP = 1,
GROUPWHISPERTYPE_CHANNELCOMMANDER = 2,
GROUPWHISPERTYPE_ALLCLIENTS = 3,
GROUPWHISPERTYPE_ENDMARKER,
GROUPWHISPERTYPE_SERVERGROUP = 0, ///< Whisper list consists of server groups
GROUPWHISPERTYPE_CHANNELGROUP = 1, ///< Whisper list consists of channel groups
GROUPWHISPERTYPE_CHANNELCOMMANDER = 2, ///< whisper to channel commanders
GROUPWHISPERTYPE_ALLCLIENTS = 3, ///< whisper to all clients
GROUPWHISPERTYPE_ENDMARKER,
};
enum GroupWhisperTargetMode {
GROUPWHISPERTARGETMODE_ALL = 0,
GROUPWHISPERTARGETMODE_CURRENTCHANNEL = 1,
GROUPWHISPERTARGETMODE_PARENTCHANNEL = 2,
GROUPWHISPERTARGETMODE_ALLPARENTCHANNELS = 3,
GROUPWHISPERTARGETMODE_CHANNELFAMILY = 4,
GROUPWHISPERTARGETMODE_ANCESTORCHANNELFAMILY = 5,
GROUPWHISPERTARGETMODE_SUBCHANNELS = 6,
GROUPWHISPERTARGETMODE_ENDMARKER,
GROUPWHISPERTARGETMODE_ALL = 0,
GROUPWHISPERTARGETMODE_CURRENTCHANNEL = 1, ///< Whisper the current channel of the client
GROUPWHISPERTARGETMODE_PARENTCHANNEL = 2, ///< Whisper the parent channel of whatever channel the client is currently in
GROUPWHISPERTARGETMODE_ALLPARENTCHANNELS = 3, ///< Whipser to the parent channel and all their parent channels as well
GROUPWHISPERTARGETMODE_CHANNELFAMILY = 4, ///< Whisper to the current channel and all its sub channels
GROUPWHISPERTARGETMODE_ANCESTORCHANNELFAMILY = 5, ///< Whisper to the current channel, all its parent and sub channels.
GROUPWHISPERTARGETMODE_SUBCHANNELS = 6, ///< Whisper to all sub channels of the current channel of the client
GROUPWHISPERTARGETMODE_ENDMARKER,
};
enum MonoSoundDestination{
MONO_SOUND_DESTINATION_ALL =0, /* Send mono sound to all available speakers */
MONO_SOUND_DESTINATION_FRONT_CENTER =1, /* Send mono sound to front center speaker if available */
MONO_SOUND_DESTINATION_FRONT_LEFT_AND_RIGHT =2 /* Send mono sound to front left/right speakers if available */
enum MonoSoundDestination {
MONO_SOUND_DESTINATION_ALL = 0, ///< Send mono sound to all available speakers
MONO_SOUND_DESTINATION_FRONT_CENTER = 1, ///< Send mono sound to front center speaker if available
MONO_SOUND_DESTINATION_FRONT_LEFT_AND_RIGHT = 2 ///< Send mono sound to front left/right speakers if available
};
enum SecuritySaltOptions {
SECURITY_SALT_CHECK_NICKNAME = 1, /* put nickname into security hash */
SECURITY_SALT_CHECK_META_DATA = 2 /* put (game)meta data into security hash */
SECURITY_SALT_CHECK_NICKNAME = 1, ///< put nickname into security hash
SECURITY_SALT_CHECK_META_DATA = 2 ///< put meta data into security hash
};
/*this enum is used to disable client commands on the server*/
enum ClientCommand{
CLIENT_COMMAND_requestConnectionInfo = 0,
CLIENT_COMMAND_requestClientMove = 1,
CLIENT_COMMAND_requestXXMuteClients = 2,
CLIENT_COMMAND_requestClientKickFromXXX = 3,
CLIENT_COMMAND_flushChannelCreation = 4,
CLIENT_COMMAND_flushChannelUpdates = 5,
CLIENT_COMMAND_requestChannelMove = 6,
CLIENT_COMMAND_requestChannelDelete = 7,
CLIENT_COMMAND_requestChannelDescription = 8,
CLIENT_COMMAND_requestChannelXXSubscribeXXX = 9,
CLIENT_COMMAND_requestServerConnectionInfo = 10,
CLIENT_COMMAND_requestSendXXXTextMsg = 11,
CLIENT_COMMAND_filetransfers = 12,
CLIENT_COMMAND_ENDMARKER
enum ClientCommand {
CLIENT_COMMAND_requestConnectionInfo = 0, ///< disable client connection info request (client bandwidth usage, ip,
///< port, ping)
CLIENT_COMMAND_requestClientMove = 1, ///< disable moving clients
CLIENT_COMMAND_requestXXMuteClients = 2, ///< disable muting other clients
CLIENT_COMMAND_requestClientKickFromXXX = 3, ///< disable kicking clients
CLIENT_COMMAND_flushChannelCreation = 4, ///< disable creating channels
CLIENT_COMMAND_flushChannelUpdates = 5, ///< disable editing channels
CLIENT_COMMAND_requestChannelMove = 6, ///< disable moving channels
CLIENT_COMMAND_requestChannelDelete = 7, ///< disable deleting channels
CLIENT_COMMAND_requestChannelDescription = 8, ///< disable channel descriptions
CLIENT_COMMAND_requestChannelXXSubscribeXXX = 9, ///< disable being able to see clients in channels other than the
///< current channel the client is in
CLIENT_COMMAND_requestServerConnectionInfo = 10, ///< disable server connection info request (server bandwidth
///< usage, ip, port, ping)
CLIENT_COMMAND_requestSendXXXTextMsg = 11, ///< disable text messaging
CLIENT_COMMAND_filetransfers = 12, ///< disable file transfer
CLIENT_COMMAND_ENDMARKER
};
/* Access Control List*/
enum ACLType{
ACL_NONE = 0,
ACL_WHITE_LIST = 1,
ACL_BLACK_LIST = 2
};
enum ACLType { ACL_NONE = 0, ACL_WHITE_LIST = 1, ACL_BLACK_LIST = 2 };
/* file transfer actions*/
enum FTAction{
FT_INIT_SERVER = 0,
FT_INIT_CHANNEL = 1,
FT_UPLOAD = 2,
FT_DOWNLOAD = 3,
FT_DELETE = 4,
FT_CREATEDIR = 5,
FT_RENAME = 6,
FT_FILELIST = 7,
FT_FILEINFO = 8
enum FTAction {
FT_INIT_SERVER = 0, ///< The virtual server is created. result->channelPath can be changed to create a different
///< directory than the default 'virtualserver_x' where x is the virtual server.
FT_INIT_CHANNEL = 1, ///< A channel is created. result->channelPath can be changed to create a different directory
///< then the default 'channel_x' where x is the channel id.
FT_UPLOAD = 2, ///< A file is being uploaded. All values in the result struct can be modified.
FT_DOWNLOAD = 3, ///< A file is being downloaded. All values in the result struct can be modified.
FT_DELETE = 4, ///< A file is being deleted. All values in the result struct can be modified.
FT_CREATEDIR = 5, ///< A directory is being created in a channel. All values in the result struct can be modified.
FT_RENAME = 6, ///< A file or folder is being renamed. The callback will be called twice! Once for the old and then
///< for the new name. All values in the result struct can be modified.
FT_FILELIST = 7, ///< A directory listing is requested. All values in the result struct can be modified.
FT_FILEINFO = 8 ///< Information of a file is requested. All values in the result struct can be modified.
};
/* file transfer status */
enum FileTransferState {
FILETRANSFER_INITIALISING = 0,
FILETRANSFER_ACTIVE,
FILETRANSFER_FINISHED,
FILETRANSFER_INITIALISING = 0, ///< File transfer is establishing connection.
FILETRANSFER_ACTIVE, ///< File transfer is in progress
FILETRANSFER_FINISHED, ///< File transfer has finished
};
/* file transfer types */
enum {
FileListType_Directory = 0,
FileListType_File,
enum FileTransferType {
FileListType_Directory = 0, ///< The file entry is a directory
FileListType_File, ///< The file entry is a regular file
};
/* some structs to handle variables in callbacks */
#define MAX_VARIABLES_EXPORT_COUNT 64
struct VariablesExportItem{
unsigned char itemIsValid; /* This item has valid values. ignore this item if 0 */
unsigned char proposedIsSet; /* The value in proposed is set. if 0 ignore proposed */
const char* current; /* current value (stored in memory) */
const char* proposed; /* New value to change to (const, so no updates please) */
struct VariablesExportItem {
unsigned char itemIsValid; ///< Whether or not there is any data in this item. Ignore this item if this is 0.
unsigned char proposedIsSet; ///< The value in proposed is set. If 0 ignore proposed
const char* current; ///< current value (stored in memory)
const char* proposed; ///< New value to change to (const, so no updates please)
};
struct VariablesExport{
struct VariablesExportItem items[MAX_VARIABLES_EXPORT_COUNT];
struct VariablesExport {
struct VariablesExportItem items[MAX_VARIABLES_EXPORT_COUNT];
};
struct ClientMiniExport{
anyID ID;
uint64 channel;
const char* ident;
const char* nickname;
struct ClientMiniExport {
anyID ID; ///< id of the client
uint64 channel; ///< the channel the client is in
const char* ident; ///< client public identity
const char* nickname; ///< client display name
};
struct TransformFilePathExport{
uint64 channel;
const char* filename;
int action;
int transformedFileNameMaxSize;
int channelPathMaxSize;
/**
* Structure used to describe a file transfer in the \ref ServerLibFunctions.onTransformFilePath callback.
* This describes the original values, and also contains hints for length limitations of the result parameter
* of the callback.
* \verbatim embed:rst
.. important::
Which values of the struct can be modified is defined by the action value of the original parameter.
\endverbatim
*/
struct TransformFilePathExport {
uint64 channel; ///< The channel id of the file. 0 if action is \ref FT_INIT_SERVER
const char* filename; ///< utf8 encoded c string containing the original file name as intended by the client.
int action; ///< The action to be performed. One of the values from the \ref FTAction enum. Defines which values of
///< the result struct can be modified.
int transformedFileNameMaxSize; ///< The maximum length the file name can be rewritten to.
int channelPathMaxSize; ///< The maximum length the path can be rewritten to.
};
struct TransformFilePathExportReturns{
char* transformedFileName;
char* channelPath;
int logFileAction;
/**
* Structure to rewrite the file transfer file name and path in the \ref ServerLibFunctions.onTransformFilePath callback.
* The lengths are limited as described in the original parameter.
* \verbatim embed:rst
.. important::
Which values of the struct can be modified is defined by the action value of the original parameter.
\endverbatim
*/
struct TransformFilePathExportReturns {
char* transformedFileName; ///< pointer to target file name. Fill the memory pointed to with an utf8 encoded c string
///< containing the new file name. Limited to original->transformedFileNameMaxSize bytes.
char* channelPath; ///< pointer to memory for new path. Fill the memory pointed to with an utf8 encoded c string
///< containing the new path. Limited to original->channelPathMaxSize bytes.
int logFileAction; ///< boolean (1/0). Whether to log this file transfer to the log. Action is not logged regardless
///< of this value if the servers \ref VIRTUALSERVER_LOG_FILETRANSFER property is 0.
};
struct FileTransferCallbackExport{
anyID clientID;
anyID transferID;
anyID remoteTransferID;
unsigned int status;
const char* statusMessage;
uint64 remotefileSize;
uint64 bytes;
int isSender;
struct FileTransferCallbackExport {
anyID clientID; ///< the client who started the file transfer
anyID transferID; ///< local identifier of the transfer that has completed
anyID remoteTransferID; ///< remote identifier of the transfer that has completed
unsigned int status; ///< status of the transfer. One of the values from the \ref FileTransferState enum
const char* statusMessage; ///< utf8 encoded c string containing a human readable description of the status
uint64 remotefileSize; ///< size in bytes of the complete file to be transferred
uint64 bytes; ///< number of bytes transferred. Same as remotefileSize when the transfer completed entirely.
int isSender; ///< boolean. 1 if the server is sending the file. 0 if the server is receiving the file.
};
/*define for file transfer bandwith limits*/
#define BANDWIDTH_LIMIT_UNLIMITED 0xFFFFFFFFFFFFFFFFll
/*defines for speaker locations used by some sound callbacks*/
#ifndef SPEAKER_FRONT_LEFT
#define SPEAKER_FRONT_LEFT 0x1
#define SPEAKER_FRONT_RIGHT 0x2
#define SPEAKER_FRONT_CENTER 0x4
#define SPEAKER_LOW_FREQUENCY 0x8
#define SPEAKER_BACK_LEFT 0x10
#define SPEAKER_BACK_RIGHT 0x20
#define SPEAKER_FRONT_LEFT_OF_CENTER 0x40
#define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80
#define SPEAKER_BACK_CENTER 0x100
#define SPEAKER_SIDE_LEFT 0x200
#define SPEAKER_SIDE_RIGHT 0x400
#define SPEAKER_TOP_CENTER 0x800
#define SPEAKER_TOP_FRONT_LEFT 0x1000
#define SPEAKER_TOP_FRONT_CENTER 0x2000
#define SPEAKER_TOP_FRONT_RIGHT 0x4000
#define SPEAKER_TOP_BACK_LEFT 0x8000
#define SPEAKER_TOP_BACK_CENTER 0x10000
#define SPEAKER_TOP_BACK_RIGHT 0x20000
#define SPEAKER_FRONT_LEFT 0x1
#define SPEAKER_FRONT_RIGHT 0x2
#define SPEAKER_FRONT_CENTER 0x4
#define SPEAKER_LOW_FREQUENCY 0x8
#define SPEAKER_BACK_LEFT 0x10
#define SPEAKER_BACK_RIGHT 0x20
#define SPEAKER_FRONT_LEFT_OF_CENTER 0x40
#define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80
#define SPEAKER_BACK_CENTER 0x100
#define SPEAKER_SIDE_LEFT 0x200
#define SPEAKER_SIDE_RIGHT 0x400
#define SPEAKER_TOP_CENTER 0x800
#define SPEAKER_TOP_FRONT_LEFT 0x1000
#define SPEAKER_TOP_FRONT_CENTER 0x2000
#define SPEAKER_TOP_FRONT_RIGHT 0x4000
#define SPEAKER_TOP_BACK_LEFT 0x8000
#define SPEAKER_TOP_BACK_CENTER 0x10000
#define SPEAKER_TOP_BACK_RIGHT 0x20000
#endif
#define SPEAKER_HEADPHONES_LEFT 0x10000000
#define SPEAKER_HEADPHONES_RIGHT 0x20000000
#define SPEAKER_MONO 0x40000000
#define SPEAKER_HEADPHONES_LEFT 0x10000000
#define SPEAKER_HEADPHONES_RIGHT 0x20000000
#define SPEAKER_MONO 0x40000000
#endif /*PUBLIC_DEFINITIONS_H*/

View File

@@ -4,191 +4,197 @@
//The idea here is: the values are 2 bytes wide, the first byte identifies the group, the second the count within that group
enum Ts3ErrorType {
//general
ERROR_ok = 0x0000,
ERROR_undefined = 0x0001,
ERROR_not_implemented = 0x0002,
ERROR_ok_no_update = 0x0003,
ERROR_dont_notify = 0x0004,
ERROR_lib_time_limit_reached = 0x0005,
ERROR_out_of_memory = 0x0006,
ERROR_canceled = 0x0007,
//general
ERROR_ok = 0x0000, ///< Indicates success.
ERROR_undefined = 0x0001,
ERROR_not_implemented = 0x0002, ///< The attempted operation is not available in this context
ERROR_ok_no_update = 0x0003, ///< Indicates success, but no change occurred. Returned for example upon flushing (e.g. using \ref ts3client_flushChannelUpdates) when all indicated changes already matched the current state.
ERROR_dont_notify = 0x0004,
ERROR_lib_time_limit_reached = 0x0005,
ERROR_out_of_memory = 0x0006, ///< Not enough system memory to perform operation
ERROR_canceled = 0x0007,
//dunno
ERROR_command_not_found = 0x0100,
ERROR_unable_to_bind_network_port = 0x0101,
ERROR_no_network_port_available = 0x0102,
ERROR_port_already_in_use = 0x0103,
//dunno
ERROR_command_not_found = 0x0100,
ERROR_unable_to_bind_network_port = 0x0101, ///< Unspecified failure to create a listening port
ERROR_no_network_port_available = 0x0102, ///< Failure to initialize a listening port for FileTransfer
ERROR_port_already_in_use = 0x0103, ///< Specified port is already in use by a different application
//client
ERROR_client_invalid_id = 0x0200,
ERROR_client_nickname_inuse = 0x0201,
ERROR_client_protocol_limit_reached = 0x0203,
ERROR_client_invalid_type = 0x0204,
ERROR_client_already_subscribed = 0x0205,
ERROR_client_not_logged_in = 0x0206,
ERROR_client_could_not_validate_identity = 0x0207,
ERROR_client_version_outdated = 0x020a,
ERROR_client_is_flooding = 0x020c,
ERROR_client_hacked = 0x020d,
ERROR_client_cannot_verify_now = 0x020e,
ERROR_client_login_not_permitted = 0x020f,
ERROR_client_not_subscribed = 0x0210,
//client
ERROR_client_invalid_id = 0x0200, ///< Client no longer connected
ERROR_client_nickname_inuse = 0x0201, ///< Client name is already in use. Client names must be unique
ERROR_client_protocol_limit_reached = 0x0203, ///< Too many clients on the server
ERROR_client_invalid_type = 0x0204, ///< Function called for normal clients that is only available for query clients or vice versa
ERROR_client_already_subscribed = 0x0205, ///< Attempting to subscribe to a channel already subscribed to
ERROR_client_not_logged_in = 0x0206,
ERROR_client_could_not_validate_identity = 0x0207, ///< Identity not valid or insufficient security level
ERROR_client_invalid_password = 0x0208,
ERROR_client_version_outdated = 0x020a, ///< Server requires newer client version as determined by the min_client_version properties
ERROR_client_is_flooding = 0x020c, ///< Triggered flood protection. Further information is supplied in the extra message if applicable.
ERROR_client_hacked = 0x020d,
ERROR_client_cannot_verify_now = 0x020e,
ERROR_client_login_not_permitted = 0x020f,
ERROR_client_not_subscribed = 0x0210, ///< Action is only available on subscribed channels
//channel
ERROR_channel_invalid_id = 0x0300,
ERROR_channel_protocol_limit_reached = 0x0301,
ERROR_channel_already_in = 0x0302,
ERROR_channel_name_inuse = 0x0303,
ERROR_channel_not_empty = 0x0304,
ERROR_channel_can_not_delete_default = 0x0305,
ERROR_channel_default_require_permanent = 0x0306,
ERROR_channel_invalid_flags = 0x0307,
ERROR_channel_parent_not_permanent = 0x0308,
ERROR_channel_maxclients_reached = 0x0309,
ERROR_channel_maxfamily_reached = 0x030a,
ERROR_channel_invalid_order = 0x030b,
ERROR_channel_no_filetransfer_supported = 0x030c,
ERROR_channel_invalid_password = 0x030d,
ERROR_channel_invalid_security_hash = 0x030f, //note 0x030e is defined in public_rare_errors;
//channel
ERROR_channel_invalid_id = 0x0300, ///< Channel does not exist on the server (any longer)
ERROR_channel_protocol_limit_reached = 0x0301, ///< Too many channels on the server
ERROR_channel_already_in = 0x0302, ///< Attempting to move a client or channel to its current channel
ERROR_channel_name_inuse = 0x0303, ///< Channel name is already taken by another channel. Channel names must be unique
ERROR_channel_not_empty = 0x0304, ///< Attempting to delete a channel with clients or sub channels in it
ERROR_channel_can_not_delete_default = 0x0305, ///< Default channel cannot be deleted. Set a new default channel first (see \ref ts3client_setChannelVariableAsInt or \ref ts3server_setChannelVariableAsInt )
ERROR_channel_default_require_permanent = 0x0306, ///< Attempt to set a non permanent channel as default channel. Set channel to permanent first (see \ref ts3client_setChannelVariableAsInt or \ref ts3server_setChannelVariableAsInt )
ERROR_channel_invalid_flags = 0x0307, ///< Invalid combination of \ref ChannelProperties, trying to remove \ref CHANNEL_FLAG_DEFAULT or set a password on the default channel
ERROR_channel_parent_not_permanent = 0x0308, ///< Attempt to move a permanent channel into a non-permanent one, or set a channel to be permanent that is a sub channel of a non-permanent one
ERROR_channel_maxclients_reached = 0x0309, ///< Channel is full as determined by its \ref CHANNEL_MAXCLIENTS setting
ERROR_channel_maxfamily_reached = 0x030a, ///< Channel tree is full as determined by its \ref CHANNEL_MAXFAMILYCLIENTS setting
ERROR_channel_invalid_order = 0x030b, ///< Invalid value for the \ref CHANNEL_ORDER property. The specified channel must exist on the server and be on the same level.
ERROR_channel_no_filetransfer_supported = 0x030c, ///< Invalid \ref CHANNEL_FILEPATH set for the channel
ERROR_channel_invalid_password = 0x030d, ///< Channel has a password not matching the password supplied in the call
// used in public_rare_errors = 0x030e,
ERROR_channel_invalid_security_hash = 0x030f,
//server
ERROR_server_invalid_id = 0x0400,
ERROR_server_running = 0x0401,
ERROR_server_is_shutting_down = 0x0402,
ERROR_server_maxclients_reached = 0x0403,
ERROR_server_invalid_password = 0x0404,
ERROR_server_is_virtual = 0x0407,
ERROR_server_is_not_running = 0x0409,
ERROR_server_is_booting = 0x040a,
ERROR_server_status_invalid = 0x040b,
ERROR_server_version_outdated = 0x040d,
ERROR_server_duplicate_running = 0x040e,
//server
ERROR_server_invalid_id = 0x0400, ///< Chosen virtual server does not exist or is offline
ERROR_server_running = 0x0401, ///< attempting to delete a server that is running. Stop the server before deleting it.
ERROR_server_is_shutting_down = 0x0402, ///< Client disconnected because the server is going offline
ERROR_server_maxclients_reached = 0x0403, ///< Given in the onConnectStatusChange event when the server has reached its maximum number of clients as defined by the \ref VIRTUALSERVER_MAXCLIENTS property
ERROR_server_invalid_password = 0x0404, ///< Specified server password is wrong. Provide the correct password in the \ref ts3client_startConnection / \ref ts3client_startConnectionWithChannelID call.
ERROR_server_is_virtual = 0x0407, ///< Server is in virtual status. The attempted action is not possible in this state. Start the virtual server first.
ERROR_server_is_not_running = 0x0409, ///< Attempting to stop a server that is not online.
ERROR_server_is_booting = 0x040a, // Not used
ERROR_server_status_invalid = 0x040b,
ERROR_server_version_outdated = 0x040d, ///< Attempt to connect to an outdated server version. The server needs to be updated.
ERROR_server_duplicate_running = 0x040e, ///< This server is already running within the instance. Each virtual server may only exist once.
//parameter
ERROR_parameter_quote = 0x0600,
ERROR_parameter_invalid_count = 0x0601,
ERROR_parameter_invalid = 0x0602,
ERROR_parameter_not_found = 0x0603,
ERROR_parameter_convert = 0x0604,
ERROR_parameter_invalid_size = 0x0605,
ERROR_parameter_missing = 0x0606,
ERROR_parameter_checksum = 0x0607,
//parameter
ERROR_parameter_quote = 0x0600, // Not used
ERROR_parameter_invalid_count = 0x0601, ///< Attempt to flush changes without previously calling set*VariableAs* since the last flush
ERROR_parameter_invalid = 0x0602, ///< At least one of the supplied parameters did not meet the criteria for that parameter
ERROR_parameter_not_found = 0x0603, ///< Failure to supply all the necessary parameters
ERROR_parameter_convert = 0x0604, ///< Invalid type supplied for a parameter, such as passing a string (ie. "five") that expects a number.
ERROR_parameter_invalid_size = 0x0605, ///< Value out of allowed range. Such as strings are too long/short or numeric values outside allowed range
ERROR_parameter_missing = 0x0606, ///< Neglecting to specify a required parameter
ERROR_parameter_checksum = 0x0607, ///< Attempting to deploy a modified snapshot
//unsorted, need further investigation
ERROR_vs_critical = 0x0700,
ERROR_connection_lost = 0x0701,
ERROR_not_connected = 0x0702,
ERROR_no_cached_connection_info = 0x0703,
ERROR_currently_not_possible = 0x0704,
ERROR_failed_connection_initialisation = 0x0705,
ERROR_could_not_resolve_hostname = 0x0706,
ERROR_invalid_server_connection_handler_id = 0x0707,
ERROR_could_not_initialise_input_manager = 0x0708,
ERROR_clientlibrary_not_initialised = 0x0709,
ERROR_serverlibrary_not_initialised = 0x070a,
ERROR_whisper_too_many_targets = 0x070b,
ERROR_whisper_no_targets = 0x070c,
ERROR_connection_ip_protocol_missing = 0x070d,
//reserved = 0x070e,
ERROR_illegal_server_license = 0x070f,
//unsorted, need further investigation
ERROR_vs_critical = 0x0700, ///< Failure to create default channel
ERROR_connection_lost = 0x0701, ///< Generic error with the connection.
ERROR_not_connected = 0x0702, ///< Attempting to call functions with a serverConnectionHandler that is not connected. You can use \ref ts3client_getConnectionStatus to check whether the connection handler is connected to a server
ERROR_no_cached_connection_info = 0x0703, ///< Attempting to query connection information (bandwidth usage, ping, etc) without requesting them first using \ref ts3client_requestConnectionInfo
ERROR_currently_not_possible = 0x0704, ///< Requested information is not currently available. You may have to call \ref ts3client_requestClientVariables or \ref ts3client_requestServerVariables
ERROR_failed_connection_initialisation = 0x0705, ///< No TeamSpeak server running on the specified IP address and port
ERROR_could_not_resolve_hostname = 0x0706, ///< Failure to resolve the specified hostname to an IP address
ERROR_invalid_server_connection_handler_id = 0x0707, ///< Attempting to perform actions on a non-existent server connection handler
ERROR_could_not_initialise_input_manager = 0x0708, // Not used
ERROR_clientlibrary_not_initialised = 0x0709, ///< Calling client library functions without successfully calling \ref ts3client_initClientLib before
ERROR_serverlibrary_not_initialised = 0x070a, ///< Calling server library functions without successfully calling \ref ts3server_initServerLib before
ERROR_whisper_too_many_targets = 0x070b, ///< Using a whisper list that contain more clients than the servers \ref VIRTUALSERVER_MIN_CLIENTS_IN_CHANNEL_BEFORE_FORCED_SILENCE property
ERROR_whisper_no_targets = 0x070c, ///< The active whisper list is empty or no clients matched the whisper list (e.g. all channels in the list are empty)
ERROR_connection_ip_protocol_missing = 0x070d, ///< Invalid or unsupported protocol (e.g. attempting an IPv6 connection on an IPv4 only machine)
ERROR_handshake_failed = 0x070e,
ERROR_illegal_server_license = 0x070f,
//file transfer
ERROR_file_invalid_name = 0x0800,
ERROR_file_invalid_permissions = 0x0801,
ERROR_file_already_exists = 0x0802,
ERROR_file_not_found = 0x0803,
ERROR_file_io_error = 0x0804,
ERROR_file_invalid_transfer_id = 0x0805,
ERROR_file_invalid_path = 0x0806,
ERROR_file_no_files_available = 0x0807,
ERROR_file_overwrite_excludes_resume = 0x0808,
ERROR_file_invalid_size = 0x0809,
ERROR_file_already_in_use = 0x080a,
ERROR_file_could_not_open_connection = 0x080b,
ERROR_file_no_space_left_on_device = 0x080c,
ERROR_file_exceeds_file_system_maximum_size = 0x080d,
ERROR_file_transfer_connection_timeout = 0x080e,
ERROR_file_connection_lost = 0x080f,
ERROR_file_exceeds_supplied_size = 0x0810,
ERROR_file_transfer_complete = 0x0811,
ERROR_file_transfer_canceled = 0x0812,
ERROR_file_transfer_interrupted = 0x0813,
ERROR_file_transfer_server_quota_exceeded = 0x0814,
ERROR_file_transfer_client_quota_exceeded = 0x0815,
ERROR_file_transfer_reset = 0x0816,
ERROR_file_transfer_limit_reached = 0x0817,
//sound
ERROR_sound_preprocessor_disabled = 0x0900,
ERROR_sound_internal_preprocessor = 0x0901,
ERROR_sound_internal_encoder = 0x0902,
ERROR_sound_internal_playback = 0x0903,
ERROR_sound_no_capture_device_available = 0x0904,
ERROR_sound_no_playback_device_available = 0x0905,
ERROR_sound_could_not_open_capture_device = 0x0906,
ERROR_sound_could_not_open_playback_device = 0x0907,
ERROR_sound_handler_has_device = 0x0908,
ERROR_sound_invalid_capture_device = 0x0909,
ERROR_sound_invalid_playback_device = 0x090a,
ERROR_sound_invalid_wave = 0x090b,
ERROR_sound_unsupported_wave = 0x090c,
ERROR_sound_open_wave = 0x090d,
ERROR_sound_internal_capture = 0x090e,
ERROR_sound_device_in_use = 0x090f,
ERROR_sound_device_already_registerred = 0x0910,
ERROR_sound_unknown_device = 0x0911,
ERROR_sound_unsupported_frequency = 0x0912,
ERROR_sound_invalid_channel_count = 0x0913,
ERROR_sound_read_wave = 0x0914,
ERROR_sound_need_more_data = 0x0915, //for internal purposes only
ERROR_sound_device_busy = 0x0916, //for internal purposes only
ERROR_sound_no_data = 0x0917,
ERROR_sound_channel_mask_mismatch = 0x0918,
//file transfer
ERROR_file_invalid_name = 0x0800, ///< Invalid UTF8 string or not a valid file
ERROR_file_invalid_permissions = 0x0801, ///< Permissions prevent opening the file
ERROR_file_already_exists = 0x0802, ///< Target path already exists as a directory
ERROR_file_not_found = 0x0803, ///< Attempt to access or move non existing file
ERROR_file_io_error = 0x0804, ///< Generic file input / output error
ERROR_file_invalid_transfer_id = 0x0805, ///< Attempt to get information about a file transfer after it has already been cleaned up. File transfer information is not available indefinitely after the transfer completed
ERROR_file_invalid_path = 0x0806, ///< specified path contains invalid characters or does not start with "/"
ERROR_file_no_files_available = 0x0807, // Not used
ERROR_file_overwrite_excludes_resume = 0x0808, ///< File overwrite and resume are mutually exclusive. Only one or neither can be 1.
ERROR_file_invalid_size = 0x0809, ///< Attempt to write more bytes than claimed file size.
ERROR_file_already_in_use = 0x080a, ///< File is currently not available, try again later.
ERROR_file_could_not_open_connection = 0x080b, ///< Generic failure in file transfer connection / other party did not conform to file transfer protocol
ERROR_file_no_space_left_on_device = 0x080c, ///< Operating system reports hard disk is full. May be caused by quota limitations.
ERROR_file_exceeds_file_system_maximum_size = 0x080d, ///< File is too large for the file system of the target device.
ERROR_file_transfer_connection_timeout = 0x080e, // Not used
ERROR_file_connection_lost = 0x080f, ///< File input / output timeout or connection failure
ERROR_file_exceeds_supplied_size = 0x0810, // Not used
ERROR_file_transfer_complete = 0x0811, ///< Indicates successful completion
ERROR_file_transfer_canceled = 0x0812, ///< Transfer was cancelled through @ref ts3client_haltTransfer
ERROR_file_transfer_interrupted = 0x0813, ///< Transfer failed because the server is shutting down, or network connection issues
ERROR_file_transfer_server_quota_exceeded = 0x0814, ///< Transfer terminated due to server bandwidth quota being exceeded. No client can transfer files.
ERROR_file_transfer_client_quota_exceeded = 0x0815, ///< Attempt to transfer more data than allowed by this clients' bandwidth quota. Other clients may continue to transfer files.
ERROR_file_transfer_reset = 0x0816, // Not used
ERROR_file_transfer_limit_reached = 0x0817, ///< Too many file transfers are in progress. Try again later
ERROR_file_invalid_storage_class = 0x0818, // TODO: Invalid storage class for HTTP FileTransfer (what is a storage class?)
ERROR_file_invalid_dimension = 0x0819, ///< Avatar image exceeds maximum width or height accepted by the server.
ERROR_file_transfer_channel_quota_exceeded = 0x081a, ///< Transfer failed because the channel quota was exceeded. Uploading to this channel is not possible, but other channels may be fine.
//sound
ERROR_sound_preprocessor_disabled = 0x0900, ///< Cannot set or query pre processor variables with preprocessing disabled
ERROR_sound_internal_preprocessor = 0x0901,
ERROR_sound_internal_encoder = 0x0902,
ERROR_sound_internal_playback = 0x0903,
ERROR_sound_no_capture_device_available = 0x0904, ///< No audio capture devices are available
ERROR_sound_no_playback_device_available = 0x0905, ///< No audio playback devices are available
ERROR_sound_could_not_open_capture_device = 0x0906, ///< Error accessing audio device, or audio device does not support the requested mode
ERROR_sound_could_not_open_playback_device = 0x0907, ///< Error accessing audio device, or audio device does not support the requested mode
ERROR_sound_handler_has_device = 0x0908, ///< Attempt to open a sound device on a connection handler which already has an open device. Close the already open device first using \ref ts3client_closeCaptureDevice or \ref ts3client_closePlaybackDevice
ERROR_sound_invalid_capture_device = 0x0909, ///< Attempt to use a device for capture that does not support capturing audio
ERROR_sound_invalid_playback_device = 0x090a, ///< Attempt to use a device for playback that does not support playback of audio
ERROR_sound_invalid_wave = 0x090b, ///< Attempt to use a non WAV file in \ref ts3client_playWaveFile or \ref ts3client_playWaveFileHandle
ERROR_sound_unsupported_wave = 0x090c, ///< Unsupported wave file used in \ref ts3client_playWaveFile or \ref ts3client_playWaveFileHandle.
ERROR_sound_open_wave = 0x090d, ///< Failure to open the specified sound file
ERROR_sound_internal_capture = 0x090e,
ERROR_sound_device_in_use = 0x090f, ///< Attempt to unregister a custom device that is being used. Close the device first using \ref ts3client_closeCaptureDevice or \ref ts3client_closePlaybackDevice
ERROR_sound_device_already_registerred = 0x0910, ///< Attempt to register a custom device with a device id that has already been used in a previous call. Device ids must be unique.
ERROR_sound_unknown_device = 0x0911, ///< Attempt to open, close, unregister or use a device which is not known. Custom devices must be registered before being used (see \ref ts3client_registerCustomDevice)
ERROR_sound_unsupported_frequency = 0x0912,
ERROR_sound_invalid_channel_count = 0x0913, ///< Invalid device audio channel count, must be > 0
ERROR_sound_read_wave = 0x0914, ///< Failure to read sound samples from an opened wave file. Is this a valid wave file?
ERROR_sound_need_more_data = 0x0915, // for internal purposes only
ERROR_sound_device_busy = 0x0916, // for internal purposes only
ERROR_sound_no_data = 0x0917, ///< Indicates there is currently no data for playback, e.g. nobody is speaking right now.
ERROR_sound_channel_mask_mismatch = 0x0918, ///< Opening a device with an unsupported channel count
//permissions
ERROR_permissions_client_insufficient = 0x0a08,
ERROR_permissions = 0x0a0c,
//permissions
ERROR_permissions_client_insufficient = 0x0a08, ///< Not enough permissions to perform the requested activity
ERROR_permissions = 0x0a0c, ///< Permissions to use sound device not granted by operating system, e.g. Windows denied microphone access.
//accounting
ERROR_accounting_virtualserver_limit_reached = 0x0b00,
ERROR_accounting_slot_limit_reached = 0x0b01,
ERROR_accounting_license_file_not_found = 0x0b02,
ERROR_accounting_license_date_not_ok = 0x0b03,
ERROR_accounting_unable_to_connect_to_server = 0x0b04,
ERROR_accounting_unknown_error = 0x0b05,
ERROR_accounting_server_error = 0x0b06,
ERROR_accounting_instance_limit_reached = 0x0b07,
ERROR_accounting_instance_check_error = 0x0b08,
ERROR_accounting_license_file_invalid = 0x0b09,
ERROR_accounting_running_elsewhere = 0x0b0a,
ERROR_accounting_instance_duplicated = 0x0b0b,
ERROR_accounting_already_started = 0x0b0c,
ERROR_accounting_not_started = 0x0b0d,
ERROR_accounting_to_many_starts = 0x0b0e,
//accounting
ERROR_accounting_virtualserver_limit_reached = 0x0b00, ///< Attempt to use more virtual servers than allowed by the license
ERROR_accounting_slot_limit_reached = 0x0b01, ///< Attempt to set more slots than allowed by the license
ERROR_accounting_license_file_not_found = 0x0b02, // Not used
ERROR_accounting_license_date_not_ok = 0x0b03, ///< License expired or not valid yet
ERROR_accounting_unable_to_connect_to_server = 0x0b04, ///< Failure to communicate with accounting backend
ERROR_accounting_unknown_error = 0x0b05, ///< Failure to write update license file
ERROR_accounting_server_error = 0x0b06, // Not used
ERROR_accounting_instance_limit_reached = 0x0b07, ///< More than one process of the server is running
ERROR_accounting_instance_check_error = 0x0b08, ///< Shared memory access failure.
ERROR_accounting_license_file_invalid = 0x0b09, ///< License is not a TeamSpeak license
ERROR_accounting_running_elsewhere = 0x0b0a, ///< A copy of this server is already running in another instance. Each server may only exist once.
ERROR_accounting_instance_duplicated = 0x0b0b, ///< A copy of this server is running already in this process. Each server may only exist once.
ERROR_accounting_already_started = 0x0b0c, ///< Attempt to start a server that is already running
ERROR_accounting_not_started = 0x0b0d,
ERROR_accounting_to_many_starts = 0x0b0e, ///< Starting instance / virtual servers too often in too short a time period
//provisioning server
ERROR_provisioning_invalid_password = 0x1100,
ERROR_provisioning_invalid_request = 0x1101,
ERROR_provisioning_no_slots_available = 0x1102,
ERROR_provisioning_pool_missing = 0x1103,
ERROR_provisioning_pool_unknown = 0x1104,
ERROR_provisioning_unknown_ip_location = 0x1105,
ERROR_provisioning_internal_tries_exceeded = 0x1106,
ERROR_provisioning_too_many_slots_requested = 0x1107,
ERROR_provisioning_too_many_reserved = 0x1108,
ERROR_provisioning_could_not_connect = 0x1109,
ERROR_provisioning_auth_server_not_connected = 0x1110,
ERROR_provisioning_auth_data_too_large = 0x1111,
ERROR_provisioning_already_initialized = 0x1112,
ERROR_provisioning_not_initialized = 0x1113,
ERROR_provisioning_connecting = 0x1114,
ERROR_provisioning_already_connected = 0x1115,
ERROR_provisioning_not_connected = 0x1116,
ERROR_provisioning_io_error = 0x1117,
ERROR_provisioning_invalid_timeout = 0x1118,
ERROR_provisioning_ts3server_not_found = 0x1119,
ERROR_provisioning_no_permission = 0x111A,
//provisioning server
/// @cond HAS_PROVISIONING
ERROR_provisioning_invalid_password = 0x1100,
ERROR_provisioning_invalid_request = 0x1101,
ERROR_provisioning_no_slots_available = 0x1102,
ERROR_provisioning_pool_missing = 0x1103,
ERROR_provisioning_pool_unknown = 0x1104,
ERROR_provisioning_unknown_ip_location = 0x1105,
ERROR_provisioning_internal_tries_exceeded = 0x1106,
ERROR_provisioning_too_many_slots_requested = 0x1107,
ERROR_provisioning_too_many_reserved = 0x1108,
ERROR_provisioning_could_not_connect = 0x1109,
ERROR_provisioning_auth_server_not_connected = 0x1110,
ERROR_provisioning_auth_data_too_large = 0x1111,
ERROR_provisioning_already_initialized = 0x1112,
ERROR_provisioning_not_initialized = 0x1113,
ERROR_provisioning_connecting = 0x1114,
ERROR_provisioning_already_connected = 0x1115,
ERROR_provisioning_not_connected = 0x1116,
ERROR_provisioning_io_error = 0x1117,
ERROR_provisioning_invalid_timeout = 0x1118,
ERROR_provisioning_ts3server_not_found = 0x1119,
ERROR_provisioning_no_permission = 0x111A,
/// @endcond
};
#endif

View File

@@ -4,94 +4,105 @@
//The idea here is: the values are 2 bytes wide, the first byte identifies the group, the second the count within that group
enum Ts3RareErrorType {
//client
ERROR_client_invalid_password = 0x0208,
ERROR_client_too_many_clones_connected = 0x0209,
ERROR_client_is_online = 0x020b,
//client
ERROR_client_too_many_clones_connected = 0x0209,
ERROR_client_is_online = 0x020b,
//channel
ERROR_channel_is_private_channel = 0x030e,
//note 0x030f is defined in public_errors;
//channel
ERROR_channel_is_private_channel = 0x030e,
//note 0x030f is defined in public_errors;
//database
ERROR_database = 0x0500,
ERROR_database_empty_result = 0x0501,
ERROR_database_duplicate_entry = 0x0502,
ERROR_database_no_modifications = 0x0503,
ERROR_database_constraint = 0x0504,
ERROR_database_reinvoke = 0x0505,
//database
ERROR_database = 0x0500,
ERROR_database_empty_result = 0x0501,
ERROR_database_duplicate_entry = 0x0502,
ERROR_database_no_modifications = 0x0503,
ERROR_database_constraint = 0x0504,
ERROR_database_reinvoke = 0x0505,
//permissions
ERROR_permission_invalid_group_id = 0x0a00,
ERROR_permission_duplicate_entry = 0x0a01,
ERROR_permission_invalid_perm_id = 0x0a02,
ERROR_permission_empty_result = 0x0a03,
ERROR_permission_default_group_forbidden = 0x0a04,
ERROR_permission_invalid_size = 0x0a05,
ERROR_permission_invalid_value = 0x0a06,
ERROR_permissions_group_not_empty = 0x0a07,
ERROR_permissions_insufficient_group_power = 0x0a09,
ERROR_permissions_insufficient_permission_power = 0x0a0a,
ERROR_permission_template_group_is_used = 0x0a0b,
//0x0a0c is in public_errors.h
ERROR_permission_used_by_integration = 0x0a0d,
//permissions
ERROR_permission_invalid_group_id = 0x0a00,
ERROR_permission_duplicate_entry = 0x0a01,
ERROR_permission_invalid_perm_id = 0x0a02,
ERROR_permission_empty_result = 0x0a03,
ERROR_permission_default_group_forbidden = 0x0a04,
ERROR_permission_invalid_size = 0x0a05,
ERROR_permission_invalid_value = 0x0a06,
ERROR_permissions_group_not_empty = 0x0a07,
ERROR_permissions_insufficient_group_power = 0x0a09,
ERROR_permissions_insufficient_permission_power = 0x0a0a,
ERROR_permission_template_group_is_used = 0x0a0b,
//0x0a0c is in public_errors.h
ERROR_permission_used_by_integration = 0x0a0d,
//server
ERROR_server_deployment_active = 0x0405,
ERROR_server_unable_to_stop_own_server = 0x0406,
ERROR_server_wrong_machineid = 0x0408,
ERROR_server_modal_quit = 0x040c,
ERROR_server_time_difference_too_large = 0x040f,
ERROR_server_blacklisted = 0x0410,
//server
ERROR_server_deployment_active = 0x0405,
ERROR_server_unable_to_stop_own_server = 0x0406,
ERROR_server_wrong_machineid = 0x0408,
ERROR_server_modal_quit = 0x040c,
ERROR_server_time_difference_too_large = 0x040f,
ERROR_server_blacklisted = 0x0410,
ERROR_server_shutdown = 0x0411,
//messages
ERROR_message_invalid_id = 0x0c00,
//messages
ERROR_message_invalid_id = 0x0c00,
//ban
ERROR_ban_invalid_id = 0x0d00,
ERROR_connect_failed_banned = 0x0d01,
ERROR_rename_failed_banned = 0x0d02,
ERROR_ban_flooding = 0x0d03,
//ban
ERROR_ban_invalid_id = 0x0d00,
ERROR_connect_failed_banned = 0x0d01,
ERROR_rename_failed_banned = 0x0d02,
ERROR_ban_flooding = 0x0d03,
//tts
ERROR_tts_unable_to_initialize = 0x0e00,
//tts
ERROR_tts_unable_to_initialize = 0x0e00,
//privilege key
ERROR_privilege_key_invalid = 0x0f00,
//privilege key
ERROR_privilege_key_invalid = 0x0f00,
//voip
ERROR_voip_pjsua = 0x1000,
ERROR_voip_already_initialized = 0x1001,
ERROR_voip_too_many_accounts = 0x1002,
ERROR_voip_invalid_account = 0x1003,
ERROR_voip_internal_error = 0x1004,
ERROR_voip_invalid_connectionId = 0x1005,
ERROR_voip_cannot_answer_initiated_call = 0x1006,
ERROR_voip_not_initialized = 0x1007,
//ed25519
ERROR_ed25519_rng_fail = 0x1300,
ERROR_ed25519_signature_invalid = 0x1301,
ERROR_ed25519_invalid_key = 0x1302,
ERROR_ed25519_unable_to_create_valid_key = 0x1303,
ERROR_ed25519_out_of_memory = 0x1304,
ERROR_ed25519_exists = 0x1305,
ERROR_ed25519_read_beyond_eof = 0x1306,
ERROR_ed25519_write_beyond_eof = 0x1307,
ERROR_ed25519_version = 0x1308,
ERROR_ed25519_invalid = 0x1309,
ERROR_ed25519_invalid_date = 0x130A,
ERROR_ed25519_unauthorized = 0x130B,
ERROR_ed25519_invalid_type = 0x130C,
ERROR_ed25519_address_nomatch = 0x130D,
ERROR_ed25519_not_valid_yet = 0x130E,
ERROR_ed25519_expired = 0x130F,
ERROR_ed25519_index_out_of_range = 0x1310,
ERROR_ed25519_invalid_size = 0x1311,
//voip
ERROR_voip_pjsua = 0x1000,
ERROR_voip_already_initialized = 0x1001,
ERROR_voip_too_many_accounts = 0x1002,
ERROR_voip_invalid_account = 0x1003,
ERROR_voip_internal_error = 0x1004,
ERROR_voip_invalid_connectionId = 0x1005,
ERROR_voip_cannot_answer_initiated_call = 0x1006,
ERROR_voip_not_initialized = 0x1007,
//mytsid - client
ERROR_invalid_mytsid_data = 0x1200,
ERROR_invalid_integration = 0x1201,
ERROR_invalid_mytsid_data = 0x1200,
ERROR_invalid_integration = 0x1201,
ERROR_mytsid_needed = 0x1202,
//ed25519
ERROR_ed25519_rng_fail = 0x1300,
ERROR_ed25519_signature_invalid = 0x1301,
ERROR_ed25519_invalid_key = 0x1302,
ERROR_ed25519_unable_to_create_valid_key = 0x1303,
ERROR_ed25519_out_of_memory = 0x1304,
ERROR_ed25519_exists = 0x1305,
ERROR_ed25519_read_beyond_eof = 0x1306,
ERROR_ed25519_write_beyond_eof = 0x1307,
ERROR_ed25519_version = 0x1308,
ERROR_ed25519_invalid = 0x1309,
ERROR_ed25519_invalid_date = 0x130A,
ERROR_ed25519_unauthorized = 0x130B,
ERROR_ed25519_invalid_type = 0x130C,
ERROR_ed25519_address_nomatch = 0x130D,
ERROR_ed25519_not_valid_yet = 0x130E,
ERROR_ed25519_expired = 0x130F,
ERROR_ed25519_index_out_of_range = 0x1310,
ERROR_ed25519_invalid_size = 0x1311,
//api key
ERROR_apikey_outofscope = 0x1400,
ERROR_apikey_crypto_error = 0x1401,
ERROR_apikey_invalid = 0x1402,
ERROR_apikey_invalid_id = 0x1403,
ERROR_apikey_missing = 0x1404,
//homebase
ERROR_homebase_no_slots_available = 0x1500,
};
#endif

View File

@@ -16,334 +16,343 @@
#define TS3_MAX_SIZE_POKE_MESSAGE 100
#define TS3_MAX_SIZE_OFFLINE_MESSAGE 4096
#define TS3_MAX_SIZE_OFFLINE_MESSAGE_SUBJECT 200
#define TS3_MAX_SIZE_USER_TAG 100
//limited length, measured in bytes (utf8 encoded)
#define TS3_MAX_SIZE_PLUGIN_COMMAND 1024*8
#define TS3_MAX_SIZE_PLUGIN_COMMAND 1024 * 8
#define TS3_MAX_SIZE_VIRTUALSERVER_HOSTBANNER_GFX_URL 2000
enum GroupShowNameTreeMode {
GroupShowNameTreeMode_NONE= 0, //dont group show name
GroupShowNameTreeMode_BEFORE, //show group name before client name
GroupShowNameTreeMode_BEHIND //show group name behind client name
GroupShowNameTreeMode_NONE = 0, //dont group show name
GroupShowNameTreeMode_BEFORE, //show group name before client name
GroupShowNameTreeMode_BEHIND //show group name behind client name
};
enum PluginTargetMode {
PluginCommandTarget_CURRENT_CHANNEL=0, //send plugincmd to all clients in current channel
PluginCommandTarget_SERVER, //send plugincmd to all clients on server
PluginCommandTarget_CLIENT, //send plugincmd to all given client ids
PluginCommandTarget_CURRENT_CHANNEL_SUBSCRIBED_CLIENTS, //send plugincmd to all subscribed clients in current channel
PluginCommandTarget_MAX
PluginCommandTarget_CURRENT_CHANNEL = 0, //send plugincmd to all clients in current channel
PluginCommandTarget_SERVER, //send plugincmd to all clients on server
PluginCommandTarget_CLIENT, //send plugincmd to all given client ids
PluginCommandTarget_CURRENT_CHANNEL_SUBSCRIBED_CLIENTS, //send plugincmd to all subscribed clients in current channel
PluginCommandTarget_MAX
};
enum {
SERVER_BINDING_VIRTUALSERVER=0,
SERVER_BINDING_SERVERQUERY =1,
SERVER_BINDING_FILETRANSFER =2,
SERVER_BINDING_VIRTUALSERVER = 0,
SERVER_BINDING_SERVERQUERY = 1,
SERVER_BINDING_FILETRANSFER = 2,
};
enum HostMessageMode {
HostMessageMode_NONE=0, //dont display anything
HostMessageMode_LOG, //display message inside log
HostMessageMode_MODAL, //display message inside a modal dialog
HostMessageMode_MODALQUIT //display message inside a modal dialog and quit/close server/connection
HostMessageMode_NONE = 0, //dont display anything
HostMessageMode_LOG, //display message inside log
HostMessageMode_MODAL, //display message inside a modal dialog
HostMessageMode_MODALQUIT //display message inside a modal dialog and quit/close server/connection
};
enum HostBannerMode {
HostBannerMode_NO_ADJUST=0, //Do not adjust
HostBannerMode_ADJUST_IGNORE_ASPECT, //Adjust but ignore aspect ratio
HostBannerMode_ADJUST_KEEP_ASPECT, //Adjust and keep aspect ratio
HostBannerMode_NO_ADJUST = 0, //Do not adjust
HostBannerMode_ADJUST_IGNORE_ASPECT, //Adjust but ignore aspect ratio
HostBannerMode_ADJUST_KEEP_ASPECT, //Adjust and keep aspect ratio
};
enum ClientType {
ClientType_NORMAL = 0,
ClientType_SERVERQUERY,
ClientType_NORMAL = 0,
ClientType_SERVERQUERY,
};
enum AwayStatus {
AWAY_NONE = 0,
AWAY_ZZZ,
AWAY_NONE = 0,
AWAY_ZZZ,
};
enum CommandLinePropertiesRare {
#ifdef SERVER
COMMANDLINE_CREATE_DEFAULT_VIRTUALSERVER= 0, //create default virtualserver
COMMANDLINE_MACHINE_ID, //machine id (starts only virtualserver with given machineID
COMMANDLINE_DEFAULT_VOICE_PORT,
COMMANDLINE_VOICE_IP,
COMMANDLINE_THREADS_VOICE_UDP,
COMMANDLINE_LICENSEPATH,
#ifndef SDK
COMMANDLINE_FILETRANSFER_PORT,
COMMANDLINE_FILETRANSFER_IP,
COMMANDLINE_QUERY_PORT,
COMMANDLINE_QUERY_IP,
COMMANDLINE_QUERY_IP_WHITELIST,
COMMANDLINE_QUERY_IP_BLACKLIST,
COMMANDLINE_CLEAR_DATABASE,
COMMANDLINE_SERVERADMIN_PASSWORD,
COMMANDLINE_DBPLUGIN,
COMMANDLINE_DBPLUGINPARAMETER,
COMMANDLINE_DBSQLPATH,
COMMANDLINE_DBSQLCREATEPATH,
COMMANDLINE_DBCONNECTIONS,
COMMANDLINE_LOGPATH,
COMMANDLINE_CREATEINIFILE,
COMMANDLINE_INIFILE,
COMMANDLINE_LOGQUERYCOMMANDS,
COMMANDLINE_DBCLIENTKEEPDAYS,
COMMANDLINE_NO_PERMISSION_UPDATE,
COMMANDLINE_OPEN_WIN_CONSOLE,
COMMANDLINE_NO_PASSWORD_DIALOG,
COMMANDLINE_LOGAPPEND,
COMMANDLINE_QUERY_SKIPBRUTEFORCECHECK,
COMMANDLINE_QUERY_BUFFER_MB,
COMMANDLINE_HTTP_PROXY,
COMMANDLINE_LICENSE_ACCEPTED,
COMMANDLINE_SERVERQUERYDOCS_PATH,
COMMANDLINE_QUERY_SSH_IP,
COMMANDLINE_QUERY_SSH_PORT,
COMMANDLINE_QUERY_PROTOCOLS,
COMMANDLINE_QUERY_SSH_RSA_HOST_KEY,
COMMANDLINE_QUERY_TIMEOUT,
COMMANDLINE_VERSION,
COMMANDLINE_CRASHDUMPSPATH,
COMMANDLINE_DAEMON,
COMMANDLINE_PID_FILE,
COMMANDLINE_CREATE_DEFAULT_VIRTUALSERVER = 0, //create default virtualserver
COMMANDLINE_MACHINE_ID, //machine id (starts only virtualserver with given machineID
COMMANDLINE_DEFAULT_VOICE_PORT,
COMMANDLINE_VOICE_IP,
COMMANDLINE_THREADS_VOICE_UDP,
COMMANDLINE_LICENSEPATH,
COMMANDLINE_YAMLFILE,
#ifndef TEAMSPEAK_SDK
COMMANDLINE_FILETRANSFER_PORT,
COMMANDLINE_FILETRANSFER_IP,
COMMANDLINE_QUERY_PORT,
COMMANDLINE_QUERY_IP,
COMMANDLINE_QUERY_IP_ALLOWLIST,
COMMANDLINE_QUERY_IP_DENYLIST,
COMMANDLINE_CLEAR_DATABASE,
COMMANDLINE_SERVERADMIN_PASSWORD,
COMMANDLINE_DBPLUGIN,
COMMANDLINE_DBPLUGINPARAMETER,
COMMANDLINE_DBSQLPATH,
COMMANDLINE_DBSQLCREATEPATH,
COMMANDLINE_DBCONNECTIONS,
COMMANDLINE_LOGPATH,
COMMANDLINE_CREATEINIFILE,
COMMANDLINE_INIFILE,
COMMANDLINE_LOGQUERYCOMMANDS,
COMMANDLINE_DBCLIENTKEEPDAYS,
COMMANDLINE_NO_PERMISSION_UPDATE,
COMMANDLINE_OPEN_WIN_CONSOLE,
COMMANDLINE_NO_PASSWORD_DIALOG,
COMMANDLINE_LOGAPPEND,
COMMANDLINE_QUERY_SKIPBRUTEFORCECHECK,
COMMANDLINE_QUERY_BUFFER_MB,
#endif
COMMANDLINE_HTTP_PROXY,
#ifndef TEAMSPEAK_SDK
COMMANDLINE_LICENSE_ACCEPTED,
COMMANDLINE_SERVERQUERYDOCS_PATH,
COMMANDLINE_QUERY_SSH_IP,
COMMANDLINE_QUERY_SSH_PORT,
COMMANDLINE_QUERY_PROTOCOLS,
COMMANDLINE_QUERY_SSH_RSA_HOST_KEY,
COMMANDLINE_QUERY_TIMEOUT,
COMMANDLINE_VERSION,
COMMANDLINE_CRASHDUMPSPATH,
COMMANDLINE_DAEMON,
COMMANDLINE_PID_FILE,
COMMANDLINE_HINTS_ENABLED,
COMMANDLINE_QUERY_HTTP_IP,
COMMANDLINE_QUERY_HTTP_PORT,
COMMANDLINE_QUERY_HTTPS_IP,
COMMANDLINE_QUERY_HTTPS_PORT,
COMMANDLINE_QUERY_HTTPS_CERTIFICATE_FILE,
COMMANDLINE_QUERY_HTTPS_PRIVATE_KEY_FILE,
COMMANDLINE_QUERY_POOL_SIZE,
COMMANDLINE_MMDBPATH,
COMMANDLINE_LOGQUERYTIMINGINTERVAL,
COMMANDLINE_EVENT_TO_DB_LOGGING,
COMMANDLINE_ADMINISTRATIVE_DOMAIN,
#endif
COMMANDLINE_WEBRTC_SERVER_ENABLED,
#else
COMMANDLINE_NOTHING=0,
COMMANDLINE_NOTHING = 0,
#endif
COMMANDLINE_ENDMARKER_RARE,
COMMANDLINE_ENDMARKER_RARE,
};
enum ServerInstancePropertiesRare {
SERVERINSTANCE_DATABASE_VERSION= 0,
SERVERINSTANCE_FILETRANSFER_PORT,
SERVERINSTANCE_SERVER_ENTROPY,
SERVERINSTANCE_MONTHLY_TIMESTAMP,
SERVERINSTANCE_MAX_DOWNLOAD_TOTAL_BANDWIDTH,
SERVERINSTANCE_MAX_UPLOAD_TOTAL_BANDWIDTH,
SERVERINSTANCE_GUEST_SERVERQUERY_GROUP,
SERVERINSTANCE_SERVERQUERY_FLOOD_COMMANDS, //how many commands we can issue while in the SERVERINSTANCE_SERVERQUERY_FLOOD_TIME window
SERVERINSTANCE_SERVERQUERY_FLOOD_TIME, //time window in seconds for max command execution check
SERVERINSTANCE_SERVERQUERY_BAN_TIME, //how many seconds someone get banned if he floods
SERVERINSTANCE_TEMPLATE_SERVERADMIN_GROUP,
SERVERINSTANCE_TEMPLATE_SERVERDEFAULT_GROUP,
SERVERINSTANCE_TEMPLATE_CHANNELADMIN_GROUP,
SERVERINSTANCE_TEMPLATE_CHANNELDEFAULT_GROUP,
SERVERINSTANCE_PERMISSIONS_VERSION,
SERVERINSTANCE_PENDING_CONNECTIONS_PER_IP,
SERVERINSTANCE_SERVERQUERY_MAX_CONNECTIONS_PER_IP,
SERVERINSTANCE_ENDMARKER_RARE,
SERVERINSTANCE_DATABASE_VERSION = 0,
SERVERINSTANCE_FILETRANSFER_PORT,
SERVERINSTANCE_SERVER_ENTROPY,
SERVERINSTANCE_MONTHLY_TIMESTAMP,
SERVERINSTANCE_MAX_DOWNLOAD_TOTAL_BANDWIDTH,
SERVERINSTANCE_MAX_UPLOAD_TOTAL_BANDWIDTH,
SERVERINSTANCE_GUEST_SERVERQUERY_GROUP,
SERVERINSTANCE_SERVERQUERY_FLOOD_COMMANDS, //how many commands we can issue while in the SERVERINSTANCE_SERVERQUERY_FLOOD_TIME window
SERVERINSTANCE_SERVERQUERY_FLOOD_TIME, //time window in seconds for max command execution check
SERVERINSTANCE_SERVERQUERY_BAN_TIME, //how many seconds someone get banned if he floods
SERVERINSTANCE_TEMPLATE_SERVERADMIN_GROUP,
SERVERINSTANCE_TEMPLATE_SERVERDEFAULT_GROUP,
SERVERINSTANCE_TEMPLATE_CHANNELADMIN_GROUP,
SERVERINSTANCE_TEMPLATE_CHANNELDEFAULT_GROUP,
SERVERINSTANCE_PERMISSIONS_VERSION,
SERVERINSTANCE_PENDING_CONNECTIONS_PER_IP,
SERVERINSTANCE_SERVERQUERY_MAX_CONNECTIONS_PER_IP,
SERVERINSTANCE_MAX_HOMEBASES, //How many matrix homebase users this instance can have. -1 for no limit
SERVERINSTANCE_ENDMARKER_RARE,
};
enum VirtualServerPropertiesRare {
VIRTUALSERVER_DUMMY_1 = VIRTUALSERVER_ENDMARKER,
VIRTUALSERVER_DUMMY_2,
VIRTUALSERVER_DUMMY_3,
VIRTUALSERVER_DUMMY_4,
VIRTUALSERVER_DUMMY_5,
VIRTUALSERVER_DUMMY_6,
VIRTUALSERVER_DUMMY_7,
VIRTUALSERVER_DUMMY_8,
VIRTUALSERVER_KEYPAIR, //internal use
VIRTUALSERVER_HOSTMESSAGE, //available when connected, not updated while connected
VIRTUALSERVER_HOSTMESSAGE_MODE, //available when connected, not updated while connected
VIRTUALSERVER_FILEBASE, //not available to clients, stores the folder used for file transfers
VIRTUALSERVER_DEFAULT_SERVER_GROUP, //the client permissions server group that a new client gets assigned
VIRTUALSERVER_DEFAULT_CHANNEL_GROUP, //the channel permissions group that a new client gets assigned when joining a channel
VIRTUALSERVER_FLAG_PASSWORD, //only available on request (=> requestServerVariables)
VIRTUALSERVER_DEFAULT_CHANNEL_ADMIN_GROUP, //the channel permissions group that a client gets assigned when creating a channel
VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH, //only available on request (=> requestServerVariables)
VIRTUALSERVER_HOSTBANNER_URL, //available when connected, always up-to-date
VIRTUALSERVER_HOSTBANNER_GFX_URL, //available when connected, always up-to-date
VIRTUALSERVER_HOSTBANNER_GFX_INTERVAL, //available when connected, always up-to-date
VIRTUALSERVER_COMPLAIN_AUTOBAN_COUNT, //only available on request (=> requestServerVariables)
VIRTUALSERVER_COMPLAIN_AUTOBAN_TIME, //only available on request (=> requestServerVariables)
VIRTUALSERVER_COMPLAIN_REMOVE_TIME, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MIN_CLIENTS_IN_CHANNEL_BEFORE_FORCED_SILENCE,//only available on request (=> requestServerVariables)
VIRTUALSERVER_PRIORITY_SPEAKER_DIMM_MODIFICATOR, //available when connected, always up-to-date
VIRTUALSERVER_ID, //available when connected
VIRTUALSERVER_ANTIFLOOD_POINTS_TICK_REDUCE, //only available on request (=> requestServerVariables)
VIRTUALSERVER_ANTIFLOOD_POINTS_NEEDED_COMMAND_BLOCK, //only available on request (=> requestServerVariables)
VIRTUALSERVER_ANTIFLOOD_POINTS_NEEDED_IP_BLOCK, //only available on request (=> requestServerVariables)
VIRTUALSERVER_CLIENT_CONNECTIONS, //only available on request (=> requestServerVariables)
VIRTUALSERVER_QUERY_CLIENT_CONNECTIONS, //only available on request (=> requestServerVariables)
VIRTUALSERVER_HOSTBUTTON_TOOLTIP, //available when connected, always up-to-date
VIRTUALSERVER_HOSTBUTTON_URL, //available when connected, always up-to-date
VIRTUALSERVER_HOSTBUTTON_GFX_URL, //available when connected, always up-to-date
VIRTUALSERVER_QUERYCLIENTS_ONLINE, //only available on request (=> requestServerVariables)
VIRTUALSERVER_DOWNLOAD_QUOTA, //only available on request (=> requestServerVariables)
VIRTUALSERVER_UPLOAD_QUOTA, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MONTH_BYTES_DOWNLOADED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MONTH_BYTES_UPLOADED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_BYTES_DOWNLOADED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_BYTES_UPLOADED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_PORT, //only available on request (=> requestServerVariables)
VIRTUALSERVER_AUTOSTART, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MACHINE_ID, //only available on request (=> requestServerVariables)
VIRTUALSERVER_NEEDED_IDENTITY_SECURITY_LEVEL, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_CLIENT, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_QUERY, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_CHANNEL, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_PERMISSIONS, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_SERVER, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_FILETRANSFER, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MIN_CLIENT_VERSION, //only available on request (=> requestServerVariables)
VIRTUALSERVER_NAME_PHONETIC, //available when connected, always up-to-date
VIRTUALSERVER_ICON_ID, //available when connected, always up-to-date
VIRTUALSERVER_RESERVED_SLOTS, //available when connected, always up-to-date
VIRTUALSERVER_TOTAL_PACKETLOSS_SPEECH, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_PACKETLOSS_KEEPALIVE, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_PACKETLOSS_CONTROL, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_PACKETLOSS_TOTAL, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_PING, //only available on request (=> requestServerVariables)
VIRTUALSERVER_IP, //internal use | contains comma separated ip list
VIRTUALSERVER_WEBLIST_ENABLED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_AUTOGENERATED_PRIVILEGEKEY, //internal use
VIRTUALSERVER_ASK_FOR_PRIVILEGEKEY, //available when connected
VIRTUALSERVER_HOSTBANNER_MODE, //available when connected, always up-to-date
VIRTUALSERVER_CHANNEL_TEMP_DELETE_DELAY_DEFAULT, //available when connected, always up-to-date
VIRTUALSERVER_MIN_ANDROID_VERSION, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MIN_IOS_VERSION, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MIN_WINPHONE_VERSION, //only available on request (=> requestServerVariables)
VIRTUALSERVER_NICKNAME, //available when connected, always up-to-date
VIRTUALSERVER_ACCOUNTING_TOKEN, //internal use | contains base64 encoded token data
VIRTUALSERVER_PROTOCOL_VERIFY_KEYPAIR, //internal use
VIRTUALSERVER_ANTIFLOOD_POINTS_NEEDED_PLUGIN_BLOCK, //only available on request (=> requestServerVariables)
VIRTUALSERVER_ENDMARKER_RARE
VIRTUALSERVER_DUMMY_1 = VIRTUALSERVER_ENDMARKER,
VIRTUALSERVER_DUMMY_2,
VIRTUALSERVER_DUMMY_3,
VIRTUALSERVER_DUMMY_4,
VIRTUALSERVER_DUMMY_5,
VIRTUALSERVER_DUMMY_6,
VIRTUALSERVER_DUMMY_7,
VIRTUALSERVER_DUMMY_8,
VIRTUALSERVER_KEYPAIR, //internal use
VIRTUALSERVER_HOSTMESSAGE, //available when connected, not updated while connected
VIRTUALSERVER_HOSTMESSAGE_MODE, //available when connected, not updated while connected
// VIRTUALSERVER_FILEBASE, // Moved to VirtualServerProperties due to SDK usage
VIRTUALSERVER_DEFAULT_SERVER_GROUP = 25, //the client permissions server group that a new client gets assigned
VIRTUALSERVER_DEFAULT_CHANNEL_GROUP, //the channel permissions group that a new client gets assigned when joining a channel
VIRTUALSERVER_FLAG_PASSWORD, //only available on request (=> requestServerVariables)
VIRTUALSERVER_DEFAULT_CHANNEL_ADMIN_GROUP, //the channel permissions group that a client gets assigned when creating a channel
// VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH, // Moved to VirtualServerProperties due to SDK usage
// VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH, // Moved to VirtualServerProperties due to SDK usage
VIRTUALSERVER_HOSTBANNER_URL = 31, //available when connected, always up-to-date
VIRTUALSERVER_HOSTBANNER_GFX_URL, //available when connected, always up-to-date
VIRTUALSERVER_HOSTBANNER_GFX_INTERVAL, //available when connected, always up-to-date
VIRTUALSERVER_COMPLAIN_AUTOBAN_COUNT, //only available on request (=> requestServerVariables)
VIRTUALSERVER_COMPLAIN_AUTOBAN_TIME, //only available on request (=> requestServerVariables)
VIRTUALSERVER_COMPLAIN_REMOVE_TIME, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MIN_CLIENTS_IN_CHANNEL_BEFORE_FORCED_SILENCE, //only available on request (=> requestServerVariables)
VIRTUALSERVER_PRIORITY_SPEAKER_DIMM_MODIFICATOR, //available when connected, always up-to-date
VIRTUALSERVER_ID, //available when connected
VIRTUALSERVER_ANTIFLOOD_POINTS_TICK_REDUCE, //only available on request (=> requestServerVariables)
VIRTUALSERVER_ANTIFLOOD_POINTS_NEEDED_COMMAND_BLOCK, //only available on request (=> requestServerVariables)
VIRTUALSERVER_ANTIFLOOD_POINTS_NEEDED_IP_BLOCK, //only available on request (=> requestServerVariables)
VIRTUALSERVER_CLIENT_CONNECTIONS, //only available on request (=> requestServerVariables)
VIRTUALSERVER_QUERY_CLIENT_CONNECTIONS, //only available on request (=> requestServerVariables)
VIRTUALSERVER_HOSTBUTTON_TOOLTIP, //available when connected, always up-to-date
VIRTUALSERVER_HOSTBUTTON_URL, //available when connected, always up-to-date
VIRTUALSERVER_HOSTBUTTON_GFX_URL, //available when connected, always up-to-date
VIRTUALSERVER_QUERYCLIENTS_ONLINE, //only available on request (=> requestServerVariables)
VIRTUALSERVER_DOWNLOAD_QUOTA, //only available on request (=> requestServerVariables)
VIRTUALSERVER_UPLOAD_QUOTA, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MONTH_BYTES_DOWNLOADED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MONTH_BYTES_UPLOADED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_BYTES_DOWNLOADED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_BYTES_UPLOADED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_PORT, //only available on request (=> requestServerVariables)
VIRTUALSERVER_AUTOSTART, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MACHINE_ID, //only available on request (=> requestServerVariables)
VIRTUALSERVER_NEEDED_IDENTITY_SECURITY_LEVEL, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_CLIENT, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_QUERY, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_CHANNEL, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_PERMISSIONS, //only available on request (=> requestServerVariables)
VIRTUALSERVER_LOG_SERVER, //only available on request (=> requestServerVariables)
// VIRTUALSERVER_LOG_FILETRANSFER, // Moved to VirtualServerProperties due to SDK usage
VIRTUALSERVER_MIN_CLIENT_VERSION = 65, //only available on request (=> requestServerVariables)
VIRTUALSERVER_NAME_PHONETIC, //available when connected, always up-to-date
VIRTUALSERVER_ICON_ID, //available when connected, always up-to-date
VIRTUALSERVER_RESERVED_SLOTS, //available when connected, always up-to-date
VIRTUALSERVER_TOTAL_PACKETLOSS_SPEECH, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_PACKETLOSS_KEEPALIVE, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_PACKETLOSS_CONTROL, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_PACKETLOSS_TOTAL, //only available on request (=> requestServerVariables)
VIRTUALSERVER_TOTAL_PING, //only available on request (=> requestServerVariables)
VIRTUALSERVER_IP, //internal use | contains comma separated ip list
VIRTUALSERVER_WEBLIST_ENABLED, //only available on request (=> requestServerVariables)
VIRTUALSERVER_AUTOGENERATED_PRIVILEGEKEY, //internal use
VIRTUALSERVER_ASK_FOR_PRIVILEGEKEY, //available when connected
VIRTUALSERVER_HOSTBANNER_MODE, //available when connected, always up-to-date
VIRTUALSERVER_CHANNEL_TEMP_DELETE_DELAY_DEFAULT, //available when connected, always up-to-date
VIRTUALSERVER_MIN_ANDROID_VERSION, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MIN_IOS_VERSION, //only available on request (=> requestServerVariables)
VIRTUALSERVER_MIN_WINPHONE_VERSION, //only available on request (=> requestServerVariables)
VIRTUALSERVER_NICKNAME, //available when connected, always up-to-date
VIRTUALSERVER_ACCOUNTING_TOKEN, //internal use | contains base64 encoded token data
VIRTUALSERVER_PROTOCOL_VERIFY_KEYPAIR, //internal use
VIRTUALSERVER_ANTIFLOOD_POINTS_NEEDED_PLUGIN_BLOCK, //only available on request (=> requestServerVariables)
VIRTUALSERVER_CAPABILITY_EXTENSIONS, //available when connected, not updated while connected
VIRTUALSERVER_STORAGE_QUOTA, // Allowed filetransfer storage on this server (including chat attachments) in megabytes
VIRTUALSERVER_WEBRTC_CERTIFICATE, //internal use
VIRTUALSERVER_WEBRTC_PRIVATE_KEY, //internal use
VIRTUALSERVER_UUID, //the uuid of the server (uuid v5 of VIRTUALSERVER_UNIQUE_IDENTIFIER)
VIRTUALSERVER_ADMINISTRATIVE_DOMAIN, //The domain which is responsible for this teamspeak server (which hosts its .well-known file)
VIRTUALSERVER_CANONICAL_NAME, //The canonical name under which the server is reachable
VIRTUALSERVER_MYTSID_CONNECT_ONLY, //Only clients that have a valid mytsid can connect
VIRTUALSERVER_MAX_HOMEBASES, //How many matrix homebases this virtual server supports. -1 = no limit
VIRTUALSERVER_HOMEBASE_STORAGE_QUOTA, // Allowed filetransfer storage for homebase attachments in megabytes
VIRTUALSERVER_ENDMARKER_RARE
};
enum ChannelPropertiesRare {
CHANNEL_DUMMY_2= CHANNEL_ENDMARKER,
CHANNEL_DUMMY_3,
CHANNEL_DUMMY_4,
CHANNEL_DUMMY_5,
CHANNEL_DUMMY_6,
CHANNEL_DUMMY_7,
CHANNEL_FLAG_MAXCLIENTS_UNLIMITED, //Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_MAXFAMILYCLIENTS_UNLIMITED,//Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_MAXFAMILYCLIENTS_INHERITED,//Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_ARE_SUBSCRIBED, //Only available client side, stores whether we are subscribed to this channel
CHANNEL_FILEPATH, //not available client side, the folder used for file-transfers for this channel
CHANNEL_NEEDED_TALK_POWER, //Available for all channels that are "in view", always up-to-date
CHANNEL_FORCED_SILENCE, //Available for all channels that are "in view", always up-to-date
CHANNEL_NAME_PHONETIC, //Available for all channels that are "in view", always up-to-date
CHANNEL_ICON_ID, //Available for all channels that are "in view", always up-to-date
CHANNEL_BANNER_GFX_URL, //Available for all channels that are "in view", always up-to-date
CHANNEL_BANNER_MODE, //Available for all channels that are "in view", always up-to-date
CHANNEL_ENDMARKER_RARE,
CHANNEL_DELETE_DELAY_DEADLINE = 127 //(for clientlibv2) expected delete time in monotonic clock seconds or 0 if nothing is expected
CHANNEL_DUMMY_3 = CHANNEL_ENDMARKER,
CHANNEL_DUMMY_4,
CHANNEL_DUMMY_5,
CHANNEL_DUMMY_6,
CHANNEL_DUMMY_7,
CHANNEL_FLAG_MAXCLIENTS_UNLIMITED, //Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_MAXFAMILYCLIENTS_UNLIMITED, //Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_MAXFAMILYCLIENTS_INHERITED, //Available for all channels that are "in view", always up-to-date
CHANNEL_FLAG_ARE_SUBSCRIBED, //Only available client side, stores whether we are subscribed to this channel
CHANNEL_FILEPATH, //not available client side, the folder used for file-transfers for this channel
CHANNEL_NEEDED_TALK_POWER, //Available for all channels that are "in view", always up-to-date
CHANNEL_FORCED_SILENCE, //Available for all channels that are "in view", always up-to-date
CHANNEL_NAME_PHONETIC, //Available for all channels that are "in view", always up-to-date
CHANNEL_ICON_ID, //Available for all channels that are "in view", always up-to-date
CHANNEL_BANNER_GFX_URL, //Available for all channels that are "in view", always up-to-date
CHANNEL_BANNER_MODE, //Available for all channels that are "in view", always up-to-date
CHANNEL_PERMISSION_HINTS,
CHANNEL_STORAGE_QUOTA, // Storage space that is allowed to be used by this channels files (in MiB)
CHANNEL_ENDMARKER_RARE,
CHANNEL_DELETE_DELAY_DEADLINE = 127 //(for clientlibv2) expected delete time in monotonic clock seconds or 0 if nothing is expected
};
enum ClientPropertiesRare {
CLIENT_DUMMY_4 = CLIENT_ENDMARKER,
CLIENT_DUMMY_5,
CLIENT_DUMMY_6,
CLIENT_DUMMY_7,
CLIENT_DUMMY_8,
CLIENT_DUMMY_9,
CLIENT_KEY_OFFSET, //internal use
CLIENT_LAST_VAR_REQUEST, //internal use
CLIENT_LOGIN_NAME, //used for serverquery clients, makes no sense on normal clients currently
CLIENT_LOGIN_PASSWORD, //used for serverquery clients, makes no sense on normal clients currently
CLIENT_DATABASE_ID, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds database client id
CLIENT_CHANNEL_GROUP_ID, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds database client id
CLIENT_SERVERGROUPS, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds all servergroups client belongs too
CLIENT_CREATED, //this needs to be requested (=> requestClientVariables), first time this client connected to this server
CLIENT_LASTCONNECTED, //this needs to be requested (=> requestClientVariables), last time this client connected to this server
CLIENT_TOTALCONNECTIONS, //this needs to be requested (=> requestClientVariables), how many times this client connected to this server
CLIENT_AWAY, //automatically up-to-date for any client "in view", this clients away status
CLIENT_AWAY_MESSAGE, //automatically up-to-date for any client "in view", this clients away message
CLIENT_TYPE, //automatically up-to-date for any client "in view", determines if this is a real client or a server-query connection
CLIENT_FLAG_AVATAR, //automatically up-to-date for any client "in view", this client got an avatar
CLIENT_TALK_POWER, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds database client id
CLIENT_TALK_REQUEST, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds timestamp where client requested to talk
CLIENT_TALK_REQUEST_MSG, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds matter for the request
CLIENT_DESCRIPTION, //automatically up-to-date for any client "in view"
CLIENT_IS_TALKER, //automatically up-to-date for any client "in view"
CLIENT_MONTH_BYTES_UPLOADED, //this needs to be requested (=> requestClientVariables)
CLIENT_MONTH_BYTES_DOWNLOADED, //this needs to be requested (=> requestClientVariables)
CLIENT_TOTAL_BYTES_UPLOADED, //this needs to be requested (=> requestClientVariables)
CLIENT_TOTAL_BYTES_DOWNLOADED, //this needs to be requested (=> requestClientVariables)
CLIENT_IS_PRIORITY_SPEAKER, //automatically up-to-date for any client "in view"
CLIENT_UNREAD_MESSAGES, //automatically up-to-date for any client "in view"
CLIENT_NICKNAME_PHONETIC, //automatically up-to-date for any client "in view"
CLIENT_NEEDED_SERVERQUERY_VIEW_POWER, //automatically up-to-date for any client "in view"
CLIENT_DEFAULT_TOKEN, //only usable for ourself, the default token we used to connect on our last connection attempt
CLIENT_ICON_ID, //automatically up-to-date for any client "in view"
CLIENT_IS_CHANNEL_COMMANDER, //automatically up-to-date for any client "in view"
CLIENT_COUNTRY, //automatically up-to-date for any client "in view"
CLIENT_CHANNEL_GROUP_INHERITED_CHANNEL_ID, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, contains channel_id where the channel_group_id is set from
CLIENT_BADGES, //automatically up-to-date for any client "in view", stores icons for partner badges
CLIENT_MYTEAMSPEAK_ID, //automatically up-to-date for any client "in view", stores myteamspeak id
CLIENT_INTEGRATIONS, //automatically up-to-date for any client "in view", stores integrations
CLIENT_ACTIVE_INTEGRATIONS_INFO, //stores info from the myts server and contains the subscription info
CLIENT_DUMMY_4 = CLIENT_ENDMARKER,
CLIENT_DUMMY_5,
CLIENT_DUMMY_6,
CLIENT_DUMMY_7,
CLIENT_DUMMY_8,
CLIENT_DUMMY_9,
CLIENT_KEY_OFFSET, //internal use
CLIENT_LAST_VAR_REQUEST, //internal use
CLIENT_LOGIN_NAME, //used for serverquery clients, makes no sense on normal clients currently
CLIENT_LOGIN_PASSWORD, //used for serverquery clients, makes no sense on normal clients currently
CLIENT_DATABASE_ID, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds database client id
CLIENT_CHANNEL_GROUP_ID, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds database client id
CLIENT_SERVERGROUPS, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds all servergroups client belongs too
CLIENT_CREATED, //this needs to be requested (=> requestClientVariables), first time this client connected to this server
CLIENT_LASTCONNECTED, //this needs to be requested (=> requestClientVariables), last time this client connected to this server
CLIENT_TOTALCONNECTIONS, //this needs to be requested (=> requestClientVariables), how many times this client connected to this server
CLIENT_AWAY, //automatically up-to-date for any client "in view", this clients away status
CLIENT_AWAY_MESSAGE, //automatically up-to-date for any client "in view", this clients away message
CLIENT_TYPE, //automatically up-to-date for any client "in view", determines if this is a real client or a server-query connection
CLIENT_FLAG_AVATAR, //automatically up-to-date for any client "in view", this client got an avatar
CLIENT_TALK_POWER, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds database client id
CLIENT_TALK_REQUEST, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds timestamp where client requested to talk
CLIENT_TALK_REQUEST_MSG, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds matter for the request
CLIENT_DESCRIPTION, //automatically up-to-date for any client "in view"
CLIENT_IS_TALKER, //automatically up-to-date for any client "in view"
CLIENT_MONTH_BYTES_UPLOADED, //this needs to be requested (=> requestClientVariables)
CLIENT_MONTH_BYTES_DOWNLOADED, //this needs to be requested (=> requestClientVariables)
CLIENT_TOTAL_BYTES_UPLOADED, //this needs to be requested (=> requestClientVariables)
CLIENT_TOTAL_BYTES_DOWNLOADED, //this needs to be requested (=> requestClientVariables)
CLIENT_IS_PRIORITY_SPEAKER, //automatically up-to-date for any client "in view"
CLIENT_UNREAD_MESSAGES, //automatically up-to-date for any client "in view"
CLIENT_NICKNAME_PHONETIC, //automatically up-to-date for any client "in view"
CLIENT_NEEDED_SERVERQUERY_VIEW_POWER, //automatically up-to-date for any client "in view"
CLIENT_DEFAULT_TOKEN, //only usable for ourself, the default token we used to connect on our last connection attempt
CLIENT_ICON_ID, //automatically up-to-date for any client "in view"
CLIENT_IS_CHANNEL_COMMANDER, //automatically up-to-date for any client "in view"
CLIENT_COUNTRY, //automatically up-to-date for any client "in view"
CLIENT_CHANNEL_GROUP_INHERITED_CHANNEL_ID, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, contains channel_id where the channel_group_id is set from
CLIENT_BADGES, //automatically up-to-date for any client "in view", stores icons for partner badges
CLIENT_MYTEAMSPEAK_ID, //automatically up-to-date for any client "in view", stores myteamspeak id
CLIENT_INTEGRATIONS, //automatically up-to-date for any client "in view", stores integrations
CLIENT_ACTIVE_INTEGRATIONS_INFO, //stores info from the myts server and contains the subscription info
CLIENT_MYTS_AVATAR,
CLIENT_SIGNED_BADGES,
CLIENT_ENDMARKER_RARE,
CLIENT_HW_ID = 127 //(for clientlibv2) unique hardware id
};
enum ConnectionPropertiesRare {
CONNECTION_DUMMY_0= CONNECTION_ENDMARKER,
CONNECTION_DUMMY_1,
CONNECTION_DUMMY_2,
CONNECTION_DUMMY_3,
CONNECTION_DUMMY_4,
CONNECTION_DUMMY_5,
CONNECTION_DUMMY_6,
CONNECTION_DUMMY_7,
CONNECTION_DUMMY_8,
CONNECTION_DUMMY_9,
CONNECTION_FILETRANSFER_BANDWIDTH_SENT, //how many bytes per second are currently being sent by file transfers
CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED, //how many bytes per second are currently being received by file transfers
CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL, //how many bytes we received in total through file transfers
CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL, //how many bytes we sent in total through file transfers
CONNECTION_ENDMARKER_RARE,
CLIENT_PERMISSION_HINTS,
CLIENT_USER_TAG, //automatically up-to-date for any client "in view", stores public chat user tag
CLIENT_ENDMARKER_RARE,
CLIENT_HW_ID = 127 //(for clientlibv2) unique hardware id
};
enum BBCodeTags {
BBCodeTag_B = 0x00000001,
BBCodeTag_I = 0x00000002,
BBCodeTag_U = 0x00000004,
BBCodeTag_S = 0x00000008,
BBCodeTag_SUP = 0x00000010,
BBCodeTag_SUB = 0x00000020,
BBCodeTag_COLOR = 0x00000040,
BBCodeTag_SIZE = 0x00000080,
BBCodeTag_group_text = 0x000000FF,
BBCodeTag_B = 0x00000001,
BBCodeTag_I = 0x00000002,
BBCodeTag_U = 0x00000004,
BBCodeTag_S = 0x00000008,
BBCodeTag_SUP = 0x00000010,
BBCodeTag_SUB = 0x00000020,
BBCodeTag_COLOR = 0x00000040,
BBCodeTag_SIZE = 0x00000080,
BBCodeTag_group_text = 0x000000FF,
BBCodeTag_LEFT = 0x00001000,
BBCodeTag_RIGHT = 0x00002000,
BBCodeTag_CENTER = 0x00004000,
BBCodeTag_group_align = 0x00007000,
BBCodeTag_LEFT = 0x00001000,
BBCodeTag_RIGHT = 0x00002000,
BBCodeTag_CENTER = 0x00004000,
BBCodeTag_group_align = 0x00007000,
BBCodeTag_URL = 0x00010000,
BBCodeTag_IMAGE = 0x00020000,
BBCodeTag_HR = 0x00040000,
BBCodeTag_URL = 0x00010000,
BBCodeTag_IMAGE = 0x00020000,
BBCodeTag_HR = 0x00040000,
BBCodeTag_LIST = 0x00100000,
BBCodeTag_LISTITEM = 0x00200000,
BBCodeTag_group_list = 0x00300000,
BBCodeTag_LIST = 0x00100000,
BBCodeTag_LISTITEM = 0x00200000,
BBCodeTag_group_list = 0x00300000,
BBCodeTag_TABLE = 0x00400000,
BBCodeTag_TR = 0x00800000,
BBCodeTag_TH = 0x01000000,
BBCodeTag_TD = 0x02000000,
BBCodeTag_group_table = 0x03C00000,
BBCodeTag_TABLE = 0x00400000,
BBCodeTag_TR = 0x00800000,
BBCodeTag_TH = 0x01000000,
BBCodeTag_TD = 0x02000000,
BBCodeTag_group_table = 0x03C00000,
BBCodeTag_def_simple = BBCodeTag_B | BBCodeTag_I | BBCodeTag_U | BBCodeTag_S | BBCodeTag_SUP | BBCodeTag_SUB |BBCodeTag_COLOR | BBCodeTag_URL,
BBCodeTag_def_simple_Img = BBCodeTag_def_simple | BBCodeTag_IMAGE,
BBCodeTag_def_extended = BBCodeTag_group_text | BBCodeTag_group_align | BBCodeTag_URL | BBCodeTag_IMAGE | BBCodeTag_HR | BBCodeTag_group_list | BBCodeTag_group_table,
BBCodeTag_def_simple = BBCodeTag_B | BBCodeTag_I | BBCodeTag_U | BBCodeTag_S | BBCodeTag_SUP | BBCodeTag_SUB | BBCodeTag_COLOR | BBCodeTag_URL,
BBCodeTag_def_simple_Img = BBCodeTag_def_simple | BBCodeTag_IMAGE,
BBCodeTag_def_extended = BBCodeTag_group_text | BBCodeTag_group_align | BBCodeTag_URL | BBCodeTag_IMAGE | BBCodeTag_HR | BBCodeTag_group_list | BBCodeTag_group_table,
};
enum LicenseIssue {
Blacklisted = 0,
Greylisted
};
enum LicenseIssue { Blacklisted = 0, Greylisted };
enum MytsDataUnsetFlags {
MytsDataUnsetFlag_None = 0,
@@ -353,7 +362,7 @@ enum MytsDataUnsetFlags {
MytsDataUnsetFlag_All = MytsDataUnsetFlag_Badges | MytsDataUnsetFlag_Avatar // make sure "all" really contains all flags
};
typedef int(*ExtraBBCodeValidator)(void* userparam, const char* tag, const char* paramValue, int paramValueSize, const char* childValue, int childValueSize);
typedef int (*ExtraBBCodeValidator)(void* userparam, const char* tag, const char* paramValue, int paramValueSize, const char* childValue, int childValueSize);
typedef const char* (*ExtraBBCodeParamTransform)(void* userparam, const char* tag, const char* paramValue);
#endif //PUBLIC_RARE_DEFINITIONS_H

View File

@@ -0,0 +1,149 @@
#pragma once
/*WARNING: This file is auto generated. Do not edit this file, but edit the server messages and regenerate! */
#include "teamspeak/public_definitions.h"
#ifdef __cplusplus
extern "C" {
#endif
/** Structure that contains the command data for an ftcreatedir message */
struct ts3sc_data_ftcreatedir {
uint64 channelID; ///< The channel ID where the directory is to be created
const char* dirname; ///< utf8 encoded c string containing the directory name
};
/** Structure that contains the meta data for an ftcreatedir message */
struct ts3sc_meta_ftcreatedir {
int RESERVED; ///< This is here because C forbids empty structs. DO NOT USE
};
/** C Structure that contains the meta data and data for an ftcreatedir message */
struct ts3sc_ftcreatedir {
struct ts3sc_meta_ftcreatedir m; ///< meta data
struct ts3sc_data_ftcreatedir d; ///< data
};
/** Structure that contains the command data for an ftdeletefile message */
struct ts3sc_data_ftdeletefile {
uint64 channelID; ///< The channel ID where the file is to be deleted
};
/** Structure that contains the repeat command data for an ftdeletefile message */
struct ts3sc_array_ftdeletefile {
const char* fileName; ///< The file name to be deleted
};
/** Structure that contains the meta data for an ftdeletefile message */
struct ts3sc_meta_ftdeletefile {
int RESERVED; ///< This is here because C forbids empty structs. DO NOT USE
};
/** C Structure that contains the meta data and data for an ftdeletefile message */
struct ts3sc_ftdeletefile {
struct ts3sc_meta_ftdeletefile m; ///< meta data
struct ts3sc_data_ftdeletefile d; ///< data
int r_size; ///< number of items in r
struct ts3sc_array_ftdeletefile* r; ///< repeated data
};
/** Structure that contains the command data for an ftgetfileinfo message */
struct ts3sc_data_ftgetfileinfo {
int RESERVED; ///< This is here because C forbids empty structs. DO NOT USE
};
/** Structure that contains the repeat command data for an ftgetfileinfo message */
struct ts3sc_array_ftgetfileinfo {
uint64 channelID; ///< The channel ID where the file is located
const char* fileName; ///< utf8 encoded c string containing the file name
};
/** Structure that contains the meta data for an ftgetfileinfo message */
struct ts3sc_meta_ftgetfileinfo {
int RESERVED; /**<This is here because C forbids empty structs. DO NOT USE*/
};
/** C Structure that contains the meta data and data for an ftgetfileinfo message */
struct ts3sc_ftgetfileinfo {
struct ts3sc_meta_ftgetfileinfo m; ///< meta data
struct ts3sc_data_ftgetfileinfo d; ///< data
int r_size; ///< number of items in r
struct ts3sc_array_ftgetfileinfo* r; ///< repeated data
};
/** Structure that contains the command data for an ftgetfilelist message */
struct ts3sc_data_ftgetfilelist {
uint64 channelID; ///< The channel ID
const char* path; ///< utf8 encoded c string containing the path to get the files and directories in
};
/** Structure that contains the meta data for an ftgetfilelist message */
struct ts3sc_meta_ftgetfilelist {
int RESERVED; ///< This is here because C forbids empty structs. DO NOT USE
};
/** C Structure that contains the meta data and data for an ftgetfilelist message */
struct ts3sc_ftgetfilelist {
struct ts3sc_meta_ftgetfilelist m; ///< meta data
struct ts3sc_data_ftgetfilelist d; ///< data
};
/** Structure that contains the command data for an ftinitdownload message */
struct ts3sc_data_ftinitdownload {
const char* fileName; ///< The file name
uint64 channelID; ///< The channel ID where the file is to be downloaded from
};
/** Structure that contains the meta data for an ftinitdownload message */
struct ts3sc_meta_ftinitdownload {
int RESERVED; ///< This is here because C forbids empty structs. DO NOT USE
};
/** C Structure that contains the meta data and data for an ftinitdownload message */
struct ts3sc_ftinitdownload {
struct ts3sc_meta_ftinitdownload m; ///< meta data
struct ts3sc_data_ftinitdownload d; ///< data
};
/** Structure that contains the command data for an ftinitupload message */
struct ts3sc_data_ftinitupload {
const char* fileName; ///< The file name
uint64 fileSize; ///< The file size
uint64 channelID; ///< The channel ID where the file is to be uploaded
int overwrite; ///< Set to 1 to overwrite files, 0 to prevent overwrites. Mutually exclusive with resume.
int resume; ///< Set to 1 to resume an existing upload, 0 to start from scratch. Mutually exclusive with overwrite
};
/** Structure that contains the meta data for an ftinitupload message */
struct ts3sc_meta_ftinitupload {
int RESERVED; ///< This is here because C forbids empty structs. DO NOT USE
};
/** C Structure that contains the meta data and data for an ftinitupload message */
struct ts3sc_ftinitupload {
struct ts3sc_meta_ftinitupload m; ///< message meta data
struct ts3sc_data_ftinitupload d; ///< message data
};
/** Structure that contains the command data for an ftrenamefile message */
struct ts3sc_data_ftrenamefile {
uint64 fromChannelID; ///< The channel ID where the file is located now
uint64 toChannelID; ///< The channel ID where the file is to be moved to
const char* oldFileName; ///< utf8 encoded c string containing the current file name
const char* newFileName; ///< utf8 encoded c string containing the new file name
};
/** Structure that contains the meta data for an ftrenamefile message */
struct ts3sc_meta_ftrenamefile {
unsigned int has_toChannelID : 1; ///< boolean. 1 if the file is to be moved to a different channel.
};
/** C Structure that contains the meta data and data for an ftrenamefile message */
struct ts3sc_ftrenamefile {
struct ts3sc_meta_ftrenamefile m; ///< message meta data
struct ts3sc_data_ftrenamefile d; ///< message data
};
#ifdef __cplusplus
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
#ifndef SERVERLIB_PUBLICDEFINITIONS_H
#define SERVERLIB_PUBLICDEFINITIONS_H
#endif //SERVERLIB_PUBLICDEFINITIONS_H