#![allow(dead_code)]
#![cfg_attr(rustfmt, rustfmt::skip)]
use std;
use std::os::raw::*;
pub const MAX_SIZE_CHANNEL_NAME: usize = 40;
pub const MAX_SIZE_VIRTUALSERVER_NAME: usize = 40;
pub const MAX_SIZE_CLIENT_NICKNAME: usize = 40;
pub const MIN_SIZE_CLIENT_NICKNAME: usize = 3;
pub const MAX_SIZE_REASON_MESSAGE: usize = 80;
pub const MAX_SIZE_CLIENT_NICKNAME_NONSDK: usize = 30;
pub const MIN_SIZE_CLIENT_NICKNAME_NONSDK: usize = 3;
pub const MAX_SIZE_AWAY_MESSAGE: usize = 80;
pub const MAX_SIZE_GROUP_NAME: usize = 30;
pub const MAX_SIZE_TALK_REQUEST_MESSAGE: usize = 50;
pub const MAX_SIZE_COMPLAIN_MESSAGE: usize = 200;
pub const MAX_SIZE_CLIENT_DESCRIPTION: usize = 200;
pub const MAX_SIZE_HOST_MESSAGE: usize = 200;
pub const MAX_SIZE_HOSTBUTTON_TOOLTIP: usize = 50;
pub const MAX_SIZE_POKE_MESSAGE: usize = 100;
pub const MAX_SIZE_OFFLINE_MESSAGE: usize = 4096;
pub const MAX_SIZE_OFFLINE_MESSAGE_SUBJECT: usize = 200;
pub const MAX_SIZE_USER_TAG: usize = 100;
pub const MAX_SIZE_TEXTMESSAGE: usize = 8192;
pub const MAX_SIZE_CHANNEL_TOPIC: usize = 255;
pub const MAX_SIZE_CHANNEL_DESCRIPTION: usize = 8192;
pub const MAX_SIZE_VIRTUALSERVER_WELCOMEMESSAGE: usize = 1024;
pub const MAX_SIZE_VIRTUALSERVER_HOSTBANNER_GFX_URL: usize = 2000;
pub const SIZE_MYTSID: usize = 44;
pub const MIN_SECONDS_CLIENTID_REUSE: usize = 300;
pub const MAX_VARIABLES_EXPORT_COUNT: usize = 64;
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum Visibility {
Enter = 0,
Retain,
Leave,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ConnectStatus {
Disconnected = 0,
Connecting,
Connected,
ConnectionEstablishing,
ConnectionEstablished,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum LocalTestMode {
Off = 0,
VoiceLocalOnly,
VoiceLocalAndRemote,
TalkStatusChangesOnly,
}
bitflags! {
#[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Copy)]
pub struct Speaker: c_uint {
const SPEAKER_FRONT_LEFT = 0x00001;
const SPEAKER_FRONT_RIGHT = 0x00002;
const SPEAKER_FRONT_CENTER = 0x00004;
const SPEAKER_LOW_FREQUENCY = 0x00008;
const SPEAKER_BACK_LEFT = 0x00010;
const SPEAKER_BACK_RIGHT = 0x00020;
const SPEAKER_FRONT_LEFT_OF_CENTER = 0x00040;
const SPEAKER_FRONT_RIGHT_OF_CENTER = 0x00080;
const SPEAKER_BACK_CENTER = 0x00100;
const SPEAKER_SIDE_LEFT = 0x00200;
const SPEAKER_SIDE_RIGHT = 0x00400;
const SPEAKER_TOP_CENTER = 0x00800;
const SPEAKER_TOP_FRONT_LEFT = 0x01000;
const SPEAKER_TOP_FRONT_CENTER = 0x02000;
const SPEAKER_TOP_FRONT_RIGHT = 0x04000;
const SPEAKER_TOP_BACK_LEFT = 0x08000;
const SPEAKER_TOP_BACK_CENTER = 0x10000;
const SPEAKER_TOP_BACK_RIGHT = 0x20000;
const SPEAKER_HEADPHONES_LEFT = 0x10000000;
const SPEAKER_HEADPHONES_RIGHT = 0x20000000;
const SPEAKER_MONO = 0x40000000;
}}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum TalkStatus {
NotTalking = 0,
Talking = 1,
TalkingWhileDisabled = 2,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum CodecType {
SpeexNarrowband = 0,
SpeexWideband,
SpeexUltrawideband,
CeltMono,
OpusVoice,
OpusMusic,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum CodecEncryptionMode {
PerChannel = 0,
ForcedOff,
ForcedOn,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum TextMessageTargetMode {
Client = 1,
Channel,
Server,
Max,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum MuteInputStatus {
None = 0,
Muted,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum MuteOutputStatus {
None = 0,
Muted,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum HardwareInputStatus {
Disabled = 0,
Enabled,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum HardwareOutputStatus {
Disabled = 0,
Enabled,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum InputDeactivationStatus {
Active = 0,
Deactivated = 1,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ReasonIdentifier {
None = 0,
Moved = 1,
Subscription = 2,
LostConnection = 3,
KickChannel = 4,
KickServer = 5,
KickServerBan = 6,
Serverstop = 7,
Clientdisconnect = 8,
Channelupdate = 9,
Channeledit = 10,
ClientdisconnectServerShutdown = 11,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ProtocolEncryptionCipher {
Aes128 = 0,
Aes256,
EndMarker,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ChannelProperties {
Name = 0,
Topic,
Description,
Password,
Codec,
CodecQuality,
MaxClients,
MaxFamilyClients,
Order,
FlagPermanent,
FlagSemiPermanent,
FlagDefault,
FlagPassword,
CodecLatencyFactor,
CodecIsUnencrypted,
SecuritySalt,
DeleteDelay,
UniqueIdentifier,
Dummy3,
Dummy4,
Dummy5,
Dummy6,
Dummy7,
FlagMaxClientsUnlimited,
FlagMaxFamilyClientsUnlimited,
FlagMaxFamilyClientsInherited,
FlagAreSubscribed,
Filepath,
NeededTalkPower,
ForcedSilence,
NamePhonetic,
IconId,
BannerGfxUrl,
BannerMode,
PermissionHints,
StorageQuota,
Endmarker,
DeleteDelayDeadline = 127,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ClientProperties {
UniqueIdentifier = 0,
Nickname,
Version,
Platform,
FlagTalking,
InputMuted,
OutputMuted,
OutputOnlyMuted,
InputHardware,
OutputHardware,
InputDeactivated,
IdleTime,
DefaultChannel,
DefaultChannelPassword,
ServerPassword,
MetaData,
IsMuted,
IsRecording,
VolumeModificator,
VersionSign,
SecurityHash,
EncryptionCiphers,
Dummy4,
Dummy5,
Dummy6,
Dummy7,
Dummy8,
Dummy9,
KeyOffset,
LastVarRequest,
LoginName,
LoginPassword,
DatabaseId,
ChannelGroupId,
Servergroups,
Created,
Lastconnected,
Totalconnections,
Away,
AwayMessage,
Type,
FlagAvatar,
TalkPower,
TalkRequest,
TalkRequestMsg,
Description,
IsTalker,
MonthBytesUploaded,
MonthBytesDownloaded,
TotalBytesUploaded,
TotalBytesDownloaded,
IsPrioritySpeaker,
UnreadMessages,
NicknamePhonetic,
NeededServerqueryViewPower,
DefaultToken,
IconId,
IsChannelCommander,
Country,
ChannelGroupInheritedChannelId,
Badges,
MyteamspeakId,
Integrations,
ActiveIntegrationsInfo,
MytsAvatar,
SignedBadges,
PermissionHints,
UserTag,
Endmarker,
HwId = 127,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum VirtualServerProperties {
UniqueIdentifier = 0,
Name,
Welcomemessage,
Platform,
Version,
MaxClients,
Password,
ClientsOnline,
ChannelsOnline,
Created,
Uptime,
CodecEncryptionMode,
EncryptionCiphers,
Dummy1,
Dummy2,
Dummy3,
Dummy4,
Dummy5,
Dummy6,
Dummy7,
Dummy8,
Keypair,
Hostmessage,
HostmessageMode,
Filebase,
DefaultServerGroup,
DefaultChannelGroup,
FlagPassword,
DefaultChannelAdminGroup,
MaxDownloadTotalBandwidth,
MaxUploadTotalBandwidth,
HostbannerUrl,
HostbannerGfxUrl,
HostbannerGfxInterval,
ComplainAutobanCount,
ComplainAutobanTime,
ComplainRemoveTime,
MinClientsInChannelBeforeForcedSilence,
PrioritySpeakerDimmModificator,
Id,
AntifloodPointsTickReduce,
AntifloodPointsNeededCommandBlock,
AntifloodPointsNeededIpBlock,
ClientConnections,
QueryClientConnections,
HostbuttonTooltip,
HostbuttonUrl,
HostbuttonGfxUrl,
QueryclientsOnline,
DownloadQuota,
UploadQuota,
MonthBytesDownloaded,
MonthBytesUploaded,
TotalBytesDownloaded,
TotalBytesUploaded,
Port,
Autostart,
MachineId,
NeededIdentitySecurityLevel,
LogClient,
LogQuery,
LogChannel,
LogPermissions,
LogServer,
LogFiletransfer,
MinClientVersion,
NamePhonetic,
IconId,
ReservedSlots,
TotalPacketlossSpeech,
TotalPacketlossKeepalive,
TotalPacketlossControl,
TotalPacketlossTotal,
TotalPing,
Ip,
WeblistEnabled,
AutogeneratedPrivilegekey,
AskForPrivilegekey,
HostbannerMode,
ChannelTempDeleteDelayDefault,
MinAndroidVersion,
MinIosVersion,
MinWinphoneVersion,
Nickname,
AccountingToken,
ProtocolVerifyKeypair,
AntifloodPointsNeededPluginBlock,
CapabilityExtensions,
StorageQuota,
WebrtcCertificate,
WebrtcPrivateKey,
Uuid,
AdministrativeDomain,
CanonicalName,
MytsidConnectOnly,
MaxHomebases,
HomebaseStorageQuota,
Endmarker,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ConnectionProperties {
Ping = 0,
PingDeviation,
ConnectedTime,
IdleTime,
ClientIp,
ClientPort,
ServerIp,
ServerPort,
PacketsSentSpeech,
PacketsSentKeepalive,
PacketsSentControl,
PacketsSentTotal,
BytesSentSpeech,
BytesSentKeepalive,
BytesSentControl,
BytesSentTotal,
PacketsReceivedSpeech,
PacketsReceivedKeepalive,
PacketsReceivedControl,
PacketsReceivedTotal,
BytesReceivedSpeech,
BytesReceivedKeepalive,
BytesReceivedControl,
BytesReceivedTotal,
PacketlossSpeech,
PacketlossKeepalive,
PacketlossControl,
PacketlossTotal,
Server2ClientPacketlossSpeech,
Server2ClientPacketlossKeepalive,
Server2ClientPacketlossControl,
Server2ClientPacketlossTotal,
Client2ServerPacketlossSpeech,
Client2ServerPacketlossKeepalive,
Client2ServerPacketlossControl,
Client2ServerPacketlossTotal,
BandwidthSentLastSecondSpeech,
BandwidthSentLastSecondKeepalive,
BandwidthSentLastSecondControl,
BandwidthSentLastSecondTotal,
BandwidthSentLastMinuteSpeech,
BandwidthSentLastMinuteKeepalive,
BandwidthSentLastMinuteControl,
BandwidthSentLastMinuteTotal,
BandwidthReceivedLastSecondSpeech,
BandwidthReceivedLastSecondKeepalive,
BandwidthReceivedLastSecondControl,
BandwidthReceivedLastSecondTotal,
BandwidthReceivedLastMinuteSpeech,
BandwidthReceivedLastMinuteKeepalive,
BandwidthReceivedLastMinuteControl,
BandwidthReceivedLastMinuteTotal,
Dummy0,
Dummy1,
Dummy2,
Dummy3,
Dummy4,
Dummy5,
Dummy6,
Dummy7,
Dummy8,
Dummy9,
FileTransferBandwidthSent,
FiletransferBandwidthReceived,
FiletransferBytesReceivedTotal,
FiletransferBytesSentTotal,
Endmarker,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum LogTypes {
None = 0,
File = 1,
Console = 2,
Userlogging = 4,
NoNetlogging = 8,
Database = 16,
Syslog = 32,
}
#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub enum LogLevel {
Critical = 0,
Error,
Warning,
Debug,
Info,
Devel,
}
#[repr(C)]
pub struct Ts3Vector {
pub x: c_float,
pub y: c_float,
pub z: c_float,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum GroupWhisperType {
Servergroup = 0,
Channelgroup = 1,
Channelcommander = 2,
Allclients = 3,
Endmarker,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum GroupWhisperTargetMode {
All = 0,
Currentchannel = 1,
Parentchannel = 2,
Allparentchannel = 3,
Channelfamily = 4,
Ancestorchannelfamily = 5,
Subchannels = 6,
Endmarker,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum MonoSoundDestination {
All = 0,
FrontCenter = 1,
FrontLeftAndRight = 2,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum SecuritySaltOptions {
CheckNickname = 1,
CheckMetaData = 2,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ClientCommand {
RequestConnectionInfo = 0,
RequestClientMove = 1,
RequestXXMuteClients = 2,
RequestClientKickFromXXX = 3,
FlushChannelCreation = 4,
FlushChannelUpdate = 5,
RequestChannelMove = 6,
RequestChannelDelete = 7,
RequestChannelDescription = 8,
RequestChannelXXSubscripeXX = 9,
RequestServerConnectionInfo = 10,
RequestSendXXXTextMsg = 11,
FileTransfer = 12,
Endmarker,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ACLType {
None = 0,
WhiteList = 1,
BlackList = 2,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum FileTransferAction {
InitServer = 0,
InitChannel = 1,
Upload = 2,
Download = 3,
Delete = 4,
CreateDir = 5,
Rename = 6,
FileList = 7,
FileInfo = 8,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum FileTransferState {
Initialising = 0,
Active,
Finished,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum FileListType {
Directory = 0,
File,
}
#[repr(C)]
pub struct VariablesExportItem {
pub item_is_valid: u8,
pub proposed_is_set: u8,
pub current: *const c_char,
pub proposed: *const c_char,
}
#[repr(C)]
pub struct VariablesExport {
pub items: [VariablesExportItem; MAX_VARIABLES_EXPORT_COUNT],
}
#[repr(C)]
pub struct ClientMiniExport {
pub id: u16,
pub channel: u64,
pub ident: *const c_char,
pub nickname: *const c_char,
}
#[repr(C)]
pub struct TransformFilePathExport {
pub channel: u64,
pub filename: *const c_char,
pub action: c_int,
pub transformed_file_name_max_size: c_int,
pub channel_path_max_size: c_int,
}
#[repr(C)]
pub struct TransformFilePathExportReturns {
pub transformed_file_name: *mut c_char,
pub channel_path: *mut c_char,
pub log_file_action: c_int,
}
#[repr(C)]
pub struct FileTransferCallbackExport {
pub client_id: u16,
pub transfer_id: u16,
pub remote_transfer_id: u16,
pub status: c_uint,
pub status_message: *const c_char,
pub remote_file_size: u64,
pub bytes: u64,
pub is_sender: c_int,
}
pub const BANDWIDTH_LIMIT_UNLIMITED: u64 = std::u64::MAX;
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum GroupShowNameTreeMode {
None = 0,
Before,
Behind,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum PluginTargetMode {
CurrentChannel = 0,
Server,
Client,
CurrentChannelSubscribedClients,
Max,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ServerBinding {
Virtualserver = 0,
Serverquery = 1,
Filetransfer = 2,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum HostmessageMode {
None = 0,
Log,
Modal,
Modalquit,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum HostbannerMode {
NoAdjust = 0,
AdjustIgnoreAspect,
AdjustKeepAspect,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ClientType {
Normal = 0,
Serverquery,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum AwayStatus {
None = 0,
Zzz,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum CommandLinePropertiesRare {
Nothing = 0,
Endmarker,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum ServerInstancePropertiesRare {
DatabaseVersion = 0,
FiletransferPort,
ServerEntropy,
MonthlyTimestamp,
MaxDownloadTotalBandwidth,
MaxUploadTotalBandwidth,
GuestServerqueryGroup,
ServerqueryFloodCommands,
ServerqueryFloodTime,
ServerqueryBanTime,
TemplateServeradminGroup,
TemplateServerdefaultGroup,
TemplateChanneladminGroup,
TemplateChannelDefaultGroup,
PermissionsVersion,
PendingConnectionsPerIp,
ServerqueryMaxConnectionsPerIp,
MaxHomebases,
Endmarker,
}
#[repr(C)]
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum LicenseIssue {
Blacklisted,
Greylisted,
}
bitflags! {
pub struct BBCodeTags: u32 {
const BBCODE_B = 0x00000001;
const BBCODE_I = 0x00000002;
const BBCODE_U = 0x00000004;
const BBCODE_S = 0x00000008;
const BBCODE_SUP = 0x00000010;
const BBCODE_SUB = 0x00000020;
const BBCODE_COLOR = 0x00000040;
const BBCODE_SIZE = 0x00000080;
const BBCODE_GROUP_TEXT = 0x000000FF;
const BBCODE_LEFT = 0x00001000;
const BBCODE_RIGHT = 0x00002000;
const BBCODE_CENTER = 0x00004000;
const BBCODE_GROUP_ALIGN = 0x00007000;
const BBCODE_URL = 0x00010000;
const BBCODE_IMAGE = 0x00020000;
const BBCODE_HR = 0x00040000;
const BBCODE_LIST = 0x00100000;
const BBCODE_LISTITEM = 0x00200000;
const BBCODE_GROUP_LIST = 0x00300000;
const BBCODE_TABLE = 0x00400000;
const BBCODE_TR = 0x00800000;
const BBCODE_TH = 0x01000000;
const BBCODE_TD = 0x02000000;
const BBCODE_GROUP_TABLE = 0x03C00000;
const BBCODE_DEF_SIMPLE = Self::BBCODE_B.bits() | Self::BBCODE_I.bits()
| Self::BBCODE_U.bits() | Self::BBCODE_S.bits() | Self::BBCODE_SUP.bits()
| Self::BBCODE_SUB.bits() | Self::BBCODE_COLOR.bits()
| Self::BBCODE_URL.bits();
const BBCODE_DEF_SIMPLE_IMG = Self::BBCODE_DEF_SIMPLE.bits()
| Self::BBCODE_IMAGE.bits();
const BBCODE_DEF_EXTENDED = Self::BBCODE_GROUP_TEXT.bits()
| Self::BBCODE_GROUP_ALIGN.bits() | Self::BBCODE_URL.bits()
| Self::BBCODE_IMAGE.bits() | Self::BBCODE_HR.bits()
| Self::BBCODE_GROUP_LIST.bits() | Self::BBCODE_GROUP_TABLE.bits();
}}
bitflags! {
pub struct MytsDataUnsetFlags: u32 {
const BADGES = 1;
const AVATAR = 2;
}}