-
- Read the Docs
- v: ${config.versions.current.slug}
-
-
-
-
- ${renderLanguages(config)}
- ${renderVersions(config)}
- ${renderDownloads(config)}
-
- On Read the Docs
-
- Project Home
-
-
- Builds
-
-
- Downloads
-
-
-
- Search
-
-
-
-
-
-
- Hosted by Read the Docs
-
-
-
- `;
-
- // Inject the generated flyout into the body HTML element.
- document.body.insertAdjacentHTML("beforeend", flyout);
-
- // Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout.
- document
- .querySelector("#flyout-search-form")
- .addEventListener("focusin", () => {
- const event = new CustomEvent("readthedocs-search-show");
- document.dispatchEvent(event);
- });
- })
-}
-
-if (themeLanguageSelector || themeVersionSelector) {
- function onSelectorSwitch(event) {
- const option = event.target.selectedIndex;
- const item = event.target.options[option];
- window.location.href = item.dataset.url;
- }
-
- document.addEventListener("readthedocs-addons-data-ready", function (event) {
- const config = event.detail.data();
-
- const versionSwitch = document.querySelector(
- "div.switch-menus > div.version-switch",
- );
- if (themeVersionSelector) {
- let versions = config.versions.active;
- if (config.versions.current.hidden || config.versions.current.type === "external") {
- versions.unshift(config.versions.current);
- }
- const versionSelect = `
-
- ${versions
- .map(
- (version) => `
-
- ${version.slug}
- `,
- )
- .join("\n")}
-
- `;
-
- versionSwitch.innerHTML = versionSelect;
- versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
- }
-
- const languageSwitch = document.querySelector(
- "div.switch-menus > div.language-switch",
- );
-
- if (themeLanguageSelector) {
- if (config.projects.translations.length) {
- // Add the current language to the options on the selector
- let languages = config.projects.translations.concat(
- config.projects.current,
- );
- languages = languages.sort((a, b) =>
- a.language.name.localeCompare(b.language.name),
- );
-
- const languageSelect = `
-
- ${languages
- .map(
- (language) => `
-
- ${language.language.name}
- `,
- )
- .join("\n")}
-
- `;
-
- languageSwitch.innerHTML = languageSelect;
- languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch);
- }
- else {
- languageSwitch.remove();
- }
- }
- });
-}
-
-document.addEventListener("readthedocs-addons-data-ready", function (event) {
- // Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav.
- document
- .querySelector("[role='search'] input")
- .addEventListener("focusin", () => {
- const event = new CustomEvent("readthedocs-search-show");
- document.dispatchEvent(event);
- });
-});
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/_static/language_data.js b/docs/teamspeak-sdk-3.5.2/doc/_static/language_data.js
deleted file mode 100644
index c7fe6c6..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/_static/language_data.js
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * This script contains the language-specific data used by searchtools.js,
- * namely the list of stopwords, stemmer, scorer and splitter.
- */
-
-var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
-
-
-/* Non-minified version is copied as a separate JS file, if available */
-
-/**
- * Porter Stemmer
- */
-var Stemmer = function() {
-
- var step2list = {
- ational: 'ate',
- tional: 'tion',
- enci: 'ence',
- anci: 'ance',
- izer: 'ize',
- bli: 'ble',
- alli: 'al',
- entli: 'ent',
- eli: 'e',
- ousli: 'ous',
- ization: 'ize',
- ation: 'ate',
- ator: 'ate',
- alism: 'al',
- iveness: 'ive',
- fulness: 'ful',
- ousness: 'ous',
- aliti: 'al',
- iviti: 'ive',
- biliti: 'ble',
- logi: 'log'
- };
-
- var step3list = {
- icate: 'ic',
- ative: '',
- alize: 'al',
- iciti: 'ic',
- ical: 'ic',
- ful: '',
- ness: ''
- };
-
- var c = "[^aeiou]"; // consonant
- var v = "[aeiouy]"; // vowel
- var C = c + "[^aeiouy]*"; // consonant sequence
- var V = v + "[aeiou]*"; // vowel sequence
-
- var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
- var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
- var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
- var s_v = "^(" + C + ")?" + v; // vowel in stem
-
- this.stemWord = function (w) {
- var stem;
- var suffix;
- var firstch;
- var origword = w;
-
- if (w.length < 3)
- return w;
-
- var re;
- var re2;
- var re3;
- var re4;
-
- firstch = w.substr(0,1);
- if (firstch == "y")
- w = firstch.toUpperCase() + w.substr(1);
-
- // Step 1a
- re = /^(.+?)(ss|i)es$/;
- re2 = /^(.+?)([^s])s$/;
-
- if (re.test(w))
- w = w.replace(re,"$1$2");
- else if (re2.test(w))
- w = w.replace(re2,"$1$2");
-
- // Step 1b
- re = /^(.+?)eed$/;
- re2 = /^(.+?)(ed|ing)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- re = new RegExp(mgr0);
- if (re.test(fp[1])) {
- re = /.$/;
- w = w.replace(re,"");
- }
- }
- else if (re2.test(w)) {
- var fp = re2.exec(w);
- stem = fp[1];
- re2 = new RegExp(s_v);
- if (re2.test(stem)) {
- w = stem;
- re2 = /(at|bl|iz)$/;
- re3 = new RegExp("([^aeiouylsz])\\1$");
- re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
- if (re2.test(w))
- w = w + "e";
- else if (re3.test(w)) {
- re = /.$/;
- w = w.replace(re,"");
- }
- else if (re4.test(w))
- w = w + "e";
- }
- }
-
- // Step 1c
- re = /^(.+?)y$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(s_v);
- if (re.test(stem))
- w = stem + "i";
- }
-
- // Step 2
- re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- suffix = fp[2];
- re = new RegExp(mgr0);
- if (re.test(stem))
- w = stem + step2list[suffix];
- }
-
- // Step 3
- re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- suffix = fp[2];
- re = new RegExp(mgr0);
- if (re.test(stem))
- w = stem + step3list[suffix];
- }
-
- // Step 4
- re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
- re2 = /^(.+?)(s|t)(ion)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(mgr1);
- if (re.test(stem))
- w = stem;
- }
- else if (re2.test(w)) {
- var fp = re2.exec(w);
- stem = fp[1] + fp[2];
- re2 = new RegExp(mgr1);
- if (re2.test(stem))
- w = stem;
- }
-
- // Step 5
- re = /^(.+?)e$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(mgr1);
- re2 = new RegExp(meq1);
- re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
- if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
- w = stem;
- }
- re = /ll$/;
- re2 = new RegExp(mgr1);
- if (re.test(w) && re2.test(w)) {
- re = /.$/;
- w = w.replace(re,"");
- }
-
- // and turn initial Y back to y
- if (firstch == "y")
- w = firstch.toLowerCase() + w.substr(1);
- return w;
- }
-}
-
diff --git a/docs/teamspeak-sdk-3.5.2/doc/_static/logo.png b/docs/teamspeak-sdk-3.5.2/doc/_static/logo.png
deleted file mode 100644
index 0750822..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/doc/_static/logo.png and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/doc/_static/minus.png b/docs/teamspeak-sdk-3.5.2/doc/_static/minus.png
deleted file mode 100644
index d96755f..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/doc/_static/minus.png and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/doc/_static/plus.png b/docs/teamspeak-sdk-3.5.2/doc/_static/plus.png
deleted file mode 100644
index 7107cec..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/doc/_static/plus.png and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/doc/_static/pygments.css b/docs/teamspeak-sdk-3.5.2/doc/_static/pygments.css
deleted file mode 100644
index 6f8b210..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/_static/pygments.css
+++ /dev/null
@@ -1,75 +0,0 @@
-pre { line-height: 125%; }
-td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
-span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
-td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
-span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
-.highlight .hll { background-color: #ffffcc }
-.highlight { background: #f8f8f8; }
-.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #F00 } /* Error */
-.highlight .k { color: #008000; font-weight: bold } /* Keyword */
-.highlight .o { color: #666 } /* Operator */
-.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
-.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #9C6500 } /* Comment.Preproc */
-.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
-.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
-.highlight .gr { color: #E40000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #008400 } /* Generic.Inserted */
-.highlight .go { color: #717171 } /* Generic.Output */
-.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #04D } /* Generic.Traceback */
-.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #008000 } /* Keyword.Pseudo */
-.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #B00040 } /* Keyword.Type */
-.highlight .m { color: #666 } /* Literal.Number */
-.highlight .s { color: #BA2121 } /* Literal.String */
-.highlight .na { color: #687822 } /* Name.Attribute */
-.highlight .nb { color: #008000 } /* Name.Builtin */
-.highlight .nc { color: #00F; font-weight: bold } /* Name.Class */
-.highlight .no { color: #800 } /* Name.Constant */
-.highlight .nd { color: #A2F } /* Name.Decorator */
-.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
-.highlight .nf { color: #00F } /* Name.Function */
-.highlight .nl { color: #767600 } /* Name.Label */
-.highlight .nn { color: #00F; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #19177C } /* Name.Variable */
-.highlight .ow { color: #A2F; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #BBB } /* Text.Whitespace */
-.highlight .mb { color: #666 } /* Literal.Number.Bin */
-.highlight .mf { color: #666 } /* Literal.Number.Float */
-.highlight .mh { color: #666 } /* Literal.Number.Hex */
-.highlight .mi { color: #666 } /* Literal.Number.Integer */
-.highlight .mo { color: #666 } /* Literal.Number.Oct */
-.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
-.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
-.highlight .sc { color: #BA2121 } /* Literal.String.Char */
-.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
-.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
-.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
-.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
-.highlight .sx { color: #008000 } /* Literal.String.Other */
-.highlight .sr { color: #A45A77 } /* Literal.String.Regex */
-.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
-.highlight .ss { color: #19177C } /* Literal.String.Symbol */
-.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
-.highlight .fm { color: #00F } /* Name.Function.Magic */
-.highlight .vc { color: #19177C } /* Name.Variable.Class */
-.highlight .vg { color: #19177C } /* Name.Variable.Global */
-.highlight .vi { color: #19177C } /* Name.Variable.Instance */
-.highlight .vm { color: #19177C } /* Name.Variable.Magic */
-.highlight .il { color: #666 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/_static/searchtools.js b/docs/teamspeak-sdk-3.5.2/doc/_static/searchtools.js
deleted file mode 100644
index 2c774d1..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/_static/searchtools.js
+++ /dev/null
@@ -1,632 +0,0 @@
-/*
- * Sphinx JavaScript utilities for the full-text search.
- */
-"use strict";
-
-/**
- * Simple result scoring code.
- */
-if (typeof Scorer === "undefined") {
- var Scorer = {
- // Implement the following function to further tweak the score for each result
- // The function takes a result array [docname, title, anchor, descr, score, filename]
- // and returns the new score.
- /*
- score: result => {
- const [docname, title, anchor, descr, score, filename, kind] = result
- return score
- },
- */
-
- // query matches the full name of an object
- objNameMatch: 11,
- // or matches in the last dotted part of the object name
- objPartialMatch: 6,
- // Additive scores depending on the priority of the object
- objPrio: {
- 0: 15, // used to be importantResults
- 1: 5, // used to be objectResults
- 2: -5, // used to be unimportantResults
- },
- // Used when the priority is not in the mapping.
- objPrioDefault: 0,
-
- // query found in title
- title: 15,
- partialTitle: 7,
- // query found in terms
- term: 5,
- partialTerm: 2,
- };
-}
-
-// Global search result kind enum, used by themes to style search results.
-class SearchResultKind {
- static get index() { return "index"; }
- static get object() { return "object"; }
- static get text() { return "text"; }
- static get title() { return "title"; }
-}
-
-const _removeChildren = (element) => {
- while (element && element.lastChild) element.removeChild(element.lastChild);
-};
-
-/**
- * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping
- */
-const _escapeRegExp = (string) =>
- string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
-
-const _displayItem = (item, searchTerms, highlightTerms) => {
- const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
- const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
- const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
- const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
- const contentRoot = document.documentElement.dataset.content_root;
-
- const [docName, title, anchor, descr, score, _filename, kind] = item;
-
- let listItem = document.createElement("li");
- // Add a class representing the item's type:
- // can be used by a theme's CSS selector for styling
- // See SearchResultKind for the class names.
- listItem.classList.add(`kind-${kind}`);
- let requestUrl;
- let linkUrl;
- if (docBuilder === "dirhtml") {
- // dirhtml builder
- let dirname = docName + "/";
- if (dirname.match(/\/index\/$/))
- dirname = dirname.substring(0, dirname.length - 6);
- else if (dirname === "index/") dirname = "";
- requestUrl = contentRoot + dirname;
- linkUrl = requestUrl;
- } else {
- // normal html builders
- requestUrl = contentRoot + docName + docFileSuffix;
- linkUrl = docName + docLinkSuffix;
- }
- let linkEl = listItem.appendChild(document.createElement("a"));
- linkEl.href = linkUrl + anchor;
- linkEl.dataset.score = score;
- linkEl.innerHTML = title;
- if (descr) {
- listItem.appendChild(document.createElement("span")).innerHTML =
- " (" + descr + ")";
- // highlight search terms in the description
- if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
- highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
- }
- else if (showSearchSummary)
- fetch(requestUrl)
- .then((responseData) => responseData.text())
- .then((data) => {
- if (data)
- listItem.appendChild(
- Search.makeSearchSummary(data, searchTerms, anchor)
- );
- // highlight search terms in the summary
- if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
- highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted"));
- });
- Search.output.appendChild(listItem);
-};
-const _finishSearch = (resultCount) => {
- Search.stopPulse();
- Search.title.innerText = _("Search Results");
- if (!resultCount)
- Search.status.innerText = Documentation.gettext(
- "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
- );
- else
- Search.status.innerText = Documentation.ngettext(
- "Search finished, found one page matching the search query.",
- "Search finished, found ${resultCount} pages matching the search query.",
- resultCount,
- ).replace('${resultCount}', resultCount);
-};
-const _displayNextItem = (
- results,
- resultCount,
- searchTerms,
- highlightTerms,
-) => {
- // results left, load the summary and display it
- // this is intended to be dynamic (don't sub resultsCount)
- if (results.length) {
- _displayItem(results.pop(), searchTerms, highlightTerms);
- setTimeout(
- () => _displayNextItem(results, resultCount, searchTerms, highlightTerms),
- 5
- );
- }
- // search finished, update title and status message
- else _finishSearch(resultCount);
-};
-// Helper function used by query() to order search results.
-// Each input is an array of [docname, title, anchor, descr, score, filename, kind].
-// Order the results by score (in opposite order of appearance, since the
-// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
-const _orderResultsByScoreThenName = (a, b) => {
- const leftScore = a[4];
- const rightScore = b[4];
- if (leftScore === rightScore) {
- // same score: sort alphabetically
- const leftTitle = a[1].toLowerCase();
- const rightTitle = b[1].toLowerCase();
- if (leftTitle === rightTitle) return 0;
- return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
- }
- return leftScore > rightScore ? 1 : -1;
-};
-
-/**
- * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
- * custom function per language.
- *
- * The regular expression works by splitting the string on consecutive characters
- * that are not Unicode letters, numbers, underscores, or emoji characters.
- * This is the same as ``\W+`` in Python, preserving the surrogate pair area.
- */
-if (typeof splitQuery === "undefined") {
- var splitQuery = (query) => query
- .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu)
- .filter(term => term) // remove remaining empty strings
-}
-
-/**
- * Search Module
- */
-const Search = {
- _index: null,
- _queued_query: null,
- _pulse_status: -1,
-
- htmlToText: (htmlString, anchor) => {
- const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
- for (const removalQuery of [".headerlink", "script", "style"]) {
- htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
- }
- if (anchor) {
- const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
- if (anchorContent) return anchorContent.textContent;
-
- console.warn(
- `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
- );
- }
-
- // if anchor not specified or not found, fall back to main content
- const docContent = htmlElement.querySelector('[role="main"]');
- if (docContent) return docContent.textContent;
-
- console.warn(
- "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
- );
- return "";
- },
-
- init: () => {
- const query = new URLSearchParams(window.location.search).get("q");
- document
- .querySelectorAll('input[name="q"]')
- .forEach((el) => (el.value = query));
- if (query) Search.performSearch(query);
- },
-
- loadIndex: (url) =>
- (document.body.appendChild(document.createElement("script")).src = url),
-
- setIndex: (index) => {
- Search._index = index;
- if (Search._queued_query !== null) {
- const query = Search._queued_query;
- Search._queued_query = null;
- Search.query(query);
- }
- },
-
- hasIndex: () => Search._index !== null,
-
- deferQuery: (query) => (Search._queued_query = query),
-
- stopPulse: () => (Search._pulse_status = -1),
-
- startPulse: () => {
- if (Search._pulse_status >= 0) return;
-
- const pulse = () => {
- Search._pulse_status = (Search._pulse_status + 1) % 4;
- Search.dots.innerText = ".".repeat(Search._pulse_status);
- if (Search._pulse_status >= 0) window.setTimeout(pulse, 500);
- };
- pulse();
- },
-
- /**
- * perform a search for something (or wait until index is loaded)
- */
- performSearch: (query) => {
- // create the required interface elements
- const searchText = document.createElement("h2");
- searchText.textContent = _("Searching");
- const searchSummary = document.createElement("p");
- searchSummary.classList.add("search-summary");
- searchSummary.innerText = "";
- const searchList = document.createElement("ul");
- searchList.setAttribute("role", "list");
- searchList.classList.add("search");
-
- const out = document.getElementById("search-results");
- Search.title = out.appendChild(searchText);
- Search.dots = Search.title.appendChild(document.createElement("span"));
- Search.status = out.appendChild(searchSummary);
- Search.output = out.appendChild(searchList);
-
- const searchProgress = document.getElementById("search-progress");
- // Some themes don't use the search progress node
- if (searchProgress) {
- searchProgress.innerText = _("Preparing search...");
- }
- Search.startPulse();
-
- // index already loaded, the browser was quick!
- if (Search.hasIndex()) Search.query(query);
- else Search.deferQuery(query);
- },
-
- _parseQuery: (query) => {
- // stem the search terms and add them to the correct list
- const stemmer = new Stemmer();
- const searchTerms = new Set();
- const excludedTerms = new Set();
- const highlightTerms = new Set();
- const objectTerms = new Set(splitQuery(query.toLowerCase().trim()));
- splitQuery(query.trim()).forEach((queryTerm) => {
- const queryTermLower = queryTerm.toLowerCase();
-
- // maybe skip this "word"
- // stopwords array is from language_data.js
- if (
- stopwords.indexOf(queryTermLower) !== -1 ||
- queryTerm.match(/^\d+$/)
- )
- return;
-
- // stem the word
- let word = stemmer.stemWord(queryTermLower);
- // select the correct list
- if (word[0] === "-") excludedTerms.add(word.substr(1));
- else {
- searchTerms.add(word);
- highlightTerms.add(queryTermLower);
- }
- });
-
- if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
- localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
- }
-
- // console.debug("SEARCH: searching for:");
- // console.info("required: ", [...searchTerms]);
- // console.info("excluded: ", [...excludedTerms]);
-
- return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
- },
-
- /**
- * execute search (requires search index to be loaded)
- */
- _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
- const filenames = Search._index.filenames;
- const docNames = Search._index.docnames;
- const titles = Search._index.titles;
- const allTitles = Search._index.alltitles;
- const indexEntries = Search._index.indexentries;
-
- // Collect multiple result groups to be sorted separately and then ordered.
- // Each is an array of [docname, title, anchor, descr, score, filename, kind].
- const normalResults = [];
- const nonMainIndexResults = [];
-
- _removeChildren(document.getElementById("search-progress"));
-
- const queryLower = query.toLowerCase().trim();
- for (const [title, foundTitles] of Object.entries(allTitles)) {
- if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
- for (const [file, id] of foundTitles) {
- const score = Math.round(Scorer.title * queryLower.length / title.length);
- const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
- normalResults.push([
- docNames[file],
- titles[file] !== title ? `${titles[file]} > ${title}` : title,
- id !== null ? "#" + id : "",
- null,
- score + boost,
- filenames[file],
- SearchResultKind.title,
- ]);
- }
- }
- }
-
- // search for explicit entries in index directives
- for (const [entry, foundEntries] of Object.entries(indexEntries)) {
- if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
- for (const [file, id, isMain] of foundEntries) {
- const score = Math.round(100 * queryLower.length / entry.length);
- const result = [
- docNames[file],
- titles[file],
- id ? "#" + id : "",
- null,
- score,
- filenames[file],
- SearchResultKind.index,
- ];
- if (isMain) {
- normalResults.push(result);
- } else {
- nonMainIndexResults.push(result);
- }
- }
- }
- }
-
- // lookup as object
- objectTerms.forEach((term) =>
- normalResults.push(...Search.performObjectSearch(term, objectTerms))
- );
-
- // lookup as search terms in fulltext
- normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
-
- // let the scorer override scores with a custom scoring function
- if (Scorer.score) {
- normalResults.forEach((item) => (item[4] = Scorer.score(item)));
- nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
- }
-
- // Sort each group of results by score and then alphabetically by name.
- normalResults.sort(_orderResultsByScoreThenName);
- nonMainIndexResults.sort(_orderResultsByScoreThenName);
-
- // Combine the result groups in (reverse) order.
- // Non-main index entries are typically arbitrary cross-references,
- // so display them after other results.
- let results = [...nonMainIndexResults, ...normalResults];
-
- // remove duplicate search results
- // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
- let seen = new Set();
- results = results.reverse().reduce((acc, result) => {
- let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(',');
- if (!seen.has(resultStr)) {
- acc.push(result);
- seen.add(resultStr);
- }
- return acc;
- }, []);
-
- return results.reverse();
- },
-
- query: (query) => {
- const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
- const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
-
- // for debugging
- //Search.lastresults = results.slice(); // a copy
- // console.info("search results:", Search.lastresults);
-
- // print the results
- _displayNextItem(results, results.length, searchTerms, highlightTerms);
- },
-
- /**
- * search for object names
- */
- performObjectSearch: (object, objectTerms) => {
- const filenames = Search._index.filenames;
- const docNames = Search._index.docnames;
- const objects = Search._index.objects;
- const objNames = Search._index.objnames;
- const titles = Search._index.titles;
-
- const results = [];
-
- const objectSearchCallback = (prefix, match) => {
- const name = match[4]
- const fullname = (prefix ? prefix + "." : "") + name;
- const fullnameLower = fullname.toLowerCase();
- if (fullnameLower.indexOf(object) < 0) return;
-
- let score = 0;
- const parts = fullnameLower.split(".");
-
- // check for different match types: exact matches of full name or
- // "last name" (i.e. last dotted part)
- if (fullnameLower === object || parts.slice(-1)[0] === object)
- score += Scorer.objNameMatch;
- else if (parts.slice(-1)[0].indexOf(object) > -1)
- score += Scorer.objPartialMatch; // matches in last name
-
- const objName = objNames[match[1]][2];
- const title = titles[match[0]];
-
- // If more than one term searched for, we require other words to be
- // found in the name/title/description
- const otherTerms = new Set(objectTerms);
- otherTerms.delete(object);
- if (otherTerms.size > 0) {
- const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase();
- if (
- [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0)
- )
- return;
- }
-
- let anchor = match[3];
- if (anchor === "") anchor = fullname;
- else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname;
-
- const descr = objName + _(", in ") + title;
-
- // add custom score for some objects according to scorer
- if (Scorer.objPrio.hasOwnProperty(match[2]))
- score += Scorer.objPrio[match[2]];
- else score += Scorer.objPrioDefault;
-
- results.push([
- docNames[match[0]],
- fullname,
- "#" + anchor,
- descr,
- score,
- filenames[match[0]],
- SearchResultKind.object,
- ]);
- };
- Object.keys(objects).forEach((prefix) =>
- objects[prefix].forEach((array) =>
- objectSearchCallback(prefix, array)
- )
- );
- return results;
- },
-
- /**
- * search for full-text terms in the index
- */
- performTermsSearch: (searchTerms, excludedTerms) => {
- // prepare search
- const terms = Search._index.terms;
- const titleTerms = Search._index.titleterms;
- const filenames = Search._index.filenames;
- const docNames = Search._index.docnames;
- const titles = Search._index.titles;
-
- const scoreMap = new Map();
- const fileMap = new Map();
-
- // perform the search on the required terms
- searchTerms.forEach((word) => {
- const files = [];
- const arr = [
- { files: terms[word], score: Scorer.term },
- { files: titleTerms[word], score: Scorer.title },
- ];
- // add support for partial matches
- if (word.length > 2) {
- const escapedWord = _escapeRegExp(word);
- if (!terms.hasOwnProperty(word)) {
- Object.keys(terms).forEach((term) => {
- if (term.match(escapedWord))
- arr.push({ files: terms[term], score: Scorer.partialTerm });
- });
- }
- if (!titleTerms.hasOwnProperty(word)) {
- Object.keys(titleTerms).forEach((term) => {
- if (term.match(escapedWord))
- arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
- });
- }
- }
-
- // no match but word was a required one
- if (arr.every((record) => record.files === undefined)) return;
-
- // found search word in contents
- arr.forEach((record) => {
- if (record.files === undefined) return;
-
- let recordFiles = record.files;
- if (recordFiles.length === undefined) recordFiles = [recordFiles];
- files.push(...recordFiles);
-
- // set score for the word in each file
- recordFiles.forEach((file) => {
- if (!scoreMap.has(file)) scoreMap.set(file, {});
- scoreMap.get(file)[word] = record.score;
- });
- });
-
- // create the mapping
- files.forEach((file) => {
- if (!fileMap.has(file)) fileMap.set(file, [word]);
- else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
- });
- });
-
- // now check if the files don't contain excluded terms
- const results = [];
- for (const [file, wordList] of fileMap) {
- // check if all requirements are matched
-
- // as search terms with length < 3 are discarded
- const filteredTermCount = [...searchTerms].filter(
- (term) => term.length > 2
- ).length;
- if (
- wordList.length !== searchTerms.size &&
- wordList.length !== filteredTermCount
- )
- continue;
-
- // ensure that none of the excluded terms is in the search result
- if (
- [...excludedTerms].some(
- (term) =>
- terms[term] === file ||
- titleTerms[term] === file ||
- (terms[term] || []).includes(file) ||
- (titleTerms[term] || []).includes(file)
- )
- )
- break;
-
- // select one (max) score for the file.
- const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w]));
- // add result to the result list
- results.push([
- docNames[file],
- titles[file],
- "",
- null,
- score,
- filenames[file],
- SearchResultKind.text,
- ]);
- }
- return results;
- },
-
- /**
- * helper function to return a node containing the
- * search summary for a given text. keywords is a list
- * of stemmed words.
- */
- makeSearchSummary: (htmlText, keywords, anchor) => {
- const text = Search.htmlToText(htmlText, anchor);
- if (text === "") return null;
-
- const textLower = text.toLowerCase();
- const actualStartPosition = [...keywords]
- .map((k) => textLower.indexOf(k.toLowerCase()))
- .filter((i) => i > -1)
- .slice(-1)[0];
- const startWithContext = Math.max(actualStartPosition - 120, 0);
-
- const top = startWithContext === 0 ? "" : "...";
- const tail = startWithContext + 240 < text.length ? "..." : "";
-
- let summary = document.createElement("p");
- summary.classList.add("context");
- summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
-
- return summary;
- },
-};
-
-_ready(Search.init);
diff --git a/docs/teamspeak-sdk-3.5.2/doc/_static/sphinx_highlight.js b/docs/teamspeak-sdk-3.5.2/doc/_static/sphinx_highlight.js
deleted file mode 100644
index 8a96c69..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/_static/sphinx_highlight.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Highlighting utilities for Sphinx HTML documentation. */
-"use strict";
-
-const SPHINX_HIGHLIGHT_ENABLED = true
-
-/**
- * highlight a given string on a node by wrapping it in
- * span elements with the given class name.
- */
-const _highlight = (node, addItems, text, className) => {
- if (node.nodeType === Node.TEXT_NODE) {
- const val = node.nodeValue;
- const parent = node.parentNode;
- const pos = val.toLowerCase().indexOf(text);
- if (
- pos >= 0 &&
- !parent.classList.contains(className) &&
- !parent.classList.contains("nohighlight")
- ) {
- let span;
-
- const closestNode = parent.closest("body, svg, foreignObject");
- const isInSVG = closestNode && closestNode.matches("svg");
- if (isInSVG) {
- span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
- } else {
- span = document.createElement("span");
- span.classList.add(className);
- }
-
- span.appendChild(document.createTextNode(val.substr(pos, text.length)));
- const rest = document.createTextNode(val.substr(pos + text.length));
- parent.insertBefore(
- span,
- parent.insertBefore(
- rest,
- node.nextSibling
- )
- );
- node.nodeValue = val.substr(0, pos);
- /* There may be more occurrences of search term in this node. So call this
- * function recursively on the remaining fragment.
- */
- _highlight(rest, addItems, text, className);
-
- if (isInSVG) {
- const rect = document.createElementNS(
- "http://www.w3.org/2000/svg",
- "rect"
- );
- const bbox = parent.getBBox();
- rect.x.baseVal.value = bbox.x;
- rect.y.baseVal.value = bbox.y;
- rect.width.baseVal.value = bbox.width;
- rect.height.baseVal.value = bbox.height;
- rect.setAttribute("class", className);
- addItems.push({ parent: parent, target: rect });
- }
- }
- } else if (node.matches && !node.matches("button, select, textarea")) {
- node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
- }
-};
-const _highlightText = (thisNode, text, className) => {
- let addItems = [];
- _highlight(thisNode, addItems, text, className);
- addItems.forEach((obj) =>
- obj.parent.insertAdjacentElement("beforebegin", obj.target)
- );
-};
-
-/**
- * Small JavaScript module for the documentation.
- */
-const SphinxHighlight = {
-
- /**
- * highlight the search words provided in localstorage in the text
- */
- highlightSearchWords: () => {
- if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight
-
- // get and clear terms from localstorage
- const url = new URL(window.location);
- const highlight =
- localStorage.getItem("sphinx_highlight_terms")
- || url.searchParams.get("highlight")
- || "";
- localStorage.removeItem("sphinx_highlight_terms")
- url.searchParams.delete("highlight");
- window.history.replaceState({}, "", url);
-
- // get individual terms from highlight string
- const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
- if (terms.length === 0) return; // nothing to do
-
- // There should never be more than one element matching "div.body"
- const divBody = document.querySelectorAll("div.body");
- const body = divBody.length ? divBody[0] : document.querySelector("body");
- window.setTimeout(() => {
- terms.forEach((term) => _highlightText(body, term, "highlighted"));
- }, 10);
-
- const searchBox = document.getElementById("searchbox");
- if (searchBox === null) return;
- searchBox.appendChild(
- document
- .createRange()
- .createContextualFragment(
- '
' +
- '' +
- _("Hide Search Matches") +
- "
"
- )
- );
- },
-
- /**
- * helper function to hide the search marks again
- */
- hideSearchWords: () => {
- document
- .querySelectorAll("#searchbox .highlight-link")
- .forEach((el) => el.remove());
- document
- .querySelectorAll("span.highlighted")
- .forEach((el) => el.classList.remove("highlighted"));
- localStorage.removeItem("sphinx_highlight_terms")
- },
-
- initEscapeListener: () => {
- // only install a listener if it is really needed
- if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return;
-
- document.addEventListener("keydown", (event) => {
- // bail for input elements
- if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
- // bail with special keys
- if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return;
- if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) {
- SphinxHighlight.hideSearchWords();
- event.preventDefault();
- }
- });
- },
-};
-
-_ready(() => {
- /* Do not call highlightSearchWords() when we are on the search page.
- * It will highlight words from the *previous* search query.
- */
- if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords();
- SphinxHighlight.initEscapeListener();
-});
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/3dsound.html b/docs/teamspeak-sdk-3.5.2/doc/client/3dsound.html
deleted file mode 100644
index 59cd26e..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/3dsound.html
+++ /dev/null
@@ -1,361 +0,0 @@
-
-
-
-
-
-
-
-
-
3D Sound — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-3D Sound
-TeamSpeak 3 supports 3D sound to assign each speaker a unique position
-in 3D space. Functions to modify the 3D position, velocity
-and orientation of own and foreign clients are discussed in this chapter.
-Positions are described using TS3_VECTOR
-
-
-struct TS3_VECTOR
-Describes a client position in 3 dimensional space, used for 3D Sound.
-
-
Public Members
-
-
-float x
-X co-ordinate in 3D space.
-
-
-
-
-float y
-Y co-ordinate in 3D space.
-
-
-
-
-float z
-Z co-ordinate in 3D space.
-
-
-
-
-
-
-Adjust general settings
-To adjust 3D sound system settings use
-
-
-unsigned int ts3client_systemset3DSettings ( uint64 serverConnectionHandlerID , float distanceFactor , float rolloffScale )
-Change 3D sound attenuation and distance settings.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to adjust the settings.
-distanceFactor – relative distance factor in meters. Default is 1.0. Use to adjust the distance between two TS3_VECTOR. Distance on x axis in meters = (a.x - b.x) * distanceFactor
-rolloffScale – Defines how fast sound volume will attenuate with distance. A higher value will cause sound to be toned down faster with increasing distance.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Own client position
-To set the position, velocity and orientation of the own client in 3D
-space, call
-
-
-unsigned int ts3client_systemset3DListenerAttributes ( uint64 serverConnectionHandlerID , const TS3_VECTOR * position , const TS3_VECTOR * forward , const TS3_VECTOR * up )
-Set position, orientation and velocity of own client in 3D space.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to set the specified 3D settings.
-position – 3D position of own client, pass NULL to ignore.
-forward – Forward orientation. Vector must be of unit length and perpendicular to the up vector. Pass NULL to ignore.
-up – Upward orientation. Vector must be of unit length and perpendicular to the forward vector. Pass NULL to ignore.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Other client position
-To adjust a clients position and velocity in 3D space, call
-
-
-unsigned int ts3client_channelset3DAttributes ( uint64 serverConnectionHandlerID , anyID clientID , const TS3_VECTOR * position )
-Adjusts other clients position in 3D space.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for the server on which the client specified by clID is located.
-clientID – the client id of the other client we want to adjust the position of.
-position – the desired position in 3D space of the other client
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Wave file position
-This method is used to 3D position a wave file that was opened
-previously with ts3client_playWaveFileHandle() .
-
-
-unsigned int ts3client_set3DWaveAttributes ( uint64 serverConnectionHandlerID , uint64 waveHandle , const TS3_VECTOR * position )
-Set the 3D position of a wave handle as retrieved by ts3client_playWaveFileHandle.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler of the wave handle
-waveHandle – a valid wave Handle as retrieved by ts3client_openWaveFileHandle. Specifies the sound file for which to adjust the position
-position – the position the wave file should be played from
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Callbacks
-The following callback funtion is called to calculate volume attenuation for
-distance in 3D positioning of clients.
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onCustom3dRolloffCalculationClientEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , float distance , float * volume )
-called to calculate the volume attenuation for the distance in 3D positioning of clients
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client for which the position is calculated
-
-Param distance:
-the distance from own client to the client
-
-Param volume:
-the volume calculated by the client lib. Can be modified in the callback.
-
-
-
-
-
-
-
-The following event is called to calculate volume attenuation for
-distance in 3D positioning of a wave file that was opened previously
-with ts3client_playWaveFileHandle() .
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onCustom3dRolloffCalculationWaveEvent ) ( uint64 serverConnectionHandlerID , uint64 waveHandle , float distance , float * volume )
-called to calculate the volume attenuation for the distance in 3D positioning of wave files
-
-
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param waveHandle:
-identifies the wave file to calculate the volume for. A handle previously created with ts3client_playWaveFileHandle
-
-Param distance:
-the distance from own client to the source of the wave file
-
-Param volume:
-the volume of the wave file calculated by the client lib. Can be modified in the callback.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-activate.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-activate.html
deleted file mode 100644
index 66e3856..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-activate.html
+++ /dev/null
@@ -1,204 +0,0 @@
-
-
-
-
-
-
-
-
-
Activating the capture device — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Activating the capture device
-
-
Note
-
Using this function is only required when connecting to multiple
-servers simultaneously.
-
-When connecting to multiple servers with the same client, the capture
-device can only be active on one server at the same time. As soon as
-the client connects to a new server, the Client Lib will deactivate the
-capture device of the previously active server. When a user wants to
-talk to that previous server again, the client needs to reactivate the
-capture device.
-
-
-unsigned int ts3client_activateCaptureDevice ( uint64 serverConnectionHandlerID )
-Activate a previously opened capture device on a server connection.
-Only one server connection can receive audio from its capture device at any given time. This function will set the server connection handler that is going to receive the audio from the capture device opened on that connection.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-If the capture device is already active, this function has no effect.
-Opening a new capture device will automatically activate it, so calling
-this function is only necessary with multiple server connections and
-when reactivating a previously deactivated device.
-If the capture device for a given server connection handler has been
-deactivated by the Client Lib, the flag CLIENT_INPUT_HARDWARE
-will be set. This can be queried with the function ts3client_getClientSelfVariableAsInt() .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-buffer-access.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-buffer-access.html
deleted file mode 100644
index 64c6000..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-buffer-access.html
+++ /dev/null
@@ -1,477 +0,0 @@
-
-
-
-
-
-
-
-
-
Accessing the voice buffer — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Accessing the voice buffer
-The TeamSpeak Client Lib allows users to access the raw playback and
-capture voice data and even modify it, for example to add effects to the
-voice. These callbacks are also used by the TeamSpeak client for the
-voice recording feature.
-
-
Note
-
Using these low-level callbacks is not required and should be reserved
-for specific needs. Most SDK applications won’t need to implement these
-callbacks.
-
-
-Playback
-
-Before effects or mixing
-The following event is called when a voice packet from a client (not own
-client) is decoded and about to be played over your sound device, but
-before it is 3D positioned and mixed with other sounds. You can use this
-function to alter the voice data (for example when you want to apply
-effects to it) or to simply get voice data. The TeamSpeak client uses
-this function to record sessions.
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onEditPlaybackVoiceDataEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , short * samples , int sampleCount , int channels )
-called before any effects are applied, allows access to individual client raw audio data
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the source client for the audio
-
-Param samples:
-buffer of audio data for the client as 16 bit signed at 48kHz
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-number of audio channels in the audio data
-
-
-
-
-
-
-
-
-
-After effects but before mixing
-The following event is called when a voice packet from a client (not own
-client) is decoded and 3D positioned and about to be played over your
-sound device, but before it is mixed with other sounds. You can use this
-function to alter/get the voice data after 3D positioning.
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onEditPostProcessVoiceDataEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , short * samples , int sampleCount , int channels , const unsigned int * channelSpeakerArray , unsigned int * channelFillMask )
-called before audio data is mixed together into a single audio stream for playback, but after effects (3D positioning for example) have been applied.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the source client for the audio
-
-Param samples:
-buffer of audio data for the client as 16 bit signed at 48kHz
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-number of audio channels in the audio data
-
-Param channelSpeakerArray:
-Array with an entry for each channel in the buffer, defining the speaker each channel represents. see SPEAKER_* defines in public_definitions.h
-
-Param channelFillMask:
-a bit mask of SPEAKER_* that defines which of the channels in the buffer have audio data. Be sure to set the corresponding flag when adding audio to previously empty channels in the buffer.
-
-
-
-
-
-
-
-
-Example
-For example, this callback reports:
-channels = 6
-channelSpeakerArray [ 0 ] = SPEAKER_FRONT_CENTER
-channelSpeakerArray [ 1 ] = SPEAKER_LOW_FREQUENCY
-channelSpeakerArray [ 2 ] = SPEAKER_BACK_LEFT
-channelSpeakerArray [ 3 ] = SPEAKER_BACK_RIGHT
-channelSpeakerArray [ 4 ] = SPEAKER_SIDE_LEFT
-channelSpeakerArray [ 5 ] = SPEAKER_SIDE_RIGHT // Quite unusual setup
-* channelFillMask = 1
-
-
-This means “samples” points to 6 channel data, but only the
-SPEAKER_FRONT_CENTER channel has data, the other channels are undefined
-(not necessarily 0, but undefined).
-So for the first sample, samples[0] has data and samples[1], samples[2],
-samples[3], samples[4] and samples[5] are undefined.
-If you want to add SPEAKER_BACK_RIGHT channel data you would do
-something like:
-* channelFillMask |= 1 << 3 ; // SPEAKER_BACK_RIGHT is the 4th channel (is index 3) according to *channelSpeakerArray.
-for ( int i = 0 ; i < sampleCount ; ++ i ) {
- samples [ 3 + ( i * channels ) ] = getChannelSoundData ( SPEAKER_BACK_RIGHT , i );
-}
-
-
-
-
-
-After effects and mixing
-The following event is called when all sounds that are about to be
-played back for this server connection are mixed. This is the last
-chance to alter/get sound.
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onEditMixedPlaybackVoiceDataEvent ) ( uint64 serverConnectionHandlerID , short * samples , int sampleCount , int channels , const unsigned int * channelSpeakerArray , unsigned int * channelFillMask )
-called after mixing individual client audio together but before sending it to playback device.
-Last chance to access/modify audio data before it gets sent to the playback device.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param samples:
-buffer of audio data as 16 bit signed at 48kHz
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-how many audio channels are available in the buffer
-
-Param channelSpeakerArray:
-Array with an entry for each channel in the buffer, defining the speaker each channel represents. See SPEAKER_* defines in public_definitions.h
-
-Param channelFillMask:
-a bit mask of SPEAKER_* that defines which of the channels in the buffer have audio data.
-
-
-
-
-
-
-
-
-
-
-Capture
-
-Before preprocessing
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onEditCapturedVoiceDataPreprocessEvent ) ( uint64 serverConnectionHandlerID , short * samples , int sampleCount , int channels , int * flags )
-called after audio data was aquired from the capture device, without any pre processing applied. Allows access to raw audio data.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param samples:
-buffer of audio data
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-how many audio channels are available in the buffer
-
-Param flags:
-allows to mute the audio stream, set LSB to 1 to mute the audio.
-
-
-
-
-
-
-
-
-
-After preprocessing
-The following event is called after sound is recorded from the sound
-device and is preprocessed. This event can be used to get/alter recorded
-sound. It can also be used to determine if this sound will be transmitted
-to the server, or muted.
-This is used by the TeamSpeak client to record sessions.
-If the sound data will be transmitted, (*edited | 2 ) is true. If the sound
-data is changed, set bit 1 (*edited |= 1 ). If the sound should not be
-transmitted, clear bit 2. (*edited &= ~2 )
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onEditCapturedVoiceDataEvent ) ( uint64 serverConnectionHandlerID , short * samples , int sampleCount , int channels , int * edited )
-called after pre processing has been applied to recorded voice data, before it is sent to the server.
-This allows access to or modification of captured data from the recording device.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param samples:
-buffer of audio data as 16 bit signed at 48kHz
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-how many audio channels are available in the buffer
-
-Param edited:
-bitMask indicating whether you modified the buffer. Set LSB to 1 if you modified the buffer. Bit 2 indicates whether or not this buffer will be sent to the server.
-
-
-
-
-
-
-
-
-
-Voice recording
-When using the above callbacks to record voice, you should notify the
-server when recording starts or stops with the following functions:
-
-
-unsigned int ts3client_startVoiceRecording ( uint64 serverConnectionHandlerID )
-Flags the client as recording received audio transmissions.
-This does NOT cause any recording to take place, it merely informs other clients that this client is actually recording the conversation.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_stopVoiceRecording ( uint64 serverConnectionHandlerID )
-Flags the client as no longer recording audio transmissions.
-Unsets the flag set by ts3client_startVoiceRecording causing other clients to no longer mark this client as recording the conversation.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-close.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-close.html
deleted file mode 100644
index c84851b..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-close.html
+++ /dev/null
@@ -1,272 +0,0 @@
-
-
-
-
-
-
-
-
-
Closing devices — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Closing devices
-To close the capture device on a given connection use
-
-
-unsigned int ts3client_closeCaptureDevice ( uint64 serverConnectionHandlerID )
-Immediately close the current capture device on a connection handler.
-This will instantly shut down the device.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To close the playback device on a given connection use
-
-
-unsigned int ts3client_closePlaybackDevice ( uint64 serverConnectionHandlerID )
-Immediately close the current playback device on a connection handler.
-This will instantly shut down the device. Any sounds currently playing will be interrupted.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
Closing the playback device this way will not wait
-for sounds that are currently playing to finish, but rather
-close the device instantly.
-
-To close the playback device on a given connection after
-all sounds that are currently playing through it have finished use
-
-
-unsigned int ts3client_initiateGracefulPlaybackShutdown ( uint64 serverConnectionHandlerID )
-Close the playback device after all currently playing sounds are done playing.
-A more user friendly way of closing a playback device. The client lib will monitor and ensure that any sounds that have already started playing have completely played before closing the device. New sounds are not allowed to be played after calling this function. This function will return right away, regardless of whether the device has been closed already or not.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Caution
-
This function will return before the device is actually closed!
-
-While ts3client_initiateGracefulPlaybackShutdown() will not block
-until all sounds have finished playing, it will notify the client
-when the playback device has been closed by calling the following callback
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onPlaybackShutdownCompleteEvent ) ( uint64 serverConnectionHandlerID )
-called once the playback device was closed on a connection
-
-
-
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-codecs.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-codecs.html
deleted file mode 100644
index 85d43d0..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-codecs.html
+++ /dev/null
@@ -1,249 +0,0 @@
-
-
-
-
-
-
-
-
-
Audio codecs — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Audio codecs
-TeamSpeak 3 supports the following sampling rates:
-
-
-
Note
-
Opus Voice is recommended for voice transmission.
-
-Bandwidth usage generally depends on the used codec and the
-encoders quality setting.
-Estimated bitrates (bps) for codecs per quality:
-
-
-Quality
-Opus Voice
-Opus Music
-
-
-
-0
-4,096
-7,200
-
-1
-8,192
-14,400
-
-2
-12,288
-21,600
-
-3
-16,384
-28,800
-
-4
-20,480
-36,000
-
-5
-24,576
-43,200
-
-6
-28,672
-50,400
-
-7
-32,768
-57,600
-
-8
-36,864
-64,800
-
-9
-40,960
-72,000
-
-10
-45,056
-79,200
-
-
-
-Change the quality to find a good middle between voice quality and
-bandwidth usage. Overall the Opus codec delivers the best quality for
-the bandwidth.
-Users need to use the same codec when talking to each other.
-Different channels on the same TeamSpeak 3 server can use different
-codecs. The channel codec should be customizable by the users to allow
-for flexibility concerning bandwidth vs. quality concerns.
-The codec can be set or changed for a given channel using the function
-ts3client_setChannelVariableAsInt() by passing CHANNEL_CODEC
-for the properties flag
-ts3client_setChannelVariableAsInt ( scHandlerID , channelID , CHANNEL_CODEC , codec );
-
-
-Available values for CHANNEL_CODEC are defined in the CodecType enum.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-custom-device.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-custom-device.html
deleted file mode 100644
index 7b84844..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-custom-device.html
+++ /dev/null
@@ -1,339 +0,0 @@
-
-
-
-
-
-
-
-
-
Using custom devices — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Using custom devices
-Instead of opening existing sound devices that TeamSpeak has detected,
-you can also use our custom capture and playback mechanism, which allows
-overriding the way in which TeamSpeak captures and plays back audio. When
-you have opened a custom capture and playback device you must regularly
-supply new sound data via the ts3client_processCustomCaptureData()
-function and retrieve data that should be played back via
-ts3client_acquireCustomPlaybackData() .
-Where exactly this captured sound data comes from and where the playback
-data goes to is up to you, giving you complete freedom and allows for
-pretty interesting things to be done using this mechanism.
-
-
Note
-
Implementing own custom devices is for special use cases and entirely
-optional.
-
-
-Register custom devices
-Registering a custom device announces the device ID and name to the
-Client Lib. Once a custom device has been registered with a device ID,
-the device can be opened like any standard device using
-ts3client_openCaptureDevice() and ts3client_openPlaybackDevice() .
-
-
-unsigned int ts3client_registerCustomDevice ( const char * deviceID , const char * deviceDisplayName , int capFrequency , int capChannels , int playFrequency , int playChannels )
-create a new software device to be used for playback and/or capture.
-This allows you to create custom devices for implementing your own audio capture or playback. For capture devices you will need to regularly provide audio data via the ts3client_processCustomCaptureData function. For playback devices you will need to regularly aquire audio data via the ts3client_acquireCustomPlaybackData function.
-
-Parameters:
-
-deviceID – a unique string by which you will refer to this audio device when opening devices ore removing it.
-deviceDisplayName – custom display string for your device. Not required to be unique, you can freely choose this.
-capFrequency – The frequency of the capture device. Determines the frequency the audio you’re passing in to ts3client_processCustomCaptureData is expected to be in when using this device.
-capChannels – The amount of channels the audio source on this device has. Determines the number of audio channels the data you’re passing to ts3client_processCustomCaptureData is expected to have when using this device.
-playFrequency – Determines which frequency the audio you’re getting out of ts3client_acquireCustomPlaybackData has when using this device.
-playChannels – Determines the number of audio channels of the audio you’re getting out of ts3client_acquireCustomPlaybackData has when using this device.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Removing custom devices
-Removing the device will make it unavailable to use and you will no longer
-have to supply audio data or poll playback data.
-
-
Caution
-
Playback devices will be instantly closed and no playback data will be
-provided any longer.
-
Capture devices must be closed before being removed
-
-
-
-Providing audio data
-To send the captured data from your device to the Client lib you have to call
-
-
-unsigned int ts3client_processCustomCaptureData ( const char * deviceName , const short * buffer , int samples )
-Provide audio data for a registered custom device.
-When using custom devices, you’re expected to call this function regularly to provide your audio data to the client lib for processing and sending it to the server. The audio will be sent to the connection handler that currently has the specified custom device active (if any). The client lib will read captureChannels * samples * sizeof(short) bytes of data from the buffer.
-
-Parameters:
-
-deviceName – the deviceID for which you’re providing audio data. Must be a deviceID previously passed to a ts3client_registerCustomDevice call.
-buffer – pointer to the beginning of the raw audio data for the device. Caller must ensure that enough data is present in the buffer (samples * channel count of the audio device).
-samples – the number of audio frames in the buffer
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Retrieve playback data
-To retrieve playback data from the client lib you have to call
-
-
-unsigned int ts3client_acquireCustomPlaybackData ( const char * deviceName , short * buffer , int samples )
-Retrieve playback data for the specified device from the client lib.
-When using custom playback devices you’re expected to call this function regularly.
-
-Parameters:
-
-deviceName – the deviceID from which to retrieve audio data. Must be a deviceID previously passed to a ts3client_registerCustomDevice call.
-buffer – address in which to write the sound data that is pending playback. Caller must allocate sufficient memory (samples * channels of the audio device).
-samples – how many audio frames to retrieve.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason. May return ERROR_sound_no_data meaning no sound is currently played on the device. No data has been written to the buffer.
-
-
-
-
-This function may return ERROR_sound_no_data
-which can be used for performance optimization. It means there is currently
-only silence (nobody is talking, no wave files being played etc.) and instead
-of returning a buffer full of zeroes it just notifies the user there is
-currently no data. This allows you to not playback any sound data for that
-moment, if your API supports that (potentially saving some CPU), or to just
-fill the sound buffer with zeroes and playback this if your sound API demands
-you to fill it with something for every given time.
-
-
-Example
-Overview on registering and opening a custom device:
- 1 /* Register a new custom sound device with specified frequency and number of channels */
- 2 if ( ts3client_registerCustomDevice ( "customWaveDeviceId" , "Nice displayable wave device name" , captureFrequency , captureChannels , playbackFrequncy , playbackChannels ) != ERROR_ok ) {
- 3 printf ( "Failed to register custom device \n " );
- 4 return ;
- 5 }
- 6
- 7 /* Open capture device we created earlier */
- 8 if ( ts3client_openCaptureDevice ( scHandlerID , "custom" , "customWaveDeviceId" ) != ERROR_ok ) {
- 9 printf ( "Error opening capture device \n " );
-10 return ;
-11 }
-12
-13 /* Open playback device we created earlier */
-14 if ( ts3client_openPlaybackDevice ( scHandlerID , "custom" , "customWaveDeviceId" ) != ERROR_ok ) {
-15 printf ( "Error opening playback device \n " );
-16 return ;
-17 }
-18
-19 /* Main loop */
-20 while ( ! abort ) {
-21 /* Fill captureBuffer from your custom device */
-22
-23 /* Stream your capture data to the client lib */
-24 if ( ts3client_processCustomCaptureData ( "customWaveDeviceId" , captureBuffer , captureBufferSize ) != ERROR_ok ) {
-25 printf ( "Failed to process capture data \n " );
-26 }
-27
-28 /* Get playback data from the client lib */
-29 unsigned int error = ts3client_acquireCustomPlaybackData ( "customWaveDeviceId" , playbackBuffer , playbackBufferSize );
-30 if ( error == ERROR_ok ) {
-31 /* Playback data available, send playbackBuffer to your custom device */
-32 } else if ( error == ERROR_sound_no_data ) {
-33 /* Not an error. The client lib has no playback data available. Depending on your custom sound API, either
-34 pause playback for performance optimisation or send a buffer of zeros. */
-35 } else {
-36 printf ( "Failed to get playback data \n " ); /* Error occured */
-37 }
-38 }
-39
-40 /* Unregister the custom device. This automatically close the device. */
-41 if ( ts3client_unregisterCustomDevice ( "customWaveDeviceId" ) != ERROR_ok ) {
-42 printf ( "Failed to unregister custom device \n " );
-43 }
-
-
-
-
Note
-
Further sample code on how to use a custom device can be found in the
-“client_customdevice” example included in the SDK.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-get-current.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-get-current.html
deleted file mode 100644
index 03eae01..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-get-current.html
+++ /dev/null
@@ -1,253 +0,0 @@
-
-
-
-
-
-
-
-
-
Query current mode and device — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Query current mode and device
-
-Current modes
-The currently used capture mode on a given connection can be queried using
-
-
-unsigned int ts3client_getCurrentCaptureMode ( uint64 serverConnectionHandlerID , char * * result )
-retrieve the mode the current capture device on a server is using
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to retrieve the capture mode on
-result – address of a variable receiving a c string of the capture mode currently in use. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-The currently used playback mode on a given connection is queried using
-
-
-unsigned int ts3client_getCurrentPlayBackMode ( uint64 serverConnectionHandlerID , char * * result )
-retrieve the mode the current playback device on a server is using
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to retrieve the playback mode on
-result – address of a variable receiving a c string of the playback mode currently in use. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Current devices
-To query the currently open capture device on a connection use
-
-
-unsigned int ts3client_getCurrentCaptureDeviceName ( uint64 serverConnectionHandlerID , char * * result , int * isDefault )
-retrieve the device name that is currently used to capture audio on a server
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to retrieve the active capture device on
-result – address of a variable receiving a c string of the device name currently in use. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-isDefault – address of a variable receiving whether the device in use is the default device. Pass NULL if you don’t need the information
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To query the currently open playback device on a connection use
-
-
-unsigned int ts3client_getCurrentPlaybackDeviceName ( uint64 serverConnectionHandlerID , char * * result , int * isDefault )
-retrieve the device name that is currently used to play audio on a server
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to retrieve the active playback device on
-result – address of a variable receiving a c string of the device name currently in use. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-isDefault – address of a variable receiving whether the device in use is the default device. Pass NULL if you don’t need the information
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-init.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-init.html
deleted file mode 100644
index ca338f9..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-init.html
+++ /dev/null
@@ -1,237 +0,0 @@
-
-
-
-
-
-
-
-
-
Initializing devices — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Initializing devices
-Before a device can be used for playback or capture, you have to
-initialize and open the device.
-
-
Note
-
Only one device can be active simultaneously per type.
-
You cannot have more than one playback device or more than one capture device
-open at any given time. You can have up to one playback and up to one capture
-device open simultaneously.
-
-Likely errors are ERROR_sound_could_not_open_capture_device
-if the device fails to open or ERROR_sound_handler_has_device
-if there is already an open device on the connection.
-
-
-Playback
-To initialize a playback device on a connection call
-
-
-unsigned int ts3client_openPlaybackDevice ( uint64 serverConnectionHandlerID , const char * modeID , const char * playbackDevice )
-initializes a playback device for a connection handler
-Call this function to start audio playback of TeamSpeak audio on a connection
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Capture
-To initialize a capture device on a connection call
-
-
-unsigned int ts3client_openCaptureDevice ( uint64 serverConnectionHandlerID , const char * modeID , const char * captureDevice )
-initializes a capture device for a connection handler
-Call this function to start consuming audio from the specified device and send it to the server
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-list-device-mode.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-list-device-mode.html
deleted file mode 100644
index 4a4a2ee..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-list-device-mode.html
+++ /dev/null
@@ -1,429 +0,0 @@
-
-
-
-
-
-
-
-
-
List available modes and devices — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-List available modes and devices
-Various playback and capture modes are available: DirectSound on all
-Windows platforms, Windows Audio Session API for Windows 7 and newer,
-Alsa and PulseAudio on Linux and CoreAudio on Mac OS.
-
-
Note
-
Available device names may differ depending on the mode.
-
-
-Query default modes
-The default capture mode can be queried using
-
-
-unsigned int ts3client_getDefaultCaptureMode ( char * * result )
-Retrieve the current default capture mode.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-The default playback mode can be queried using
-
-
-unsigned int ts3client_getDefaultPlayBackMode ( char * * result )
-Retrieve the current default playback mode.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-List available modes
-Available capture modes can be queries using
-
-
-unsigned int ts3client_getCaptureModeList ( char * * * result )
-Retrieve available capture modes.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To list available playback modes use
-
-
-unsigned int ts3client_getPlaybackModeList ( char * * * result )
-Retrieve available playback modes.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Examples
-Example to query all available playback modes:
-1 char ** array ;
-2
-3 if ( ts3client_getPlaybackModeList ( & array ) == ERROR_ok ) {
-4 for ( int i = 0 ; array [ i ] != NULL ; ++ i ) {
-5 printf ( "Mode: %s \n " , array [ i ]);
-6 ts3client_freeMemory ( array [ i ]); // Free C-string
-7 }
-8 ts3client_freeMemory ( array ); // Free the array
-9 }
-
-
-
-
-
-Get default devices
-
-
Note
-
Default devices are set by the operating system.
-
-To get the default capture device use
-
-
-unsigned int ts3client_getDefaultCaptureDevice ( const char * modeID , char * * * result )
-Get the current operating system defined default capture device for the indicated mode.
-The operating system may define different devices for different modes.
-
-Parameters:
-
-modeID – a string indicating a valid capture mode as retrieved by ts3client_getCaptureModeList or ts3client_getDefaultCaptureMode
-result – Address of a variable that receives a NULL terminated array of two c strings like {char* deviceName, char* deviceID, NULL} Memory is allocated by the client lib and both the array and its individual members must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To get the default playback device use
-
-
-unsigned int ts3client_getDefaultPlaybackDevice ( const char * modeID , char * * * result )
-Get the current operating system defined default playback device for the indicated mode.
-The operating system may define different devices for different modes.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Example
-Example to query the default playback device:
- 1 char * defaultMode ;
- 2
- 3 /* Get default playback mode */
- 4 if ( ts3client_getDefaultPlayBackMode ( & defaultMode ) == ERROR_ok ) {
- 5 char ** defaultPlaybackDevice ;
- 6
- 7 /* Get default playback device */
- 8 if ( ts3client_getDefaultPlaybackDevice ( defaultMode , & defaultPlaybackDevice ) == ERROR_ok ) {
- 9 printf ( "Default playback device name: %s \n " , defaultPlaybackDevice [ 0 ]); /* First element: Device name */
-10 printf ( "Default playback device ID: %s \n " , defaultPlaybackDevice [ 1 ]); /* Second element: Device ID */
-11
-12 /* Release the two array elements and the array */
-13 ts3client_freeMemory ( defaultPlaybackDevice [ 0 ]);
-14 ts3client_freeMemory ( defaultPlaybackDevice [ 1 ]);
-15 ts3client_freeMemory ( defaultPlaybackDevice );
-16 } else {
-17 printf ( "Failed to get default playback device \n " );
-18 }
-19 ts3client_freeMemory ( defaultMode ); // Free default Mode
-20 } else {
-21 printf ( "Failed to get default playback mode \n " );
-22 }
-
-
-
-
-
-List available devices
-To list devices available for capture use
-
-
-unsigned int ts3client_getCaptureDeviceList ( const char * modeID , char * * * * result )
-Retrieve available recording devices as reported by the operating system.
-
-Parameters:
-
-modeID – a string indicating a valid capture mode as retrieved by ts3client_getCaptureModeList or ts3client_getDefaultCaptureMode
-result – address of a variable that receives a NULL terminated array like `{{char* deviceName, char* deviceId, char* interfaceName char* description, char* fromFactor} …, NULL}on windows, {{char* deviceName, char* deviceId}, …, NULL}` on other platforms. Memory is allocated by the client lib and caller must free individual strings and the array itself using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To list devices available for playback use
-
-
-unsigned int ts3client_getPlaybackDeviceList ( const char * modeID , char * * * * result )
-Retrieve available playback devices as reported by the operating system.
-
-Parameters:
-
-modeID – a string indicating a valid playback mode as retrieved by ts3client_getPlaybackModeList or ts3client_getDefaultPlaybackMode
-result – address of a variable that receives a NULL terminated array like {{char* deviceName, char* deviceId, char* interfaceName char* description, char* fromFactor} ..., NULL} on windows, {{char* deviceName, char* deviceId}, ..., NULL} on other platforms. Memory is allocated by the client lib and caller must free individual strings, array members and the array itself using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Example
-Example to query all available playback devices:
- 1 char * defaultMode ;
- 2
- 3 if ( ts3client_getDefaultPlayBackMode ( & defaultMode ) == ERROR_ok ) {
- 4 char *** array ;
- 5
- 6 if ( ts3client_getPlaybackDeviceList ( defaultMode , & array ) == ERROR_ok ) {
- 7 for ( int i = 0 ; array [ i ] != NULL ; ++ i ) {
- 8 printf ( "Playback device name: %s \n " , array [ i ][ 0 ]); /* First element: Device name */
- 9 printf ( "Playback device ID: %s \n " , array [ i ][ 1 ]); /* Second element: Device ID */
-10 #ifdef _WIN32
-11 printf ( "Playback device interface name: %s \n " , array [ i ][ 2 ]); /* win only: Third element: Device interface name */
-12 printf ( "Playback device desription: %s \n " , array [ i ][ 3 ]); /* win only: Forth element: Device description */
-13 printf ( "Playback device formFactor: %s \n " , array [ i ][ 4 ]); /* win only: Fifth element: Device form factor */
-14 ts3client_freeMemory ( array [ i ][ 3 ]);
-15 ts3client_freeMemory ( array [ i ][ 4 ]);
-16 ts3client_freeMemory ( array [ i ][ 5 ]); // also free the last element, being "\0"
-17 #endif
-18 /* Free element */
-19 ts3client_freeMemory ( array [ i ][ 0 ]);
-20 ts3client_freeMemory ( array [ i ][ 1 ]);
-21 ts3client_freeMemory ( array [ i ][ 2 ]);
-22 ts3client_freeMemory ( array [ i ]);
-23 }
-24 ts3client_freeMemory ( array ); /* Free complete array */
-25 } else {
-26 printf ( "Error getting playback device list \n " );
-27 }
-28 ts3client_freeMemory ( defaultMode ); // free default mode
-29 } else {
-30 printf ( "Error getting default playback mode \n " );
-31 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio-localtest.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio-localtest.html
deleted file mode 100644
index c1bc6c3..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio-localtest.html
+++ /dev/null
@@ -1,190 +0,0 @@
-
-
-
-
-
-
-
-
-
Local Test mode — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Local Test mode
-Instead of sending the sound through the network, it can be routed
-directly to the playback device, allowing the user to get immediate
-audible feedback, for example to configure some sound settings.
-
-
-unsigned int ts3client_setLocalTestMode ( uint64 serverConnectionHandlerID , int status )
-Route captured audio directly to the playback device rather than through the network.
-Enable or disable local test mode. Enabling will no longer send audio data to the server, instead it will be routed directly to the playback device. This allows a user to receive direct feedback from their own audio transmission, allowing easier adjustments to audio settings.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/audio.html b/docs/teamspeak-sdk-3.5.2/doc/client/audio.html
deleted file mode 100644
index 27a491d..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/audio.html
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
-
-
-
-
-
Client Audio — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Client Audio
-The Client Lib takes care of initializing, using and releasing sound
-playback and capture devices. Accessing devices is handled by the sound
-backend shared libraries, found in the soundbackends directory in the
-SDK.
-There are different backends available on the supported operating
-systems:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/basic.html b/docs/teamspeak-sdk-3.5.2/doc/client/basic.html
deleted file mode 100644
index fad2f3f..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/basic.html
+++ /dev/null
@@ -1,459 +0,0 @@
-
-
-
-
-
-
-
-
-
Getting started — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Getting started
-
-
-
-
-
-
-
-
-
-Getting started
-
-The callback mechanism
-The communication from Client Lib to Client UI takes place using
-callbacks. The SDK user has to define a series of function
-pointers using the ClientUIFunctions structure.
-These callbacks are used to forward any incoming server actions to the
-SDK user for further processing.
-
-
Note
-
All client lib callbacks are asynchronous, except for the sound
-callbacks which allow to directly manipulate the sound buffer.
-
-
-A callback example in C:
-static void my_onConnectStatusChangeEvent_Callback ( uint64 serverConnectionHandlerID , int newStatus , int errorNumber ) {
- printf ( "Changed connection status to %d on connection %llu with error 0x%04X \n " , newStatus , serverConnectionHandlerID , errorNumber );
-}
-
-
-C++ developers can also use static member functions for the callbacks.
-Before calling ts3client_initClientLib() , create an instance of ClientUIFunctions
-, initialize all function pointers with NULL and assign
-the structs function pointers to your callback functions:
- 1 unsigned int error ;
- 2
- 3 /* Create struct */
- 4 ClientUIFunctions clUIFuncs ;
- 5
- 6 /* Initialize all function pointers with NULL */
- 7 memset ( & clUIFuncs , 0 , sizeof ( struct ClientUIFunctions ));
- 8
- 9 /* Assign those function pointers you implemented */
-10 clUIFuncs . onConnectStatusChangeEvent = my_onConnectStatusChangeEvent_Callback ;
-11 clUIFuncs . onNewChannelEvent = my_onNewChannelEvent_Callback ;
-12 (...)
-13
-14 /* Initialize client lib with callback function pointers */
-15 error = ts3client_initClientLib ( & clUIFuncs , NULL , LogType_FILE | LogType_CONSOLE );
-16 if ( error != ERROR_ok ) {
-17 printf ( "Error initializing clientlib: %d \n " , error );
-18 (...)
-19 }
-
-
-
-
Important
-
As long as you initialize unimplemented callbacks with NULL, the
-Client Lib won’t attempt to call those function pointers. However, if
-you leave unimplemented callbacks undefined, the Client Lib will
-attempt to call them, crashing the application.
-
-The individual callbacks are described in ClientUIFunctions .
-
-
-
-Initializing
-When starting the client, initialize the Client Lib with
-
-
-unsigned int ts3client_initClientLib ( const struct ClientUIFunctions * functionPointers , const struct ClientUIFunctionsRare * functionRarePointers , int usedLogTypes , const char * logFileFolder , const char * resourcesFolder )
-initializes the client library and defines callback functions
-This is the first function you need to call, before this all calls to the client library will fail. In this call you will also set the functions you would like to have called when certain changes happen on the client side as well as on connected servers.
-
-Parameters:
-
-functionPointers – defines which functions in your code are to be called on specific events. Zero initialize it and assign the desired function to call to the respective members of the struct
-functionRarePointers – similar to the functionPointers parameter. These are not available in the SDK, so SDK users should pass a nullptr here.
-usedLogTypes – a combination of values from the LogTypes enum. Specifies which type(s) of logging you would like to use.
-logFileFolder – path in which to create log files
-resourcesFolder – path to the directory in which the soundbackends folder is located. Required to be able to load the sound backends and process audio.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Important
-
This function must not be called more than once.
-
-
-
Note
-
Logging to console can slow down the application on Windows. Hence
-we do not recommend to log to the console on Windows other than in
-debug builds.
-
-
-
-Querying the library version
-The complete Client Lib version string can be queried with
-
-
-unsigned int ts3client_getClientLibVersion ( char * * result )
-Get the version string of the client library.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To get only the version number, which is a part of the complete version
-string, as numeric value use
-
-
-unsigned int ts3client_getClientLibVersionNumber ( uint64 * result )
-Get the version number of the client library.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Examples
-Query the client lib version:
-1 unsigned int error ;
-2 char * version ;
-3 error = ts3client_getClientLibVersion ( & version );
-4 if ( error != ERROR_ok ) {
-5 printf ( "Error querying clientlib version: %d \n " , error );
-6 return ;
-7 }
-8 printf ( "Client library version: %s \n " , version ); /* Print version */
-9 ts3client_freeMemory ( version ); /* Release string */
-
-
-To only get the version number:
-1 unsigned int error ;
-2 uint64 version ;
-3 error = ts3client_getClientLibVersionNumber ( & version );
-4 if ( error != ERROR_ok ) {
-5 printf ( "Error querying clientlib version number: %d \n " , error );
-6 return ;
-7 }
-8 printf ( "Client library version number: %ld \n " , version ); /* Print version */
-
-
-
-
-
-Shutting down
-Before exiting the client application, you should disconnect from any
-servers you’re connected to (ts3client_stopConnection() ) and destroy
-the connection handler (ts3client_destroyServerConnectionHandler() ).
-After that the Client Lib should be shut down using
-
-
-unsigned int ts3client_destroyClientLib ( )
-destroys the client library. Must not be called from within a callback.
-This is the last function to call, after calling this function you will no longer be able to use client library functions.
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-Any call to client lib functions after shutting down has undefined results.
-
-
Caution
-
Never destroy the client lib from within a callback. This might
-result in segmentation fault.
-
-
-
-Error handling
-Each Client Lib function returns either ERROR_ok
-on success or an error value as defined in Ts3ErrorType if the function
-fails.
-The returned error codes are organized in groups, where the first byte
-defines the error group and the second the count within the group: The
-naming convention is ERROR_<group>_<error> , for example
-ERROR_client_invalid_id .
-
-
Important
-
Client Lib functions returning C-strings or arrays dynamically
-allocate memory which has to be freed by the caller using
-ts3client_freeMemory() . It is important to only
-access and release the memory if the function returned ERROR_ok .
-Should the function return an error, the result variable is
-uninitialized, so freeing or accessing it could crash the
-application.
-
-See the section Calling Client Lib functions for
-additional notes and examples.
-A printable error string for a specific error code can be queried with
-
-
-unsigned int ts3client_getErrorMessage ( unsigned int errorCode , char * * error )
-Retrieve human readable description for an error code.
-
-Parameters:
-
-errorCode – the error code from the Ts3ErrorType enum to retrieve the description for
-error – address of a variable to receive a c string with the error description. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Error callback
-In addition to actively querying errors like above, error codes can be
-sent by the server to the client through the following callback
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onServerErrorEvent ) ( uint64 serverConnectionHandlerID , const char * errorMessage , unsigned int error , const char * returnCode , const char * extraMessage )
-called after an action was performed by us. Tells whether the action was successful or which error occurred.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param errorMessage:
-utf8 encoded c string describing the error
-
-Param error:
-the error code the action finished with. One of the values from the Ts3ErrorType enum.
-
-Param returnCode:
-a c string identifying the action that caused this error. This is the same string given as returnCode to function calls that request an action on the server
-
-Param extraMessage:
-utf8 encoded c string containing additional information if available.
-
-
-
-
-
-
-
-
-
-Examples
- 1 unsigned int error ;
- 2 char * welcomeMsg ;
- 3
- 4 error = ts3client_getServerVariableAsString ( serverConnectionHandlerID , VIRTUALSERVER_WELCOMEMESSAGE , & welcomeMsg );
- 5 if ( error == ERROR_ok ) {
- 6 /* Use welcomeMsg... */
- 7 ts3client_freeMemory ( welcomeMsg ); /* Release memory *only* if function did not return an error */
- 8 } else {
- 9 /* Handle error */
-10 /* Do not access or release welcomeMessage, the variable is undefined */
-11 }
-
-
- 1 unsigned int error ;
- 2 anyID myID ;
- 3
- 4 error = ts3client_getClientID ( scHandlerID , & myID ); /* Calling some Client Lib function */
- 5 if ( error != ERROR_ok ) {
- 6 char * errorMsg ;
- 7 if ( ts3client_getErrorMessage ( error , & errorMsg ) == ERROR_ok ) { /* Query printable error */
- 8 printf ( "Error querying client ID: %s \n " , errorMsg );
- 9 ts3client_freeMemory ( errorMsg ); /* Release memory */
-10 }
-11 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/channel-create.html b/docs/teamspeak-sdk-3.5.2/doc/client/channel-create.html
deleted file mode 100644
index 8457e13..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/channel-create.html
+++ /dev/null
@@ -1,322 +0,0 @@
-
-
-
-
-
-
-
-
-
Creating a new channel — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Creating a new channel
-To create a channel, set the desired channel variables using one of
-the following functions, passing 0 to the channel id parameter:
-
-
-unsigned int ts3client_setChannelVariableAsInt ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , int value )
-set a new value for an integer channel property
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to set the property for
-flag – specifies which property to set. One of the values from the ChannelProperties or ChannelPropertiesRare enums
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setChannelVariableAsUInt64 ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , uint64 value )
-set a new value for an unsigned 64 bit channel property
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to set the property for
-flag – specifies which property to set. One of the values from the ChannelProperties or ChannelPropertiesRare enums
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setChannelVariableAsString ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , const char * value )
-set a new value for a string channel property
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to set the property for
-flag – specifies which property to set. One of the values from the ChannelProperties or ChannelPropertiesRare enums
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Request creation
-To request the server to actually create the channel call
-
-
-unsigned int ts3client_flushChannelCreation ( uint64 serverConnectionHandlerID , uint64 channelParentID , const char * returnCode )
-Create the channel on the server.
-After setting all the desired properties on the channel, call this function to actually create the channel on the server
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to create the channel
-channelParentID – id of the channel this channel should be a sub channel of. Pass 0 to create a root channel.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Callback
-If the channel was successfully created the following callback will be called
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onNewChannelCreatedEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 channelParentID , anyID invokerID , const char * invokerName , const char * invokerUniqueIdentifier )
-called when a new channel was created
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the id of the new channel
-
-Param channelParentID:
-the id of the parent channel for the newly created channel. 0 if the channel is a root channel.
-
-
-
-
-
-
-
-
-
-Example
-Example code to create a channel:
- 1 #define CHECK_ERROR(x) if ((error = x) != ERROR_ok) { goto on_error; }
- 2
- 3 int createChannel ( uint64 scHandlerID , uint64 parentChannelID , const char * name , const char * topic ,
- 4 const char * description , const char * password , int codec , int codecQuality ,
- 5 int maxClients , int familyMaxClients , int order , int perm ,
- 6 int semiperm , int default ) {
- 7 unsigned int error ;
- 8
- 9 /* Set channel data, pass 0 as channel ID */
-10 CHECK_ERROR ( ts3client_setChannelVariableAsString ( scHandlerID , 0 , CHANNEL_NAME , name ));
-11 CHECK_ERROR ( ts3client_setChannelVariableAsString ( scHandlerID , 0 , CHANNEL_TOPIC , topic ));
-12 CHECK_ERROR ( ts3client_setChannelVariableAsString ( scHandlerID , 0 , CHANNEL_DESCRIPTION , desc ));
-13 CHECK_ERROR ( ts3client_setChannelVariableAsString ( scHandlerID , 0 , CHANNEL_PASSWORD , password ));
-14 CHECK_ERROR ( ts3client_setChannelVariableAsInt ( scHandlerID , 0 , CHANNEL_CODEC , codec ));
-15 CHECK_ERROR ( ts3client_setChannelVariableAsInt ( scHandlerID , 0 , CHANNEL_CODEC_QUALITY , codecQuality ));
-16 CHECK_ERROR ( ts3client_setChannelVariableAsInt ( scHandlerID , 0 , CHANNEL_MAXCLIENTS , maxClients ));
-17 CHECK_ERROR ( ts3client_setChannelVariableAsInt ( scHandlerID , 0 , CHANNEL_MAXFAMILYCLIENTS , familyMaxClients ));
-18 CHECK_ERROR ( ts3client_setChannelVariableAsUInt64 ( scHandlerID , 0 , CHANNEL_ORDER , order ));
-19 CHECK_ERROR ( ts3client_setChannelVariableAsInt ( scHandlerID , 0 , CHANNEL_FLAG_PERMANENT , perm ));
-20 CHECK_ERROR ( ts3client_setChannelVariableAsInt ( scHandlerID , 0 , CHANNEL_FLAG_SEMI_PERMANENT , semiperm ));
-21 CHECK_ERROR ( ts3client_setChannelVariableAsInt ( scHandlerID , 0 , CHANNEL_FLAG_DEFAULT , default ));
-22
-23 /* Flush changes to server */
-24 CHECK_ERROR ( ts3client_flushChannelCreation ( scHandlerID , parentChannelID ));
-25 return 0 ; /* Success */
-26
-27 on_error :
-28 printf ( "Error creating channel: %d \n " , error );
-29 return 1 ; /* Failure */
-30 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/channel-delete.html b/docs/teamspeak-sdk-3.5.2/doc/client/channel-delete.html
deleted file mode 100644
index 0b42d1e..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/channel-delete.html
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
-
-
-
-
-
-
Deleting a channel — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Deleting a channel
-A channel can be removed by calling
-
-
-unsigned int ts3client_requestChannelDelete ( uint64 serverConnectionHandlerID , uint64 channelID , int force , const char * returnCode )
-Request a channel to be deleted.
-Whether or not this was successful can be determined through the associated onServerErrorEvent callback.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the channel is located
-channelID – the channel id to delete
-force – boolean value on whether to kick clients out and delete any sub channels before deleting the channel. 1 = kick everyone, then delete sub channels and finally the requested channel; 0 = fail if there are clients in the channel or the channel has sub channels.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Delay channel deletion
-With the delayed temporary channel deletion feature, users can define
-by how many seconds the deletion of a temporary channel will be delayed
-after the last client has left the channel. The delay is defined by
-setting the channel variable CHANNEL_DELETE_DELAY .
-This variable can be set and queried as described in the Channel information section.
-To query the time in seconds since the last client has left a temporary
-channel call
-
-
-unsigned int ts3client_getChannelEmptySecs ( uint64 serverConnectionHandlerID , uint64 channelID , int * result )
-get time in seconds since last client left the specified channel
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to get the
-result – address of a variable to receive the result on success
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Callback
-After the server is done moving clients and the channel was removed the following
-callback is called (potentially multiple times, if sub channels need to be deleted).
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onDelChannelEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , anyID invokerID , const char * invokerName , const char * invokerUniqueIdentifier )
-called when a channel is deleted
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the id of the channel that is deleted. This channel is gone already when this is called. It’s not possible to get any information about this channel anymore.
-
-Param invokerID:
-client id of the client that deleted the channel. 0 if deleted by the server.
-
-Param invokerName:
-utf8 encoded c string containing the display name of the client that caused deletion
-
-Param invokerUnqiueIdentifier:
-utf8 encoded c string containing the unique identifier of the client that caused deletion
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/channel-join.html b/docs/teamspeak-sdk-3.5.2/doc/client/channel-join.html
deleted file mode 100644
index d7167c9..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/channel-join.html
+++ /dev/null
@@ -1,286 +0,0 @@
-
-
-
-
-
-
-
-
-
Joining a channel — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Joining a channel
-When a client logs on to a TeamSpeak 3 server, it will automatically
-join the channel with the CHANNEL_FLAG_DEFAULT flag,
-unless it specified a different channel in the ts3client_startConnection() call.
-To join a different channel, or move another client to a different channel, call
-
-
-unsigned int ts3client_requestClientMove ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , uint64 newChannelID , const char * password , const char * returnCode )
-Attempt to move one or more clients to a different channel.
-The move is requested from the server. See the onServerErrorEvent callback to know whether the move was successful or not.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler of which the channel and client are located
-clientIDArray – NULL terminated array of client ids to move
-newChannelID – the target channel id to move the clients to
-password – the password for the channel. Pass an empty string if the channel has no password.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-If successful one of the following callbacks will be called depending whether
-you moved your own or a different client
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onClientMoveEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , const char * moveMessage )
-called when a client moves to a different channel, disconnects, connects, gets kicked or banned.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client changing channels
-
-Param oldChannelID:
-id of the previous channel of the client.
-
-Param newChannelID:
-id of the current channel of the client. Can be 0, if the client disconnected / got kicked / banned.
-
-
-
-
-
-
-void ( * onClientMoveMovedEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , anyID moverID , const char * moverName , const char * moverUniqueIdentifier , const char * moveMessage )
-called when a client was moved by the server or another client
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-the client that was moved
-
-Param oldChannelID:
-id of the previous channel the client used to be in
-
-Param newChannelID:
-id of the current channel the client was moved to
-
-Param visibility:
-whether we can see the client. One of the values from the Visibility enum.
-
-Param moverID:
-id of the client that moved the client
-
-Param moverName:
-utf8 encoded c string containing the display name of the client that caused the move
-
-Param moverUniqueIdentifier:
-utf8 encoded c string containing the identifier of the client that caused the move
-
-Param moveMessage:
-utf8 encoded c string containing the reason message
-
-
-
-
-
-
-
-
-Examples
-Requesting to move the own client into channel ID 12 (not password-protected):
-ts3client_requestClientMove ( scHandlerID , ts3client_getClientID ( scHandlerID ), 12 , "" , NULL );
-
-
-Now wait for the callback:
-void my_onClientMoveEvent ( uint64 scHandlerID , anyID clientID ,
- uint64 oldChannelID , uint64 newChannelID ,
- int visibility , const char * moveMessage ) {
- // scHandlerID -> Server connection handler ID, same as above when requesting
- // clientID -> Own client ID, same as above when requesting
- // oldChannelID -> ID of the channel the client has left
- // newChannelID -> 12, as requested above
- // visibility -> One of ENTER_VISIBILITY, RETAIN_VISIBILITY, LEAVE_VISIBILITY
- // moveMessage -> Optional message set by disconnecting clients
-}
-
-
-
-
Note
-
If oldChannelID is 0, the client has just connected to the server.
-If newChannelID is 0, the client disconnected.
-
Both values cannot be 0 at the same time.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/channel-list.html b/docs/teamspeak-sdk-3.5.2/doc/client/channel-list.html
deleted file mode 100644
index 7eafc7e..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/channel-list.html
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
-
-
-
-
-
-
List channels — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-List channels
-A list of all channels on the specified virtual server can be queried
-with
-
-
-unsigned int ts3client_getChannelList ( uint64 serverConnectionHandlerID , uint64 * * result )
-Get a list of all channels currently on the server.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to retrieve the channels
-result – address of a variable to receive a zero terminated array of channel ids, like {1, 4023, 49, 8534, …, 0} Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To query the id of the channel the specified client has currently joined use
-
-
-unsigned int ts3client_getChannelOfClient ( uint64 serverConnectionHandlerID , anyID clientID , uint64 * result )
-Get id of the current channel the specified client is in.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the client is located
-clientID – the client to receive the current channel for
-result – address of a variable to receive the channel id of the specified client
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To get the parent channel of a given channel use
-
-
-unsigned int ts3client_getParentChannelOfChannel ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 * result )
-get the id of the parent channel of the specified channel.
-If the channel specified by channelID is a root channel, the result will be 0.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to retrieve the parent of
-result – address of a variable to receive the parent channel id.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Examples
-Example code to print a list of all channels on a virtual server:
-1 uint64 * channels ;
-2
-3 if ( ts3client_getChannelList ( serverID , & channels ) == ERROR_ok ) {
-4 for ( int i = 0 ; channels [ i ] != NULL ; i ++ ) {
-5 printf ( "Channel ID: %u \n " , channels [ i ]);
-6 }
-7 ts3client_freeMemory ( channels );
-8 }
-
-
-To print all visible clients:
-1 anyID * clients ;
-2
-3 if ( ts3client_getClientList ( scHandlerID , & clients ) == ERROR_ok ) {
-4 for ( int i = 0 ; clients [ i ] != NULL ; i ++ ) {
-5 printf ( "Client ID: %u \n " , clients [ i ]);
-6 }
-7 ts3client_freeMemory ( clients );
-8 }
-
-
-Example to print all clients who are member of channel with ID 123:
-1 uint64 channelID = 123 ; /* Channel ID in this example */
-2 anyID * clients ;
-3
-4 if ( ts3client_getChannelClientList ( scHandlerID , channelID ) == ERROR_ok ) {
-5 for ( int i = 0 ; clients [ i ] != NULL ; i ++ ) {
-6 printf ( "Client ID: %u \n " , clients [ i ]);
-7 }
-8 ts3client_freeMemory ( clients );
-9 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/channel-move.html b/docs/teamspeak-sdk-3.5.2/doc/client/channel-move.html
deleted file mode 100644
index fe7fbc5..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/channel-move.html
+++ /dev/null
@@ -1,241 +0,0 @@
-
-
-
-
-
-
-
-
-
Moving a channel — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Moving a channel
-To move a channel to a different parent channel call
-
-
-unsigned int ts3client_requestChannelMove ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 newChannelParentID , uint64 newChannelOrder , const char * returnCode )
-Move a channel in a tree or to a different parent channel.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the channel is located
-channelID – the channel id to move or change the parent of
-newChannelParentID – the channel id of the channel to be the new parent channel
-newChannelOrder – the channel id of the channel below which the channel is to be sorted
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Callback
-After sending the request, the following event will be called if the
-move was successful:
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onChannelMoveEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 newChannelParentID , anyID invokerID , const char * invokerName , const char * invokerUniqueIdentifier )
-called when a channel is moved to a different location on the server
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the id of the channel being moved
-
-Param newChannelParentID:
-the id of the new parent channel
-
-Param invokerID:
-client if of the client that moved the channel. 0 if caused by server.
-
-Param invokerName:
-utf8 encoded c string containing the display name of the client that moved the channel
-
-Param invokerUniqueIdentifier:
-utf8 encoded c string containing the unique identifier of the client that moved the channel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/channel-sort.html b/docs/teamspeak-sdk-3.5.2/doc/client/channel-sort.html
deleted file mode 100644
index ef4e2bb..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/channel-sort.html
+++ /dev/null
@@ -1,219 +0,0 @@
-
-
-
-
-
-
-
-
-
Channel sorting — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Channel sorting
-The order how channels should be display in the GUI is defined by the
-channel variable CHANNEL_ORDER , which can be queried with
-ts3client_getChannelVariableAsUInt64() and changed with
-ts3client_setChannelVariableAsUInt64() .
-The channel order is the ID of the predecessor channel after which the
-given channel should be sorted. An order of 0 means the channel is
-sorted on the top of its hirarchy.
-Channel_1 ( ID = 1 , order = 0 )
-Channel_2 ( ID = 2 , order = 1 )
- Subchannel_1 ( ID = 4 , order = 0 )
- Subsubchannel_1 ( ID = 6 , order = 0 )
- Subsubchannel_2 ( ID = 7 , order = 6 )
- Subchannel_2 ( ID = 5 , order = 4 )
-Channel_3 ( ID = 3 , order = 2 )
-
-
-
-
Important
-
When a new channel is created, the client is responsible to set a proper
-channel order. With the default value of 0 the channel will be sorted on
-the top of its hirarchy right after its parent channel.
-
-When moving a channel to a new parent, the desired channel order can be
-passed to ts3client_requestChannelMove() .
-To move the channel to another position within the current hirarchy -
-the parent channel stays the same -, adjust the CHANNEL_ORDER
-variable with ts3client_setChannelVariableAsUInt64() .
-After connecting to a TeamSpeak 3 server, the client will be informed of
-all channels by the onNewChannelEvent() callback.
-The order how channels are propagated to the client is:
-
-First the complete channel path to the default channel, which is
-either the servers default channel with the flag CHANNEL_FLAG_DEFAULT
-or the users default channel passed to ts3client_startConnection() .
-This ensures the channel joined on login is visible as soon as
-possible.
-In the above example, assuming the default channel is “Subsubchannel_2”,
-the channels would be announced in the following order: Channel_2,
-Subchannel_1, Subsubchannel_2.
-After the default channel path has completely arrived, the connection
-status (see ConnectStatus annouced to the
-client by the callback onConnectStatusChangeEvent() )
-changes to STATUS_CONNECTION_ESTABLISHING .
-
-Next all other channels in the given order, where subchannels are
-announced right after the parent channel.
-To continue the example, the remaining channels would be announced in
-the order of: Channel_1, Subsubchannel_1, Subchannel_2, Channel_3
-(Channel_2, Subchannel_1, Subsubchannel_2 already were announced in
-the previous step).
-When all channels have arrived, the connection status switches to
-STATUS_CONNECTION_ESTABLISHED .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/channel-subscribe.html b/docs/teamspeak-sdk-3.5.2/doc/client/channel-subscribe.html
deleted file mode 100644
index 89b842e..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/channel-subscribe.html
+++ /dev/null
@@ -1,384 +0,0 @@
-
-
-
-
-
-
-
-
-
Channel subscriptions — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Channel subscriptions
-By default a user only sees other clients that are in the same channel.
-Clients joining or leaving other channels or changing status are not
-displayed or announced to a client. To offer a way to get notifications
-about clients in other channels, a user can subscribe to other channels.
-It is also possible to always subscribe to all channels to get notifications
-about all clients on the server.
-Subscriptions are meant to have a flexible way to balance bandwidth
-usage. On a crowded server limiting the number of subscribed channels is
-a way to reduce network traffic.
-In addition subscriptions allow to have “private” channels, in that
-other clients cannot see who is in a channel.
-
-
Note
-
A client is always automatically subscribed to the current channel.
-
-
-Subscribe to channels
-To subscribe to a list of channels call
-
-
-unsigned int ts3client_requestChannelSubscribe ( uint64 serverConnectionHandlerID , const uint64 * channelIDArray , const char * returnCode )
-Request live updates to specific channels, being able to see clients in the channel.
-If you intend to subscribe to all channels on the server, use ts3client_requestChannelSubscribeAll function instead. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to subscribe to the specified channels
-channelIDArray – a zero terminated array of channel ids to subscribe to
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To subscribe to all the channels on the server call
-
-
-unsigned int ts3client_requestChannelSubscribeAll ( uint64 serverConnectionHandlerID , const char * returnCode )
-Request live updates from all channels, being able to see clients in the channels.
-If you only want to subscribe to a specific subset of channels, use ts3client_requestChannelSubscribe funtion instead. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Unsubscribe from channels
-To unsubscribe from a list of channels call
-
-
-unsigned int ts3client_requestChannelUnsubscribe ( uint64 serverConnectionHandlerID , const uint64 * channelIDArray , const char * returnCode )
-Remove subscription from channels. No longer receiving updates to clients in the channels.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to unsubscribe from the specified channels
-channelIDArray – a zero terminated array of channel ids to unsubscribe from
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To unsubscribe from all channels on the server call
-
-
-unsigned int ts3client_requestChannelUnsubscribeAll ( uint64 serverConnectionHandlerID , const char * returnCode )
-Remove subscription from all channels. No longer receiving updates to clients outside of own channel.
-The current channel will always be subscribed and you will always receive updates about clients in the current channel. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
Even when unsubscribing from all channels, the client will still be
-subscribed to their current channel!
-
-
-
-Check subscription status
-To check if we are currently subscribed to a particular channel, check
-its CHANNEL_FLAG_ARE_SUBSCRIBED property
-using ts3client_getChannelVariableAsInt() .
-
-Example
-1 int isSubscribed = -1 ;
-2
-3 ts3client_getChannelVariableAsInt ( scHandlerID , channelID , CHANNEL_FLAG_ARE_SUBSCRIBED , & isSubscribed );
-4 if ( isSubscribed > 0 ) {} // Subscribed
-5 else if ( isSubscribed == 0 ) {} // Not subscribed
-6 else {} // Error, likely not connected.
-
-
-
-
-
-Callbacks
-The following callbacks are called as a result of subscribing to or
-unsubscribing from a channel
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onClientMoveSubscriptionEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility )
-called after subscribing to or unsubscribing from a channel. Called once for every client that is in the (un)subscribed channel at this time.
-Informs you about newly visible clients after subscribing to a channel. Informs about clients that we will no longer receive information about.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client
-
-Param oldChannelID:
-id of the channel that the client was in last time we saw the client.
-
-Param newChannelID:
-id of the channel the client is currently in.
-
-Param visibility:
-whether we can see the client or not. One of the values from the Visibility enum. Allows to distinguish whether this callback was called after a subscribe or unsubscribe.
-
-
-
-
-
-
-void ( * onChannelSubscribeEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID )
-called when a channel was successfully subscribed by us
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-id of the channel we subscribed to
-
-
-
-
-
-
-void ( * onChannelSubscribeFinishedEvent ) ( uint64 serverConnectionHandlerID )
-called after all channels we attempted to subscribe to are subscribed.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-void ( * onChannelUnsubscribeEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID )
-called after we unsubscribed from a channel
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-id of the channel we unsubscribed from. Will no longer receive updates about clients in this channel.
-
-
-
-
-
-
-void ( * onChannelUnsubscribeFinishedEvent ) ( uint64 serverConnectionHandlerID )
-called after all channels we attempted to unsubscribe from are unsubscribed
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/channels.html b/docs/teamspeak-sdk-3.5.2/doc/client/channels.html
deleted file mode 100644
index acf551c..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/channels.html
+++ /dev/null
@@ -1,213 +0,0 @@
-
-
-
-
-
-
-
-
-
Channel Management — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Channel Management
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/client-kick.html b/docs/teamspeak-sdk-3.5.2/doc/client/client-kick.html
deleted file mode 100644
index 7d3e35b..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/client-kick.html
+++ /dev/null
@@ -1,294 +0,0 @@
-
-
-
-
-
-
-
-
-
Kicking clients — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Kicking clients
-
-
-
-
-
-
-
-
-
-Kicking clients
-Clients can be forcefully removed from a channel or the whole server.
-
-From server
-To remove the client from the server call
-
-
-unsigned int ts3client_requestClientKickFromServer ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , const char * kickReason , const char * returnCode )
-Request client(s) to be kicked from the server.
-The clients will be disconnected and shown the reason. Reason is also displayed to everyone else on the server. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the client is located
-clientIDArray – a NULL terminated array of client Ids to kick from their current channel.
-kickReason – an explanatory message to display as the reason for everyone.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-From channel
-To remove the client from their current channel and place them in the
-default channel of the server use
-
-
-unsigned int ts3client_requestClientKickFromChannel ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , const char * kickReason , const char * returnCode )
-Request client(s) to be kicked from their current channel.
-Kicking a client is essentially a glorified move to the server default channel with a message displayed to everyone. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the client is located
-clientIDArray – a NULL terminated array of client Ids to kick from their current channel.
-kickReason – an explanatory message to display as the reason for everyone.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Callbacks
-One of the following callbacks will be called if the kick was
-successfull, depending on whether the kick was from the server or channel
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onClientKickFromChannelEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , anyID kickerID , const char * kickerName , const char * kickerUniqueIdentifier , const char * kickMessage )
-called when a client is kicked from their channel
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client that was kicked
-
-Param oldChannelID:
-id of the previous channel the client used to be in
-
-Param newChannelID:
-id of the current channel the client was kicked to. This is the id of the server default channel.
-
-Param visibility:
-whether we can see the client. One of the values from the Visibility enum.
-
-Param kickerID:
-id of the client that kicked the client. 0 if the server kicked the client.
-
-Param kickerName:
-utf8 encoded c string containing the display name of the client initiating the kick
-
-Param kickerUniqueIdentifier:
-utf8 encoded c string containing the identifier of the client initiating the kick
-
-Param kickMessage:
-utf8 encoded c string containing the provided reason for the kick
-
-
-
-
-
-
-void ( * onClientKickFromServerEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , anyID kickerID , const char * kickerName , const char * kickerUniqueIdentifier , const char * kickMessage )
-called when a client was kicked from the server
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client that was kicked
-
-Param oldChannelID:
-id of the previous channel the client used to be in
-
-Param newChannelID:
-always 0
-
-Param visibility:
-whether we can see the client. One of the values from the Visibility enum.
-
-Param kickerID:
-id of the client that kicked the client. 0 if the server kicked the client.
-
-Param kickerName:
-utf8 encoded c string containing the display name of the client initiating the kick
-
-Param kickerUniqueIdentifier:
-utf8 encoded c string containing the identifier of the client initiating the kick
-
-Param kickMessage:
-utf8 encoded c string containing the provided reason for the kick
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/client-list.html b/docs/teamspeak-sdk-3.5.2/doc/client/client-list.html
deleted file mode 100644
index 46c7b97..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/client-list.html
+++ /dev/null
@@ -1,193 +0,0 @@
-
-
-
-
-
-
-
-
-
List clients — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-List clients
-To get a list of all currently visible clients on the specified virtual
-server
-
-
-unsigned int ts3client_getClientList ( uint64 serverConnectionHandlerID , anyID * * result )
-Get a list of all clients in subscribed channels on the server.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to retrieve the client list
-result – address of a variable to receive a null terminated array of client ids like {10, 30, …, 0} Memory is allocated by the client lib and caller must free the array using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To get a list of all clients in the specified channel if the channel is
-currently subscribed:
-
-
-unsigned int ts3client_getChannelClientList ( uint64 serverConnectionHandlerID , uint64 channelID , anyID * * result )
-Get a list of all clients in the specified channel.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – the channel of which to retrieve the current clients
-result – address of a variable to receive a zero terminated array of client ids, like {2, 50, 4, …, 0} Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/connections.html b/docs/teamspeak-sdk-3.5.2/doc/client/connections.html
deleted file mode 100644
index 2e4418d..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/connections.html
+++ /dev/null
@@ -1,488 +0,0 @@
-
-
-
-
-
-
-
-
-
Managing server connections — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Managing server connections
-
-
-
-
-
-
-
-
-
-Managing server connections
-Before connecting to a TeamSpeak 3 server, a server connection
-handler needs to be spawned. Each handler is identified by a unique ID
-(usually called serverConnectionHandlerID internally).
-For each connection handler one connection can be established.
-Connection handlers can be re-used as needed as long as they exist.
-So for simply reconnecting to the same server or connecting to another
-server after disconnecting, no new handler needs to be spawned but
-existing ones can be reused.
-However if you need multiple simultaneous connections, you need one
-server connection handler per simultaneous connection.
-
-Creating a connection handler
-A connection handler is created using
-
-
-unsigned int ts3client_spawnNewServerConnectionHandler ( int port , uint64 * result )
-Creates a new server connection handler to connect to servers.
-A connection handler is what handles and identifies server connections to the client library. There can be many of these at the same time and every single one of them can be connected to any server. The client library identifies them by the id placed in the result param. When you receive callbacks, or need to change things, on a specific server you will also specify which server you would like to use by providing the corresponding serverConnectionHandlerId to the client library function.
-
-Parameters:
-
-port – the local port to use. Specify 0 to use an ephemeral port.
-result – Address of a variable to store the id of the connection handler in. Use this to reference the connection handler in future calls to client lib functions.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Caution
-
Do not specify a non-zero value for port unless you absolutely
-need a specific port. Passing zero is the better way in most use cases.
-
-
-
Note
-
When no longer needed a connection handler should be destroyed
-
-
-
-Removing a connection handler
-To destroy a server connection handler call
-
-
-unsigned int ts3client_destroyServerConnectionHandler ( uint64 serverConnectionHandlerID )
-Destroys a connection handler.
-After destruction the connection handler is invalid and cannot be used any longer. Must not be called from within a callback!
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Important
-
Destroying invalidates the handler ID, so it must not be used anymore
-afterwards.
-
-
-
Caution
-
Do not destroy a server connection handler from within a callback.
-
-
-
-List connection handlers
-A client can connect to multiple servers. To list all currently existing
-server connection handlers call:
-
-
-unsigned int ts3client_getServerConnectionHandlerList ( uint64 * * result )
-get a list of all connection handlers
-
-Parameters:
-
-result – address of a variable to receive a zero terminated array of connection handlers, like {1, 5, …, 0} Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Creating an identity
-To connect to a server, a client application is required to request an
-identity from the Client Lib.
-This string should be requested only once and then locally stored in the
-applications configuration. The next time the application connects to a
-server, the identity should be read from the configuration and reused again.
-
-
-unsigned int ts3client_createIdentity ( char * * result )
-Create a new identity to use for connecting to a server.
-Identities identify a client to the server. The identity should be stored and reused for sessions by the same user.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Connecting to a server
-Once a connection handler and identity are available, you can attempt to
-connect to a server using either of these two functions
-
-
-unsigned int ts3client_startConnection ( uint64 serverConnectionHandlerID , const char * identity , const char * ip , unsigned int port , const char * nickname , const char * * defaultChannelArray , const char * defaultChannelPassword , const char * serverPassword )
-initiates a connection to a TeamSpeak server.
-When using a hostname instead of an IP address, this function will block until the client lib resolved the host name.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to connect on, as created by ts3client_spawnNewServerConnectionHandler
-identity – an identity string, as created by ts3client_createIdentity
-ip – the server address to connect to. Can be a hostname or an IPv4 or IPv6 address
-port – UDP port on which the TeamSpeak server is listening
-nickname – a utf8 encoded c string used to display this client to other clients on the server. Not guaranteed to be the final name.
-defaultChannelArray – An array describing the path to a channel to join after connect. Pass NULL when not used
-defaultChannelPassword – The password for the channel in defaultChannelArray. Pass empty string if unused
-serverPassword – server password. Pass empty string if the server does not have a password set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-If you would rather specify the default channel with its channel id rather
-than the channel names array you can use
-
-
-unsigned int ts3client_startConnectionWithChannelID ( uint64 serverConnectionHandlerID , const char * identity , const char * ip , unsigned int port , const char * nickname , uint64 defaultChannelId , const char * defaultChannelPassword , const char * serverPassword )
-initiates a connection to a TeamSpeak server.
-When using a hostname instead of an IP address, this function will block until the client lib resolved the host name.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to connect on, as created by ts3client_spawnNewServerConnectionHandler
-identity – an identity string, as created by ts3client_createIdentity
-ip – the server address to connect to. Can be a hostname or an IPv4 or IPv6 address
-port – UDP port on which the TeamSpeak server is listening
-nickname – a utf8 encoded c string used to display this client to other clients on the server. Not guaranteed to be the final name.
-defaultChannelId – The channel id of the channel to join on connect. Pass 0 to join server default channel
-defaultChannelPassword – The password for the channel in defaultChannelId. Pass empty string if unused
-serverPassword – server password. Pass empty string if the server does not have a password set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
Passing a domain name into the ip parameter of either
-function will force the client lib to resolve the name to an
-IP address.
-
Both functions will block until the name has been resolved,
-which may cause an unusually long delay for these functions to return.
-
If you rely on quick return, we would suggest to asynchronously
-resolve the domain name to an IP address and call the above function
-with the IP address.
-
-
-Example
-Example code to request a connection to a TeamSpeak 3 server:
- 1 unsigned int error ;
- 2 uint64 scHandlerID ;
- 3 char * identity ;
- 4
- 5 error = ts3client_spawnNewServerConnectionHandler ( & scHandlerID );
- 6 if ( error != ERROR_ok ) {
- 7 printf ( "Error spawning server conection handler: %d \n " , error );
- 8 return ;
- 9 }
-10
-11 error = ts3client_createIdentity ( & identity ); /* Application should store and reuse the identity */
-12 if ( error != ERROR_ok ) {
-13 printf ( "Error creating identity: %d \n " , error );
-14 return ;
-15 }
-16
-17 error = ts3client_startConnection ( scHandlerID , identity , "my-teamspeak-server.com" , 9987 , "Gandalf" ,
-18 NULL , // Join servers default channel
-19 "" , // Empty default channel password
-20 "secret" ); // Server password
-21 if ( error != ERROR_ok ) {
-22 // Handle the error
-23 }
-24 ts3client_freeMemory ( identity ); /* Don't need this anymore */
-
-
-
-
-
-Connection change notification
-After calling ts3client_startConnection() , the client will be informed
-of the connection status changes through the callback
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onConnectStatusChangeEvent ) ( uint64 serverConnectionHandlerID , int newStatus , unsigned int errorNumber )
-called when the status of a connection changes
-
-Param serverConnectionHandlerID:
-specifies on which connection the status has changed
-
-Param newStatus:
-the current status of the connection. One of the values from the ConnectStatus enum
-
-Param errorNumber:
-if the state change was caused by an error this is set to one of the values from the Ts3ErrorType enum
-
-
-
-
-
-
-
-This callback will be called every time the connection advances or changes
-state.
-Valid states are described in ConnectStatus
-You may want to query certain server variables like
-VIRTUALSERVER_WELCOMEMESSAGE when the
-status is STATUS_CONNECTED for display purposes.
-You will also be informed about existing channels by means of the
-onNewChannelEvent() callback as well as visible clients
-by means of the onClientMoveEvent() callback.
-If the server is shut down, in addition to the above, the following
-callback will be called
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onServerStopEvent ) ( uint64 serverConnectionHandlerID , const char * shutdownMessage )
-called when the server was stopped
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param shutdownMessage:
-utf8 encoded c string containing the provided reason for the shutdown
-
-
-
-
-
-
-
-
-
-Disconnecting
-To disconnect from a TeamSpeak 3 server call
-
-
-unsigned int ts3client_stopConnection ( uint64 serverConnectionHandlerID , const char * quitMessage )
-Disconnect from a TeamSpeak server.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/encoder.html b/docs/teamspeak-sdk-3.5.2/doc/client/encoder.html
deleted file mode 100644
index 3f38b00..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/encoder.html
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
-
-
-
-
-
Encoder options — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Encoder options
-
-
Important
-
The use of the Speex codec is deprecated and support for it may be
-removed at any time in the future.
-
It is highly recommended to use Opus Voice instead.
-
-Speech quality and bandwidth usage depend on the used Speex encoder. As
-Speex is a lossy code, the quality value controls the balance between
-voice quality and network traffic. Valid quality values range from 0 to
-10, default is 7. The encoding quality can be configured for each
-channel using the CHANNEL_CODEC_QUALITY property.
-The currently used channel codec, codec quality and estimated average
-used bitrate (without overhead) can be queried using ts3client_getEncodeConfigValue() .
-
-
Note
-
Encoder options are tied to a capture device, so querying the values
-only makes sense after a device has been opened.
-
-
-
-unsigned int ts3client_getEncodeConfigValue ( uint64 serverConnectionHandlerID , const char * ident , char * * result )
-Retrieve voice encoder information.
-Encoder options are bound to a capture device. You must open a capture device on the specified connection handler prior to calling this function. bitrate will return the estimated bitrate of audio without any overhead. name will return the used codec name. quality will return the codec quality setting, a value between 0 and 10 inclusive.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to query the encoder information for.
-ident – the configuration value to query. Valid values are name, quality and bitrate
-result – address of a variable to receive an utf8 encoded c string with the value of the option queried. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Examples
-To adjust the channel codec quality to a value of 5, you would call:
-ts3client_setChannelVariableAsInt ( scHandlerID , channelID , CHANNEL_CODEC_QUALITY , 5 );
-
-
-To query information about the current channel quality, do:
- 1 char * name , * quality , * bitrate ;
- 2 ts3client_getEncodeConfigValue ( scHandlerID , "name" , & name );
- 3 ts3client_getEncodeConfigValue ( scHandlerID , "quality" , & quality );
- 4 ts3client_getEncodeConfigValue ( scHandlerID , "bitrate" , & bitrate );
- 5
- 6 printf ( "Name = %s, quality = %s, bitrate = %s \n " , name , quality , bitrate );
- 7
- 8 ts3client_freeMemory ( name );
- 9 ts3client_freeMemory ( quality );
-10 ts3client_freeMemory ( bitrate );
-
-
-
-
Note
-
Error checking has been left out of these examples. You should
-check the return value and only access the variables if the function
-returned ERROR_ok
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/encryption.html b/docs/teamspeak-sdk-3.5.2/doc/client/encryption.html
deleted file mode 100644
index c2b7c81..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/encryption.html
+++ /dev/null
@@ -1,283 +0,0 @@
-
-
-
-
-
-
-
-
-
Custom encryption — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Custom encryption
-
-
-
-
-
-
-
-
-
-Custom encryption
-As an optional feature, the TeamSpeak 3 SDK allows users to implement
-custom encryption and decryption for all network traffic. Custom
-encryption replaces the default AES encryption implemented by the
-TeamSpeak 3 SDK. A possible reason to apply custom encryption might be to
-make ones TeamSpeak 3 client and server incompatible to other SDK
-implementations.
-
-
Important
-
Custom encryption must be implemented the same way in both the client
-and server.
-
-
-
Note
-
If you do not want to use this feature, just don’t implement the two
-encryption callbacks.
-
-
-Enryption
-To encrypt outgoing data, implement the callback
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onCustomPacketEncryptEvent ) ( char * * dataToSend , unsigned int * sizeOfData )
-called for every packet to be sent to the server. Used to implement custom cryptography.
-Only implement if you need custom encryption of network traffic. Replaces default encryption. If implemented Encryption and Decryption must be implemented the same way on both server and client.
-
-Param dataToSend:
-pointer to a byte array of data to be encrypted. Must not be freed. Write encrypted data to array. Replace array pointer with pointer to own buffer if you need more space. Need to take care of freeing your own memory yourself.
-
-Param sizeOfData:
-pointer to the size of the data array.
-
-
-
-
-
-
-
-
-dataToSend
-Pointer to an array with the outgoing data to be encrypted.
-Apply your custom encryption to the data array. If the encrypted data
-is smaller than sizeOfData, write your encrypted data into the
-existing memory of dataToSend. If your encrypted data is larger, you
-need to allocate memory and redirect the pointer dataToSend. You need
-to take care of freeing your own allocated memory yourself. The
-memory allocated by the SDK, to which dataToSend is originally
-pointing to, must not be freed.
-
-sizeOfData
-Pointer to an integer value containing the size of the data array.
-
-
-
-
-Decryption
-To decrypt incoming data, implement the callback
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onCustomPacketDecryptEvent ) ( char * * dataReceived , unsigned int * dataReceivedSize )
-called for every packet received from the server. Used to implement custom cryptography.
-Only implement if you need custom encryption of network traffic. Replaces default encryption. If implemented Encryption and Decryption must be implemented the same way on both server and client.
-
-Param dataReceived:
-pointer to byte array of data to decrypt. Must not be freed. Write decrypted data to the array if large enough. Replace array pointer with pointer to own buffer if decrypted data exceeds the array size. Must take care to free own memory.
-
-Param sizeOfData:
-pointer to the size of the data array.
-
-
-
-
-
-
-
-
-dataReceived
-Pointer to an array with the received data to be decrypted.
-Apply your custom decryption to the data array. If the decrypted data
-is smaller than dataReceivedSize, write your decrypted data into the
-existing memory of dataReceived. If your decrypted data is larger,
-you need to allocate memory and redirect the pointer dataReceived.
-You need to take care of freeing your own allocated memory yourself.
-The memory allocated by the SDK, to which dataReceived is originally
-pointing to, must not be freed.
-
-dataReceivedSize
-Pointer to an integer value containing the size of the data array.
-
-
-
-
-Example
-Example code implementing a very simple XOR custom encryption and
-decryption (also see the SDK examples):
- 1 void onCustomPacketEncryptEvent ( char ** dataToSend , unsigned int * sizeOfData ) {
- 2 unsigned int i ;
- 3 for ( i = 0 ; i < * sizeOfData ; i ++ ) {
- 4 ( * dataToSend )[ i ] ^= CUSTOM_CRYPT_KEY ;
- 5 }
- 6 }
- 7
- 8 void onCustomPacketDecryptEvent ( char ** dataReceived , unsigned int * dataReceivedSize ) {
- 9 unsigned int i ;
-10 for ( i = 0 ; i < * dataReceivedSize ; i ++ ) {
-11 ( * dataReceived )[ i ] ^= CUSTOM_CRYPT_KEY ;
-12 }
-13 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/faq.html b/docs/teamspeak-sdk-3.5.2/doc/client/faq.html
deleted file mode 100644
index 31193a3..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/faq.html
+++ /dev/null
@@ -1,280 +0,0 @@
-
-
-
-
-
-
-
-
-
FAQ — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-FAQ
-
-Implementing Push-To-Talk
-Push-To-Talk should be implemented by toggling the client variable
-CLIENT_INPUT_DEACTIVATED using the function
-ts3client_setClientSelfVariableAsInt() .
-Valid variables are defined in InputDeactivationStatus .
-For Push-To-Talk toggle between INPUT_ACTIVE (talking) and
-INPUT_DEACTIVATED (not talking).
-
-Example
- 1 unsigned int error ;
- 2 bool shouldTalk ;
- 3
- 4 shouldTalk = isPushToTalkButtonPressed (); // Your key detection implementation
- 5 if (( error = ts3client_setClientSelfVariableAsInt ( scHandlerID , CLIENT_INPUT_DEACTIVATED , shouldTalk ? INPUT_ACTIVE : INPUT_DEACTIVATED )) != ERROR_ok ) {
- 6 char * errorMsg ;
- 7 if ( ts3client_getErrorMessage ( error , & errorMsg ) != ERROR_ok ) {
- 8 printf ( "Error toggling push-to-talk: %s \n " , errorMsg );
- 9 ts3client_freeMemory ( errorMsg );
-10 }
-11 return ;
-12 }
-13
-14 if ( ts3client_flushClientSelfUpdates ( scHandlerID , NULL ) != ERROR_ok ) {
-15 char * errorMsg ;
-16 if ( ts3client_getErrorMessage ( error , & errorMsg ) != ERROR_ok ) {
-17 printf ( "Error flushing after toggling push-to-talk: %s \n " , errorMsg );
-18 ts3client_freeMemory ( errorMsg );
-19 }
-20 }
-
-
-It is not necessary to close and reopen the capture device to implement
-Push-To-Talk.
-Basically it would be possible to toggle CLIENT_INPUT_MUTED as well, but
-the advantage of CLIENT_INPUT_DEACTIVATED is that the change is not
-propagated to the server and other connected clients, thus saving
-network traffic. CLIENT_INPUT_MUTED should instead be used for manually
-muting the microphone when using Voice Activity Detection instead of
-Push-To-Talk.
-If you need to query the current muted state, use
-ts3client_getClientSelfVariableAsInt()
- 1 int hardwareStatus , deactivated , muted ;
- 2
- 3 if ( ts3client_getClientSelfVariableAsInt ( scHandlerID , CLIENT_INPUT_HARDWARE , & hardwareStatus ) != ERROR_ok ) {
- 4 /* Handle error */
- 5 }
- 6 if ( ts3client_getClientSelfVariableAsInt ( scHandlerID , CLIENT_INPUT_DEACTIVATED , & deactivated ) != ERROR_ok ) {
- 7 /* Handle error */
- 8 }
- 9 if ( ts3client_getClientSelfVariableAsInt ( scHandlerID , CLIENT_INPUT_MUTED , & muted ) != ERROR_ok ) {
-10 /* Handle error */
-11 }
-12
-13 if ( hardwareStatus == HARDWAREINPUT_DISABLED ) {
-14 /* No capture device available */
-15 }
-16 if ( deactivated == INPUT_DEACTIVATED ) {
-17 /* Input was deactivated for Push-To-Talk (not propagated to server) */
-18 }
-19 if ( muted == MUTEINPUT_MUTED ) {
-20 /* Input was muted (propagated to server) */
-21 }
-
-
-When using Push-To-Talk, you should deactivate Voice Activity Detection
-in the preprocessor or keep the VAD level very low. To
-deactivate VAD, use:
-1 ts3client_setPreProcessorConfigValue ( serverConnectionHandlerID , "vad" , "false" );
-
-
-
-
-
-Adjusting the volume
-
-Output volume
-The global voice output volume can be adjusted by changing the
-“volume_modifier” playback option using ts3client_setPlaybackConfigValue() .
-The value is in decibel, so 0 means no modification, negative values make the
-signal quieter and positive values louder.
-Example to increase the output volume by 10 decibel:
-1 ts3client_setPlaybackConfigValue ( scHandlerID , "volume_modifier" , 10 );
-
-
-In addition to modifying the global output volue, the volume of
-individual clients can be changed with
-ts3client_setClientVolumeModifier() .
-
-
-
-
-Talk across channels
-Generally clients can only talk to other clients in the same channel.
-However, for specific scenarios this can be overruled using whisper
-lists . This feature allows specific clients to
-temporarily talk to other clients or channels outside of their own
-channel. While whispering, talking to the own channel is disabled.
-An example for a scenario where whisper may be useful would be a team
-consisting of a number of squads. Each squad is assigned to one channel,
-so squad members can only talk to other members of the same squad. In
-addition, there is a team leader and squad leaders, who want to
-communicate accross the squad channels. This can be implemented with
-whispering, so the team leader could broadcast to all squad leaders, or
-a squad leader could briefly report to the team leader temporarily
-sending his voice data to him instead of the squad leaders channel.
-This mechanism is powerful and flexible allowing the SDK developer to
-handle more complex scenarios overruling the standard behavior where
-clients can only talk to other clients within the same channel.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/filetransfer.html b/docs/teamspeak-sdk-3.5.2/doc/client/filetransfer.html
deleted file mode 100644
index 4fb38ea..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/filetransfer.html
+++ /dev/null
@@ -1,911 +0,0 @@
-
-
-
-
-
-
-
-
-
Filetransfer — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Filetransfer
-The TeamSpeak SDK includes the ability to support filetransfer, like the
-regular TeamSpeak server and client offer. The Server can function as a
-file storage, which can be accessed by Clients who can up- and download
-files. Files are stored on the server side filesystem.
-In general, clients can initiate filetransfer actions like uploading or
-downloading a file, requesting file information (size, name, path etc.),
-list files in a directory and so on. The functions to call these actions
-are explained in detail below. In addition to the functions actively
-called, there are filetransfer related callbacks which are triggered
-when the server returned the requested information (e.g. list of files
-in a directory).
-Each transfer is identified by a transferID, which is passed to most
-filetransfer functions. Transfer IDs are unique during the time of the
-transfer, but may be reused again some time after the previous transfer
-with the same ID has finished.
-Files are organized on the server inside channels (identified by their
-channelID. The top-level directory in each channel is “/”.
-Subdirectories in each channel may exist and are defined with a path of
-the form “/dir1/dir2”. Subdirectories are optional and need to be
-created with ts3client_requestCreateDirectory() , the channel root
-directory always exists by default.
-See File Transfer Definitions for various
-enums and structs used with file transfer.
-
-
-Initiate transfers
-The following functions implement the core functionality of
-filetransfers. They initiate new up- and downloads, request file info,
-delete and rename files, create directories, list directories etc.
-
-Upload a local file
-
-
-unsigned int ts3client_sendFile ( uint64 serverConnectionHandlerID , uint64 channelID , const char * channelPW , const char * file , int overwrite , int resume , const char * sourceDirectory , anyID * result , const char * returnCode )
-Initiate a file upload to the server.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler to which to upload a file
-channelID – channel to which to upload the file
-channelPW – password of the channel specified in channelID. Pass an empty string if the channel does not have a password.
-file – the name of file to upload on the local file system.
-overwrite – boolean flag, whether to overwrite the file on the server. If 0 the transfer will fail if the file already exists on the server.
-resume – boolean flag, set to 1 to resume a previously aborted or halted transfer. If 1 will append to the file on the server.
-sourceDirectory – the absolute path in which the file resides on the local file system.
-result – address of a variable in which to store the transferID on success.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Download a file
-
-
-unsigned int ts3client_requestFile ( uint64 serverConnectionHandlerID , uint64 channelID , const char * channelPW , const char * file , int overwrite , int resume , const char * destinationDirectory , anyID * result , const char * returnCode )
-Initiate a file download from the server.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler from which to download the file
-channelID – channel in which the file to download is located
-channelPW – password of the channel specified in channelID. Pass an empty string if the channel does not have a password.
-file – the name of the file on the server file system. See ts3client_getFileList to receive a list of files.
-overwrite – boolean flag, whether to overwrite the local file if it already exists. If set to 0 transfer will fail if local file already exists unless resume is 1. Mutually exclusive to resume.
-resume – boolean flag, whether to append to the local file. If set to 1 the contents of the download will be appended to the local file. Mutually exclusive with overwrite.
-destinationDirectory – absolute path to the directory in which to store the file.
-result – address of a variable to receive the transfer id, used to identity this request in callbacks and other calls regarding the status of this transfer
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Cancel a transfer
-
-
-unsigned int ts3client_haltTransfer ( uint64 serverConnectionHandlerID , anyID transferID , int deleteUnfinishedFile , const char * returnCode )
-Cancel a file transfer.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the file transfer is happening
-transferID – specifies the file transfer to cancel
-deleteUnfinishedFile – boolean flag, whether to delete the partially transmitted file from the file system.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
A cancelled transfer can later be resumed by calling ts3client_sendFile()
-with the same file and target and set resume = 1
-
-
-
-
-
-Speed limits
-The TeamSpeak SDK offers the possibility to control and finetune
-transfer speed limits. These limits can be applied to the complete
-server, specific virtual servers or for each individual transfer. By
-default the transfer speed is unlimited.
-
-
Caution
-
Every file transfer should at least have a minimum speed limit of 5kb/s.
-
-
-
Note
-
Neither the TeamSpeak client nor server will store any of those values.
-When used, they’ll have to be set at each client start to be considered
-permanent.
-
-
-Set speed limits
-To set the download speed limit for all virtual servers in bytes/s:
-
-
-unsigned int ts3client_setInstanceSpeedLimitDown ( uint64 newLimit )
-set the instance wide download speed limit for file transfer.
-All concurrent file transfers combined will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To set the upload speed limit for all virtual servers in bytes/s:
-
-
-unsigned int ts3client_setInstanceSpeedLimitUp ( uint64 newLimit )
-set the instance wide upload speed limit for file transfer.
-All concurrent file transfers combined will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setServerConnectionHandlerSpeedLimitDown ( uint64 serverConnectionHandlerID , uint64 newLimit )
-set the virtual server download speed limit for file transfer.
-All concurrent file transfers combined will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setServerConnectionHandlerSpeedLimitUp ( uint64 serverConnectionHandlerID , uint64 newLimit )
-set the virtual server upload speed limit for file transfer.
-All concurrent file transfers combined will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To set the up- or download speed limit for the specified file transfer, first
-determine whether it is an up or download using ts3client_isTransferSender()
-The speed limit for the transfer can be set using
-
-
-unsigned int ts3client_setTransferSpeedLimit ( anyID transferID , uint64 newLimit )
-set the transfer limit for an individual file transfer.
-The maximum transfer speed will be min(instance limit, virtual server limit, transfer limit). Whether the limit is upload or download depends on what kind of transfer the specified transfer is.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Query speed limits
-
-
-unsigned int ts3client_getInstanceSpeedLimitDown ( uint64 * limit )
-get the configured maximum download speed of the server instance.
-The limit is temporary and valid only until ts3client_destroyClientLib is called.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getInstanceSpeedLimitUp ( uint64 * limit )
-get the configured maximum upload speed of the server instance.
-The limit is temporary and valid only until ts3client_destroyClientLib is called.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerConnectionHandlerSpeedLimitDown ( uint64 serverConnectionHandlerID , uint64 * limit )
-get the configured maximum download speed for the virtual server.
-Download speeds on this server will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerConnectionHandlerSpeedLimitUp ( uint64 serverConnectionHandlerID , uint64 * limit )
-get the configured maximum upload speed for the virtual server.
-Upload speeds on this server will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferSpeedLimit ( anyID transferID , uint64 * limit )
-get the speed limit for a specific file transfer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-Callbacks
-The following callbacks are called for file transfer actions
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onFileTransferStatusEvent ) ( anyID transferID , unsigned int status , const char * statusMessage , uint64 remotefileSize , uint64 serverConnectionHandlerID )
-called when file transfers finish or terminate with an error
-
-
-
-
-Param transferID:
-identifies the file transfer the callback was called for. As created by ts3client_requestFile or ts3client_sendFile
-
-Param status:
-indicates success status or error reason. One of the values from the Ts3ErrorType enum.
-
-Param statusMessage:
-utf8 encoded c string containing a human readable description of the status message
-
-Param remotefileSize:
-size of the file in bytes at the source of the transfer.
-
-Param serverConnectionHandlerID:
-specifies the connection the transfer was started on
-
-
-
-
-
-
-void ( * onFileListEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , const char * path , const char * name , uint64 size , uint64 datetime , int type , uint64 incompletesize , const char * returnCode )
-called as an answer to ts3client_requestFileList. Called once for every file in the requested path, providing file information.
-Followed by a onFileList_FinishedEvent callback after this callback was called for the last file in the requested path.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the channel in which the file is located
-
-Param path:
-the folder in which this file or directory is located
-
-Param name:
-the name of the file or directory this event is called for
-
-Param size:
-file size in bytes. 0 if this event describes a directory
-
-Param datetime:
-unix timestamp of when this file was last modified
-
-Param type:
-whether the entry described is a directory or a file. One of the values from the FileTransferType enum.
-
-Param incompleteSize:
-number of bytes that have already been transmitted. If not equal to size then this file is still being transmitted or the transfer was aborted.
-
-Param returnCode:
-allows to identify which call to ts3client_requestFileList caused this event to be fired. Same as given to the ts3client_requestFileList call. Can be NULL
-
-
-
-
-
-
-void ( * onFileListFinishedEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , const char * path )
-called after onFileListEvent was called for all directories / files in a given path.
-This signifies that you now know of all files and directories in the path requested.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the channel for which the file list is now complete
-
-Param path:
-the path within the channel that files and directories were requested for.
-
-
-
-
-
-
-void ( * onFileInfoEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , const char * name , uint64 size , uint64 datetime )
-called after a call to ts3client_requestFileInfo providing the requested information about a file.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the channel in which the file resides
-
-Param name:
-utf8 encoded c string containing the absolute path within the channel, including the file / directory name.
-
-Param size:
-the size of the file in bytes
-
-Param datetime:
-unix timestamp for the last time the file was modified
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/info-channel.html b/docs/teamspeak-sdk-3.5.2/doc/client/info-channel.html
deleted file mode 100644
index 0761693..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/info-channel.html
+++ /dev/null
@@ -1,437 +0,0 @@
-
-
-
-
-
-
-
-
-
Channel information — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/info-client.html b/docs/teamspeak-sdk-3.5.2/doc/client/info-client.html
deleted file mode 100644
index 1031dcd..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/info-client.html
+++ /dev/null
@@ -1,541 +0,0 @@
-
-
-
-
-
-
-
-
-
Client information — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/info-server.html b/docs/teamspeak-sdk-3.5.2/doc/client/info-server.html
deleted file mode 100644
index 49c6327..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/info-server.html
+++ /dev/null
@@ -1,318 +0,0 @@
-
-
-
-
-
-
-
-
-
Server information — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/info.html b/docs/teamspeak-sdk-3.5.2/doc/client/info.html
deleted file mode 100644
index 3ea7cf4..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/info.html
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
-
-
-
-
-
Retrieve and store information — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Retrieve and store information
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/intro.html b/docs/teamspeak-sdk-3.5.2/doc/client/intro.html
deleted file mode 100644
index 82d1ddc..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/intro.html
+++ /dev/null
@@ -1,290 +0,0 @@
-
-
-
-
-
-
-
-
-
Introduction — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Introduction
-This document describes client-side programming with the TeamSpeak 3 SDK.
-This library, the so-called client lib, encapsulates client-side functionality
-while keeping the user interface separated and modular.
-
-System requirements
-For developing third-party clients with the TeamSpeak 3 Client Lib the
-following system requirements apply:
-
-
-
Important
-
The calling convention used in the functions exported by the shared
-TeamSpeak 3 SDK libaries is cdecl . You must not use another calling
-convention, like stdcall on Windows, when declaring function pointers
-to the TeamSpeak 3 SDK libraries. Otherwise stack corruption at
-runtime may occur.
-
-
-
-
-Calling Client Lib functions
-Client Lib functions follow a common pattern. They always return an
-error code from the Ts3ErrorType or ERROR_ok on success.
-If there is a result variable, it is always the last variable in the functions
-parameters list.
-ERROR ts3client_FUNCNAME ( arg1 , arg2 , ..., & result );
-
-
-Result variables should only be accessed if the function returned
-ERROR_ok . Otherwise the state of the result variable is undefined.
-In those cases where the result variable is a basic type (int, float
-etc.), the memory for the result variable has to be declared by the
-caller. Simply pass the address of the variable to the Client Lib
-function ts3client_freeMemory() .
-int result ;
-
-if ( ts3client_XXX ( arg1 , arg2 , ..., & result ) == ERROR_ok ) {
- /* Use result variable */
-} else {
- /* Handle error, result variable is undefined */
-}
-
-
-If the result variable is a pointer type (C strings, arrays etc.), the
-memory is allocated by the Client Lib function. In that case, the caller
-has to release the allocated memory later by using ts3client_freeMemory() .
-It is important to only access and release the memory if the function
-returned ERROR_ok . Should the function return an error, the result
-variable is uninitialized, so freeing or accessing it could crash the application.
-char * result ;
-
-if ( ts3client_XXX ( arg1 , arg2 , ..., & result ) == ERROR_ok ) {
- /* Use result variable */
- ts3client_freeMemory ( result ); /* Release result variable */
-} else {
- /* Handle error, result variable is undefined. Do not access or release it. */
-}
-
-
-
-
Note
-
Client Lib functions are thread-safe . It is possible to access the
-Client Lib from several threads at the same time.
-
-
-
-Return code
-Client Lib functions that interact with the server take an additional
-parameter returnCode , which can be used to find out which action
-results in a later server error. If you pass a custom string as return
-code, the onServerErrorEvent() callback will
-receive the same custom string in its returnCode parameter.
-If no error occured, onServerErrorEvent() will
-indicate success by passing the error code ERROR_ok if a
-return code was specified.
-Pass NULL as returnCode if you do not need the feature. In this
-case, if no error occurs onServerErrorEvent()
-will not be called.
-
-Example
-An example, request moving a client:
-ts3client_requestClientMove ( scHandlerID , clientID , newChannelID , password , "MyClientMoveReturnCode" );
-
-
-If an error occurs, the onServerErrorEvent()
-callback is called:
-void my_onServerErrorEvent ( uint64 serverConnectionHandlerID , const char * errorMessage ,
- unsigned int error , const char * returnCode , const char * extraMessage ) {
- if ( strcmp ( returnCode , "MyClientMoveReturnCode" )) == 0 ) {
- /* We know this error is the reaction to above called function as we got the same returnCode */
- if ( error == ERROR_ok ) {
- /* Success */
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/local-mute.html b/docs/teamspeak-sdk-3.5.2/doc/client/local-mute.html
deleted file mode 100644
index 5a7cd19..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/local-mute.html
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
-
-
-
-
-
-
Muting other clients — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Muting other clients
-
-
-
-
-
-
-
-
-
-Muting other clients
-Individual clients can be muted by any client. It mainly serves as a
-sort of individual “ban” or “ignore” feature, where users can decide
-not to listen to certain clients anymore.
-When a client gets muted, it will no longer be heard by the muter and
-the TeamSpeak 3 server will stop sending voice packets of the muted client.
-
-
Note
-
Information whether or not a client is ignored is not available to
-other clients, except the client that ignored them.
-
-
-Mute clients
-
-
-unsigned int ts3client_requestMuteClients ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , const char * returnCode )
-Mute clients locally, the server will not be sending audio data for the specified clients anymore.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to mute the clients
-clientIDArray – a zero terminated array of client ids to mute
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Example
-Example to mute two clients:
-1 anyID clientIDArray [ 3 ]; // List of two clients plus terminating zero
-2 clientIDArray [ 0 ] = 123 ; // First client ID to mute
-3 clientIDArray [ 1 ] = 456 ; // Second client ID to mute
-4 clientIDArray [ 2 ] = 0 ; // Terminating zero
-5
-6 if ( ts3client_requestMuteClients ( scHandlerID , clientIDArray ) != ERROR_ok ) /* Mute clients */
-7 printf ( "Error muting clients: %d \n " , error );
-
-
-
-
-
-Unmute clients
-
-
-unsigned int ts3client_requestUnmuteClients ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , const char * returnCode )
-Unmute clients locally. Server will start sending audio packets for the specified clients again.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to unmute the clients
-clientIDArray – a zero terminated array of client ids to unmute
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Check mute status
-To check whether or not we have ignored a client check their
-CLIENT_IS_MUTED property using
-ts3client_getClientVariableAsInt() .
-
-Example
-int clientIsMuted = -1 ;
-if ( ts3client_getClientVariableAsInt ( scHandlerID , clientID , CLIENT_IS_MUTED , & clientIsMuted ) != ERROR_ok )
- printf ( "Error querying client muted state \n );
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/logging.html b/docs/teamspeak-sdk-3.5.2/doc/client/logging.html
deleted file mode 100644
index 5e41cab..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/logging.html
+++ /dev/null
@@ -1,249 +0,0 @@
-
-
-
-
-
-
-
-
-
Logging — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Logging
-The TeamSpeak 3 Client Lib offers basic logging functions which write
-to the log facilities specified when initializing the client lib with
-ts3client_initClientLib() .
-To log a message to the configured logging facilities call
-
-
-unsigned int ts3client_logMessage ( const char * logMessage , enum LogLevel severity , const char * channel , uint64 logID )
-Log a message to the client log.
-
-Parameters:
-
-logMessage – utf8 encoded c string of the message to log
-severity – the seriousness of the message logged
-channel – arbitrary utf8 encoded c string used to group messages. Pass empty string if unused.
-logID – a connection handler on which to log the message. Pass 0 if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Important
-
Unless user-defined logging is used, program execution will halt on a
-log message with severity LogLevel_CRITICAL .
-
-
-User-defined logging
-If user-defined logging was enabled when initializing the Client Lib by
-passing LogType_USERLOGGING to the usedLogTypes parameter of
-ts3client_initClientLib() , the following callback will be called
-for every log message that is to be logged. This includes those from the lib
-itself, as well as those made by calling ts3client_logMessage() .
-This allows SDK users to customize logging as well as handle criticial errors.
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onUserLoggingMessageEvent ) ( const char * logmessage , int logLevel , const char * logChannel , uint64 logID , const char * logTime , const char * completeLogString )
-called for every log message if the client lib was initialized with user logging
-
-Param logmessage:
-utf8 encoded c string containing the text to log
-
-Param logLevel:
-indicates severity of the message. One of the values from the LogLevel enum
-
-Param logChannel:
-utf8 encoded c string containing the category this message is logged under
-
-Param logID:
-the connection handler this message was logged on
-
-Param completeLogString:
-utf8 encoded c string containing the complete log message containing all other parameters for convenience
-
-
-
-
-
-
-
-
-
-Set Logging level
-The severity of log messages that are passed to above callback can be
-configured using
-
-
-unsigned int ts3client_setLogVerbosity ( enum LogLevel logVerbosity )
-When using custom logging define the severity of log messages above which to call the onUserLoggingMessageEvent for.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/passwords.html b/docs/teamspeak-sdk-3.5.2/doc/client/passwords.html
deleted file mode 100644
index 4d7c6ab..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/passwords.html
+++ /dev/null
@@ -1,204 +0,0 @@
-
-
-
-
-
-
-
-
-
Custom passwords — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Custom passwords
-
-
-
-
-
-
-
-
-
-Custom passwords
-The TeamSpeak SDK has the optional ability to do custom password
-handling. This allows to check TeamSpeak server and channel passwords
-against outside datasources, like LDAP or other databases.
-To implement custom passwords, both server and client need to add the
-callbacks, which will be spontaneously called whenever a password check
-is done in TeamSpeak. The SDK developer can implement own checks to
-validate the password instead of using the TeamSpeak built-in mechanism.
-
-Password encryption
-Both Server and Client Lib can implement the following callback to
-encrypt a user password. This function is called in the Client Lib when
-a channel password is set.
-This can be used to hash the password in the same way it is hashed in
-the outside data store. Or just copy the password to send the clear text
-to the server.
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onClientPasswordEncrypt ) ( uint64 serverConnectionHandlerID , const char * plaintext , char * encryptedText , int encryptedTextByteSize )
-called when a channel password is set.
-Can be used to implement custom password checks against external sources (e.g. LDAP).
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param plaintext:
-utf8 encoded c string containing the plaintext password as entered by the user
-
-Param encryptedText:
-output parameter. Fill with the encrypted password / password hash. Must be an utf8 encoded c string (zero terminated). Must not be larger than the size specified by the encryptedTextByteSize parameter.
-
-Param encryptedTextByteSize:
-the maximum amount of bytes (including trailing zero byte) that may be written to encryptedText parameter
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/playback-options.html b/docs/teamspeak-sdk-3.5.2/doc/client/playback-options.html
deleted file mode 100644
index 6a2add8..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/playback-options.html
+++ /dev/null
@@ -1,326 +0,0 @@
-
-
-
-
-
-
-
-
-
Playback options — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Playback options
-Sound output can be configured using playback options. Currently the
-output value can be adjusted.
-
-
Note
-
Playback options are tied to a playback device, so querying or changing
-the values only makes sense after a device has been opened.
-
-
-Available values
-The following values are available for the ident parameter:
-
-volume_modifier
-Modify the voice volume of other speakers. Value is in decibel, so
-0 is no modification, negative values make the signal quieter and
-values greater than zero boost the signal louder than it is.
-The maximum possible value is 30.
-
-
Caution
-
Be careful with high positive values, as you can really cause bad
-audio quality due to clipping.
-
-Zero and all negative values cannot cause clipping and distortion,
-and are preferred for optimal audio quality. Values greater than
-zero and less than +6 dB might cause moderate clipping and
-distortion, but should still be within acceptable bounds. Values
-greater than +6 dB will cause clipping and distortion that
-negatively affects your audio quality. It is advised to choose
-lower values. Generally we recommend to not allow values higher
-than 15 db.
-
-volume_factor_wave
-Adjust the volume of wave files played through ts3client_playWaveFile()
-and ts3client_playWaveFileHandle() . Reasonable values range from
--40 (very quiet) to 0 (loudest).
-
-
-
-Query values
-Playback options can be queried with:
-
-
-unsigned int ts3client_getPlaybackConfigValueAsFloat ( uint64 serverConnectionHandlerID , const char * ident , float * result )
-Retrieve floating point playback configuration settings.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to query the playback setting for.
-ident – the name of the configuration setting to retrieve. Valid values are volume_modifier and volume_factor_wave
-result – address of a variable to receive the current value of the queried setting
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Setting values
-To change playback options, call
-
-
-unsigned int ts3client_setPlaybackConfigValue ( uint64 serverConnectionHandlerID , const char * ident , const char * value )
-Set playback configuration settings.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to set the playback setting on.
-ident – the name of the configuration setting to set. Valid values are volume_modifier and volume_factor_wave
-value – the new value to set as an utf8 encoded c string. Appropriate conversion takes place within the client lib.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Example
- 1 unsigned int error ;
- 2 float value ;
- 3
- 4 if (( error = ts3client_setPlaybackConfigValue ( scHandlerID , "volume_modifier" , "5.5" )) != ERROR_ok ) {
- 5 printf ( "Error setting playback config value: %04X \n " , error );
- 6 return ;
- 7 }
- 8
- 9 if (( error = ts3client_getPlaybackConfigValueAsFloat ( scHandlerID , "volume_modifier" , & value )) != ERROR_ok ) {
-10 printf ( "Error getting playback config value: %04X \n " , error );
-11 return ;
-12 }
-13
-14 printf ( "Volume modifier playback option: %f \n " , value );
-
-
-
-
-Adjust individual clients
-In addition to changing the global voice volume modifier of all speakers
-by changing the “volume_modifier” parameter, voice volume of individual
-clients can be adjusted with
-
-
-unsigned int ts3client_setClientVolumeModifier ( uint64 serverConnectionHandlerID , anyID clientID , float value )
-Adjust playback volume of an individual client.
-Allows adjustment of single clients in addition to the global playback volume_modifier configuration option. Individual client volume adjustments are temporary and only valid as long as the client is visible. Once the target client leaves to an unsubscribed channel or disconnects from the server, this setting is discarded. If desired, the adjustment needs to be made again after the client reconnects or becomes visible again.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for the server on which the client is located
-clientID – the id of the client to adjust the volume for.
-value – the volume modifier to apply to the client.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
When calculating the volume for individual clients, both the global and
-client volume modifiers will be taken into account.
-
-Client volume modifiers are valid as long as the specified client is
-visible. Once the client leaves visibility by joining an unsubscribed
-channel or disconnecting from the server, the client volume modifier
-will be lost. When the client enters visibility again, the modifier has
-to be set again by calling this function.
-
-Example
-1 unsigned int error ;
-2 anyID clientID = 123 ;
-3 float value = 10.0f ;
-4
-5 if (( error = ts3client_setClientVolumeModifier ( scHandlerID , clientID , value )) != ERROR_ok ) {
-6 printf ( "Error setting client volume modifier: %04X \n " , error );
-7 return ;
-8 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/preprocessor.html b/docs/teamspeak-sdk-3.5.2/doc/client/preprocessor.html
deleted file mode 100644
index e81a668..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/preprocessor.html
+++ /dev/null
@@ -1,310 +0,0 @@
-
-
-
-
-
-
-
-
-
Preprocessor options — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Preprocessor options
-Sound input is preprocessed by the Client Lib before the data is encoded
-and sent to the TeamSpeak 3 server. The preprocessor is
-responsible for noise suppression, automatic gain control (AGC) and voice
-activity detection (VAD).
-The preprocessor can be controlled by setting various preprocessor
-flags. These flags are stored per server connection and can differ between
-server connections.
-
-
Note
-
Preprocessor flags are tied to a capture device, so changing the
-values only makes sense after a device has been opened.
-
-
-Available config values
-The following configuration values are available for querying and setting:
-
-name
-The type of the preprocessor in use. Currently always returns
-“Speex preprocessor”
-
-denoise
-Boolean value. Whether or not noise suppression is enabled.
-Enabled by default.
-
-vad
-Boolean value. Whether or not voice activity detection is enabled.
-Enabled by default.
-
-voiceactivation_level
-Integer holding the decibel level above which voice activity detection
-is sending voice data to the server.
-A high voice activation level means you have to speak louder into the
-microphone in order to start transmitting.
-Reasonable values range from -50 to 50. Default is 0.
-
-vad_extrabuffersize
-Integer holding the buffer size for voice activity detection.
-Valid values are 0 to 8. Defaults to 2. Lower value means faster
-transmission, higher value means better VAD quality but higher latency.
-
-agc
-Boolean value. Whether or not automatic gain control is enabled.
-Enabled by default.
-
-agc_level
-Integer. Automatic gain control level.
-Defaults to 16000.
-
-agc_main_gain
-Integer holding the maximum gain for automatic gain control.
-Defaults to 30.
-
-echo_canceling
-Boolean value. Whether echo cancelling feature is enabled.
-Defaults to false.
-
-decibel_last_period
-Read only Float. Current input levels on the capture device.
-Queried using ts3client_getPreProcessorInfoValueFloat()
-
-
-
-
-Querying values
-Preprocessor flags can be queried using:
-
-
-unsigned int ts3client_getPreProcessorConfigValue ( uint64 serverConnectionHandlerID , const char * ident , char * * result )
-Retrieve preprocessor configuration values.
-Preprocessor settings are bound to a capture device. You must open a capture device on the specified connection handler before calling this function.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to retrieve the configuration value
-ident – the name of the preprocessor configuration to retrieve
-result – address of a variable to receive a c string with the value of the specified preprocessor configuration. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getPreProcessorInfoValueFloat ( uint64 serverConnectionHandlerID , const char * ident , float * result )
-Retrieve floating point preprocessor configuration values.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to retrieve the value
-ident – the name of the preprocessor value to retrieve
-result – address of a variable to receive the specified configuration value
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Setting values
-To configure the proprocessor use
-
-
-unsigned int ts3client_setPreProcessorConfigValue ( uint64 serverConnectionHandlerID , const char * ident , const char * value )
-Set preprocessor configuration values.
-Preprocessor settings are bound to a capture device. You must open a capture device on the specified connection handler before calling this function.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to retrieve the configuration value
-ident – the name of the preprocessor configuration to retrieve
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Important
-
For boolean values use their string representation “true” or “false”
-
-
-
Note
-
It is not necessary to change all those values. The default values
-are reasonable. “voiceactivation_level” is often the only value that
-needs to be adjusted.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/textmessages.html b/docs/teamspeak-sdk-3.5.2/doc/client/textmessages.html
deleted file mode 100644
index ba97f31..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/textmessages.html
+++ /dev/null
@@ -1,301 +0,0 @@
-
-
-
-
-
-
-
-
-
Text chat — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Text chat
-In addition to voice chat, TeamSpeak 3 allows clients to communicate
-via text chat. Valid targets can be a client, channel or an entire virtual
-server.
-
-Sending
-Depending on the target, there are three functions to send text
-messages.
-
-Private
-To send a private text message to a single client use
-
-
-unsigned int ts3client_requestSendPrivateTextMsg ( uint64 serverConnectionHandlerID , const char * message , anyID targetClientID , const char * returnCode )
-Send a private chat message to a client.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to send the message
-message – a utf8 encoded c string with the text to send
-targetClientID – the client id of the client to send the message to
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Channel
-To send a message to all clients that are in the specified
-channel at the time
-
-
-unsigned int ts3client_requestSendChannelTextMsg ( uint64 serverConnectionHandlerID , const char * message , uint64 targetChannelID , const char * returnCode )
-Send a text message to your current channel.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to send the message
-message – a utf8 encoded c string with the text to send
-targetChannelID – the channel to send the message to. IGNORED.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Server
-These messages will be received by everyone that is connected
-to the virtual server.
-
-
-unsigned int ts3client_requestSendServerTextMsg ( uint64 serverConnectionHandlerID , const char * message , const char * returnCode )
-Send a text message to the server chat.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to send the message
-message – a utf8 encoded c string with the text to send
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Example
-Example to send a text chat to a client with ID 123:
-1 const char * msg = "Hello TeamSpeak!" ;
-2 anyID targetClientID = 123 ;
-3
-4 if ( ts3client_requestSendPrivateTextMsg ( scHandlerID , msg , targetClient , NULL ) != ERROR_ok ) {
-5 /* Handle error */
-6 }
-
-
-
-
-
-Receiving
-Regardless of where the message was sent (client, channel or the entire server)
-every client that receives the message will have the following callback called
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onTextMessageEvent ) ( uint64 serverConnectionHandlerID , anyID targetMode , anyID toID , anyID fromID , const char * fromName , const char * fromUniqueIdentifier , const char * message )
-called when a text message was received
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param targetMode:
-identifies the type of the message. One of the values from the TextMessageTargetMode enum.
-
-Param toID:
-the id of the recipient. Depends on the value of targetMode. a channel id for channel chat, own client id for private messages, 0 for server messages
-
-Param fromID:
-id of the client that sent the message
-
-Param fromName:
-utf8 encoded c string containing the display name of the client sending the message
-
-Param fromUniqueIdentifier:
-utf8 encoded c string containing the public identity of the sending client
-
-Param message:
-utf8 encoded c string containing the actual message
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/voice-encryption.html b/docs/teamspeak-sdk-3.5.2/doc/client/voice-encryption.html
deleted file mode 100644
index 3866640..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/voice-encryption.html
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
-
-
-
-
-
Channel voice data encryption — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Channel voice data encryption
-
-
-
-
-
-
-
-
-
-Channel voice data encryption
-Voice data can be encrypted or unencrypted. Encryption will increase CPU
-load, so should be used only when required. Encryption can be configured
-per channel (the default) or globally enabled or disabled for the whole
-virtual server. By default channels are sending voice data unencrypted,
-newly created channels would need to be set to encrypted if required.
-To configure the global virtual server encryption settings, modify the
-virtual server property VIRTUALSERVER_CODEC_ENCRYPTION_MODE .
-Available values are described in the CodecEncryptionMode enum.
-Voice data encryption per channel can be configured by setting the
-channel property CHANNEL_CODEC_IS_UNENCRYPTED to 0 (encrypted) or 1
-(unencrypted) if global encryption mode is CODEC_ENCRYPTION_PER_CHANNEL .
-If encryption is forced on or off globally, the channel property will be
-automatically set by the server.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/wave-files.html b/docs/teamspeak-sdk-3.5.2/doc/client/wave-files.html
deleted file mode 100644
index 8887412..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/wave-files.html
+++ /dev/null
@@ -1,266 +0,0 @@
-
-
-
-
-
-
-
-
-
Playing wave files — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Playing wave files
-
-
-
-
-
-
-
-
-
-Playing wave files
-The TeamSpeak Client Lib offers support to play wave files from the
-local harddisk.
-
-Simple
-To play a local wave file, call
-
-
-unsigned int ts3client_playWaveFile ( uint64 serverConnectionHandlerID , const char * path )
-Play a local wave file on the playback device of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
This is the simple version of playing a sound file. It’s a
-fire-and-forget mechanism, this function will not block.
-
-
-
-Advanced
-The more complex version is to play an optionally looping sound and
-obtain a handle, which can be used to pause, unpause and stop the loop.
-
-Obtain handle
-
-
-unsigned int ts3client_playWaveFileHandle ( uint64 serverConnectionHandlerID , const char * path , int loop , uint64 * waveHandle )
-Play a local wave file on the playback device of the connection handler.
-This is a more advanced version of ts3client_playWaveFile as it gives you a handle which can be used to stop, pause, resume or even loop the wave file.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to play the file. Effectively sets the playback device.
-path – the full path of the wave file on the local file system
-loop – Boolean value defining whether or not to loop the wave file until the handle is paused or stopped
-waveHandle – address of a variable to receive the handle. Use the handle to stop, pause or resume the wave playback.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Pause / resume
-
-
-unsigned int ts3client_pauseWaveFileHandle ( uint64 serverConnectionHandlerID , uint64 waveHandle , int pause )
-Pauses or resumes playback of a wave file handle retrieved by ts3client_playWaveFileHandle.
-Audio will be stopped at whatever location it is currently at and resumed from its paused location.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the file is playing.
-waveHandle – a wave handle on the specified connection handler as retrieved by ts3client_playWaveFileHandle
-pause – Boolean value defining whether to pause or resume the waveHandle
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Close handle
-
-
-unsigned int ts3client_closeWaveFileHandle ( uint64 serverConnectionHandlerID , uint64 waveHandle )
-Stops playback of, closes the wave file and invalidates the handle retrieved by ts3client_playWaveFileHandle.
-
-
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client/whisper.html b/docs/teamspeak-sdk-3.5.2/doc/client/whisper.html
deleted file mode 100644
index f72827a..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client/whisper.html
+++ /dev/null
@@ -1,309 +0,0 @@
-
-
-
-
-
-
-
-
-
Whisper lists — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Whisper lists
-A client with a whisper list set can talk to the specified clients and
-channels. Whisper lists can be defined for individual clients. A whisper
-list consists of an array of client IDs and/or an array of channel IDs.
-
-
Important
-
Setting a whisper list will stop regular voice transmission to the current channel
-of the client.
-
Clients that have a whisper list set will only be heard by the clients
-specified in the whisper list.
-
-
-
-unsigned int ts3client_requestClientSetWhisperList ( uint64 serverConnectionHandlerID , anyID clientID , const uint64 * targetChannelIDArray , const anyID * targetClientIDArray , const char * returnCode )
-Sets the client to which to transmit voice. Stops standard channel voice transmission.
-The client will still receive voice from their current channel, however their voice will not be transmitted to their current channel anymore. If this call is successful (check onServerErrorEvent) then voice of the specified client will be transmitted to all specified channels and all the specified clients. Pass 0 to both target parameter arrays to restore default behavior of transmitting voice to current channel. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to set the whisper list
-clientID – the client to set the whisper list for. Set to 0 or your own client ID to set your own whisper list.
-targetChannelIDArray – a zero terminated array of channel ids to transmit voice to.
-targetClientIDArray – a zero terminated array of client ids to transmit voice to.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To disable the whisper list for the given client, pass NULL to both
-targetChannelIDArray and targetClientIDArray .
-
-
Caution
-
If you pass two empty arrays, whispering is not disabled but instead one
-would still be whispering to nobody (empty lists).
-
-
-Control who can whisper you
-To control which client is allowed to whisper to own client, the Client
-Lib implements an internal whisper allow list mechanism. When a client
-recieves a whisper while the whispering client has not yet been added to
-the whisper allow list, the receiving client gets the following event.
-
-
Note
-
Whisper voice data is not received until the sending client is
-added to the receivers whisper allow list.
-
-
-
-struct ClientUIFunctions
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onIgnoredWhisperEvent ) ( uint64 serverConnectionHandlerID , anyID clientID )
-called when someone whispers us that is not on the list of clients we accept whispers from.
-
-
-
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client that tried to whisper us
-
-
-
-
-
-
-
-
-Add to allow list
-The receiving client can decide to allow whispering from the sender and
-add the sending client to the whisper allow list by calling
-
-
-unsigned int ts3client_allowWhispersFrom ( uint64 serverConnectionHandlerID , anyID clID )
-Allow another client to whisper us.
-Adds the specified other client on the server to whisper us. Prior to this call whispers from other clients are ignored and no audio data will be made available from whispers. Can be undone using ts3client_removeFromAllowedWhispersFrom
-
-
-
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-If the sender is not added by the receiving client, this callback continues
-to be called but no voice data is transmitted to the receiving client.
-
-
-Remove from allow list
-To remove a client from the whisper allow list:
-
-
-unsigned int ts3client_removeFromAllowedWhispersFrom ( uint64 serverConnectionHandlerID , anyID clID )
-Removes a client from the allowed whisper list.
-Removes the specified other client on the server from the allowed whisperer list. After this call no more audio is made available when receiving whispers from the specified client. The opposite of ts3client_allowWhispersFrom
-
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for the server on which the client specified by clID is located.
-clID – the client id of another client which we do not want to receive whispers from anymore.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/client_api.html b/docs/teamspeak-sdk-3.5.2/doc/client_api.html
deleted file mode 100644
index 2b18f91..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/client_api.html
+++ /dev/null
@@ -1,4557 +0,0 @@
-
-
-
-
-
-
-
-
-
TeamSpeak Client Functions — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- TeamSpeak Client Functions
-
-
-
-
-
-
-
-
-
-TeamSpeak Client Functions
-
-
Functions
-
-
-unsigned int ts3client_freeMemory ( void * pointer )
-Releases memory allocated by the client library.
-For every function that has output parameters which take pointers to memory (e.g. char**) the client library will allocate sufficient memory for you, however you need to take care of releasing the memory by passing the variable to this function.
-
-Parameters:
-
-
-
-
-
-
-
-unsigned int ts3client_initClientLib ( const struct ClientUIFunctions * functionPointers , const struct ClientUIFunctionsRare * functionRarePointers , int usedLogTypes , const char * logFileFolder , const char * resourcesFolder )
-initializes the client library and defines callback functions
-This is the first function you need to call, before this all calls to the client library will fail. In this call you will also set the functions you would like to have called when certain changes happen on the client side as well as on connected servers.
-
-Parameters:
-
-functionPointers – defines which functions in your code are to be called on specific events. Zero initialize it and assign the desired function to call to the respective members of the struct
-functionRarePointers – similar to the functionPointers parameter. These are not available in the SDK, so SDK users should pass a nullptr here.
-usedLogTypes – a combination of values from the LogTypes enum. Specifies which type(s) of logging you would like to use.
-logFileFolder – path in which to create log files
-resourcesFolder – path to the directory in which the soundbackends folder is located. Required to be able to load the sound backends and process audio.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_destroyClientLib ( )
-destroys the client library. Must not be called from within a callback.
-This is the last function to call, after calling this function you will no longer be able to use client library functions.
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientLibVersion ( char * * result )
-Get the version string of the client library.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientLibVersionNumber ( uint64 * result )
-Get the version number of the client library.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_spawnNewServerConnectionHandler ( int port , uint64 * result )
-Creates a new server connection handler to connect to servers.
-A connection handler is what handles and identifies server connections to the client library. There can be many of these at the same time and every single one of them can be connected to any server. The client library identifies them by the id placed in the result param. When you receive callbacks, or need to change things, on a specific server you will also specify which server you would like to use by providing the corresponding serverConnectionHandlerId to the client library function.
-
-Parameters:
-
-port – the local port to use. Specify 0 to use an ephemeral port.
-result – Address of a variable to store the id of the connection handler in. Use this to reference the connection handler in future calls to client lib functions.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_destroyServerConnectionHandler ( uint64 serverConnectionHandlerID )
-Destroys a connection handler.
-After destruction the connection handler is invalid and cannot be used any longer. Must not be called from within a callback!
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_createIdentity ( char * * result )
-Create a new identity to use for connecting to a server.
-Identities identify a client to the server. The identity should be stored and reused for sessions by the same user.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_identityStringToUniqueIdentifier ( const char * identityString , char * * result )
-Get the unique client identifier from an identity.
-
-Parameters:
-
-identityString – The identity to produce the unique identifier for, as created by ts3client_createIdentity
-result – Pointer to a variable to store the unique client identifier in. Memory is allocated by the client lib and caller must free it using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getPlaybackDeviceList ( const char * modeID , char * * * * result )
-Retrieve available playback devices as reported by the operating system.
-
-Parameters:
-
-modeID – a string indicating a valid playback mode as retrieved by ts3client_getPlaybackModeList or ts3client_getDefaultPlaybackMode
-result – address of a variable that receives a NULL terminated array like {{char* deviceName, char* deviceId, char* interfaceName char* description, char* fromFactor} ..., NULL} on windows, {{char* deviceName, char* deviceId}, ..., NULL} on other platforms. Memory is allocated by the client lib and caller must free individual strings, array members and the array itself using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getCaptureDeviceList ( const char * modeID , char * * * * result )
-Retrieve available recording devices as reported by the operating system.
-
-Parameters:
-
-modeID – a string indicating a valid capture mode as retrieved by ts3client_getCaptureModeList or ts3client_getDefaultCaptureMode
-result – address of a variable that receives a NULL terminated array like `{{char* deviceName, char* deviceId, char* interfaceName char* description, char* fromFactor} …, NULL}on windows, {{char* deviceName, char* deviceId}, …, NULL}` on other platforms. Memory is allocated by the client lib and caller must free individual strings and the array itself using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getPlaybackModeList ( char * * * result )
-Retrieve available playback modes.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getCaptureModeList ( char * * * result )
-Retrieve available capture modes.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getDefaultPlaybackDevice ( const char * modeID , char * * * result )
-Get the current operating system defined default playback device for the indicated mode.
-The operating system may define different devices for different modes.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getDefaultCaptureDevice ( const char * modeID , char * * * result )
-Get the current operating system defined default capture device for the indicated mode.
-The operating system may define different devices for different modes.
-
-Parameters:
-
-modeID – a string indicating a valid capture mode as retrieved by ts3client_getCaptureModeList or ts3client_getDefaultCaptureMode
-result – Address of a variable that receives a NULL terminated array of two c strings like {char* deviceName, char* deviceID, NULL} Memory is allocated by the client lib and both the array and its individual members must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getDefaultPlayBackMode ( char * * result )
-Retrieve the current default playback mode.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getDefaultCaptureMode ( char * * result )
-Retrieve the current default capture mode.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_openPlaybackDevice ( uint64 serverConnectionHandlerID , const char * modeID , const char * playbackDevice )
-initializes a playback device for a connection handler
-Call this function to start audio playback of TeamSpeak audio on a connection
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_openCaptureDevice ( uint64 serverConnectionHandlerID , const char * modeID , const char * captureDevice )
-initializes a capture device for a connection handler
-Call this function to start consuming audio from the specified device and send it to the server
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setAECReferenceDevice ( uint64 serverConnectionHandlerID , const char * modeID , const char * renderDeviceID )
-set an explicit render device whose output should serve as the AEC reference signal
-By default the SDK pairs AEC with the same mode/device used for playback on the connection, which only works when capture and playback share a backend mode. Use this function when playback is routed through a custom device (e.g. a game engine’s audio mixer) but echo cancellation should still operate against the audio that is actually rendered to the user’s speakers. The named device must be a native render endpoint (no custom-mode devices); on platforms whose backend supports system-level loopback (Windows WASAPI, Linux PulseAudio) this is the device whose loopback capture is fed to the echo canceller.
-Call after ts3client_openCaptureDevice and ts3client_openPlaybackDevice on the connection. The reference association is reapplied automatically when AEC is toggled or the capture device is reactivated. Pass empty strings for modeID and renderDeviceID to clear an explicit reference and fall back to the default mode-match behaviour.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler whose AEC reference to set
-modeID – utf8 encoded c-string of the backend mode that owns the reference device (e.g. “windowsaudiosession”, “pulseaudio”)
-renderDeviceID – utf8 encoded c-string of the render device whose output should be used as AEC reference. Pass an empty string to use the connection’s currently-open playback device.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason. Returns ERROR_not_implemented on platforms whose backend cannot loopback-capture an arbitrary render device (currently macOS).
-
-
-
-
-
-
-unsigned int ts3client_getCurrentPlaybackDeviceName ( uint64 serverConnectionHandlerID , char * * result , int * isDefault )
-retrieve the device name that is currently used to play audio on a server
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to retrieve the active playback device on
-result – address of a variable receiving a c string of the device name currently in use. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-isDefault – address of a variable receiving whether the device in use is the default device. Pass NULL if you don’t need the information
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getCurrentPlayBackMode ( uint64 serverConnectionHandlerID , char * * result )
-retrieve the mode the current playback device on a server is using
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to retrieve the playback mode on
-result – address of a variable receiving a c string of the playback mode currently in use. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getCurrentCaptureDeviceName ( uint64 serverConnectionHandlerID , char * * result , int * isDefault )
-retrieve the device name that is currently used to capture audio on a server
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to retrieve the active capture device on
-result – address of a variable receiving a c string of the device name currently in use. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-isDefault – address of a variable receiving whether the device in use is the default device. Pass NULL if you don’t need the information
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getCurrentCaptureMode ( uint64 serverConnectionHandlerID , char * * result )
-retrieve the mode the current capture device on a server is using
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to retrieve the capture mode on
-result – address of a variable receiving a c string of the capture mode currently in use. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_initiateGracefulPlaybackShutdown ( uint64 serverConnectionHandlerID )
-Close the playback device after all currently playing sounds are done playing.
-A more user friendly way of closing a playback device. The client lib will monitor and ensure that any sounds that have already started playing have completely played before closing the device. New sounds are not allowed to be played after calling this function. This function will return right away, regardless of whether the device has been closed already or not.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_closePlaybackDevice ( uint64 serverConnectionHandlerID )
-Immediately close the current playback device on a connection handler.
-This will instantly shut down the device. Any sounds currently playing will be interrupted.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_closeCaptureDevice ( uint64 serverConnectionHandlerID )
-Immediately close the current capture device on a connection handler.
-This will instantly shut down the device.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_activateCaptureDevice ( uint64 serverConnectionHandlerID )
-Activate a previously opened capture device on a server connection.
-Only one server connection can receive audio from its capture device at any given time. This function will set the server connection handler that is going to receive the audio from the capture device opened on that connection.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_playWaveFile ( uint64 serverConnectionHandlerID , const char * path )
-Play a local wave file on the playback device of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_playWaveFileHandle ( uint64 serverConnectionHandlerID , const char * path , int loop , uint64 * waveHandle )
-Play a local wave file on the playback device of the connection handler.
-This is a more advanced version of ts3client_playWaveFile as it gives you a handle which can be used to stop, pause, resume or even loop the wave file.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to play the file. Effectively sets the playback device.
-path – the full path of the wave file on the local file system
-loop – Boolean value defining whether or not to loop the wave file until the handle is paused or stopped
-waveHandle – address of a variable to receive the handle. Use the handle to stop, pause or resume the wave playback.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_pauseWaveFileHandle ( uint64 serverConnectionHandlerID , uint64 waveHandle , int pause )
-Pauses or resumes playback of a wave file handle retrieved by ts3client_playWaveFileHandle.
-Audio will be stopped at whatever location it is currently at and resumed from its paused location.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the file is playing.
-waveHandle – a wave handle on the specified connection handler as retrieved by ts3client_playWaveFileHandle
-pause – Boolean value defining whether to pause or resume the waveHandle
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_closeWaveFileHandle ( uint64 serverConnectionHandlerID , uint64 waveHandle )
-Stops playback of, closes the wave file and invalidates the handle retrieved by ts3client_playWaveFileHandle.
-
-
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_createAudioPlaybackHandle ( uint64 scHandlerID , anyID * handle )
-
-
-
-
-unsigned int ts3client_pauseAudioPlaybackHandle ( uint64 scHandlerID , anyID handle , int pause )
-
-
-
-
-unsigned int ts3client_closeAudioPlaybackHandle ( uint64 scHandlerID , anyID handle )
-
-
-
-
-unsigned int ts3client_enqueueAudioPlaybackHandle ( uint64 scHandlerID , anyID handle , float * buffer , int buffer_size )
-
-
-
-
-unsigned int ts3client_registerCustomDevice ( const char * deviceID , const char * deviceDisplayName , int capFrequency , int capChannels , int playFrequency , int playChannels )
-create a new software device to be used for playback and/or capture.
-This allows you to create custom devices for implementing your own audio capture or playback. For capture devices you will need to regularly provide audio data via the ts3client_processCustomCaptureData function. For playback devices you will need to regularly aquire audio data via the ts3client_acquireCustomPlaybackData function.
-
-Parameters:
-
-deviceID – a unique string by which you will refer to this audio device when opening devices ore removing it.
-deviceDisplayName – custom display string for your device. Not required to be unique, you can freely choose this.
-capFrequency – The frequency of the capture device. Determines the frequency the audio you’re passing in to ts3client_processCustomCaptureData is expected to be in when using this device.
-capChannels – The amount of channels the audio source on this device has. Determines the number of audio channels the data you’re passing to ts3client_processCustomCaptureData is expected to have when using this device.
-playFrequency – Determines which frequency the audio you’re getting out of ts3client_acquireCustomPlaybackData has when using this device.
-playChannels – Determines the number of audio channels of the audio you’re getting out of ts3client_acquireCustomPlaybackData has when using this device.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_unregisterCustomDevice ( const char * deviceID )
-Removes a custom audio device previously registered.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_processCustomCaptureData ( const char * deviceName , const short * buffer , int samples )
-Provide audio data for a registered custom device.
-When using custom devices, you’re expected to call this function regularly to provide your audio data to the client lib for processing and sending it to the server. The audio will be sent to the connection handler that currently has the specified custom device active (if any). The client lib will read captureChannels * samples * sizeof(short) bytes of data from the buffer.
-
-Parameters:
-
-deviceName – the deviceID for which you’re providing audio data. Must be a deviceID previously passed to a ts3client_registerCustomDevice call.
-buffer – pointer to the beginning of the raw audio data for the device. Caller must ensure that enough data is present in the buffer (samples * channel count of the audio device).
-samples – the number of audio frames in the buffer
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_acquireCustomPlaybackData ( const char * deviceName , short * buffer , int samples )
-Retrieve playback data for the specified device from the client lib.
-When using custom playback devices you’re expected to call this function regularly.
-
-Parameters:
-
-deviceName – the deviceID from which to retrieve audio data. Must be a deviceID previously passed to a ts3client_registerCustomDevice call.
-buffer – address in which to write the sound data that is pending playback. Caller must allocate sufficient memory (samples * channels of the audio device).
-samples – how many audio frames to retrieve.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason. May return ERROR_sound_no_data meaning no sound is currently played on the device. No data has been written to the buffer.
-
-
-
-
-
-
-unsigned int ts3client_setLocalTestMode ( uint64 serverConnectionHandlerID , int status )
-Route captured audio directly to the playback device rather than through the network.
-Enable or disable local test mode. Enabling will no longer send audio data to the server, instead it will be routed directly to the playback device. This allows a user to receive direct feedback from their own audio transmission, allowing easier adjustments to audio settings.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_startVoiceRecording ( uint64 serverConnectionHandlerID )
-Flags the client as recording received audio transmissions.
-This does NOT cause any recording to take place, it merely informs other clients that this client is actually recording the conversation.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_stopVoiceRecording ( uint64 serverConnectionHandlerID )
-Flags the client as no longer recording audio transmissions.
-Unsets the flag set by ts3client_startVoiceRecording causing other clients to no longer mark this client as recording the conversation.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_allowWhispersFrom ( uint64 serverConnectionHandlerID , anyID clID )
-Allow another client to whisper us.
-Adds the specified other client on the server to whisper us. Prior to this call whispers from other clients are ignored and no audio data will be made available from whispers. Can be undone using ts3client_removeFromAllowedWhispersFrom
-
-
-
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_removeFromAllowedWhispersFrom ( uint64 serverConnectionHandlerID , anyID clID )
-Removes a client from the allowed whisper list.
-Removes the specified other client on the server from the allowed whisperer list. After this call no more audio is made available when receiving whispers from the specified client. The opposite of ts3client_allowWhispersFrom
-
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for the server on which the client specified by clID is located.
-clID – the client id of another client which we do not want to receive whispers from anymore.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getWhisperReceiveWhitelist ( uint64 serverConnectionHandlerID , anyID * * result )
-Retrieve the list of clients we allow to whisper us.
-
-
-Since 3.0.9.0
-
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to retrieve the list of clients.
-result – Address of an array of anyID which receives the list of clients we are allowing whispers from. Memory is allocated by the client lib and caller must free the array using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_isWhisperReceiveWhitelisted ( uint64 serverConnectionHandlerID , anyID clientID , int * result )
-Check if we allow receiving whispers from a client.
-
-Since 3.0.9.0
-
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for the server on which the client specified by clID is located.
-clientID – the client id of the client to check.
-result – address of a variable to receive the boolean status on whether or not we allow whisper from the specified client.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setWhisperReceiveWhitelist ( uint64 serverConnectionHandlerID , anyID * clientIDs )
-Set the list of clients we allow to whisper us.
-
-
-
-Since 3.0.9.0
-
-
-
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_systemset3DListenerAttributes ( uint64 serverConnectionHandlerID , const TS3_VECTOR * position , const TS3_VECTOR * forward , const TS3_VECTOR * up )
-Set position, orientation and velocity of own client in 3D space.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to set the specified 3D settings.
-position – 3D position of own client, pass NULL to ignore.
-forward – Forward orientation. Vector must be of unit length and perpendicular to the up vector. Pass NULL to ignore.
-up – Upward orientation. Vector must be of unit length and perpendicular to the forward vector. Pass NULL to ignore.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_set3DWaveAttributes ( uint64 serverConnectionHandlerID , uint64 waveHandle , const TS3_VECTOR * position )
-Set the 3D position of a wave handle as retrieved by ts3client_playWaveFileHandle.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler of the wave handle
-waveHandle – a valid wave Handle as retrieved by ts3client_openWaveFileHandle. Specifies the sound file for which to adjust the position
-position – the position the wave file should be played from
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_systemset3DSettings ( uint64 serverConnectionHandlerID , float distanceFactor , float rolloffScale )
-Change 3D sound attenuation and distance settings.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to adjust the settings.
-distanceFactor – relative distance factor in meters. Default is 1.0. Use to adjust the distance between two TS3_VECTOR. Distance on x axis in meters = (a.x - b.x) * distanceFactor
-rolloffScale – Defines how fast sound volume will attenuate with distance. A higher value will cause sound to be toned down faster with increasing distance.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_channelset3DAttributes ( uint64 serverConnectionHandlerID , anyID clientID , const TS3_VECTOR * position )
-Adjusts other clients position in 3D space.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for the server on which the client specified by clID is located.
-clientID – the client id of the other client we want to adjust the position of.
-position – the desired position in 3D space of the other client
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getPreProcessorInfoValueFloat ( uint64 serverConnectionHandlerID , const char * ident , float * result )
-Retrieve floating point preprocessor configuration values.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to retrieve the value
-ident – the name of the preprocessor value to retrieve
-result – address of a variable to receive the specified configuration value
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getPreProcessorConfigValue ( uint64 serverConnectionHandlerID , const char * ident , char * * result )
-Retrieve preprocessor configuration values.
-Preprocessor settings are bound to a capture device. You must open a capture device on the specified connection handler before calling this function.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to retrieve the configuration value
-ident – the name of the preprocessor configuration to retrieve
-result – address of a variable to receive a c string with the value of the specified preprocessor configuration. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setPreProcessorConfigValue ( uint64 serverConnectionHandlerID , const char * ident , const char * value )
-Set preprocessor configuration values.
-Preprocessor settings are bound to a capture device. You must open a capture device on the specified connection handler before calling this function.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to retrieve the configuration value
-ident – the name of the preprocessor configuration to retrieve
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setKeyPressedDuringChunk ( )
-Indicates to the client that a key press has occurred and that it should run the typing attenuation algoritm.
-This will hint to the client lib that the typing attenuation code should be applied to the currently processed chunk of audio data. Effectively sets a flag in the client lib to run the code for the currently processed chunk of audio data. The client will reset this flag after the current audio chunk has been completed.
-
-Since 3.0.9.0
-
-
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getGlobalConfigValueAsInt ( const char * ident , int * result )
-Gets global client configuration values.
-ident can have the following values: input_deactivation_delay_ms: Number of milliseconds to continue transmitting after PTT key was released. input_deactivation_delay_active: Whether the above described delay is active or not.
-
-Since 3.0.9.0
-
-
-
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setGlobalConfigValue ( const char * ident , const char * value )
-Allows changing global client configuration values.
-ident can have the following values: input_deactivation_delay_ms: Number of milliseconds to continue transmitting after PTT key was released. input_deactivation_delay_active: Whether the above described delay is active or not.
-
-Since 3.0.9.0
-
-
-
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getEncodeConfigValue ( uint64 serverConnectionHandlerID , const char * ident , char * * result )
-Retrieve voice encoder information.
-Encoder options are bound to a capture device. You must open a capture device on the specified connection handler prior to calling this function. bitrate will return the estimated bitrate of audio without any overhead. name will return the used codec name. quality will return the codec quality setting, a value between 0 and 10 inclusive.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to query the encoder information for.
-ident – the configuration value to query. Valid values are name, quality and bitrate
-result – address of a variable to receive an utf8 encoded c string with the value of the option queried. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getPlaybackConfigValueAsFloat ( uint64 serverConnectionHandlerID , const char * ident , float * result )
-Retrieve floating point playback configuration settings.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to query the playback setting for.
-ident – the name of the configuration setting to retrieve. Valid values are volume_modifier and volume_factor_wave
-result – address of a variable to receive the current value of the queried setting
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setPlaybackConfigValue ( uint64 serverConnectionHandlerID , const char * ident , const char * value )
-Set playback configuration settings.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to set the playback setting on.
-ident – the name of the configuration setting to set. Valid values are volume_modifier and volume_factor_wave
-value – the new value to set as an utf8 encoded c string. Appropriate conversion takes place within the client lib.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setClientVolumeModifier ( uint64 serverConnectionHandlerID , anyID clientID , float value )
-Adjust playback volume of an individual client.
-Allows adjustment of single clients in addition to the global playback volume_modifier configuration option. Individual client volume adjustments are temporary and only valid as long as the client is visible. Once the target client leaves to an unsubscribed channel or disconnects from the server, this setting is discarded. If desired, the adjustment needs to be made again after the client reconnects or becomes visible again.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for the server on which the client is located
-clientID – the id of the client to adjust the volume for.
-value – the volume modifier to apply to the client.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_logMessage ( const char * logMessage , enum LogLevel severity , const char * channel , uint64 logID )
-Log a message to the client log.
-
-Parameters:
-
-logMessage – utf8 encoded c string of the message to log
-severity – the seriousness of the message logged
-channel – arbitrary utf8 encoded c string used to group messages. Pass empty string if unused.
-logID – a connection handler on which to log the message. Pass 0 if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setLogVerbosity ( enum LogLevel logVerbosity )
-When using custom logging define the severity of log messages above which to call the onUserLoggingMessageEvent for.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getErrorMessage ( unsigned int errorCode , char * * error )
-Retrieve human readable description for an error code.
-
-Parameters:
-
-errorCode – the error code from the Ts3ErrorType enum to retrieve the description for
-error – address of a variable to receive a c string with the error description. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_startConnection ( uint64 serverConnectionHandlerID , const char * identity , const char * ip , unsigned int port , const char * nickname , const char * * defaultChannelArray , const char * defaultChannelPassword , const char * serverPassword )
-initiates a connection to a TeamSpeak server.
-When using a hostname instead of an IP address, this function will block until the client lib resolved the host name.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to connect on, as created by ts3client_spawnNewServerConnectionHandler
-identity – an identity string, as created by ts3client_createIdentity
-ip – the server address to connect to. Can be a hostname or an IPv4 or IPv6 address
-port – UDP port on which the TeamSpeak server is listening
-nickname – a utf8 encoded c string used to display this client to other clients on the server. Not guaranteed to be the final name.
-defaultChannelArray – An array describing the path to a channel to join after connect. Pass NULL when not used
-defaultChannelPassword – The password for the channel in defaultChannelArray. Pass empty string if unused
-serverPassword – server password. Pass empty string if the server does not have a password set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_startConnectionWithChannelID ( uint64 serverConnectionHandlerID , const char * identity , const char * ip , unsigned int port , const char * nickname , uint64 defaultChannelId , const char * defaultChannelPassword , const char * serverPassword )
-initiates a connection to a TeamSpeak server.
-When using a hostname instead of an IP address, this function will block until the client lib resolved the host name.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler to connect on, as created by ts3client_spawnNewServerConnectionHandler
-identity – an identity string, as created by ts3client_createIdentity
-ip – the server address to connect to. Can be a hostname or an IPv4 or IPv6 address
-port – UDP port on which the TeamSpeak server is listening
-nickname – a utf8 encoded c string used to display this client to other clients on the server. Not guaranteed to be the final name.
-defaultChannelId – The channel id of the channel to join on connect. Pass 0 to join server default channel
-defaultChannelPassword – The password for the channel in defaultChannelId. Pass empty string if unused
-serverPassword – server password. Pass empty string if the server does not have a password set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_stopConnection ( uint64 serverConnectionHandlerID , const char * quitMessage )
-Disconnect from a TeamSpeak server.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestClientMove ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , uint64 newChannelID , const char * password , const char * returnCode )
-Attempt to move one or more clients to a different channel.
-The move is requested from the server. See the onServerErrorEvent callback to know whether the move was successful or not.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler of which the channel and client are located
-clientIDArray – NULL terminated array of client ids to move
-newChannelID – the target channel id to move the clients to
-password – the password for the channel. Pass an empty string if the channel has no password.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestClientVariables ( uint64 serverConnectionHandlerID , anyID clientID , const char * returnCode )
-Ask the server to provide additional request only variables for a client.
-You will receive an onUpdateClientEvent callback when the data is available to you.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the client is located
-clientID – the client for which to receive the client variables
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestClientKickFromChannel ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , const char * kickReason , const char * returnCode )
-Request client(s) to be kicked from their current channel.
-Kicking a client is essentially a glorified move to the server default channel with a message displayed to everyone. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the client is located
-clientIDArray – a NULL terminated array of client Ids to kick from their current channel.
-kickReason – an explanatory message to display as the reason for everyone.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestClientKickFromServer ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , const char * kickReason , const char * returnCode )
-Request client(s) to be kicked from the server.
-The clients will be disconnected and shown the reason. Reason is also displayed to everyone else on the server. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the client is located
-clientIDArray – a NULL terminated array of client Ids to kick from their current channel.
-kickReason – an explanatory message to display as the reason for everyone.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestChannelDelete ( uint64 serverConnectionHandlerID , uint64 channelID , int force , const char * returnCode )
-Request a channel to be deleted.
-Whether or not this was successful can be determined through the associated onServerErrorEvent callback.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the channel is located
-channelID – the channel id to delete
-force – boolean value on whether to kick clients out and delete any sub channels before deleting the channel. 1 = kick everyone, then delete sub channels and finally the requested channel; 0 = fail if there are clients in the channel or the channel has sub channels.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestChannelMove ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 newChannelParentID , uint64 newChannelOrder , const char * returnCode )
-Move a channel in a tree or to a different parent channel.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the channel is located
-channelID – the channel id to move or change the parent of
-newChannelParentID – the channel id of the channel to be the new parent channel
-newChannelOrder – the channel id of the channel below which the channel is to be sorted
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestSendPrivateTextMsg ( uint64 serverConnectionHandlerID , const char * message , anyID targetClientID , const char * returnCode )
-Send a private chat message to a client.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to send the message
-message – a utf8 encoded c string with the text to send
-targetClientID – the client id of the client to send the message to
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestSendChannelTextMsg ( uint64 serverConnectionHandlerID , const char * message , uint64 targetChannelID , const char * returnCode )
-Send a text message to your current channel.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to send the message
-message – a utf8 encoded c string with the text to send
-targetChannelID – the channel to send the message to. IGNORED.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestDeleteChannelTextMsg ( uint64 serverConnectionHandlerID , const char * roomAlias , const char * * messageIds , size_t messageCount , const char * returnCode )
-Request to delete one or more messages from an attached matrix room.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to delete the message
-roomAlias – a utf8 encoded c string with the room alias of the channel to delete the message in
-messageIds – an array of utf8 encoded c strings containing the message ids to delete.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestSendServerTextMsg ( uint64 serverConnectionHandlerID , const char * message , const char * returnCode )
-Send a text message to the server chat.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to send the message
-message – a utf8 encoded c string with the text to send
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestChat ( uint64 serverConnectionHandlerID , const char * type , anyID targetClientID , const char * returnCode )
-Request opening a new new-style chat room to the target user.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to open the chat
-type – Chat type, currently supported values. “private”
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestConnectionInfo ( uint64 serverConnectionHandlerID , anyID clientID , const char * returnCode )
-Request connection variables for a client (e.g. bandwidth usage, ping).
-You will receive a onConnectionInfoEvent callback once the information is available.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the client resides
-clientID – which client to request the connection information for
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestClientSetWhisperList ( uint64 serverConnectionHandlerID , anyID clientID , const uint64 * targetChannelIDArray , const anyID * targetClientIDArray , const char * returnCode )
-Sets the client to which to transmit voice. Stops standard channel voice transmission.
-The client will still receive voice from their current channel, however their voice will not be transmitted to their current channel anymore. If this call is successful (check onServerErrorEvent) then voice of the specified client will be transmitted to all specified channels and all the specified clients. Pass 0 to both target parameter arrays to restore default behavior of transmitting voice to current channel. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to set the whisper list
-clientID – the client to set the whisper list for. Set to 0 or your own client ID to set your own whisper list.
-targetChannelIDArray – a zero terminated array of channel ids to transmit voice to.
-targetClientIDArray – a zero terminated array of client ids to transmit voice to.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestChannelSubscribe ( uint64 serverConnectionHandlerID , const uint64 * channelIDArray , const char * returnCode )
-Request live updates to specific channels, being able to see clients in the channel.
-If you intend to subscribe to all channels on the server, use ts3client_requestChannelSubscribeAll function instead. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to subscribe to the specified channels
-channelIDArray – a zero terminated array of channel ids to subscribe to
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestChannelSubscribeAll ( uint64 serverConnectionHandlerID , const char * returnCode )
-Request live updates from all channels, being able to see clients in the channels.
-If you only want to subscribe to a specific subset of channels, use ts3client_requestChannelSubscribe funtion instead. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestChannelUnsubscribe ( uint64 serverConnectionHandlerID , const uint64 * channelIDArray , const char * returnCode )
-Remove subscription from channels. No longer receiving updates to clients in the channels.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to unsubscribe from the specified channels
-channelIDArray – a zero terminated array of channel ids to unsubscribe from
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestChannelUnsubscribeAll ( uint64 serverConnectionHandlerID , const char * returnCode )
-Remove subscription from all channels. No longer receiving updates to clients outside of own channel.
-The current channel will always be subscribed and you will always receive updates about clients in the current channel. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestChannelDescription ( uint64 serverConnectionHandlerID , uint64 channelID , const char * returnCode )
-retrieve the channel description of the specified channel.
-After calling this function you will receive an onUpdateChannelEvent callback at which point the description is available to be queried using ts3client_getChannelVariableAsString. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which the channel is located
-channelID – the id of the channel to retrieve the description for
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestMuteClients ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , const char * returnCode )
-Mute clients locally, the server will not be sending audio data for the specified clients anymore.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to mute the clients
-clientIDArray – a zero terminated array of client ids to mute
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestUnmuteClients ( uint64 serverConnectionHandlerID , const anyID * clientIDArray , const char * returnCode )
-Unmute clients locally. Server will start sending audio packets for the specified clients again.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to unmute the clients
-clientIDArray – a zero terminated array of client ids to unmute
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestClientIDs ( uint64 serverConnectionHandlerID , const char * clientUniqueIdentifier , const char * returnCode )
-retrieve the current client ids of all clients connected using the specified unique identifier
-You will receive a onClientIDsEvent callback for every client connected with the identity specified by the clientUniqueIdentifier. Once all client ids for the specified identity have been indicated, you will receive a onClientIDsFinishedEvent callback. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to retrieve the client ids for
-clientUniqueIdentifier – a c string with a unique identifier to retreive the client ids for. This is the public part of the identity
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientID ( uint64 serverConnectionHandlerID , anyID * result )
-get your own client id on a server
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getConnectionStatus ( uint64 serverConnectionHandlerID , int * result )
-check the current status of the connection
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler for which to receive the connection status
-result – address of a variable to receive the current connect status. One of the values from the ConnectStatus enum
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getConnectionVariableAsUInt64 ( uint64 serverConnectionHandlerID , anyID clientID , size_t flag , uint64 * result )
-Get value for connection based variable of a client as unsigned 64 bit integer.
-Not all variables are available as unsigned 64 bit integer. Some are only available as string or double.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to get the value
-clientID – the client for which to retrieve the value
-flag – specifies which value to receive. One of the values from the ConnectionProperties enum
-result – address of a variable to receive the variable on success.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getConnectionVariableAsDouble ( uint64 serverConnectionHandlerID , anyID clientID , size_t flag , double * result )
-Get value for connection based variable of a client as double.
-Not all variables are available as double. Some are only available as string or unsigned 64 bit integers.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to get the value
-clientID – the client for which to retrieve the value
-flag – specifies which value to receive. One of the values from the ConnectionProperties enum
-result – address of a variable to receive the variable on success.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getConnectionVariableAsString ( uint64 serverConnectionHandlerID , anyID clientID , size_t flag , char * * result )
-Get value for connection based variable of a client as string.
-Not all variables are available as string. Some are only available as unsigned 64 bit integer or double.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to get the value
-clientID – the client for which to retrieve the value
-flag – specifies which value to receive. One of the values from the ConnectionProperties enum
-result – address of a variable to receive the variable on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_cleanUpConnectionInfo ( uint64 serverConnectionHandlerID , anyID clientID )
-TODO.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestServerConnectionInfo ( uint64 serverConnectionHandlerID , const char * returnCode )
-Make server connection variables available for retrieval.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerConnectionVariableAsUInt64 ( uint64 serverConnectionHandlerID , size_t flag , uint64 * result )
-Retrieve value of a server connection variable as unsigned 64 bit integer.
-Not all variables are available as unsigned 64 bit integer. Some are only available float.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to retrieve the value
-flag – specifies which variable to receive. One of the values from the ConnectionProperties enum
-result – address of a variable to receive the value on success.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerConnectionVariableAsFloat ( uint64 serverConnectionHandlerID , size_t flag , float * result )
-Retrieve value of a server connection variable as float.
-Not all variables are available as float. Some are only available as unsigned 64 bit integer.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to retrieve the value
-flag – specifies which variable to receive. One of the values from the ConnectionProperties enum
-result – address of a variable to receive the value on success.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientSelfVariableAsInt ( uint64 serverConnectionHandlerID , size_t flag , int * result )
-Retrieve value of a variable of your own client as an integer.
-Not all variables are available as integer. Some are only available as string. NOTE: Not all variables are available using this function, some are only available using ts3client_getClientVariableAsInt
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to retrieve information
-flag – specifies which variable to receive. One of the values from the ClientProperties enum
-result – address of a variable to receive the value on success
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientSelfVariableAsString ( uint64 serverConnectionHandlerID , size_t flag , char * * result )
-Retrieve value of a variable of your own client as string.
-Not all variables are available as integer. Some are only available as integer. NOTE: Not all variables are available using this function, some are only available using ts3client_getClientVariableAsString
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to retrieve information
-flag – specifies which variable to receive. One of the values from the ClientProperties or ClientPropertiesRare enums
-result – address of a variable to receive the value on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setClientSelfVariableAsInt ( uint64 serverConnectionHandlerID , size_t flag , int value )
-Change the value of an integer variable on your own client.
-After having changed all variables desired, call ts3client_flushClientSelfUpdates to publish the changes to the server Not all variables can be changed, many are read only.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to set the value
-flag – specifies which variable to change. One of the values from the ClientProperties or ClientPropertiesRare enums
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setClientSelfVariableAsString ( uint64 serverConnectionHandlerID , size_t flag , const char * value )
-Change the value of a string variable on your own client.
-After having changed all variables desired, call ts3client_flushClientSelfUpdates to publish the changes to the server Not all variables can be changed, many are read only.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to set the value
-flag – specifies which variable to change. One of the values from the ClientProperties or ClientPropertiesRare enums
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_flushClientSelfUpdates ( uint64 serverConnectionHandlerID , const char * returnCode )
-Send changes to the local client to the server.
-Publish changes previously set using ts3client_setClientSelfVariableAsInt and ts3client_setClientSelfVariableAsString on the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientVariableAsInt ( uint64 serverConnectionHandlerID , anyID clientID , size_t flag , int * result )
-Retrieve the value of a variable from a client as integer.
-Not all variables are available as integer. Some are only available as string or unsigned 64bit integer.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the client is located
-clientID – for which client to retrieve the value
-flag – specifies which variable to receive. One of the values from the ClientProperties or ClientPropertiesRare enums
-result – address of a variable to receive the value on success
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientVariableAsUInt64 ( uint64 serverConnectionHandlerID , anyID clientID , size_t flag , uint64 * result )
-Retrieve the value of a variable from a client as unsigned 64bit integer.
-Not all variables are available as integer. Some are only available as string or integer.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the client is located
-clientID – for which client to retrieve the value
-flag – specifies which variable to receive. One of the values from the ClientProperties or ClientPropertiesRare enums
-result – address of a variable to receive the value on success
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientVariableAsString ( uint64 serverConnectionHandlerID , anyID clientID , size_t flag , char * * result )
-Retrieve the value of a variable from a client as string.
-Not all variables are available as integer. Some are only available as integer or unsigned 64bit integer.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the client is located
-clientID – for which client to retrieve the value
-flag – specifies which variable to receive. One of the values from the ClientProperties or ClientPropertiesRare enums
-result – address of a variable to receive the value on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getClientList ( uint64 serverConnectionHandlerID , anyID * * result )
-Get a list of all clients in subscribed channels on the server.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to retrieve the client list
-result – address of a variable to receive a null terminated array of client ids like {10, 30, …, 0} Memory is allocated by the client lib and caller must free the array using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getChannelOfClient ( uint64 serverConnectionHandlerID , anyID clientID , uint64 * result )
-Get id of the current channel the specified client is in.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the client is located
-clientID – the client to receive the current channel for
-result – address of a variable to receive the channel id of the specified client
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getChannelVariableAsInt ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , int * result )
-Retrieve the value of a channel property as integer.
-Not all properties are available as integer. Some are only available as string or unsigned 64 bit integer.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – the channel of which to retrieve the property
-flag – specifies which property to retrieve. One of the values from the ChannelProperties or ChannelPropertiesRare enum
-result – address of a variable to receive the result on success
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getChannelVariableAsUInt64 ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , uint64 * result )
-Retrieve the value of a channel property as unsigned 64 bit integer.
-Not all properties are available as string. Some are only available as integer or string.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – the channel of which to retrieve the property
-flag – specifies which property to retrieve. One of the values from the ChannelProperties or ChannelPropertiesRare enum
-result – address of a variable to receive the result on success
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getChannelVariableAsString ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , char * * result )
-Retrieve the value of a channel property as string.
-Not all properties are available as string. Some are only available as integer or unsigned 64 bit integer.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – the channel of which to retrieve the property
-flag – specifies which property to retrieve. One of the values from the ChannelProperties or ChannelPropertiesRare enum
-result – address of a variable to receive the result on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getChannelIDFromChannelNames ( uint64 serverConnectionHandlerID , char * * channelNameArray , uint64 * result )
-Get the channel id for the given channel path.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to find the channel
-channelNameArray – zero terminated array of c strings describing the channel path. Like {“Main channel”, “sub channel”, null}
-result – address of a variable to receive the channel id on success
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setChannelVariableAsInt ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , int value )
-set a new value for an integer channel property
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to set the property for
-flag – specifies which property to set. One of the values from the ChannelProperties or ChannelPropertiesRare enums
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setChannelVariableAsUInt64 ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , uint64 value )
-set a new value for an unsigned 64 bit channel property
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to set the property for
-flag – specifies which property to set. One of the values from the ChannelProperties or ChannelPropertiesRare enums
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setChannelVariableAsString ( uint64 serverConnectionHandlerID , uint64 channelID , size_t flag , const char * value )
-set a new value for a string channel property
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to set the property for
-flag – specifies which property to set. One of the values from the ChannelProperties or ChannelPropertiesRare enums
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_flushChannelUpdates ( uint64 serverConnectionHandlerID , uint64 channelID , const char * returnCode )
-Inform server of changes to channel properties.
-After all desired changes have been done using ts3client_setChannelVariableAsInt , ts3client_setChannelVariableAsUInt64 or ts3client_setChannelVariableAsString call this function to send the changes to the server and publish them to other clients. Prior to calling this function the channel property changes will not have any effect.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to publish updates for
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_flushChannelCreation ( uint64 serverConnectionHandlerID , uint64 channelParentID , const char * returnCode )
-Create the channel on the server.
-After setting all the desired properties on the channel, call this function to actually create the channel on the server
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to create the channel
-channelParentID – id of the channel this channel should be a sub channel of. Pass 0 to create a root channel.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getChannelList ( uint64 serverConnectionHandlerID , uint64 * * result )
-Get a list of all channels currently on the server.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to retrieve the channels
-result – address of a variable to receive a zero terminated array of channel ids, like {1, 4023, 49, 8534, …, 0} Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getChannelClientList ( uint64 serverConnectionHandlerID , uint64 channelID , anyID * * result )
-Get a list of all clients in the specified channel.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – the channel of which to retrieve the current clients
-result – address of a variable to receive a zero terminated array of client ids, like {2, 50, 4, …, 0} Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getParentChannelOfChannel ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 * result )
-get the id of the parent channel of the specified channel.
-If the channel specified by channelID is a root channel, the result will be 0.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to retrieve the parent of
-result – address of a variable to receive the parent channel id.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getChannelEmptySecs ( uint64 serverConnectionHandlerID , uint64 channelID , int * result )
-get time in seconds since last client left the specified channel
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located
-channelID – id of the channel to get the
-result – address of a variable to receive the result on success
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerConnectionHandlerList ( uint64 * * result )
-get a list of all connection handlers
-
-Parameters:
-
-result – address of a variable to receive a zero terminated array of connection handlers, like {1, 5, …, 0} Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerVariableAsInt ( uint64 serverConnectionHandlerID , size_t flag , int * result )
-get the value of an integer server property.
-Not all properties are available as integer. Some are only available as string or unsigned 64 bit integer.
-
-Parameters:
-
-serverConnectionHandlerID – specifies the server on which to retrieve the property
-flag – specifies which property to retrieve. One of the values from the VirtualServerProperties or VirtualServerPropertiesRare enums
-result – address of a variable to receive the property value on success.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerVariableAsUInt64 ( uint64 serverConnectionHandlerID , size_t flag , uint64 * result )
-get the value of an unsigned 64 bit integer server property.
-Not all properties are available as unsigned 64 bit integer. Some are only available as string or integer.
-
-Parameters:
-
-serverConnectionHandlerID – specifies the server on which to retrieve the property
-flag – specifies which property to retrieve. One of the values from the VirtualServerProperties or VirtualServerPropertiesRare enums
-result – address of a variable to receive the property value on success.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerVariableAsString ( uint64 serverConnectionHandlerID , size_t flag , char * * result )
-get the value of a string server property.
-Not all properties are available as string. Some are only available as integer or unsigned 64 bit integer
-
-Parameters:
-
-serverConnectionHandlerID – specifies the server on which to retrieve the property
-flag – specifies which property to retrieve. One of the values from the VirtualServerProperties or VirtualServerPropertiesRare enums
-result – address of a variable to receive the property value on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestServerVariables ( uint64 serverConnectionHandlerID , const char * returnCode )
-Make request only server variables available locally.
-You will receive an onServerUpdateEvent once the request only properties are available. Prior to the callback being called the variables are not available, and querying them will yield undefined results.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferFileName ( anyID transferID , char * * result )
-get the local file name for a file transfer
-
-Parameters:
-
-transferID – identifies the file transfer to query
-result – address of a variable to receive an utf8 encoded c string on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferFilePath ( anyID transferID , char * * result )
-get the local path of a file transfer
-
-Parameters:
-
-transferID – identifies the file transfer to query
-result – address of a variable to receive an utf8 encoded c string on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferFileRemotePath ( anyID transferID , char * * result )
-get the server path of the file transfer
-
-Parameters:
-
-transferID – identifies which file transfer to query
-result – address of a variable to receive an utf8 encoded c string on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferFileSize ( anyID transferID , uint64 * result )
-get the total size in bytes of a file transfer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferFileSizeDone ( anyID transferID , uint64 * result )
-get the amount of bytes already transferred.
-0 <= result <= ts3client_getTransferFileSize for the same transferID.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_isTransferSender ( anyID transferID , int * result )
-determine if the file transfer is an upload or download
-
-Parameters:
-
-transferID – specifies the file transfer to query
-result – address of a variable to receive the result on success. 1 = upload, 0 = download
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferStatus ( anyID transferID , int * result )
-determine the current status of the transfer in question
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getCurrentTransferSpeed ( anyID transferID , float * result )
-get the current approximate speed (in bytes/sec) of a file transfer
-
-Parameters:
-
-transferID – specifies the file transfer to query
-result – address of a variable to receive the transfer speed in bytes per second, averaged across the past 5 seconds.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getAverageTransferSpeed ( anyID transferID , float * result )
-get the average transfer speed (in bytes/sec) of a file transfer since it started
-
-Parameters:
-
-transferID – specifies the file transfer to query
-result – address of a variable to receive the approximate speed in bytes per second, averaged across its lifetime.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferRunTime ( anyID transferID , uint64 * result )
-get the time (in seconds) a file transfer has been active
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_sendFile ( uint64 serverConnectionHandlerID , uint64 channelID , const char * channelPW , const char * file , int overwrite , int resume , const char * sourceDirectory , anyID * result , const char * returnCode )
-Initiate a file upload to the server.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler to which to upload a file
-channelID – channel to which to upload the file
-channelPW – password of the channel specified in channelID. Pass an empty string if the channel does not have a password.
-file – the name of file to upload on the local file system.
-overwrite – boolean flag, whether to overwrite the file on the server. If 0 the transfer will fail if the file already exists on the server.
-resume – boolean flag, set to 1 to resume a previously aborted or halted transfer. If 1 will append to the file on the server.
-sourceDirectory – the absolute path in which the file resides on the local file system.
-result – address of a variable in which to store the transferID on success.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestFile ( uint64 serverConnectionHandlerID , uint64 channelID , const char * channelPW , const char * file , int overwrite , int resume , const char * destinationDirectory , anyID * result , const char * returnCode )
-Initiate a file download from the server.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler from which to download the file
-channelID – channel in which the file to download is located
-channelPW – password of the channel specified in channelID. Pass an empty string if the channel does not have a password.
-file – the name of the file on the server file system. See ts3client_getFileList to receive a list of files.
-overwrite – boolean flag, whether to overwrite the local file if it already exists. If set to 0 transfer will fail if local file already exists unless resume is 1. Mutually exclusive to resume.
-resume – boolean flag, whether to append to the local file. If set to 1 the contents of the download will be appended to the local file. Mutually exclusive with overwrite.
-destinationDirectory – absolute path to the directory in which to store the file.
-result – address of a variable to receive the transfer id, used to identity this request in callbacks and other calls regarding the status of this transfer
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_haltTransfer ( uint64 serverConnectionHandlerID , anyID transferID , int deleteUnfinishedFile , const char * returnCode )
-Cancel a file transfer.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the file transfer is happening
-transferID – specifies the file transfer to cancel
-deleteUnfinishedFile – boolean flag, whether to delete the partially transmitted file from the file system.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestFileList ( uint64 serverConnectionHandlerID , uint64 channelID , const char * channelPW , const char * path , const char * returnCode )
-retrieve a list of files in a directory.
-This function is NOT recursive. Only directories and files in the directory specified by path will be listed. You will receive a onFileListEvent callback for every file or directory after this function was successful. Once all files and directories were sent you will receive a onFileListFinishedEvent callback.
-
-Parameters:
-
-serverConnectionHandlerID – the connection handler on which to request files
-channelID – the channel from which to list the files
-channelPW – the password of the specified channel. Pass an empty string if the channel has no password.
-path – the path in the specified channel from which to list the files. Pass “/” to list the files in the root channel.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestFileInfo ( uint64 serverConnectionHandlerID , uint64 channelID , const char * channelPW , const char * file , const char * returnCode )
-retrieve information about a specific file.
-You will receive an onFileInfoEvent callback after this function was successful.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to request the file information.
-channelID – the channel in which the file is located
-channelPW – the password of the specified channel. Pass an empty string if the channel has no password.
-file – absolute path to the file to query information of. Must begin with “/”.
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestDeleteFile ( uint64 serverConnectionHandlerID , uint64 channelID , const char * channelPW , const char * * file , const char * returnCode )
-delete one or more files from a channel.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to delete the file
-channelID – the channel in which the file is located
-channelPW – the password of the specified channel. Pass an empty string if the channel has no password.
-file – a zero terminated array of absolute paths to the files to delete. Each path must begin with “/”. Like {“/file.txt”, “/dir/subdir/test.txt”, …, 0}
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestCreateDirectory ( uint64 serverConnectionHandlerID , uint64 channelID , const char * channelPW , const char * directoryPath , const char * returnCode )
-create a directory in a channel for file organization
-Note: This will NOT recursively create directories. If you need recursive creation call this function again after the intended parent directory has been created. You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which the channel is located.
-channelID – the channel in which the file is located
-channelPW – the password of the specified channel. Pass an empty string if the channel has no password.
-directoryPath – absolute path of the directory to create. Must start with “/” e.g. “/existing/newDirName”
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_requestRenameFile ( uint64 serverConnectionHandlerID , uint64 fromChannelID , const char * fromChannelPW , uint64 toChannelID , const char * toChannelPW , const char * oldFile , const char * newFile , const char * returnCode )
-move or rename a file on the server.
-You will receive an onServerErrorEvent with the passed returnCode indicating whether or not the operation was successful.
-
-Parameters:
-
-serverConnectionHandlerID – connection handler on which to move/rename the file
-fromChannelID – channel the file is currently located in
-fromChannelPW – password of the specified channel. Pass an empty string if the channel has no password.
-toChannelID – channel id to which to move the file to. Pass the same value as fromChannelID to keep the file in the same channel.
-toChannelPW – password of the target channel. Pass an empty string if the channel has no password.
-oldFile – current absolute path of the file in the channel. Must start with “/”.
-newFile – new absolute path of the file in the target channel. Must start with “/”. e.g. “/subdirectory/filename.txt”
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_s3ft_getPresignedUrls ( uint64 scHandlerID , uint64 channelID , const char * channelPW , const char * * objectKeys , const char * * verbs , const size_t * contentLengths , int numObjects , const char * returnCode )
-Requests pre-signed URLs for S3 file operations
-
-Parameters:
-
-scHandlerID – server connection handler ID
-channelID – channel ID
-channelPW – channel password (can be NULL)
-objectKeys – array of object keys to request URLs for
-verbs – array of HTTP verbs corresponding to each object key
-contentLengths – array of content lengths for upload operations
-numObjects – number of objects in the arrays
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_s3ft_deleteFile ( uint64 scHandlerID , uint64 channelID , const char * channelPW , const char * objectKey , const char * returnCode )
-Deletes a file from an S3 bucket
-
-Parameters:
-
-scHandlerID – server connection handler ID
-channelID – channel ID
-channelPW – channel password (can be NULL)
-objectKey – object key to delete
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_s3ft_renameFile ( uint64 scHandlerID , uint64 channelID , const char * channelPW , const char * oldObjectKey , const char * newObjectKey , const char * returnCode )
-Renames a file in an S3 bucket
-
-Parameters:
-
-scHandlerID – server connection handler ID
-channelID – channel ID
-channelPW – channel password (can be NULL)
-oldObjectKey – original object key
-newObjectKey – new object key
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_s3ft_listFiles ( uint64 scHandlerID , uint64 channelID , const char * channelPW , const char * returnCode )
-Lists files in an S3 bucket associated with a channel
-
-Parameters:
-
-scHandlerID – server connection handler ID
-channelID – channel ID
-channelPW – channel password (can be NULL)
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_s3ft_uploadDoneNotification ( uint64 scHandlerID , uint64 channelID , const char * returnCode )
-Notifies the server that an S3 upload has completed
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_s3ft_getUploadUrl ( uint64 scHandlerID , uint64 channelID , const char * channelPW , const char * objectKey , size_t contentLength , const char * returnCode )
-Helper function to get pre-signed URL for a single S3 object upload
-
-Parameters:
-
-scHandlerID – server connection handler ID
-channelID – channel ID
-channelPW – channel password (can be NULL)
-objectKey – object key to upload
-contentLength – size of the file to upload
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_s3ft_getDownloadUrl ( uint64 scHandlerID , uint64 channelID , const char * channelPW , const char * objectKey , const char * returnCode )
-Helper function to get pre-signed URL for a single S3 object download
-
-Parameters:
-
-scHandlerID – server connection handler ID
-channelID – channel ID
-channelPW – channel password (can be NULL)
-objectKey – object key to download
-returnCode – a c string to identify this request in callbacks. Pass an empty string if unused.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getInstanceSpeedLimitUp ( uint64 * limit )
-get the configured maximum upload speed of the server instance.
-The limit is temporary and valid only until ts3client_destroyClientLib is called.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getInstanceSpeedLimitDown ( uint64 * limit )
-get the configured maximum download speed of the server instance.
-The limit is temporary and valid only until ts3client_destroyClientLib is called.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerConnectionHandlerSpeedLimitUp ( uint64 serverConnectionHandlerID , uint64 * limit )
-get the configured maximum upload speed for the virtual server.
-Upload speeds on this server will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerConnectionHandlerSpeedLimitDown ( uint64 serverConnectionHandlerID , uint64 * limit )
-get the configured maximum download speed for the virtual server.
-Download speeds on this server will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getTransferSpeedLimit ( anyID transferID , uint64 * limit )
-get the speed limit for a specific file transfer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setInstanceSpeedLimitUp ( uint64 newLimit )
-set the instance wide upload speed limit for file transfer.
-All concurrent file transfers combined will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setInstanceSpeedLimitDown ( uint64 newLimit )
-set the instance wide download speed limit for file transfer.
-All concurrent file transfers combined will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setServerConnectionHandlerSpeedLimitUp ( uint64 serverConnectionHandlerID , uint64 newLimit )
-set the virtual server upload speed limit for file transfer.
-All concurrent file transfers combined will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setServerConnectionHandlerSpeedLimitDown ( uint64 serverConnectionHandlerID , uint64 newLimit )
-set the virtual server download speed limit for file transfer.
-All concurrent file transfers combined will not exceed min(instance limit, virtual server limit) bytes per second. The limit is temporary and valid only for the lifetime of the connection handler.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_setTransferSpeedLimit ( anyID transferID , uint64 newLimit )
-set the transfer limit for an individual file transfer.
-The maximum transfer speed will be min(instance limit, virtual server limit, transfer limit). Whether the limit is upload or download depends on what kind of transfer the specified transfer is.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3client_getServerLegacyUUID ( uint64 serverConnectionHandlerID , char * * result )
-get the legacy UUID (SHA1) of the virtual server.
-
-Parameters:
-
-serverConnectionHandlerID – specifies the server on which to retrieve the property
-result – address of a variable to receive the legacy uuid value on success. Memory is allocated by the client lib and must be freed by caller using ts3client_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-struct ClientUIFunctions
-
-#include <clientlib.h>
-Defines available callbacks that you can receive.
-Set the members of this struct to a function to call when the specific event happens.
-
-
Public Members
-
-
-void ( * onMessage ) ( const char * msg )
-JSON events.
-
-Param msg:
-A stringified JSON object.
-
-
-
-
-
-
-void ( * onConnectStatusChangeEvent ) ( uint64 serverConnectionHandlerID , int newStatus , unsigned int errorNumber )
-called when the status of a connection changes
-
-Param serverConnectionHandlerID:
-specifies on which connection the status has changed
-
-Param newStatus:
-the current status of the connection. One of the values from the ConnectStatus enum
-
-Param errorNumber:
-if the state change was caused by an error this is set to one of the values from the Ts3ErrorType enum
-
-
-
-
-
-
-void ( * onServerProtocolVersionEvent ) ( uint64 serverConnectionHandlerID , int protocolVersion )
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-void ( * onNewChannelEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 channelParentID )
-called when a channel was received.
-Will be called once for every channel during connection initialization. Tells you which channels exist.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the id of the channel
-
-Param channelParentID:
-the id of the parent channel. 0 if the channel is a root channel.
-
-
-
-
-
-
-void ( * onNewChannelCreatedEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 channelParentID , anyID invokerID , const char * invokerName , const char * invokerUniqueIdentifier )
-called when a new channel was created
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the id of the new channel
-
-Param channelParentID:
-the id of the parent channel for the newly created channel. 0 if the channel is a root channel.
-
-
-
-
-
-
-void ( * onDelChannelEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , anyID invokerID , const char * invokerName , const char * invokerUniqueIdentifier )
-called when a channel is deleted
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the id of the channel that is deleted. This channel is gone already when this is called. It’s not possible to get any information about this channel anymore.
-
-Param invokerID:
-client id of the client that deleted the channel. 0 if deleted by the server.
-
-Param invokerName:
-utf8 encoded c string containing the display name of the client that caused deletion
-
-Param invokerUnqiueIdentifier:
-utf8 encoded c string containing the unique identifier of the client that caused deletion
-
-
-
-
-
-
-void ( * onChannelMoveEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , uint64 newChannelParentID , anyID invokerID , const char * invokerName , const char * invokerUniqueIdentifier )
-called when a channel is moved to a different location on the server
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the id of the channel being moved
-
-Param newChannelParentID:
-the id of the new parent channel
-
-Param invokerID:
-client if of the client that moved the channel. 0 if caused by server.
-
-Param invokerName:
-utf8 encoded c string containing the display name of the client that moved the channel
-
-Param invokerUniqueIdentifier:
-utf8 encoded c string containing the unique identifier of the client that moved the channel
-
-
-
-
-
-
-void ( * onUpdateChannelEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID )
-called when new data for a channel was received from the server
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-id of the channel that new information was received for
-
-
-
-
-
-
-void ( * onUpdateChannelEditedEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , anyID invokerID , const char * invokerName , const char * invokerUniqueIdentifier )
-called when a channel was edited on the server
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the id of the channel that was edited
-
-Param invokerID:
-client id that edited the channel. 0 if done by the server
-
-Param invokerName:
-utf8 encoded c string containing the display name of the client editing the channel
-
-Param invokerUniqueIdentifier:
-utf8 encoded c string containing the uid of the client that edited the channel
-
-
-
-
-
-
-void ( * onUpdateClientEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , anyID invokerID , const char * invokerName , const char * invokerUniqueIdentifier )
-called whenever a change for a client is received from the server.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-specifies the client for which variables have changed or are now available
-
-Param invokerID:
-the source client that caused the update
-
-Param invokerName:
-utf8 encoded c string containing the display name of the client causing the update
-
-Param invokerUniqueIdentifier:
-utf8 encoded c string containing the public identity of the client causing the update
-
-
-
-
-
-
-void ( * onClientMoveEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , const char * moveMessage )
-called when a client moves to a different channel, disconnects, connects, gets kicked or banned.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client changing channels
-
-Param oldChannelID:
-id of the previous channel of the client.
-
-Param newChannelID:
-id of the current channel of the client. Can be 0, if the client disconnected / got kicked / banned.
-
-
-
-
-
-
-void ( * onClientMoveSubscriptionEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility )
-called after subscribing to or unsubscribing from a channel. Called once for every client that is in the (un)subscribed channel at this time.
-Informs you about newly visible clients after subscribing to a channel. Informs about clients that we will no longer receive information about.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client
-
-Param oldChannelID:
-id of the channel that the client was in last time we saw the client.
-
-Param newChannelID:
-id of the channel the client is currently in.
-
-Param visibility:
-whether we can see the client or not. One of the values from the Visibility enum. Allows to distinguish whether this callback was called after a subscribe or unsubscribe.
-
-
-
-
-
-
-void ( * onClientMoveTimeoutEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , const char * timeoutMessage )
-called when a client loses connection and times out.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client that lost connection
-
-Param oldChannelID:
-channel the client used to be in
-
-Param newChannelID:
-always 0
-
-Param visibility:
-whether we can see the client. One of the values from the Visibility enum.
-
-Param timeoutMessage:
-uft8 encoded c string containing the reason message.
-
-
-
-
-
-
-void ( * onClientMoveMovedEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , anyID moverID , const char * moverName , const char * moverUniqueIdentifier , const char * moveMessage )
-called when a client was moved by the server or another client
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-the client that was moved
-
-Param oldChannelID:
-id of the previous channel the client used to be in
-
-Param newChannelID:
-id of the current channel the client was moved to
-
-Param visibility:
-whether we can see the client. One of the values from the Visibility enum.
-
-Param moverID:
-id of the client that moved the client
-
-Param moverName:
-utf8 encoded c string containing the display name of the client that caused the move
-
-Param moverUniqueIdentifier:
-utf8 encoded c string containing the identifier of the client that caused the move
-
-Param moveMessage:
-utf8 encoded c string containing the reason message
-
-
-
-
-
-
-void ( * onClientKickFromChannelEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , anyID kickerID , const char * kickerName , const char * kickerUniqueIdentifier , const char * kickMessage )
-called when a client is kicked from their channel
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client that was kicked
-
-Param oldChannelID:
-id of the previous channel the client used to be in
-
-Param newChannelID:
-id of the current channel the client was kicked to. This is the id of the server default channel.
-
-Param visibility:
-whether we can see the client. One of the values from the Visibility enum.
-
-Param kickerID:
-id of the client that kicked the client. 0 if the server kicked the client.
-
-Param kickerName:
-utf8 encoded c string containing the display name of the client initiating the kick
-
-Param kickerUniqueIdentifier:
-utf8 encoded c string containing the identifier of the client initiating the kick
-
-Param kickMessage:
-utf8 encoded c string containing the provided reason for the kick
-
-
-
-
-
-
-void ( * onClientKickFromServerEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , uint64 oldChannelID , uint64 newChannelID , int visibility , anyID kickerID , const char * kickerName , const char * kickerUniqueIdentifier , const char * kickMessage )
-called when a client was kicked from the server
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client that was kicked
-
-Param oldChannelID:
-id of the previous channel the client used to be in
-
-Param newChannelID:
-always 0
-
-Param visibility:
-whether we can see the client. One of the values from the Visibility enum.
-
-Param kickerID:
-id of the client that kicked the client. 0 if the server kicked the client.
-
-Param kickerName:
-utf8 encoded c string containing the display name of the client initiating the kick
-
-Param kickerUniqueIdentifier:
-utf8 encoded c string containing the identifier of the client initiating the kick
-
-Param kickMessage:
-utf8 encoded c string containing the provided reason for the kick
-
-
-
-
-
-
-void ( * onClientIDsEvent ) ( uint64 serverConnectionHandlerID , const char * uniqueClientIdentifier , anyID clientID , const char * clientName )
-called for every connection using the identity after a call to ts3client_requestClientIDs.
-This is called multiple times for each identity queried. Once
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param uniqueClientIdentifier:
-the public identity queried and used by the client
-
-Param clientID:
-the id assigned to this client
-
-Param clientName:
-the display name of this client
-
-
-
-
-
-
-void ( * onClientIDsFinishedEvent ) ( uint64 serverConnectionHandlerID )
-called after onClientIDsEvent was called for every client using the queried identity.
-Once this callback is called, you know of all clients on the server that use the identity.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-void ( * onServerEditedEvent ) ( uint64 serverConnectionHandlerID , anyID editerID , const char * editerName , const char * editerUniqueIdentifier )
-called when the server was edited
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param editerID:
-id of the client that edited the server
-
-Param editerName:
-utf8 encoded c string containing the display name of the client editing the server
-
-Param editerUniqueIdentifier:
-utf8 encoded c string containing the public identity of the client
-
-
-
-
-
-
-void ( * onServerUpdatedEvent ) ( uint64 serverConnectionHandlerID )
-called whenever updates about changed server properties are received from the server.
-Happens after a call to ts3client_requestServerVariables but can also be called sporadically.
-
-Param serverConnectionHandlerID:
-specifies on which connection the updated variables are available
-
-
-
-
-
-
-void ( * onServerErrorEvent ) ( uint64 serverConnectionHandlerID , const char * errorMessage , unsigned int error , const char * returnCode , const char * extraMessage )
-called after an action was performed by us. Tells whether the action was successful or which error occurred.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param errorMessage:
-utf8 encoded c string describing the error
-
-Param error:
-the error code the action finished with. One of the values from the Ts3ErrorType enum.
-
-Param returnCode:
-a c string identifying the action that caused this error. This is the same string given as returnCode to function calls that request an action on the server
-
-Param extraMessage:
-utf8 encoded c string containing additional information if available.
-
-
-
-
-
-
-void ( * onServerStopEvent ) ( uint64 serverConnectionHandlerID , const char * shutdownMessage )
-called when the server was stopped
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param shutdownMessage:
-utf8 encoded c string containing the provided reason for the shutdown
-
-
-
-
-
-
-void ( * onTextMessageEvent ) ( uint64 serverConnectionHandlerID , anyID targetMode , anyID toID , anyID fromID , const char * fromName , const char * fromUniqueIdentifier , const char * message )
-called when a text message was received
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param targetMode:
-identifies the type of the message. One of the values from the TextMessageTargetMode enum.
-
-Param toID:
-the id of the recipient. Depends on the value of targetMode. a channel id for channel chat, own client id for private messages, 0 for server messages
-
-Param fromID:
-id of the client that sent the message
-
-Param fromName:
-utf8 encoded c string containing the display name of the client sending the message
-
-Param fromUniqueIdentifier:
-utf8 encoded c string containing the public identity of the sending client
-
-Param message:
-utf8 encoded c string containing the actual message
-
-
-
-
-
-
-void ( * onTalkStatusChangeEvent ) ( uint64 serverConnectionHandlerID , int status , int isReceivedWhisper , anyID clientID )
-called when a client starts or stops talking.
-This event is only received for clients in our own channel and clients that whisper us
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param status:
-Whether the client is talking or not. One of the values from the TalkStatus enum.
-
-Param clientID:
-the client the event was called for
-
-
-
-
-
-
-void ( * onIgnoredWhisperEvent ) ( uint64 serverConnectionHandlerID , anyID clientID )
-called when someone whispers us that is not on the list of clients we accept whispers from.
-
-
-
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client that tried to whisper us
-
-
-
-
-
-
-void ( * onConnectionInfoEvent ) ( uint64 serverConnectionHandlerID , anyID clientID )
-called when updated connection properties for a client are available.
-This happens after a call to ts3client_requestConnectionInfo
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client that updated properties are available for
-
-
-
-
-
-
-void ( * onServerConnectionInfoEvent ) ( uint64 serverConnectionHandlerID )
-called after a call ts3client_requestServerConnectionInfo when the connection information for the server are available.
-Information can now be queried using ts3client_getServerConnectionVariableAsFloat and ts3client_getServerConnectionVariableAsUInt64
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-void ( * onChannelSubscribeEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID )
-called when a channel was successfully subscribed by us
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-id of the channel we subscribed to
-
-
-
-
-
-
-void ( * onChannelSubscribeFinishedEvent ) ( uint64 serverConnectionHandlerID )
-called after all channels we attempted to subscribe to are subscribed.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-void ( * onChannelUnsubscribeEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID )
-called after we unsubscribed from a channel
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-id of the channel we unsubscribed from. Will no longer receive updates about clients in this channel.
-
-
-
-
-
-
-void ( * onChannelUnsubscribeFinishedEvent ) ( uint64 serverConnectionHandlerID )
-called after all channels we attempted to unsubscribe from are unsubscribed
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-void ( * onChannelDescriptionUpdateEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID )
-called when the channel description of a channel has changed.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the channel for which the description has changed
-
-
-
-
-
-
-void ( * onChannelPasswordChangedEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID )
-called when a channel password was changed. Can be used to invalidate cached passwords previously stored for the channel.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-id of the channel the password was changed on
-
-
-
-
-
-
-void ( * onPlaybackShutdownCompleteEvent ) ( uint64 serverConnectionHandlerID )
-called once the playback device was closed on a connection
-
-
-
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-
-
-
-
-
-void ( * onSoundDeviceListChangedEvent ) ( const char * modeID , int playOrCap )
-called when the available devices changed
-
-Param modeID:
-utf8 encoded c string describing the mode of the device
-
-Param playOrCap:
-indicates whether the device is a capture or playback device
-
-
-
-
-
-
-void ( * onEditPlaybackVoiceDataEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , short * samples , int sampleCount , int channels )
-called before any effects are applied, allows access to individual client raw audio data
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the source client for the audio
-
-Param samples:
-buffer of audio data for the client as 16 bit signed at 48kHz
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-number of audio channels in the audio data
-
-
-
-
-
-
-void ( * onEditPostProcessVoiceDataEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , short * samples , int sampleCount , int channels , const unsigned int * channelSpeakerArray , unsigned int * channelFillMask )
-called before audio data is mixed together into a single audio stream for playback, but after effects (3D positioning for example) have been applied.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the source client for the audio
-
-Param samples:
-buffer of audio data for the client as 16 bit signed at 48kHz
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-number of audio channels in the audio data
-
-Param channelSpeakerArray:
-Array with an entry for each channel in the buffer, defining the speaker each channel represents. see SPEAKER_* defines in public_definitions.h
-
-Param channelFillMask:
-a bit mask of SPEAKER_* that defines which of the channels in the buffer have audio data. Be sure to set the corresponding flag when adding audio to previously empty channels in the buffer.
-
-
-
-
-
-
-void ( * onEditMixedPlaybackVoiceDataEvent ) ( uint64 serverConnectionHandlerID , short * samples , int sampleCount , int channels , const unsigned int * channelSpeakerArray , unsigned int * channelFillMask )
-called after mixing individual client audio together but before sending it to playback device.
-Last chance to access/modify audio data before it gets sent to the playback device.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param samples:
-buffer of audio data as 16 bit signed at 48kHz
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-how many audio channels are available in the buffer
-
-Param channelSpeakerArray:
-Array with an entry for each channel in the buffer, defining the speaker each channel represents. See SPEAKER_* defines in public_definitions.h
-
-Param channelFillMask:
-a bit mask of SPEAKER_* that defines which of the channels in the buffer have audio data.
-
-
-
-
-
-
-void ( * onEditCapturedVoiceDataPreprocessEvent ) ( uint64 serverConnectionHandlerID , short * samples , int sampleCount , int channels , int * flags )
-called after audio data was aquired from the capture device, without any pre processing applied. Allows access to raw audio data.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param samples:
-buffer of audio data
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-how many audio channels are available in the buffer
-
-Param flags:
-allows to mute the audio stream, set LSB to 1 to mute the audio.
-
-
-
-
-
-
-void ( * onEditCapturedVoiceDataEvent ) ( uint64 serverConnectionHandlerID , short * samples , int sampleCount , int channels , int * edited )
-called after pre processing has been applied to recorded voice data, before it is sent to the server.
-This allows access to or modification of captured data from the recording device.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param samples:
-buffer of audio data as 16 bit signed at 48kHz
-
-Param sampleCount:
-how many audio frames are available in the buffer
-
-Param channels:
-how many audio channels are available in the buffer
-
-Param edited:
-bitMask indicating whether you modified the buffer. Set LSB to 1 if you modified the buffer. Bit 2 indicates whether or not this buffer will be sent to the server.
-
-
-
-
-
-
-void ( * onCustom3dRolloffCalculationClientEvent ) ( uint64 serverConnectionHandlerID , anyID clientID , float distance , float * volume )
-called to calculate the volume attenuation for the distance in 3D positioning of clients
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param clientID:
-id of the client for which the position is calculated
-
-Param distance:
-the distance from own client to the client
-
-Param volume:
-the volume calculated by the client lib. Can be modified in the callback.
-
-
-
-
-
-
-void ( * onCustom3dRolloffCalculationWaveEvent ) ( uint64 serverConnectionHandlerID , uint64 waveHandle , float distance , float * volume )
-called to calculate the volume attenuation for the distance in 3D positioning of wave files
-
-
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param waveHandle:
-identifies the wave file to calculate the volume for. A handle previously created with ts3client_playWaveFileHandle
-
-Param distance:
-the distance from own client to the source of the wave file
-
-Param volume:
-the volume of the wave file calculated by the client lib. Can be modified in the callback.
-
-
-
-
-
-
-void ( * onUserLoggingMessageEvent ) ( const char * logmessage , int logLevel , const char * logChannel , uint64 logID , const char * logTime , const char * completeLogString )
-called for every log message if the client lib was initialized with user logging
-
-Param logmessage:
-utf8 encoded c string containing the text to log
-
-Param logLevel:
-indicates severity of the message. One of the values from the LogLevel enum
-
-Param logChannel:
-utf8 encoded c string containing the category this message is logged under
-
-Param logID:
-the connection handler this message was logged on
-
-Param completeLogString:
-utf8 encoded c string containing the complete log message containing all other parameters for convenience
-
-
-
-
-
-
-void ( * onCustomPacketEncryptEvent ) ( char * * dataToSend , unsigned int * sizeOfData )
-called for every packet to be sent to the server. Used to implement custom cryptography.
-Only implement if you need custom encryption of network traffic. Replaces default encryption. If implemented Encryption and Decryption must be implemented the same way on both server and client.
-
-Param dataToSend:
-pointer to a byte array of data to be encrypted. Must not be freed. Write encrypted data to array. Replace array pointer with pointer to own buffer if you need more space. Need to take care of freeing your own memory yourself.
-
-Param sizeOfData:
-pointer to the size of the data array.
-
-
-
-
-
-
-void ( * onCustomPacketDecryptEvent ) ( char * * dataReceived , unsigned int * dataReceivedSize )
-called for every packet received from the server. Used to implement custom cryptography.
-Only implement if you need custom encryption of network traffic. Replaces default encryption. If implemented Encryption and Decryption must be implemented the same way on both server and client.
-
-Param dataReceived:
-pointer to byte array of data to decrypt. Must not be freed. Write decrypted data to the array if large enough. Replace array pointer with pointer to own buffer if decrypted data exceeds the array size. Must take care to free own memory.
-
-Param sizeOfData:
-pointer to the size of the data array.
-
-
-
-
-
-
-void ( * onCheckServerUniqueIdentifierEvent ) ( uint64 serverConnectionHandlerID , const char * ServerUniqueIdentifier , int * cancelConnect )
-called during the connection initialization, allows to check whether the server identifier is the one you expect.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param ServerUniqueIdentifier:
-utf8 encoded c string containing the server identifier of the server connecting to
-
-Param cancelConnect:
-allows to cancel the connection. Set variable pointed to to 1 to abort the connection.
-
-
-
-
-
-
-void ( * onClientPasswordEncrypt ) ( uint64 serverConnectionHandlerID , const char * plaintext , char * encryptedText , int encryptedTextByteSize )
-called when a channel password is set.
-Can be used to implement custom password checks against external sources (e.g. LDAP).
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param plaintext:
-utf8 encoded c string containing the plaintext password as entered by the user
-
-Param encryptedText:
-output parameter. Fill with the encrypted password / password hash. Must be an utf8 encoded c string (zero terminated). Must not be larger than the size specified by the encryptedTextByteSize parameter.
-
-Param encryptedTextByteSize:
-the maximum amount of bytes (including trailing zero byte) that may be written to encryptedText parameter
-
-
-
-
-
-
-void ( * onFileTransferStatusEvent ) ( anyID transferID , unsigned int status , const char * statusMessage , uint64 remotefileSize , uint64 serverConnectionHandlerID )
-called when file transfers finish or terminate with an error
-
-
-
-
-Param transferID:
-identifies the file transfer the callback was called for. As created by ts3client_requestFile or ts3client_sendFile
-
-Param status:
-indicates success status or error reason. One of the values from the Ts3ErrorType enum.
-
-Param statusMessage:
-utf8 encoded c string containing a human readable description of the status message
-
-Param remotefileSize:
-size of the file in bytes at the source of the transfer.
-
-Param serverConnectionHandlerID:
-specifies the connection the transfer was started on
-
-
-
-
-
-
-void ( * onFileListEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , const char * path , const char * name , uint64 size , uint64 datetime , int type , uint64 incompletesize , const char * returnCode )
-called as an answer to ts3client_requestFileList. Called once for every file in the requested path, providing file information.
-Followed by a onFileList_FinishedEvent callback after this callback was called for the last file in the requested path.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the channel in which the file is located
-
-Param path:
-the folder in which this file or directory is located
-
-Param name:
-the name of the file or directory this event is called for
-
-Param size:
-file size in bytes. 0 if this event describes a directory
-
-Param datetime:
-unix timestamp of when this file was last modified
-
-Param type:
-whether the entry described is a directory or a file. One of the values from the FileTransferType enum.
-
-Param incompleteSize:
-number of bytes that have already been transmitted. If not equal to size then this file is still being transmitted or the transfer was aborted.
-
-Param returnCode:
-allows to identify which call to ts3client_requestFileList caused this event to be fired. Same as given to the ts3client_requestFileList call. Can be NULL
-
-
-
-
-
-
-void ( * onFileListFinishedEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , const char * path )
-called after onFileListEvent was called for all directories / files in a given path.
-This signifies that you now know of all files and directories in the path requested.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the channel for which the file list is now complete
-
-Param path:
-the path within the channel that files and directories were requested for.
-
-
-
-
-
-
-void ( * onFileInfoEvent ) ( uint64 serverConnectionHandlerID , uint64 channelID , const char * name , uint64 size , uint64 datetime )
-called after a call to ts3client_requestFileInfo providing the requested information about a file.
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param channelID:
-the channel in which the file resides
-
-Param name:
-utf8 encoded c string containing the absolute path within the channel, including the file / directory name.
-
-Param size:
-the size of the file in bytes
-
-Param datetime:
-unix timestamp for the last time the file was modified
-
-
-
-
-
-
-void ( * onChatLoginTokenEvent ) ( uint64 serverConnectionHandlerID , const char * token )
-called after a call to ts3client_getChatLoginToken providing the requested login token for the chat server associated with this teamspeak server
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param token:
-The requested chat login token
-
-
-
-
-
-
-void ( * onAuthenticationTokenEvent ) ( uint64 serverConnectionHandlerID , const char * token )
-called after a call to ts3client_getAuthenticationToken providing the requested authentication token for the virtual server
-
-Param serverConnectionHandlerID:
-specifies on which connection the callback was called
-
-Param token:
-THe requested authentication token
-
-
-
-
-
-
-void ( * onScreenshareSessionEvent ) ( uint64 id , const char * event_name , const char * payload )
-invoked when some ui-relevant event happened in a screenshare session, with it’s according payload in json
-
-Param id:
-stringified uint64 id of the peer connection
-
-Param payload:
-stringified json payload
-
-
-
-
-
-
-void ( * onJsonReply ) ( const char * json , const char * return_code )
-invoked by an asynchronous request from ts3client_postMessage
-
-Param stringified:
-json of the reply
-
-Param return_code:
-a c string identifying the action that caused this event. This is the same string given as return_code to function calls that request an action
-
-
-
-
-
-
-void ( * onSendCallToMatrix ) ( unsigned int ts_chat_id , const char * json , const char * return_code )
-Invoked when a JSON Command should be sent to the matrix module.
-
-Param stringified:
-json of the event
-
-Param return_code:
-a c string identifying the event. A return_code is waiting to be resolved by ts3client_onMatrixMessage
-
-
-
-
-
-
-void ( * onProtoResponse ) ( const void * data , size_t size , const char * return_code )
-Called when a proto command response is ready.
-
-Param data:
-Serialized ClientCommandResponse protobuf bytes
-
-Param size:
-Size in bytes
-
-Param return_code:
-The return_code passed to ts3client_postProtoCommand
-
-
-
-
-
-
-void ( * onProtoEvent ) ( const void * data , size_t size )
-Called when a proto event occurs (server events filtered by ACCESS_SDK).
-
-Param data:
-Serialized ServerEvent protobuf bytes
-
-Param size:
-Size in bytes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/enumerations.html b/docs/teamspeak-sdk-3.5.2/doc/enumerations.html
deleted file mode 100644
index 69967a9..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/enumerations.html
+++ /dev/null
@@ -1,1963 +0,0 @@
-
-
-
-
-
-
-
-
-
Structures & Enumerations — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Structures & Enumerations
-
-
-
-
-
-
-
-
-
-Structures & Enumerations
-
-Common
-
-
-enum LogTypes
-Values:
-
-
-enumerator LogType_NONE
-Logging is disabled.
-
-
-
-
-enumerator LogType_FILE
-Log to regular log file.
-
-
-
-
-enumerator LogType_CONSOLE
-Log to standard output / error.
-
-
-
-
-enumerator LogType_USERLOGGING
-User defined logging. Will call the ServerLibFunctions::onUserLoggingMessageEvent callback for every message to be logged.
-
-
-
-
-enumerator LogType_NO_NETLOGGING
-Not used.
-
-
-
-
-enumerator LogType_DATABASE
-Log to database (deprecated, server only, no effect in SDK)
-
-
-
-
-enumerator LogType_SYSLOG
-Log to syslog (only available on Linux)
-
-
-
-
-
-
-enum ReasonIdentifier
-Values:
-
-
-enumerator REASON_NONE
-no reason data
-
-
-
-
-enumerator REASON_MOVED
-client was moved
-
-
-
-
-enumerator REASON_SUBSCRIPTION
-
-
-
-
-enumerator REASON_LOST_CONNECTION
-
-
-
-
-enumerator REASON_KICK_CHANNEL
-
-
-
-
-enumerator REASON_KICK_SERVER
-
-
-
-
-enumerator REASON_KICK_SERVER_BAN
-
-
-
-
-enumerator REASON_SERVERSTOP
-
-
-
-
-enumerator REASON_CLIENTDISCONNECT
-
-
-
-
-enumerator REASON_CHANNELUPDATE
-
-
-
-
-enumerator REASON_CHANNELEDIT
-
-
-
-
-enumerator REASON_CLIENTDISCONNECT_SERVER_SHUTDOWN
-
-
-
-
-
-
-Client
-
-
-enum ConnectStatus
-Values:
-
-
-enumerator STATUS_DISCONNECTED
-There is no activity to the server, this is the default value.
-
-
-
-
-enumerator STATUS_CONNECTING
-We are trying to connect, we haven’t got a client id yet, we haven’t been accepted by the server.
-
-
-
-
-enumerator 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.)
-
-
-
-
-enumerator STATUS_CONNECTION_ESTABLISHING
-we are connected and we are visible
-
-
-
-
-enumerator STATUS_CONNECTION_ESTABLISHED
-we are connected and we have the client and channels available
-
-
-
-
-
-
-enum Visibility
-Values:
-
-
-enumerator ENTER_VISIBILITY
-Client joined from an unsubscribed channel, or joined the server.
-
-
-
-
-enumerator RETAIN_VISIBILITY
-Client switched from one subscribed channel to a different subscribed channel.
-
-
-
-
-enumerator LEAVE_VISIBILITY
-Client switches to an unsubscribed channel, or disconnected from server.
-
-
-
-
-
-
-Voice
-
-
-enum TalkStatus
-Values:
-
-
-enumerator STATUS_NOT_TALKING
-client is not talking
-
-
-
-
-enumerator STATUS_TALKING
-client is talking
-
-
-
-
-enumerator STATUS_TALKING_WHILE_DISABLED
-client is talking while the microphone is muted (only valid for own client)
-
-
-
-
-
-
-enum MuteInputStatus
-Values:
-
-
-enumerator MUTEINPUT_NONE
-Microphone is not muted, audio is sent to the server.
-
-
-
-
-enumerator MUTEINPUT_MUTED
-Microphone is muted, no audio is transmitted to the server.
-
-
-
-
-
-
-enum MuteOutputStatus
-Values:
-
-
-enumerator MUTEOUTPUT_NONE
-Speaker is active, server is sending us audio.
-
-
-
-
-enumerator MUTEOUTPUT_MUTED
-Speaker is muted, server is not sending audio to us.
-
-
-
-
-
-
-enum HardwareInputStatus
-Values:
-
-
-enumerator HARDWAREINPUT_DISABLED
-no capture device opened
-
-
-
-
-enumerator HARDWAREINPUT_ENABLED
-capture device open
-
-
-
-
-
-
-enum HardwareOutputStatus
-Values:
-
-
-enumerator HARDWAREOUTPUT_DISABLED
-no playback device opened
-
-
-
-
-enumerator HARDWAREOUTPUT_ENABLED
-playback device open
-
-
-
-
-
-
-enum InputDeactivationStatus
-Values:
-
-
-enumerator INPUT_ACTIVE
-Audio is captured from the capture device.
-
-
-
-
-enumerator INPUT_DEACTIVATED
-No audio is captured from the capture device.
-
-
-
-
-
-
-enum LocalTestMode
-Values:
-
-
-enumerator TEST_MODE_OFF
-
-
-
-
-enumerator TEST_MODE_VOICE_LOCAL_ONLY
-
-
-
-
-enumerator TEST_MODE_VOICE_LOCAL_AND_REMOTE
-
-
-
-
-enumerator TEST_MODE_TALK_STATUS_CHANGES_ONLY
-
-
-
-
-
-
-Codecs
-
-
-enum CodecType
-Values:
-
-
-enumerator CODEC_SPEEX_NARROWBAND
-(deprecated) mono, 16bit, 8kHz, bitrate dependent on the quality setting
-
-
-
-
-enumerator CODEC_SPEEX_WIDEBAND
-(deprecated) mono, 16bit, 16kHz, bitrate dependent on the quality setting
-
-
-
-
-enumerator CODEC_SPEEX_ULTRAWIDEBAND
-(deprecated) mono, 16bit, 32kHz, bitrate dependent on the quality setting
-
-
-
-
-enumerator CODEC_CELT_MONO
-(deprecated) mono, 16bit, 48kHz, bitrate dependent on the quality setting
-
-
-
-
-enumerator CODEC_OPUS_VOICE
-mono, 16bit, 48khz, bitrate dependent on the quality setting, optimized for voice
-
-
-
-
-enumerator CODEC_OPUS_MUSIC
-stereo, 16bit, 48khz, bitrate dependent on the quality setting, optimized for music
-
-
-
-
-
-
-enum CodecEncryptionMode
-Values:
-
-
-enumerator CODEC_ENCRYPTION_PER_CHANNEL
-voice data encryption decided per channel
-
-
-
-
-enumerator CODEC_ENCRYPTION_FORCED_OFF
-voice data encryption disabled
-
-
-
-
-enumerator CODEC_ENCRYPTION_FORCED_ON
-voice data encryption enabled
-
-
-
-
-
-
-Text messaging
-
-
-enum TextMessageTargetMode
-Values:
-
-
-enumerator TextMessageTarget_CLIENT
-Message is a private message to another client.
-
-
-
-
-enumerator TextMessageTarget_CHANNEL
-Message is sent to a channel, received by all clients in that channel at the time.
-
-
-
-
-enumerator TextMessageTarget_SERVER
-Message is sent to every client on the server.
-
-
-
-
-enumerator TextMessageTarget_MAX
-
-
-
-
-
-
-File Transfer
-
-
-enum FileTransferState
-Values:
-
-
-enumerator FILETRANSFER_INITIALISING
-File transfer is establishing connection.
-
-
-
-
-enumerator FILETRANSFER_ACTIVE
-File transfer is in progress.
-
-
-
-
-enumerator FILETRANSFER_FINISHED
-File transfer has finished.
-
-
-
-
-
-
-enum FileTransferType
-Values:
-
-
-enumerator FileListType_Directory
-The file entry is a directory.
-
-
-
-
-enumerator FileListType_File
-The file entry is a regular file.
-
-
-
-
-
-
-enum FTAction
-Values:
-
-
-enumerator FT_INIT_SERVER
-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.
-
-
-
-
-enumerator FT_INIT_CHANNEL
-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.
-
-
-
-
-enumerator FT_UPLOAD
-A file is being uploaded. All values in the result struct can be modified.
-
-
-
-
-enumerator FT_DOWNLOAD
-A file is being downloaded. All values in the result struct can be modified.
-
-
-
-
-enumerator FT_DELETE
-A file is being deleted. All values in the result struct can be modified.
-
-
-
-
-enumerator FT_CREATEDIR
-A directory is being created in a channel. All values in the result struct can be modified.
-
-
-
-
-enumerator FT_RENAME
-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.
-
-
-
-
-enumerator FT_FILELIST
-A directory listing is requested. All values in the result struct can be modified.
-
-
-
-
-enumerator FT_FILEINFO
-Information of a file is requested. All values in the result struct can be modified.
-
-
-
-
-
-
-struct FileTransferCallbackExport
-
-
Public Members
-
-
-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 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.
-
-
-
-
-
-
-
-struct TransformFilePathExport
-Structure used to describe a file transfer in the ServerLibFunctions::onTransformFilePath callback. This describes the original values, and also contains hints for length limitations of the result parameter of the callback.
-
Important
-
Which values of the struct can be modified is defined by the action value of the original parameter.
-
-
-
-
-
Public Members
-
-
-uint64 channel
-The channel id of the file. 0 if action is 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 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
-Structure to rewrite the file transfer file name and path in the ServerLibFunctions::onTransformFilePath callback. The lengths are limited as described in the original parameter.
-
Important
-
Which values of the struct can be modified is defined by the action value of the original parameter.
-
-
-
-
-
Public Members
-
-
-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 VIRTUALSERVER_LOG_FILETRANSFER property is 0.
-
-
-
-
-
-
-
-struct ts3sc_data_ftcreatedir
-
-#include <server_commands_file_transfer.h>
-Structure that contains the command data for an ftcreatedir message
-
-
Public Members
-
-
-uint64 channelID
-The channel ID where the directory is to be created.
-
-
-
-
-const char * dirname
-utf8 encoded c string containing the directory name
-
-
-
-
-
-
-
-struct ts3sc_meta_ftcreatedir
-
-#include <server_commands_file_transfer.h>
-Structure that contains the meta data for an ftcreatedir message
-
-
Public Members
-
-
-int RESERVED
-This is here because C forbids empty structs. DO NOT USE.
-
-
-
-
-
-
-
-struct ts3sc_ftcreatedir
-
-#include <server_commands_file_transfer.h>
-C Structure that contains the meta data and data for an ftcreatedir message
-
-
-
-
-
-struct ts3sc_data_ftdeletefile
-
-#include <server_commands_file_transfer.h>
-Structure that contains the command data for an ftdeletefile message
-
-
Public Members
-
-
-uint64 channelID
-The channel ID where the file is to be deleted.
-
-
-
-
-
-
-
-struct ts3sc_array_ftdeletefile
-
-#include <server_commands_file_transfer.h>
-Structure that contains the repeat command data for an ftdeletefile message
-
-
Public Members
-
-
-const char * fileName
-The file name to be deleted.
-
-
-
-
-
-
-
-struct ts3sc_meta_ftdeletefile
-
-#include <server_commands_file_transfer.h>
-Structure that contains the meta data for an ftdeletefile message
-
-
Public Members
-
-
-int RESERVED
-This is here because C forbids empty structs. DO NOT USE.
-
-
-
-
-
-
-
-struct ts3sc_ftdeletefile
-
-#include <server_commands_file_transfer.h>
-C Structure that contains the meta data and data for an ftdeletefile message
-
-
-
-
-
-struct ts3sc_data_ftgetfileinfo
-
-#include <server_commands_file_transfer.h>
-Structure that contains the command data for an ftgetfileinfo message
-
-
Public Members
-
-
-int RESERVED
-This is here because C forbids empty structs. DO NOT USE.
-
-
-
-
-
-
-
-struct ts3sc_array_ftgetfileinfo
-
-#include <server_commands_file_transfer.h>
-Structure that contains the repeat command data for an ftgetfileinfo message
-
-
Public Members
-
-
-uint64 channelID
-The channel ID where the file is located.
-
-
-
-
-const char * fileName
-utf8 encoded c string containing the file name
-
-
-
-
-
-
-
-struct ts3sc_meta_ftgetfileinfo
-
-#include <server_commands_file_transfer.h>
-Structure that contains the meta data for an ftgetfileinfo message
-
-
Public Members
-
-
-int RESERVED
-This is here because C forbids empty structs. DO NOT USE
-
-
-
-
-
-
-
-struct ts3sc_ftgetfileinfo
-
-#include <server_commands_file_transfer.h>
-C Structure that contains the meta data and data for an ftgetfileinfo message
-
-
-
-
-
-struct ts3sc_data_ftgetfilelist
-
-#include <server_commands_file_transfer.h>
-Structure that contains the command data for an ftgetfilelist message
-
-
Public Members
-
-
-uint64 channelID
-The channel ID.
-
-
-
-
-const char * path
-utf8 encoded c string containing the path to get the files and directories in
-
-
-
-
-
-
-
-struct ts3sc_meta_ftgetfilelist
-
-#include <server_commands_file_transfer.h>
-Structure that contains the meta data for an ftgetfilelist message
-
-
Public Members
-
-
-int RESERVED
-This is here because C forbids empty structs. DO NOT USE.
-
-
-
-
-
-
-
-struct ts3sc_ftgetfilelist
-
-#include <server_commands_file_transfer.h>
-C Structure that contains the meta data and data for an ftgetfilelist message
-
-
-
-
-
-struct ts3sc_data_ftinitdownload
-
-#include <server_commands_file_transfer.h>
-Structure that contains the command data for an ftinitdownload message
-
-
Public Members
-
-
-const char * fileName
-The file name.
-
-
-
-
-uint64 channelID
-The channel ID where the file is to be downloaded from.
-
-
-
-
-
-
-
-struct ts3sc_meta_ftinitdownload
-
-#include <server_commands_file_transfer.h>
-Structure that contains the meta data for an ftinitdownload message
-
-
Public Members
-
-
-int RESERVED
-This is here because C forbids empty structs. DO NOT USE.
-
-
-
-
-
-
-
-struct ts3sc_ftinitdownload
-
-#include <server_commands_file_transfer.h>
-C Structure that contains the meta data and data for an ftinitdownload message
-
-
-
-
-
-struct ts3sc_data_ftinitupload
-
-#include <server_commands_file_transfer.h>
-Structure that contains the command data for an ftinitupload message
-
-
Public Members
-
-
-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.
-
-
-
-
-
-
-
-struct ts3sc_meta_ftinitupload
-
-#include <server_commands_file_transfer.h>
-Structure that contains the meta data for an ftinitupload message
-
-
Public Members
-
-
-int RESERVED
-This is here because C forbids empty structs. DO NOT USE.
-
-
-
-
-
-
-
-struct ts3sc_ftinitupload
-
-#include <server_commands_file_transfer.h>
-C Structure that contains the meta data and data for an ftinitupload message
-
-
-
-
-
-struct ts3sc_data_ftrenamefile
-
-#include <server_commands_file_transfer.h>
-Structure that contains the command data for an ftrenamefile message
-
-
Public Members
-
-
-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
-
-
-
-
-
-
-
-struct ts3sc_meta_ftrenamefile
-
-#include <server_commands_file_transfer.h>
-Structure that contains the meta data for an ftrenamefile message
-
-
Public Members
-
-
-unsigned int has_toChannelID
-boolean. 1 if the file is to be moved to a different channel.
-
-
-
-
-
-
-
-struct ts3sc_ftrenamefile
-
-#include <server_commands_file_transfer.h>
-C Structure that contains the meta data and data for an ftrenamefile message
-
-
-
-
-
-Whisper
-
-
-enum GroupWhisperType
-Values:
-
-
-enumerator GROUPWHISPERTYPE_SERVERGROUP
-Whisper list consists of server groups.
-
-
-
-
-enumerator GROUPWHISPERTYPE_CHANNELGROUP
-Whisper list consists of channel groups.
-
-
-
-
-enumerator GROUPWHISPERTYPE_CHANNELCOMMANDER
-whisper to channel commanders
-
-
-
-
-enumerator GROUPWHISPERTYPE_ALLCLIENTS
-whisper to all clients
-
-
-
-
-enumerator GROUPWHISPERTYPE_ENDMARKER
-
-
-
-
-
-
-enum GroupWhisperTargetMode
-Values:
-
-
-enumerator GROUPWHISPERTARGETMODE_ALL
-
-
-
-
-enumerator GROUPWHISPERTARGETMODE_CURRENTCHANNEL
-Whisper the current channel of the client.
-
-
-
-
-enumerator GROUPWHISPERTARGETMODE_PARENTCHANNEL
-Whisper the parent channel of whatever channel the client is currently in.
-
-
-
-
-enumerator GROUPWHISPERTARGETMODE_ALLPARENTCHANNELS
-Whipser to the parent channel and all their parent channels as well.
-
-
-
-
-enumerator GROUPWHISPERTARGETMODE_CHANNELFAMILY
-Whisper to the current channel and all its sub channels.
-
-
-
-
-enumerator GROUPWHISPERTARGETMODE_ANCESTORCHANNELFAMILY
-Whisper to the current channel, all its parent and sub channels.
-
-
-
-
-enumerator GROUPWHISPERTARGETMODE_SUBCHANNELS
-Whisper to all sub channels of the current channel of the client.
-
-
-
-
-enumerator GROUPWHISPERTARGETMODE_ENDMARKER
-
-
-
-
-
-
-Server
-
-
-enum ClientCommand
-Values:
-
-
-enumerator CLIENT_COMMAND_requestConnectionInfo
-disable client connection info request (client bandwidth usage, ip, port, ping)
-
-
-
-
-enumerator CLIENT_COMMAND_requestClientMove
-disable moving clients
-
-
-
-
-enumerator CLIENT_COMMAND_requestXXMuteClients
-disable muting other clients
-
-
-
-
-enumerator CLIENT_COMMAND_requestClientKickFromXXX
-disable kicking clients
-
-
-
-
-enumerator CLIENT_COMMAND_flushChannelCreation
-disable creating channels
-
-
-
-
-enumerator CLIENT_COMMAND_flushChannelUpdates
-disable editing channels
-
-
-
-
-enumerator CLIENT_COMMAND_requestChannelMove
-disable moving channels
-
-
-
-
-enumerator CLIENT_COMMAND_requestChannelDelete
-disable deleting channels
-
-
-
-
-enumerator CLIENT_COMMAND_requestChannelDescription
-disable channel descriptions
-
-
-
-
-enumerator CLIENT_COMMAND_requestChannelXXSubscribeXXX
-disable being able to see clients in channels other than the current channel the client is in
-
-
-
-
-enumerator CLIENT_COMMAND_requestServerConnectionInfo
-disable server connection info request (server bandwidth usage, ip, port, ping)
-
-
-
-
-enumerator CLIENT_COMMAND_requestSendXXXTextMsg
-disable text messaging
-
-
-
-
-enumerator CLIENT_COMMAND_filetransfers
-disable file transfer
-
-
-
-
-enumerator CLIENT_COMMAND_ENDMARKER
-
-
-
-
-
-
-enum SecuritySaltOptions
-Values:
-
-
-enumerator SECURITY_SALT_CHECK_NICKNAME
-put nickname into security hash
-
-
-
-
-enumerator SECURITY_SALT_CHECK_META_DATA
-put meta data into security hash
-
-
-
-
-
-
-struct ClientMiniExport
-
-
Public Members
-
-
-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 VariablesExportItem
-
-
Public Members
-
-
-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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/errors.html b/docs/teamspeak-sdk-3.5.2/doc/errors.html
deleted file mode 100644
index 1d5dfdb..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/errors.html
+++ /dev/null
@@ -1,1230 +0,0 @@
-
-
-
-
-
-
-
-
-
TeamSpeak Error Codes — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- TeamSpeak Error Codes
-
-
-
-
-
-
-
-
-
-TeamSpeak Error Codes
-
-
-enum Ts3ErrorType
-Values:
-
-
-enumerator ERROR_ok
-Indicates success.
-
-
-
-
-enumerator ERROR_undefined
-
-
-
-
-enumerator ERROR_not_implemented
-The attempted operation is not available in this context.
-
-
-
-
-enumerator ERROR_ok_no_update
-Indicates success, but no change occurred. Returned for example upon flushing (e.g. using ts3client_flushChannelUpdates ) when all indicated changes already matched the current state.
-
-
-
-
-enumerator ERROR_dont_notify
-
-
-
-
-enumerator ERROR_lib_time_limit_reached
-
-
-
-
-enumerator ERROR_out_of_memory
-Not enough system memory to perform operation.
-
-
-
-
-enumerator ERROR_canceled
-
-
-
-
-enumerator ERROR_ok_no_error_event
-Indicates success, but no error event was generated. This is used because of the return code management and reduce packets.
-
-
-
-
-enumerator ERROR_command_not_found
-
-
-
-
-enumerator ERROR_unable_to_bind_network_port
-Unspecified failure to create a listening port.
-
-
-
-
-enumerator ERROR_no_network_port_available
-Failure to initialize a listening port for FileTransfer.
-
-
-
-
-enumerator ERROR_port_already_in_use
-Specified port is already in use by a different application.
-
-
-
-
-enumerator ERROR_command_line_parse_failed
-Command line arguments are invalid.
-
-
-
-
-enumerator ERROR_command_line_exit_version
-Command line specified version. The process should exit with code 0 after printing the version.
-
-
-
-
-enumerator ERROR_command_line_exit_help
-Command line specified help. The process should exit with code 0 after priting the help.
-
-
-
-
-enumerator ERROR_client_invalid_id
-Client no longer connected.
-
-
-
-
-enumerator ERROR_client_nickname_inuse
-Client name is already in use. Client names must be unique.
-
-
-
-
-enumerator ERROR_client_protocol_limit_reached
-Too many clients on the server.
-
-
-
-
-enumerator ERROR_client_invalid_type
-Function called for normal clients that is only available for query clients or vice versa.
-
-
-
-
-enumerator ERROR_client_already_subscribed
-Attempting to subscribe to a channel already subscribed to.
-
-
-
-
-enumerator ERROR_client_not_logged_in
-
-
-
-
-enumerator ERROR_client_could_not_validate_identity
-Identity not valid or insufficient security level.
-
-
-
-
-enumerator ERROR_client_invalid_password
-
-
-
-
-enumerator ERROR_client_version_outdated
-Server requires newer client version as determined by the min_client_version properties.
-
-
-
-
-enumerator ERROR_client_is_flooding
-Triggered flood protection. Further information is supplied in the extra message if applicable.
-
-
-
-
-enumerator ERROR_client_hacked
-
-
-
-
-enumerator ERROR_client_cannot_verify_now
-
-
-
-
-enumerator ERROR_client_login_not_permitted
-
-
-
-
-enumerator ERROR_client_not_subscribed
-Action is only available on subscribed channels.
-
-
-
-
-enumerator ERROR_channel_invalid_id
-Channel does not exist on the server (any longer)
-
-
-
-
-enumerator ERROR_channel_protocol_limit_reached
-Too many channels on the server.
-
-
-
-
-enumerator ERROR_channel_already_in
-Attempting to move a client or channel to its current channel.
-
-
-
-
-enumerator ERROR_channel_name_inuse
-Channel name is already taken by another channel. Channel names must be unique.
-
-
-
-
-enumerator ERROR_channel_not_empty
-Attempting to delete a channel with clients or sub channels in it.
-
-
-
-
-enumerator ERROR_channel_can_not_delete_default
-Default channel cannot be deleted. Set a new default channel first (see ts3client_setChannelVariableAsInt or ts3server_setChannelVariableAsInt )
-
-
-
-
-enumerator ERROR_channel_default_require_permanent
-Attempt to set a non permanent channel as default channel. Set channel to permanent first (see ts3client_setChannelVariableAsInt or ts3server_setChannelVariableAsInt )
-
-
-
-
-enumerator ERROR_channel_invalid_flags
-Invalid combination of ChannelProperties , trying to remove CHANNEL_FLAG_DEFAULT or set a password on the default channel.
-
-
-
-
-enumerator ERROR_channel_parent_not_permanent
-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.
-
-
-
-
-enumerator ERROR_channel_maxclients_reached
-Channel is full as determined by its CHANNEL_MAXCLIENTS setting.
-
-
-
-
-enumerator ERROR_channel_maxfamily_reached
-Channel tree is full as determined by its CHANNEL_MAXFAMILYCLIENTS setting.
-
-
-
-
-enumerator ERROR_channel_invalid_order
-Invalid value for the CHANNEL_ORDER property. The specified channel must exist on the server and be on the same level.
-
-
-
-
-enumerator ERROR_channel_no_filetransfer_supported
-Invalid CHANNEL_FILEPATH set for the channel.
-
-
-
-
-enumerator ERROR_channel_invalid_password
-Channel has a password not matching the password supplied in the call.
-
-
-
-
-enumerator ERROR_channel_invalid_security_hash
-
-
-
-
-enumerator ERROR_server_invalid_id
-Chosen virtual server does not exist or is offline.
-
-
-
-
-enumerator ERROR_server_running
-attempting to delete a server that is running. Stop the server before deleting it.
-
-
-
-
-enumerator ERROR_server_is_shutting_down
-Client disconnected because the server is going offline.
-
-
-
-
-enumerator ERROR_server_maxclients_reached
-Given in the onConnectStatusChange event when the server has reached its maximum number of clients as defined by the VIRTUALSERVER_MAXCLIENTS property.
-
-
-
-
-enumerator ERROR_server_invalid_password
-Specified server password is wrong. Provide the correct password in the ts3client_startConnection / ts3client_startConnectionWithChannelID call.
-
-
-
-
-enumerator ERROR_server_is_virtual
-Server is in virtual status. The attempted action is not possible in this state. Start the virtual server first.
-
-
-
-
-enumerator ERROR_server_is_not_running
-Attempting to stop a server that is not online.
-
-
-
-
-enumerator ERROR_server_is_booting
-
-
-
-
-enumerator ERROR_server_status_invalid
-
-
-
-
-enumerator ERROR_server_version_outdated
-Attempt to connect to an outdated server version. The server needs to be updated.
-
-
-
-
-enumerator ERROR_server_duplicate_running
-This server is already running within the instance. Each virtual server may only exist once.
-
-
-
-
-enumerator ERROR_parameter_quote
-
-
-
-
-enumerator ERROR_parameter_invalid_count
-Attempt to flush changes without previously calling set*VariableAs* since the last flush.
-
-
-
-
-enumerator ERROR_parameter_invalid
-At least one of the supplied parameters did not meet the criteria for that parameter.
-
-
-
-
-enumerator ERROR_parameter_not_found
-Failure to supply all the necessary parameters.
-
-
-
-
-enumerator ERROR_parameter_convert
-Invalid type supplied for a parameter, such as passing a string (ie. “five”) that expects a number.
-
-
-
-
-enumerator ERROR_parameter_invalid_size
-Value out of allowed range. Such as strings are too long/short or numeric values outside allowed range.
-
-
-
-
-enumerator ERROR_parameter_missing
-Neglecting to specify a required parameter.
-
-
-
-
-enumerator ERROR_parameter_checksum
-Attempting to deploy a modified snapshot.
-
-
-
-
-enumerator ERROR_vs_critical
-Failure to create default channel.
-
-
-
-
-enumerator ERROR_connection_lost
-Generic error with the connection.
-
-
-
-
-enumerator ERROR_not_connected
-Attempting to call functions with a serverConnectionHandler that is not connected. You can use ts3client_getConnectionStatus to check whether the connection handler is connected to a server.
-
-
-
-
-enumerator ERROR_no_cached_connection_info
-Attempting to query connection information (bandwidth usage, ping, etc) without requesting them first using ts3client_requestConnectionInfo .
-
-
-
-
-enumerator ERROR_currently_not_possible
-Requested information is not currently available. You may have to call ts3client_requestClientVariables or ts3client_requestServerVariables .
-
-
-
-
-enumerator ERROR_failed_connection_initialisation
-No TeamSpeak server running on the specified IP address and port.
-
-
-
-
-enumerator ERROR_could_not_resolve_hostname
-Failure to resolve the specified hostname to an IP address.
-
-
-
-
-enumerator ERROR_invalid_server_connection_handler_id
-Attempting to perform actions on a non-existent server connection handler.
-
-
-
-
-enumerator ERROR_could_not_initialise_input_manager
-
-
-
-
-enumerator ERROR_clientlibrary_not_initialised
-Calling client library functions without successfully calling ts3client_initClientLib before.
-
-
-
-
-enumerator ERROR_serverlibrary_not_initialised
-Calling server library functions without successfully calling ts3server_initServerLib before.
-
-
-
-
-enumerator ERROR_whisper_too_many_targets
-Using a whisper list that contain more clients than the servers VIRTUALSERVER_MIN_CLIENTS_IN_CHANNEL_BEFORE_FORCED_SILENCE property.
-
-
-
-
-enumerator ERROR_whisper_no_targets
-The active whisper list is empty or no clients matched the whisper list (e.g. all channels in the list are empty)
-
-
-
-
-enumerator ERROR_connection_ip_protocol_missing
-Invalid or unsupported protocol (e.g. attempting an IPv6 connection on an IPv4 only machine)
-
-
-
-
-enumerator ERROR_handshake_failed
-
-
-
-
-enumerator ERROR_illegal_server_license
-
-
-
-
-enumerator ERROR_file_invalid_name
-Invalid UTF8 string or not a valid file.
-
-
-
-
-enumerator ERROR_file_invalid_permissions
-Permissions prevent opening the file.
-
-
-
-
-enumerator ERROR_file_already_exists
-Target path already exists as a directory.
-
-
-
-
-enumerator ERROR_file_not_found
-Attempt to access or move non existing file.
-
-
-
-
-enumerator ERROR_file_io_error
-Generic file input / output error.
-
-
-
-
-enumerator ERROR_file_invalid_transfer_id
-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.
-
-
-
-
-enumerator ERROR_file_invalid_path
-specified path contains invalid characters or does not start with “/”
-
-
-
-
-enumerator ERROR_file_no_files_available
-
-
-
-
-enumerator ERROR_file_overwrite_excludes_resume
-File overwrite and resume are mutually exclusive. Only one or neither can be 1.
-
-
-
-
-enumerator ERROR_file_invalid_size
-Attempt to write more bytes than claimed file size.
-
-
-
-
-enumerator ERROR_file_already_in_use
-File is currently not available, try again later.
-
-
-
-
-enumerator ERROR_file_could_not_open_connection
-Generic failure in file transfer connection / other party did not conform to file transfer protocol.
-
-
-
-
-enumerator ERROR_file_no_space_left_on_device
-Operating system reports hard disk is full. May be caused by quota limitations.
-
-
-
-
-enumerator ERROR_file_exceeds_file_system_maximum_size
-File is too large for the file system of the target device.
-
-
-
-
-enumerator ERROR_file_transfer_connection_timeout
-
-
-
-
-enumerator ERROR_file_connection_lost
-File input / output timeout or connection failure.
-
-
-
-
-enumerator ERROR_file_exceeds_supplied_size
-
-
-
-
-enumerator ERROR_file_transfer_complete
-Indicates successful completion.
-
-
-
-
-enumerator ERROR_file_transfer_canceled
-Transfer was cancelled through ts3client_haltTransfer .
-
-
-
-
-enumerator ERROR_file_transfer_interrupted
-Transfer failed because the server is shutting down, or network connection issues.
-
-
-
-
-enumerator ERROR_file_transfer_server_quota_exceeded
-Transfer terminated due to server bandwidth quota being exceeded. No client can transfer files.
-
-
-
-
-enumerator ERROR_file_transfer_client_quota_exceeded
-Attempt to transfer more data than allowed by this clients’ bandwidth quota. Other clients may continue to transfer files.
-
-
-
-
-enumerator ERROR_file_transfer_reset
-
-
-
-
-enumerator ERROR_file_transfer_limit_reached
-Too many file transfers are in progress. Try again later.
-
-
-
-
-enumerator ERROR_file_invalid_storage_class
-
-
-
-
-enumerator ERROR_file_invalid_dimension
-Avatar image exceeds maximum width or height accepted by the server.
-
-
-
-
-enumerator ERROR_file_transfer_channel_quota_exceeded
-Transfer failed because the channel quota was exceeded. Uploading to this channel is not possible, but other channels may be fine.
-
-
-
-
-enumerator ERROR_sound_preprocessor_disabled
-Cannot set or query pre processor variables with preprocessing disabled.
-
-
-
-
-enumerator ERROR_sound_internal_preprocessor
-
-
-
-
-enumerator ERROR_sound_internal_encoder
-
-
-
-
-enumerator ERROR_sound_internal_playback
-
-
-
-
-enumerator ERROR_sound_no_capture_device_available
-No audio capture devices are available.
-
-
-
-
-enumerator ERROR_sound_no_playback_device_available
-No audio playback devices are available.
-
-
-
-
-enumerator ERROR_sound_could_not_open_capture_device
-Error accessing audio device, or audio device does not support the requested mode.
-
-
-
-
-enumerator ERROR_sound_could_not_open_playback_device
-Error accessing audio device, or audio device does not support the requested mode.
-
-
-
-
-enumerator ERROR_sound_handler_has_device
-Attempt to open a sound device on a connection handler which already has an open device. Close the already open device first using ts3client_closeCaptureDevice or ts3client_closePlaybackDevice .
-
-
-
-
-enumerator ERROR_sound_invalid_capture_device
-Attempt to use a device for capture that does not support capturing audio.
-
-
-
-
-enumerator ERROR_sound_invalid_playback_device
-Attempt to use a device for playback that does not support playback of audio.
-
-
-
-
-enumerator ERROR_sound_invalid_wave
-Attempt to use a non WAV file in ts3client_playWaveFile or ts3client_playWaveFileHandle .
-
-
-
-
-enumerator ERROR_sound_unsupported_wave
-Unsupported wave file used in ts3client_playWaveFile or ts3client_playWaveFileHandle .
-
-
-
-
-enumerator ERROR_sound_open_wave
-Failure to open the specified sound file.
-
-
-
-
-enumerator ERROR_sound_internal_capture
-
-
-
-
-enumerator ERROR_sound_device_in_use
-Attempt to unregister a custom device that is being used. Close the device first using ts3client_closeCaptureDevice or ts3client_closePlaybackDevice .
-
-
-
-
-enumerator ERROR_sound_device_already_registerred
-Attempt to register a custom device with a device id that has already been used in a previous call. Device ids must be unique.
-
-
-
-
-enumerator ERROR_sound_unknown_device
-Attempt to open, close, unregister or use a device which is not known. Custom devices must be registered before being used (see ts3client_registerCustomDevice )
-
-
-
-
-enumerator ERROR_sound_unsupported_frequency
-
-
-
-
-enumerator ERROR_sound_invalid_channel_count
-Invalid device audio channel count, must be > 0.
-
-
-
-
-enumerator ERROR_sound_read_wave
-Failure to read sound samples from an opened wave file. Is this a valid wave file?
-
-
-
-
-enumerator ERROR_sound_need_more_data
-
-
-
-
-enumerator ERROR_sound_device_busy
-
-
-
-
-enumerator ERROR_sound_no_data
-Indicates there is currently no data for playback, e.g. nobody is speaking right now.
-
-
-
-
-enumerator ERROR_sound_channel_mask_mismatch
-Opening a device with an unsupported channel count.
-
-
-
-
-enumerator ERROR_permissions_client_insufficient
-Not enough permissions to perform the requested activity.
-
-
-
-
-enumerator ERROR_permissions
-Permissions to use sound device not granted by operating system, e.g. Windows denied microphone access.
-
-
-
-
-enumerator ERROR_accounting_virtualserver_limit_reached
-Attempt to use more virtual servers than allowed by the license.
-
-
-
-
-enumerator ERROR_accounting_slot_limit_reached
-Attempt to set more slots than allowed by the license.
-
-
-
-
-enumerator ERROR_accounting_license_file_not_found
-
-
-
-
-enumerator ERROR_accounting_license_date_not_ok
-License expired or not valid yet.
-
-
-
-
-enumerator ERROR_accounting_unable_to_connect_to_server
-Failure to communicate with accounting backend.
-
-
-
-
-enumerator ERROR_accounting_unknown_error
-Failure to write update license file.
-
-
-
-
-enumerator ERROR_accounting_server_error
-
-
-
-
-enumerator ERROR_accounting_instance_limit_reached
-More than one process of the server is running.
-
-
-
-
-enumerator ERROR_accounting_instance_check_error
-Shared memory access failure.
-
-
-
-
-enumerator ERROR_accounting_license_file_invalid
-License is not a TeamSpeak license.
-
-
-
-
-enumerator ERROR_accounting_running_elsewhere
-A copy of this server is already running in another instance. Each server may only exist once.
-
-
-
-
-enumerator ERROR_accounting_instance_duplicated
-A copy of this server is running already in this process. Each server may only exist once.
-
-
-
-
-enumerator ERROR_accounting_already_started
-Attempt to start a server that is already running.
-
-
-
-
-enumerator ERROR_accounting_not_started
-
-
-
-
-enumerator ERROR_accounting_to_many_starts
-Starting instance / virtual servers too often in too short a time period.
-
-
-
-
-enumerator ERROR_already_registered
-
-
-
-
-enumerator ERROR_stream_session_limit_reached
-
-
-
-
-enumerator ERROR_stream_session_not_found
-
-
-
-
-enumerator ERROR_stream_unknown
-
-
-
-
-enumerator ERROR_stream_not_participating
-
-
-
-
-enumerator ERROR_not_streamer
-
-
-
-
-enumerator ERROR_already_joined
-
-
-
-
-enumerator ERROR_join_request_not_found
-
-
-
-
-enumerator ERROR_sfu_failed_to_start
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/genindex.html b/docs/teamspeak-sdk-3.5.2/doc/genindex.html
deleted file mode 100644
index 7782501..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/genindex.html
+++ /dev/null
@@ -1,1944 +0,0 @@
-
-
-
-
-
-
-
-
Index — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-
Index
-
-
-
C
- |
F
- |
G
- |
H
- |
I
- |
L
- |
M
- |
R
- |
S
- |
T
- |
V
-
-
-
C
-
-
-
F
-
-
-
G
-
-
-
H
-
-
-
I
-
-
-
L
-
-
-
M
-
-
-
R
-
-
-
S
-
-
-
T
-
-
-
V
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/index.html b/docs/teamspeak-sdk-3.5.2/doc/index.html
deleted file mode 100644
index 618cff4..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/index.html
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
-
-
-
-
-
Welcome to TeamSpeak SDK’s documentation! — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Welcome to TeamSpeak SDK’s documentation!
-
-
-
-
-
-
-
-
-
-Welcome to TeamSpeak SDK’s documentation!
-This is the documentation for the TeamSpeak SDK .
-TeamSpeak 3 is a scalable Voice-Over-IP application consisting of client
-and server software. TeamSpeak is generally regarded as the leading VoIP
-system offering a superior voice quality, scalability and usability.
-The cross-platform Software Development Kit allows the easy integration
-of the TeamSpeak client and server technology into your own applications.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/properties.html b/docs/teamspeak-sdk-3.5.2/doc/properties.html
deleted file mode 100644
index 9587256..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/properties.html
+++ /dev/null
@@ -1,1113 +0,0 @@
-
-
-
-
-
-
-
-
-
Property Enums — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Property Enums
-
-Common
-
-
-enum ConnectionProperties
-Various connection properties. These are all read only, and except for your own client must be requested using ts3client_requestConnectionInfo
-Values:
-
-
-enumerator CONNECTION_PING
-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.
-
-
-
-
-enumerator CONNECTION_PING_DEVIATION
-Double. Standard deviation for the round trip latency in CONNECTION_PING .
-
-
-
-
-enumerator CONNECTION_CONNECTED_TIME
-UInt64. Seconds the client has been connected.
-
-
-
-
-enumerator CONNECTION_IDLE_TIME
-UInt64. Time in seconds since the last activity (voice transmission, switching channels, changing mic / speaker mute status) of the client.
-
-
-
-
-enumerator CONNECTION_CLIENT_IP
-String. IP of this client (as seen from the server side)
-
-
-
-
-enumerator CONNECTION_CLIENT_PORT
-UInt64. Client side port of this client (as seen from the server side)
-
-
-
-
-enumerator CONNECTION_SERVER_IP
-String. The IP or hostname used to connect to the server. Only available on yourself.
-
-
-
-
-enumerator CONNECTION_SERVER_PORT
-UInt64. The server port connected to. Only available on yourself.
-
-
-
-
-enumerator CONNECTION_PACKETS_SENT_SPEECH
-UInt64. The number of voice packets transmitted by the client.
-
-
-
-
-enumerator CONNECTION_PACKETS_SENT_KEEPALIVE
-UInt64. The number of keep alive packets transmitted by the client.
-
-
-
-
-enumerator CONNECTION_PACKETS_SENT_CONTROL
-UInt64. The number of command & control packets transmitted by the client.
-
-
-
-
-enumerator CONNECTION_PACKETS_SENT_TOTAL
-UInt64. Total number of packets transmitted by the client. Equal to the sum of CONNECTION_PACKETS_SENT_SPEECH , CONNECTION_PACKETS_SENT_KEEPALIVE and CONNECTION_PACKETS_SENT_CONTROL
-
-
-
-
-enumerator CONNECTION_BYTES_SENT_SPEECH
-UInt64. Outgoing traffic used for voice data by the client.
-
-
-
-
-enumerator CONNECTION_BYTES_SENT_KEEPALIVE
-UInt64. Outgoing traffic used for keeping the connection alive by the client.
-
-
-
-
-enumerator CONNECTION_BYTES_SENT_CONTROL
-UInt64. Outgoing traffic used for command & control data by the client.
-
-
-
-
-enumerator CONNECTION_BYTES_SENT_TOTAL
-UInt64. Total outgoing traffic to the server by this client. Equal to the sum of CONNECTION_BYTES_SENT_SPEECH , CONNECTION_BYTES_SENT_KEEPALIVE and CONNECTION_BYTES_SENT_CONTROL
-
-
-
-
-enumerator CONNECTION_PACKETS_RECEIVED_SPEECH
-UInt64. Number of voice packets received by the client.
-
-
-
-
-enumerator CONNECTION_PACKETS_RECEIVED_KEEPALIVE
-UInt64. Number of keep alive packets received by the client.
-
-
-
-
-enumerator CONNECTION_PACKETS_RECEIVED_CONTROL
-UInt64. Number of command & control packets received by the client.
-
-
-
-
-enumerator CONNECTION_PACKETS_RECEIVED_TOTAL
-UInt64. Total number of packets received by the client. Equal to the sum of CONNECTION_PACKETS_RECEIVED_SPEECH , CONNECTION_PACKETS_RECEIVED_KEEPALIVE and CONNECTION_PACKETS_RECEIVED_CONTROL
-
-
-
-
-enumerator CONNECTION_BYTES_RECEIVED_SPEECH
-UInt64. Incoming traffic used by the client for voice data.
-
-
-
-
-enumerator CONNECTION_BYTES_RECEIVED_KEEPALIVE
-UInt64. Incoming traffic used by the client to keep the connection alive.
-
-
-
-
-enumerator CONNECTION_BYTES_RECEIVED_CONTROL
-UInt64. Incoming traffic used by the client for command & control data.
-
-
-
-
-enumerator CONNECTION_BYTES_RECEIVED_TOTAL
-UInt64. Total incoming traffic used by the client. Equal to the sum of CONNECTION_BYTES_RECEIVED_SPEECH , CONNECTION_BYTES_RECEIVED_KEEPALIVE and CONNECTION_BYTES_RECEIVED_CONTROL
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator CONNECTION_PACKETLOSS_TOTAL
-Double. Cumulative chance in percentage points with which a packet round trip failed because a packet was lost
-
-
-
-
-enumerator CONNECTION_SERVER2CLIENT_PACKETLOSS_SPEECH
-Double. Probability with which a voice packet sent by the server was not received by the client.
-
-
-
-
-enumerator CONNECTION_SERVER2CLIENT_PACKETLOSS_KEEPALIVE
-Double. Probability with which a keepalive packet sent by the server was not received by the client.
-
-
-
-
-enumerator CONNECTION_SERVER2CLIENT_PACKETLOSS_CONTROL
-Double. Probability with which a control packet sent by the server was not received by the client.
-
-
-
-
-enumerator CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL
-Double. Probability with which a packet sent by the server was not received by the client.
-
-
-
-
-enumerator CONNECTION_CLIENT2SERVER_PACKETLOSS_SPEECH
-Double. Probability with which a speech packet sent by the client was not received by the server.
-
-
-
-
-enumerator CONNECTION_CLIENT2SERVER_PACKETLOSS_KEEPALIVE
-Double. Probability with which a keepalive packet sent by the client was not received by the server.
-
-
-
-
-enumerator CONNECTION_CLIENT2SERVER_PACKETLOSS_CONTROL
-Double. Probability with which a control packet sent by the client was not received by the server.
-
-
-
-
-enumerator CONNECTION_CLIENT2SERVER_PACKETLOSS_TOTAL
-Double. Probability with which a packet sent by the client was not received by the server.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_SENT_LAST_SECOND_SPEECH
-UInt64. Number of bytes sent for speech data in the last second.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_SENT_LAST_SECOND_KEEPALIVE
-UInt64. Number of bytes sent for keepalive data in the last second.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_SENT_LAST_SECOND_CONTROL
-UInt64. Number of bytes sent for control data in the last second.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL
-UInt64. Number of bytes sent in the last second.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_SPEECH
-UInt64. Bytes per second sent for speech data, averaged over the last minute.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_KEEPALIVE
-UInt64. Bytes per second sent for keepalive data, averaged over the last minute.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_CONTROL
-UInt64. Bytes per second sent for control data, averaged over the last minute.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL
-UInt64. Bytes per second sent, averaged over the last minute.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_SPEECH
-UInt64. Number of bytes received for speech data in the last second.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_KEEPALIVE
-UInt64. Number of bytes received for keepalive data in the last second.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_CONTROL
-UInt64. Number of bytes received for control data in the last second.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL
-UInt64. Number of bytes received in the last second.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_SPEECH
-UInt64. Bytes per second received for speech data, averaged over the last minute.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_KEEPALIVE
-UInt64. Bytes per second received for keepalive data, averaged over the last minute.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_CONTROL
-UInt64. Bytes per second received for control data, averaged over the last minute.
-
-
-
-
-enumerator CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL
-UInt64. Bytes per second received, averaged over the last minute.
-
-
-
-
-enumerator CONNECTION_DUMMY_0
-
-
-
-
-enumerator CONNECTION_DUMMY_1
-
-
-
-
-enumerator CONNECTION_DUMMY_2
-
-
-
-
-enumerator CONNECTION_DUMMY_3
-
-
-
-
-enumerator CONNECTION_DUMMY_4
-
-
-
-
-enumerator CONNECTION_DUMMY_5
-
-
-
-
-enumerator CONNECTION_DUMMY_6
-
-
-
-
-enumerator CONNECTION_DUMMY_7
-
-
-
-
-enumerator CONNECTION_DUMMY_8
-
-
-
-
-enumerator CONNECTION_DUMMY_9
-
-
-
-
-enumerator CONNECTION_FILETRANSFER_BANDWIDTH_SENT
-UInt64. Current file transfer upstream activity in bytes per second. Only available on request (ts3client_requestServerConnectionInfo ).
-
-
-
-
-enumerator CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED
-UInt64. Current file transfer downstream activity in bytes per second. Only available on request (ts3client_requestServerConnectionInfo ).
-
-
-
-
-enumerator CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL
-UInt64. Total downstream traffic, in bytes, used for file transfer since the server was started. Only available on request (ts3client_requestServerConnectionInfo ).
-
-
-
-
-enumerator CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL
-UInt64. Total upstream traffic, in bytes, used for file transfer since the server was started. Only available on request (ts3client_requestServerConnectionInfo ).
-
-
-
-
-enumerator CONNECTION_ENDMARKER
-
-
-
-
-
-
-Server
-
-
-enum VirtualServerProperties
-Values:
-
-
-enumerator VIRTUALSERVER_UNIQUE_IDENTIFIER
-String. Read only. Unique identifier for a virtual server, does not change on server restart. Available if ts3client_getConnectionStatus is >= STATUS_CONNECTED .
-
-
-
-
-enumerator VIRTUALSERVER_NAME
-String. Read/Write. The virtual server display name. Available if ts3client_getConnectionStatus is >= STATUS_CONNECTED .
-
-
-
-
-enumerator VIRTUALSERVER_WELCOMEMESSAGE
-String. Read/Write. The welcome message displayed to clients on connect. Available if ts3client_getConnectionStatus is >= STATUS_CONNECTED . Not updated automatically when changed, updates need to be requested (ts3client_requestServerVariables ).
-
-
-
-
-enumerator VIRTUALSERVER_PLATFORM
-String. Read only. The operating system the server is running on. Available if ts3client_getConnectionStatus is >= STATUS_CONNECTED .
-
-
-
-
-enumerator VIRTUALSERVER_VERSION
-String. Read only. The server software version string. Available if ts3client_getConnectionStatus is >= STATUS_CONNECTED .
-
-
-
-
-enumerator VIRTUALSERVER_MAXCLIENTS
-UInt64. Read/Write. The maximum number of clients that can be connected simultaneously. Only available on request (ts3client_requestServerVariables ).
-
-
-
-
-enumerator 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 ts3client_getConnectionStatus is >= STATUS_CONNECTED .
-
-
-
-
-enumerator VIRTUALSERVER_CLIENTS_ONLINE
-UInt64. Read only. The current number of clients connected to the server, including query connections. Only available on request (ts3client_requestServerVariables ).
-
-
-
-
-enumerator VIRTUALSERVER_CHANNELS_ONLINE
-UInt64. Read only. The current number of channels on the server. Only available on request (ts3client_requestServerVariables ).
-
-
-
-
-enumerator VIRTUALSERVER_CREATED
-Integer. Read only. The time this virtual server was created as unix timestamp. Available if ts3client_getConnectionStatus is >= STATUS_CONNECTED .
-
-
-
-
-enumerator VIRTUALSERVER_UPTIME
-UInt64. Read only. Number of seconds that have passed since the virtual server was started. Only available on request (ts3client_requestServerVariables ).
-
-
-
-
-enumerator 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 CodecEncryptionMode enum. Available if ts3client_getConnectionStatus is >= STATUS_CONNECTED .
-
-
-
-
-enumerator 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 CLIENT_ENCRYPTION_CIPHERS of the connecting client. Clients will fail to connect if no match is found. Always available.
-
-
-
-
-enumerator VIRTUALSERVER_ADDRESS
-Any resolvable address for the specific virtual server.
-
-
-
-
-enumerator VIRTUALSERVER_VERSION_SIGN
-String. Read only. Signature of Platform and Version.
-
-
-
-
-enumerator VIRTUALSERVER_ENDMARKER
-
-
-
-
-enumerator VIRTUALSERVER_FILEBASE
-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 ts3server_enableFileManager
-
-
-
-
-enumerator VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH
-UInt64. Read/Write. Maximum traffic in bytes the server can use for file transfer downloads. Only available on request (ts3client_requestServerVariables ).
-
-
-
-
-enumerator VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH
-UInt64. Read/Write. Maximum traffic in bytes the server can use for file transfer uploads. Only available on request (=> requestServerVariables)
-
-
-
-
-enumerator VIRTUALSERVER_LOG_FILETRANSFER
-Integer. Read/Write. Boolean (1/0) indicating whether to include file transfer activities (uploading or downloading of files) in the server log. Always available.
-
-
-
-
-
-
-Channel
-
-
-enum ChannelProperties
-Values:
-
-
-enumerator CHANNEL_NAME
-String. Read/Write. Name of the channel. Always available.
-
-
-
-
-enumerator CHANNEL_TOPIC
-String. Read/Write. Short single line text describing what the channel is about. Always available.
-
-
-
-
-enumerator CHANNEL_DESCRIPTION
-String. Read/Write. Arbitrary text (up to 8k bytes) with information about the channel. Must be requested (ts3client_requestChannelDescription )
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator CHANNEL_CODEC
-Integer. Read/Write. The codec this channel is using. One of the values from the CodecType enum. Always available.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator CHANNEL_MAXCLIENTS
-Integer. Read/Write. The number of clients that can be in the channel simultaneously. Always available.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator 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 CHANNEL_FLAG_SEMI_PERMANENT . Always available.
-
-
-
-
-enumerator 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 CHANNEL_FLAG_PERMANENT . Always available.
-
-
-
-
-enumerator 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 CHANNEL_FLAG_PERMANENT set. Always available.
-
-
-
-
-enumerator CHANNEL_FLAG_PASSWORD
-Integer. Read/Write. Boolean (1/0) indicating whether this channel is password protected. When removing or setting CHANNEL_PASSWORD you also need to adjust this flag.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator 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 VIRTUALSERVER_CODEC_ENCRYPTION_MODE is set to CODEC_ENCRYPTION_PER_CHANNEL . Always available.
-
-
-
-
-enumerator CHANNEL_SECURITY_SALT
-String. Read/Write. SDK Only, not used by TeamSpeak. This channels security hash. When a client joins their 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 CLIENT_META_DATA . See SDK Documentation about this feature for further details. Always available.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator CHANNEL_UNIQUE_IDENTIFIER
-String. Read only. An identifier that uniquely identifies a channel. Available in Server >= 3.10.0
-
-
-
-
-enumerator CHANNEL_ENDMARKER
-
-
-
-
-
-
-Client
-
-
-enum ClientProperties
-Values:
-
-
-enumerator CLIENT_UNIQUE_IDENTIFIER
-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.
-
-
-
-
-enumerator CLIENT_NICKNAME
-String. Read/Write. Display name of the client. Available for visible clients.
-
-
-
-
-enumerator CLIENT_VERSION
-String. Read only. Version String of the client used. For clients other than ourself this needs to be requested (ts3client_requestClientVariables ).
-
-
-
-
-enumerator CLIENT_PLATFORM
-String. Read only. Operating system used by the client. For other clients other than ourself this needs to be requested (ts3client_requestClientVariables ).
-
-
-
-
-enumerator CLIENT_FLAG_TALKING
-Integer. Read only. Whether the client is talking. Available on clients that are either whispering to us, or in our channel.
-
-
-
-
-enumerator CLIENT_INPUT_MUTED
-Integer. Read/Write. Microphone mute status. Available for visible clients. One of the values from the MuteInputStatus enum.
-
-
-
-
-enumerator CLIENT_OUTPUT_MUTED
-Integer. Read/Write. Speaker mute status. Speaker mute implies microphone mute. Available for visible clients. One of the values from the MuteOutputStatus enum.
-
-
-
-
-enumerator CLIENT_OUTPUTONLY_MUTED
-Integer. Read/Write. Speaker mute status. Microphone may be active. Available for visible clients. One of the values from the MuteOutputStatus enum.
-
-
-
-
-enumerator CLIENT_INPUT_HARDWARE
-Integer. Read only. Indicates whether a capture device is open. Available for visible clients. One of the values from the HardwareInputStatus enum.
-
-
-
-
-enumerator CLIENT_OUTPUT_HARDWARE
-Integer. Read only. Indicates whether a playback device is open. Available for visible clients. One of the values from the HardwareOutputStatus enum.
-
-
-
-
-enumerator 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 InputDeactivationStatus enum.
-
-
-
-
-enumerator CLIENT_IDLE_TIME
-UInt64. Read only. Seconds since last activity. Available only for own client.
-
-
-
-
-enumerator CLIENT_DEFAULT_CHANNEL
-String. Read only. User specified channel they joined when connecting to the server. Available only for own client.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator CLIENT_SERVER_PASSWORD
-String. Read only. User specified server password. Available only for own client.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator CLIENT_IS_MUTED
-Integer. Read only. Not available server side. Indicates whether we have muted the client using ts3client_requestMuteClients . Available for visible clients other than ourselves.
-
-
-
-
-enumerator CLIENT_IS_RECORDING
-Integer. Read only. Indicates whether the client is recording incoming audio. Available for visible clients.
-
-
-
-
-enumerator CLIENT_VOLUME_MODIFICATOR
-Integer. Read only. Volume adjustment for this client as set by ts3client_setClientVolumeModifier . Available for visible clients.
-
-
-
-
-enumerator CLIENT_VERSION_SIGN
-String. Read only. TeamSpeak internal signature.
-
-
-
-
-enumerator 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.
-
-
-
-
-enumerator CLIENT_ENCRYPTION_CIPHERS
-String. Read only. SDK only. List of available ciphers this client can use.
-
-
-
-
-enumerator CLIENT_IS_STREAMING
-bool. Read only, Is currently streaming.
-
-
-
-
-enumerator CLIENT_ENDMARKER
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/search.html b/docs/teamspeak-sdk-3.5.2/doc/search.html
deleted file mode 100644
index b67e374..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/search.html
+++ /dev/null
@@ -1,166 +0,0 @@
-
-
-
-
-
-
-
-
Search — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-
-
- Please activate JavaScript to enable the search functionality.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/searchindex.js b/docs/teamspeak-sdk-3.5.2/doc/searchindex.js
deleted file mode 100644
index e206776..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/searchindex.js
+++ /dev/null
@@ -1 +0,0 @@
-Search.setIndex({"alltitles": {"3D Sound": [[0, null]], "A callback example in C:": [[11, "a-callback-example-in-c"], [47, "a-callback-example-in-c"]], "Accessing the voice buffer": [[3, null]], "Activating the capture device": [[2, null]], "Active transfer information": [[26, "active-transfer-information"]], "Actually create the channel": [[48, "actually-create-the-channel"], [49, "actually-create-the-channel"]], "Add to allow list": [[40, "add-to-allow-list"]], "Adjust general settings": [[0, "adjust-general-settings"]], "Adjust individual clients": [[35, "adjust-individual-clients"]], "Adjusting the volume": [[25, "adjusting-the-volume"]], "Advanced": [[39, "advanced"]], "Advanced channel creation": [[49, null]], "Advanced virtual server creation": [[46, null]], "After effects and mixing": [[3, "after-effects-and-mixing"]], "After effects but before mixing": [[3, "after-effects-but-before-mixing"]], "After preprocessing": [[3, "after-preprocessing"]], "Audio codecs": [[5, null]], "Available callbacks": [[68, "available-callbacks"]], "Available config values": [[36, "available-config-values"]], "Available values": [[35, "available-values"]], "Bandwidth and Traffic": [[61, null]], "Before effects or mixing": [[3, "before-effects-or-mixing"]], "Before preprocessing": [[3, "before-preprocessing"]], "Callback": [[12, "callback"], [13, "callback"], [16, "callback"]], "Callbacks": [[0, "callbacks"], [18, "callbacks"], [20, "callbacks"], [26, "callbacks"], [28, "callbacks"], [59, "callbacks"]], "Calling Client Lib functions": [[31, "calling-client-lib-functions"]], "Calling Server lib functions": [[65, "calling-server-lib-functions"]], "Cancel a transfer": [[26, "cancel-a-transfer"]], "Capture": [[3, "capture"], [8, "capture"]], "Change server information": [[64, "change-server-information"]], "Change sorting": [[16, "change-sorting"]], "Changelog": [[44, "changelog"]], "Channel": [[37, "channel"], [45, "channel"]], "Channel Management": [[19, null]], "Channel information": [[28, null], [62, null]], "Channel password": [[67, "channel-password"]], "Channel sorting": [[17, null]], "Channel subscriptions": [[18, null]], "Channel voice data encryption": [[38, null]], "Check mute status": [[32, "check-mute-status"]], "Check subscription status": [[18, "check-subscription-status"]], "Client": [[42, "client"], [45, "client"]], "Client Audio": [[1, null]], "Client information": [[29, null], [55, "client-information"], [63, null]], "Close handle": [[39, "close-handle"]], "Closing devices": [[4, null]], "Codecs": [[42, "codecs"]], "Common": [[42, "common"], [45, "common"]], "Configure the maximum number of clients on a server": [[58, "configure-the-maximum-number-of-clients-on-a-server"]], "Connecting to a server": [[22, "connecting-to-a-server"]], "Connection change notification": [[22, "connection-change-notification"]], "Control who can whisper you": [[40, "control-who-can-whisper-you"]], "Create and stop virtual servers": [[71, null]], "Create server structure pointer": [[46, "create-server-structure-pointer"]], "Create the virtual server and channels": [[46, "create-the-virtual-server-and-channels"]], "Creating a channel salt": [[70, "creating-a-channel-salt"]], "Creating a client hash": [[70, "creating-a-client-hash"]], "Creating a connection handler": [[22, "creating-a-connection-handler"]], "Creating a new channel": [[12, null], [48, null]], "Creating an identity": [[22, "creating-an-identity"]], "Current devices": [[7, "current-devices"]], "Current modes": [[7, "current-modes"]], "Custom encryption": [[24, null], [57, null]], "Custom passwords": [[34, null], [67, null]], "Decryption": [[24, "decryption"], [57, "decryption"]], "Delay channel deletion": [[13, "delay-channel-deletion"]], "Deleting a channel": [[13, null]], "Deleting channels": [[50, null]], "Disabling protocol commands": [[56, null]], "Disconnecting": [[22, "disconnecting"]], "Download a file": [[26, "download-a-file"]], "Editing channel information": [[28, "editing-channel-information"]], "Enable file transfer": [[59, "enable-file-transfer"]], "Encoder options": [[23, null]], "Encryption": [[57, "encryption"]], "Enryption": [[24, "enryption"]], "Error callback": [[11, "error-callback"]], "Error handling": [[11, "error-handling"], [47, "error-handling"]], "Example": [[3, "example"], [6, "example"], [9, "example"], [9, "id1"], [12, "example"], [18, "example"], [22, "example"], [24, "example"], [25, "example"], [30, "example"], [31, "example"], [32, "example"], [32, "id1"], [35, "example"], [35, "id1"], [37, "example"], [46, "example"], [47, "example"], [48, "example"], [51, "example"], [55, "example"], [55, "id1"], [56, "example"], [57, "example"], [63, "example"], [64, "example"], [64, "id1"], [66, "example"], [68, "example"]], "Examples": [[9, "examples"], [11, "examples"], [11, "id1"], [14, "examples"], [15, "examples"], [23, "examples"], [28, "examples"], [29, "examples"], [29, "id1"], [47, "examples"], [55, "examples"], [62, "examples"], [62, "id1"], [63, "examples"], [66, "examples"]], "FAQ": [[25, null], [58, null]], "File Transfer": [[42, "file-transfer"]], "FileTransfer permission callbacks": [[68, "filetransfer-permission-callbacks"]], "Filetransfer": [[26, null], [59, null]], "From channel": [[20, "from-channel"]], "From server": [[20, "from-server"]], "Get default devices": [[9, "get-default-devices"]], "Getting started": [[11, null], [47, null]], "I get \u201cAccounting | | sid=1 is running initializing shutdown\u201d in the log": [[58, "i-get-accounting-sid-1-is-running-initializing-shutdown-in-the-log"]], "Implementing Push-To-Talk": [[25, "implementing-push-to-talk"]], "Implementing a name/password authentication": [[58, "implementing-a-name-password-authentication"]], "Initialize the channel tree": [[46, "initialize-the-channel-tree"]], "Initializing": [[11, "initializing"], [47, "initializing"]], "Initializing devices": [[8, null]], "Initiate transfers": [[26, "initiate-transfers"]], "Input volume": [[25, "input-volume"]], "Introduction": [[31, null], [65, null]], "Joining a channel": [[14, null]], "Kicking Clients": [[55, "kicking-clients"]], "Kicking clients": [[20, null]], "List available clients, channels, servers": [[66, null]], "List available devices": [[9, "list-available-devices"]], "List available modes": [[9, "list-available-modes"]], "List available modes and devices": [[9, null]], "List channels": [[15, null], [51, null], [66, "list-channels"]], "List clients": [[21, null], [54, null], [55, "list-clients"], [66, "list-clients"]], "List connection handlers": [[22, "list-connection-handlers"]], "List servers": [[66, "list-servers"]], "Local Test mode": [[10, null]], "Logging": [[33, null]], "Managing channels": [[53, null]], "Managing clients": [[55, null]], "Managing server connections": [[22, null]], "Moving a channel": [[16, null]], "Moving channels": [[52, null]], "Moving clients": [[55, "moving-clients"]], "Mute clients": [[32, "mute-clients"]], "Muting other clients": [[32, null]], "Obtain a channel creation structure": [[49, "obtain-a-channel-creation-structure"]], "Obtain handle": [[39, "obtain-handle"]], "Other client position": [[0, "other-client-position"]], "Output volume": [[25, "output-volume"]], "Overview of header files": [[31, "overview-of-header-files"]], "Own client": [[29, "own-client"]], "Own client position": [[0, "own-client-position"]], "Password Encryption": [[67, "password-encryption"]], "Password encryption": [[34, "password-encryption"]], "Password validation": [[67, "password-validation"]], "Pause / resume": [[39, "pause-resume"]], "Permission checks": [[68, null]], "Permissions": [[59, "permissions"]], "Playback": [[3, "playback"], [8, "playback"]], "Playback options": [[35, null]], "Playing wave files": [[39, null]], "Preprocessor options": [[36, null]], "Private": [[37, "private"]], "Property Enums": [[45, null]], "Providing audio data": [[6, "providing-audio-data"]], "Query Keypair for future reuse": [[71, "query-keypair-for-future-reuse"]], "Query and set optional server properties": [[46, "query-and-set-optional-server-properties"]], "Query channel information": [[28, "query-channel-information"], [62, "query-channel-information"]], "Query client information": [[29, "query-client-information"], [55, "query-client-information"], [63, "query-client-information"]], "Query current mode and device": [[7, null]], "Query default modes": [[9, "query-default-modes"]], "Query information": [[30, "query-information"]], "Query server information": [[64, "query-server-information"]], "Query speed limits": [[26, "query-speed-limits"]], "Query values": [[35, "query-values"], [61, "query-values"]], "Query variables": [[46, "query-variables"]], "Querying the library version": [[11, "querying-the-library-version"], [47, "querying-the-library-version"]], "Querying values": [[36, "querying-values"]], "Receiving": [[37, "receiving"]], "Register custom devices": [[6, "register-custom-devices"]], "Remove from allow list": [[40, "remove-from-allow-list"]], "Removing a connection handler": [[22, "removing-a-connection-handler"]], "Removing custom devices": [[6, "removing-custom-devices"]], "Request creation": [[12, "request-creation"]], "Request file and directory information": [[26, "request-file-and-directory-information"]], "Request updated information": [[30, "request-updated-information"]], "Requesting updated information": [[29, "requesting-updated-information"]], "Retrieve and store information": [[27, null], [60, null]], "Retrieve playback data": [[6, "retrieve-playback-data"]], "Return code": [[31, "return-code"]], "Rewriting the path on the server": [[59, "rewriting-the-path-on-the-server"]], "Security salts and hashes": [[70, null]], "Sending": [[37, "sending"]], "Server": [[37, "server"], [42, "server"], [45, "server"]], "Server information": [[30, null], [64, null]], "Server password": [[67, "server-password"]], "Set Logging level": [[33, "set-logging-level"]], "Set and query optional channel properties": [[46, "set-and-query-optional-channel-properties"]], "Set essential channel properties": [[46, "set-essential-channel-properties"]], "Set essential server properties": [[46, "set-essential-server-properties"]], "Set speed limits": [[26, "set-speed-limits"]], "Set variables": [[46, "set-variables"]], "Setting additional channel properties": [[49, "setting-additional-channel-properties"]], "Setting basic channel properties": [[49, "setting-basic-channel-properties"]], "Setting channel information": [[62, "setting-channel-information"]], "Setting client information": [[29, "setting-client-information"], [55, "setting-client-information"], [63, "setting-client-information"]], "Setting values": [[35, "setting-values"], [36, "setting-values"]], "Shutting down": [[11, "shutting-down"], [47, "shutting-down"]], "Simple": [[39, "simple"]], "Speed limits": [[26, "speed-limits"]], "Standard Permission callbacks": [[68, "standard-permission-callbacks"]], "Stopping a virtual server": [[71, "stopping-a-virtual-server"]], "Structures & Enumerations": [[42, null]], "Subscribe to channels": [[18, "subscribe-to-channels"]], "System requirements": [[31, "system-requirements"], [65, "system-requirements"]], "Talk across channels": [[25, "talk-across-channels"]], "TeamSpeak Client Functions": [[41, null]], "TeamSpeak Error Codes": [[43, null]], "TeamSpeak Server Functions": [[73, null]], "Text chat": [[37, null]], "Text messaging": [[42, "text-messaging"]], "The callback mechanism": [[11, "the-callback-mechanism"], [47, "the-callback-mechanism"]], "Unable to start multiple virtual servers / processes": [[58, "unable-to-start-multiple-virtual-servers-processes"]], "Unmute clients": [[32, "unmute-clients"]], "Unsubscribe from channels": [[18, "unsubscribe-from-channels"]], "Upload a local file": [[26, "upload-a-local-file"]], "Usage": [[65, "usage"]], "User-defined logging": [[33, "user-defined-logging"]], "Using custom devices": [[6, null]], "Voice": [[42, "voice"]], "Voice recording": [[3, "voice-recording"]], "Wave file position": [[0, "wave-file-position"]], "Welcome to TeamSpeak SDK\u2019s documentation!": [[44, null]], "Whisper": [[42, "whisper"]], "Whisper lists": [[40, null], [72, null]]}, "docnames": ["client/3dsound", "client/audio", "client/audio-activate", "client/audio-buffer-access", "client/audio-close", "client/audio-codecs", "client/audio-custom-device", "client/audio-get-current", "client/audio-init", "client/audio-list-device-mode", "client/audio-localtest", "client/basic", "client/channel-create", "client/channel-delete", "client/channel-join", "client/channel-list", "client/channel-move", "client/channel-sort", "client/channel-subscribe", "client/channels", "client/client-kick", "client/client-list", "client/connections", "client/encoder", "client/encryption", "client/faq", "client/filetransfer", "client/info", "client/info-channel", "client/info-client", "client/info-server", "client/intro", "client/local-mute", "client/logging", "client/passwords", "client/playback-options", "client/preprocessor", "client/textmessages", "client/voice-encryption", "client/wave-files", "client/whisper", "client_api", "enumerations", "errors", "index", "properties", "server/advanced-create", "server/basic", "server/channel-create", "server/channel-create-adv", "server/channel-delete", "server/channel-list", "server/channel-move", "server/channels", "server/client-list", "server/clients", "server/disable-commands", "server/encryption", "server/faq", "server/filetransfer", "server/info", "server/info-bandwidth", "server/info-channel", "server/info-client", "server/info-server", "server/intro", "server/list-items", "server/passwords", "server/permissions", "server/permissions-filetransfer", "server/security-salt", "server/vserver-manage", "server/whisper", "server_api"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["client/3dsound.rst", "client/audio.rst", "client/audio-activate.rst", "client/audio-buffer-access.rst", "client/audio-close.rst", "client/audio-codecs.rst", "client/audio-custom-device.rst", "client/audio-get-current.rst", "client/audio-init.rst", "client/audio-list-device-mode.rst", "client/audio-localtest.rst", "client/basic.rst", "client/channel-create.rst", "client/channel-delete.rst", "client/channel-join.rst", "client/channel-list.rst", "client/channel-move.rst", "client/channel-sort.rst", "client/channel-subscribe.rst", "client/channels.rst", "client/client-kick.rst", "client/client-list.rst", "client/connections.rst", "client/encoder.rst", "client/encryption.rst", "client/faq.rst", "client/filetransfer.rst", "client/info.rst", "client/info-channel.rst", "client/info-client.rst", "client/info-server.rst", "client/intro.rst", "client/local-mute.rst", "client/logging.rst", "client/passwords.rst", "client/playback-options.rst", "client/preprocessor.rst", "client/textmessages.rst", "client/voice-encryption.rst", "client/wave-files.rst", "client/whisper.rst", "client_api.rst", "enumerations.rst", "errors.rst", "index.rst", "properties.rst", "server/advanced-create.rst", "server/basic.rst", "server/channel-create.rst", "server/channel-create-adv.rst", "server/channel-delete.rst", "server/channel-list.rst", "server/channel-move.rst", "server/channels.rst", "server/client-list.rst", "server/clients.rst", "server/disable-commands.rst", "server/encryption.rst", "server/faq.rst", "server/filetransfer.rst", "server/info.rst", "server/info-bandwidth.rst", "server/info-channel.rst", "server/info-client.rst", "server/info-server.rst", "server/intro.rst", "server/list-items.rst", "server/passwords.rst", "server/permissions.rst", "server/permissions-filetransfer.rst", "server/security-salt.rst", "server/vserver-manage.rst", "server/whisper.rst", "server_api.rst"], "indexentries": {"channelcreateflags (c enum)": [[73, "c.ChannelCreateFlags", false]], "channelcreateflags.channel_create_flag_none (c enumerator)": [[73, "c.ChannelCreateFlags.CHANNEL_CREATE_FLAG_NONE", false]], "channelcreateflags.channel_create_flag_passwords_encrypted (c enumerator)": [[73, "c.ChannelCreateFlags.CHANNEL_CREATE_FLAG_PASSWORDS_ENCRYPTED", false]], "channelproperties (c enum)": [[45, "c.ChannelProperties", false]], "channelproperties.channel_codec (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_CODEC", false]], "channelproperties.channel_codec_is_unencrypted (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_CODEC_IS_UNENCRYPTED", false]], "channelproperties.channel_codec_latency_factor (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_CODEC_LATENCY_FACTOR", false]], "channelproperties.channel_codec_quality (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_CODEC_QUALITY", false]], "channelproperties.channel_delete_delay (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_DELETE_DELAY", false]], "channelproperties.channel_description (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_DESCRIPTION", false]], "channelproperties.channel_endmarker (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_ENDMARKER", false]], "channelproperties.channel_flag_default (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_FLAG_DEFAULT", false]], "channelproperties.channel_flag_password (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_FLAG_PASSWORD", false]], "channelproperties.channel_flag_permanent (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_FLAG_PERMANENT", false]], "channelproperties.channel_flag_semi_permanent (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_FLAG_SEMI_PERMANENT", false]], "channelproperties.channel_maxclients (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_MAXCLIENTS", false]], "channelproperties.channel_maxfamilyclients (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_MAXFAMILYCLIENTS", false]], "channelproperties.channel_name (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_NAME", false]], "channelproperties.channel_order (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_ORDER", false]], "channelproperties.channel_password (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_PASSWORD", false]], "channelproperties.channel_security_salt (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_SECURITY_SALT", false]], "channelproperties.channel_topic (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_TOPIC", false]], "channelproperties.channel_unique_identifier (c enumerator)": [[45, "c.ChannelProperties.CHANNEL_UNIQUE_IDENTIFIER", false]], "clientcommand (c enum)": [[42, "c.ClientCommand", false]], "clientcommand.client_command_endmarker (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_ENDMARKER", false]], "clientcommand.client_command_filetransfers (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_filetransfers", false]], "clientcommand.client_command_flushchannelcreation (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_flushChannelCreation", false]], "clientcommand.client_command_flushchannelupdates (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_flushChannelUpdates", false]], "clientcommand.client_command_requestchanneldelete (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestChannelDelete", false]], "clientcommand.client_command_requestchanneldescription (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestChannelDescription", false]], "clientcommand.client_command_requestchannelmove (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestChannelMove", false]], "clientcommand.client_command_requestchannelxxsubscribexxx (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestChannelXXSubscribeXXX", false]], "clientcommand.client_command_requestclientkickfromxxx (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestClientKickFromXXX", false]], "clientcommand.client_command_requestclientmove (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestClientMove", false]], "clientcommand.client_command_requestconnectioninfo (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestConnectionInfo", false]], "clientcommand.client_command_requestsendxxxtextmsg (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestSendXXXTextMsg", false]], "clientcommand.client_command_requestserverconnectioninfo (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestServerConnectionInfo", false]], "clientcommand.client_command_requestxxmuteclients (c enumerator)": [[42, "c.ClientCommand.CLIENT_COMMAND_requestXXMuteClients", false]], "clientminiexport (c struct)": [[42, "c.ClientMiniExport", false]], "clientminiexport.channel (c var)": [[42, "c.ClientMiniExport.channel", false]], "clientminiexport.id (c var)": [[42, "c.ClientMiniExport.ID", false]], "clientminiexport.ident (c var)": [[42, "c.ClientMiniExport.ident", false]], "clientminiexport.nickname (c var)": [[42, "c.ClientMiniExport.nickname", false]], "clientproperties (c enum)": [[45, "c.ClientProperties", false]], "clientproperties.client_default_channel (c enumerator)": [[45, "c.ClientProperties.CLIENT_DEFAULT_CHANNEL", false]], "clientproperties.client_default_channel_password (c enumerator)": [[45, "c.ClientProperties.CLIENT_DEFAULT_CHANNEL_PASSWORD", false]], "clientproperties.client_encryption_ciphers (c enumerator)": [[45, "c.ClientProperties.CLIENT_ENCRYPTION_CIPHERS", false]], "clientproperties.client_endmarker (c enumerator)": [[45, "c.ClientProperties.CLIENT_ENDMARKER", false]], "clientproperties.client_flag_talking (c enumerator)": [[45, "c.ClientProperties.CLIENT_FLAG_TALKING", false]], "clientproperties.client_idle_time (c enumerator)": [[45, "c.ClientProperties.CLIENT_IDLE_TIME", false]], "clientproperties.client_input_deactivated (c enumerator)": [[45, "c.ClientProperties.CLIENT_INPUT_DEACTIVATED", false]], "clientproperties.client_input_hardware (c enumerator)": [[45, "c.ClientProperties.CLIENT_INPUT_HARDWARE", false]], "clientproperties.client_input_muted (c enumerator)": [[45, "c.ClientProperties.CLIENT_INPUT_MUTED", false]], "clientproperties.client_is_muted (c enumerator)": [[45, "c.ClientProperties.CLIENT_IS_MUTED", false]], "clientproperties.client_is_recording (c enumerator)": [[45, "c.ClientProperties.CLIENT_IS_RECORDING", false]], "clientproperties.client_is_streaming (c enumerator)": [[45, "c.ClientProperties.CLIENT_IS_STREAMING", false]], "clientproperties.client_meta_data (c enumerator)": [[45, "c.ClientProperties.CLIENT_META_DATA", false]], "clientproperties.client_nickname (c enumerator)": [[45, "c.ClientProperties.CLIENT_NICKNAME", false]], "clientproperties.client_output_hardware (c enumerator)": [[45, "c.ClientProperties.CLIENT_OUTPUT_HARDWARE", false]], "clientproperties.client_output_muted (c enumerator)": [[45, "c.ClientProperties.CLIENT_OUTPUT_MUTED", false]], "clientproperties.client_outputonly_muted (c enumerator)": [[45, "c.ClientProperties.CLIENT_OUTPUTONLY_MUTED", false]], "clientproperties.client_platform (c enumerator)": [[45, "c.ClientProperties.CLIENT_PLATFORM", false]], "clientproperties.client_security_hash (c enumerator)": [[45, "c.ClientProperties.CLIENT_SECURITY_HASH", false]], "clientproperties.client_server_password (c enumerator)": [[45, "c.ClientProperties.CLIENT_SERVER_PASSWORD", false]], "clientproperties.client_unique_identifier (c enumerator)": [[45, "c.ClientProperties.CLIENT_UNIQUE_IDENTIFIER", false]], "clientproperties.client_version (c enumerator)": [[45, "c.ClientProperties.CLIENT_VERSION", false]], "clientproperties.client_version_sign (c enumerator)": [[45, "c.ClientProperties.CLIENT_VERSION_SIGN", false]], "clientproperties.client_volume_modificator (c enumerator)": [[45, "c.ClientProperties.CLIENT_VOLUME_MODIFICATOR", false]], "clientuifunctions (c struct)": [[41, "c.ClientUIFunctions", false]], "clientuifunctions.onauthenticationtokenevent (c var)": [[41, "c.ClientUIFunctions.onAuthenticationTokenEvent", false]], "clientuifunctions.onchanneldescriptionupdateevent (c var)": [[41, "c.ClientUIFunctions.onChannelDescriptionUpdateEvent", false]], "clientuifunctions.onchannelmoveevent (c var)": [[41, "c.ClientUIFunctions.onChannelMoveEvent", false]], "clientuifunctions.onchannelpasswordchangedevent (c var)": [[41, "c.ClientUIFunctions.onChannelPasswordChangedEvent", false]], "clientuifunctions.onchannelsubscribeevent (c var)": [[41, "c.ClientUIFunctions.onChannelSubscribeEvent", false]], "clientuifunctions.onchannelsubscribefinishedevent (c var)": [[41, "c.ClientUIFunctions.onChannelSubscribeFinishedEvent", false]], "clientuifunctions.onchannelunsubscribeevent (c var)": [[41, "c.ClientUIFunctions.onChannelUnsubscribeEvent", false]], "clientuifunctions.onchannelunsubscribefinishedevent (c var)": [[41, "c.ClientUIFunctions.onChannelUnsubscribeFinishedEvent", false]], "clientuifunctions.onchatlogintokenevent (c var)": [[41, "c.ClientUIFunctions.onChatLoginTokenEvent", false]], "clientuifunctions.oncheckserveruniqueidentifierevent (c var)": [[41, "c.ClientUIFunctions.onCheckServerUniqueIdentifierEvent", false]], "clientuifunctions.onclientidsevent (c var)": [[41, "c.ClientUIFunctions.onClientIDsEvent", false]], "clientuifunctions.onclientidsfinishedevent (c var)": [[41, "c.ClientUIFunctions.onClientIDsFinishedEvent", false]], "clientuifunctions.onclientkickfromchannelevent (c var)": [[41, "c.ClientUIFunctions.onClientKickFromChannelEvent", false]], "clientuifunctions.onclientkickfromserverevent (c var)": [[41, "c.ClientUIFunctions.onClientKickFromServerEvent", false]], "clientuifunctions.onclientmoveevent (c var)": [[41, "c.ClientUIFunctions.onClientMoveEvent", false]], "clientuifunctions.onclientmovemovedevent (c var)": [[41, "c.ClientUIFunctions.onClientMoveMovedEvent", false]], "clientuifunctions.onclientmovesubscriptionevent (c var)": [[41, "c.ClientUIFunctions.onClientMoveSubscriptionEvent", false]], "clientuifunctions.onclientmovetimeoutevent (c var)": [[41, "c.ClientUIFunctions.onClientMoveTimeoutEvent", false]], "clientuifunctions.onclientpasswordencrypt (c var)": [[41, "c.ClientUIFunctions.onClientPasswordEncrypt", false]], "clientuifunctions.onconnectioninfoevent (c var)": [[41, "c.ClientUIFunctions.onConnectionInfoEvent", false]], "clientuifunctions.onconnectstatuschangeevent (c var)": [[41, "c.ClientUIFunctions.onConnectStatusChangeEvent", false]], "clientuifunctions.oncustom3drolloffcalculationclientevent (c var)": [[41, "c.ClientUIFunctions.onCustom3dRolloffCalculationClientEvent", false]], "clientuifunctions.oncustom3drolloffcalculationwaveevent (c var)": [[41, "c.ClientUIFunctions.onCustom3dRolloffCalculationWaveEvent", false]], "clientuifunctions.oncustompacketdecryptevent (c var)": [[41, "c.ClientUIFunctions.onCustomPacketDecryptEvent", false]], "clientuifunctions.oncustompacketencryptevent (c var)": [[41, "c.ClientUIFunctions.onCustomPacketEncryptEvent", false]], "clientuifunctions.ondelchannelevent (c var)": [[41, "c.ClientUIFunctions.onDelChannelEvent", false]], "clientuifunctions.oneditcapturedvoicedataevent (c var)": [[41, "c.ClientUIFunctions.onEditCapturedVoiceDataEvent", false]], "clientuifunctions.oneditcapturedvoicedatapreprocessevent (c var)": [[41, "c.ClientUIFunctions.onEditCapturedVoiceDataPreprocessEvent", false]], "clientuifunctions.oneditmixedplaybackvoicedataevent (c var)": [[41, "c.ClientUIFunctions.onEditMixedPlaybackVoiceDataEvent", false]], "clientuifunctions.oneditplaybackvoicedataevent (c var)": [[41, "c.ClientUIFunctions.onEditPlaybackVoiceDataEvent", false]], "clientuifunctions.oneditpostprocessvoicedataevent (c var)": [[41, "c.ClientUIFunctions.onEditPostProcessVoiceDataEvent", false]], "clientuifunctions.onfileinfoevent (c var)": [[41, "c.ClientUIFunctions.onFileInfoEvent", false]], "clientuifunctions.onfilelistevent (c var)": [[41, "c.ClientUIFunctions.onFileListEvent", false]], "clientuifunctions.onfilelistfinishedevent (c var)": [[41, "c.ClientUIFunctions.onFileListFinishedEvent", false]], "clientuifunctions.onfiletransferstatusevent (c var)": [[41, "c.ClientUIFunctions.onFileTransferStatusEvent", false]], "clientuifunctions.onignoredwhisperevent (c var)": [[41, "c.ClientUIFunctions.onIgnoredWhisperEvent", false]], "clientuifunctions.onjsonreply (c var)": [[41, "c.ClientUIFunctions.onJsonReply", false]], "clientuifunctions.onmessage (c var)": [[41, "c.ClientUIFunctions.onMessage", false]], "clientuifunctions.onnewchannelcreatedevent (c var)": [[41, "c.ClientUIFunctions.onNewChannelCreatedEvent", false]], "clientuifunctions.onnewchannelevent (c var)": [[41, "c.ClientUIFunctions.onNewChannelEvent", false]], "clientuifunctions.onplaybackshutdowncompleteevent (c var)": [[41, "c.ClientUIFunctions.onPlaybackShutdownCompleteEvent", false]], "clientuifunctions.onprotoevent (c var)": [[41, "c.ClientUIFunctions.onProtoEvent", false]], "clientuifunctions.onprotoresponse (c var)": [[41, "c.ClientUIFunctions.onProtoResponse", false]], "clientuifunctions.onscreensharesessionevent (c var)": [[41, "c.ClientUIFunctions.onScreenshareSessionEvent", false]], "clientuifunctions.onsendcalltomatrix (c var)": [[41, "c.ClientUIFunctions.onSendCallToMatrix", false]], "clientuifunctions.onserverconnectioninfoevent (c var)": [[41, "c.ClientUIFunctions.onServerConnectionInfoEvent", false]], "clientuifunctions.onservereditedevent (c var)": [[41, "c.ClientUIFunctions.onServerEditedEvent", false]], "clientuifunctions.onservererrorevent (c var)": [[41, "c.ClientUIFunctions.onServerErrorEvent", false]], "clientuifunctions.onserverprotocolversionevent (c var)": [[41, "c.ClientUIFunctions.onServerProtocolVersionEvent", false]], "clientuifunctions.onserverstopevent (c var)": [[41, "c.ClientUIFunctions.onServerStopEvent", false]], "clientuifunctions.onserverupdatedevent (c var)": [[41, "c.ClientUIFunctions.onServerUpdatedEvent", false]], "clientuifunctions.onsounddevicelistchangedevent (c var)": [[41, "c.ClientUIFunctions.onSoundDeviceListChangedEvent", false]], "clientuifunctions.ontalkstatuschangeevent (c var)": [[41, "c.ClientUIFunctions.onTalkStatusChangeEvent", false]], "clientuifunctions.ontextmessageevent (c var)": [[41, "c.ClientUIFunctions.onTextMessageEvent", false]], "clientuifunctions.onupdatechanneleditedevent (c var)": [[41, "c.ClientUIFunctions.onUpdateChannelEditedEvent", false]], "clientuifunctions.onupdatechannelevent (c var)": [[41, "c.ClientUIFunctions.onUpdateChannelEvent", false]], "clientuifunctions.onupdateclientevent (c var)": [[41, "c.ClientUIFunctions.onUpdateClientEvent", false]], "clientuifunctions.onuserloggingmessageevent (c var)": [[41, "c.ClientUIFunctions.onUserLoggingMessageEvent", false]], "codecencryptionmode (c enum)": [[42, "c.CodecEncryptionMode", false]], "codecencryptionmode.codec_encryption_forced_off (c enumerator)": [[42, "c.CodecEncryptionMode.CODEC_ENCRYPTION_FORCED_OFF", false]], "codecencryptionmode.codec_encryption_forced_on (c enumerator)": [[42, "c.CodecEncryptionMode.CODEC_ENCRYPTION_FORCED_ON", false]], "codecencryptionmode.codec_encryption_per_channel (c enumerator)": [[42, "c.CodecEncryptionMode.CODEC_ENCRYPTION_PER_CHANNEL", false]], "codectype (c enum)": [[42, "c.CodecType", false]], "codectype.codec_celt_mono (c enumerator)": [[42, "c.CodecType.CODEC_CELT_MONO", false]], "codectype.codec_opus_music (c enumerator)": [[42, "c.CodecType.CODEC_OPUS_MUSIC", false]], "codectype.codec_opus_voice (c enumerator)": [[42, "c.CodecType.CODEC_OPUS_VOICE", false]], "codectype.codec_speex_narrowband (c enumerator)": [[42, "c.CodecType.CODEC_SPEEX_NARROWBAND", false]], "codectype.codec_speex_ultrawideband (c enumerator)": [[42, "c.CodecType.CODEC_SPEEX_ULTRAWIDEBAND", false]], "codectype.codec_speex_wideband (c enumerator)": [[42, "c.CodecType.CODEC_SPEEX_WIDEBAND", false]], "connectionproperties (c enum)": [[45, "c.ConnectionProperties", false]], "connectionproperties.connection_bandwidth_received_last_minute_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_CONTROL", false]], "connectionproperties.connection_bandwidth_received_last_minute_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_KEEPALIVE", false]], "connectionproperties.connection_bandwidth_received_last_minute_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_SPEECH", false]], "connectionproperties.connection_bandwidth_received_last_minute_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL", false]], "connectionproperties.connection_bandwidth_received_last_second_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_CONTROL", false]], "connectionproperties.connection_bandwidth_received_last_second_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_KEEPALIVE", false]], "connectionproperties.connection_bandwidth_received_last_second_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_SPEECH", false]], "connectionproperties.connection_bandwidth_received_last_second_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL", false]], "connectionproperties.connection_bandwidth_sent_last_minute_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_CONTROL", false]], "connectionproperties.connection_bandwidth_sent_last_minute_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_KEEPALIVE", false]], "connectionproperties.connection_bandwidth_sent_last_minute_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_SPEECH", false]], "connectionproperties.connection_bandwidth_sent_last_minute_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL", false]], "connectionproperties.connection_bandwidth_sent_last_second_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_CONTROL", false]], "connectionproperties.connection_bandwidth_sent_last_second_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_KEEPALIVE", false]], "connectionproperties.connection_bandwidth_sent_last_second_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_SPEECH", false]], "connectionproperties.connection_bandwidth_sent_last_second_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL", false]], "connectionproperties.connection_bytes_received_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_CONTROL", false]], "connectionproperties.connection_bytes_received_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_KEEPALIVE", false]], "connectionproperties.connection_bytes_received_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_SPEECH", false]], "connectionproperties.connection_bytes_received_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_TOTAL", false]], "connectionproperties.connection_bytes_sent_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BYTES_SENT_CONTROL", false]], "connectionproperties.connection_bytes_sent_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BYTES_SENT_KEEPALIVE", false]], "connectionproperties.connection_bytes_sent_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BYTES_SENT_SPEECH", false]], "connectionproperties.connection_bytes_sent_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_BYTES_SENT_TOTAL", false]], "connectionproperties.connection_client2server_packetloss_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_CONTROL", false]], "connectionproperties.connection_client2server_packetloss_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_KEEPALIVE", false]], "connectionproperties.connection_client2server_packetloss_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_SPEECH", false]], "connectionproperties.connection_client2server_packetloss_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_TOTAL", false]], "connectionproperties.connection_client_ip (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_CLIENT_IP", false]], "connectionproperties.connection_client_port (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_CLIENT_PORT", false]], "connectionproperties.connection_connected_time (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_CONNECTED_TIME", false]], "connectionproperties.connection_dummy_0 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_0", false]], "connectionproperties.connection_dummy_1 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_1", false]], "connectionproperties.connection_dummy_2 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_2", false]], "connectionproperties.connection_dummy_3 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_3", false]], "connectionproperties.connection_dummy_4 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_4", false]], "connectionproperties.connection_dummy_5 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_5", false]], "connectionproperties.connection_dummy_6 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_6", false]], "connectionproperties.connection_dummy_7 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_7", false]], "connectionproperties.connection_dummy_8 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_8", false]], "connectionproperties.connection_dummy_9 (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_DUMMY_9", false]], "connectionproperties.connection_endmarker (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_ENDMARKER", false]], "connectionproperties.connection_filetransfer_bandwidth_received (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED", false]], "connectionproperties.connection_filetransfer_bandwidth_sent (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BANDWIDTH_SENT", false]], "connectionproperties.connection_filetransfer_bytes_received_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL", false]], "connectionproperties.connection_filetransfer_bytes_sent_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL", false]], "connectionproperties.connection_idle_time (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_IDLE_TIME", false]], "connectionproperties.connection_packetloss_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETLOSS_CONTROL", false]], "connectionproperties.connection_packetloss_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETLOSS_KEEPALIVE", false]], "connectionproperties.connection_packetloss_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETLOSS_SPEECH", false]], "connectionproperties.connection_packetloss_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETLOSS_TOTAL", false]], "connectionproperties.connection_packets_received_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_CONTROL", false]], "connectionproperties.connection_packets_received_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_KEEPALIVE", false]], "connectionproperties.connection_packets_received_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_SPEECH", false]], "connectionproperties.connection_packets_received_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_TOTAL", false]], "connectionproperties.connection_packets_sent_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_CONTROL", false]], "connectionproperties.connection_packets_sent_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_KEEPALIVE", false]], "connectionproperties.connection_packets_sent_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_SPEECH", false]], "connectionproperties.connection_packets_sent_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_TOTAL", false]], "connectionproperties.connection_ping (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PING", false]], "connectionproperties.connection_ping_deviation (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_PING_DEVIATION", false]], "connectionproperties.connection_server2client_packetloss_control (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_CONTROL", false]], "connectionproperties.connection_server2client_packetloss_keepalive (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_KEEPALIVE", false]], "connectionproperties.connection_server2client_packetloss_speech (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_SPEECH", false]], "connectionproperties.connection_server2client_packetloss_total (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL", false]], "connectionproperties.connection_server_ip (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_SERVER_IP", false]], "connectionproperties.connection_server_port (c enumerator)": [[45, "c.ConnectionProperties.CONNECTION_SERVER_PORT", false]], "connectstatus (c enum)": [[42, "c.ConnectStatus", false]], "connectstatus.status_connected (c enumerator)": [[42, "c.ConnectStatus.STATUS_CONNECTED", false]], "connectstatus.status_connecting (c enumerator)": [[42, "c.ConnectStatus.STATUS_CONNECTING", false]], "connectstatus.status_connection_established (c enumerator)": [[42, "c.ConnectStatus.STATUS_CONNECTION_ESTABLISHED", false]], "connectstatus.status_connection_establishing (c enumerator)": [[42, "c.ConnectStatus.STATUS_CONNECTION_ESTABLISHING", false]], "connectstatus.status_disconnected (c enumerator)": [[42, "c.ConnectStatus.STATUS_DISCONNECTED", false]], "filetransfercallbackexport (c struct)": [[42, "c.FileTransferCallbackExport", false]], "filetransfercallbackexport.bytes (c var)": [[42, "c.FileTransferCallbackExport.bytes", false]], "filetransfercallbackexport.clientid (c var)": [[42, "c.FileTransferCallbackExport.clientID", false]], "filetransfercallbackexport.issender (c var)": [[42, "c.FileTransferCallbackExport.isSender", false]], "filetransfercallbackexport.remotefilesize (c var)": [[42, "c.FileTransferCallbackExport.remotefileSize", false]], "filetransfercallbackexport.remotetransferid (c var)": [[42, "c.FileTransferCallbackExport.remoteTransferID", false]], "filetransfercallbackexport.status (c var)": [[42, "c.FileTransferCallbackExport.status", false]], "filetransfercallbackexport.statusmessage (c var)": [[42, "c.FileTransferCallbackExport.statusMessage", false]], "filetransfercallbackexport.transferid (c var)": [[42, "c.FileTransferCallbackExport.transferID", false]], "filetransferstate (c enum)": [[42, "c.FileTransferState", false]], "filetransferstate.filetransfer_active (c enumerator)": [[42, "c.FileTransferState.FILETRANSFER_ACTIVE", false]], "filetransferstate.filetransfer_finished (c enumerator)": [[42, "c.FileTransferState.FILETRANSFER_FINISHED", false]], "filetransferstate.filetransfer_initialising (c enumerator)": [[42, "c.FileTransferState.FILETRANSFER_INITIALISING", false]], "filetransfertype (c enum)": [[42, "c.FileTransferType", false]], "filetransfertype.filelisttype_directory (c enumerator)": [[42, "c.FileTransferType.FileListType_Directory", false]], "filetransfertype.filelisttype_file (c enumerator)": [[42, "c.FileTransferType.FileListType_File", false]], "ftaction (c enum)": [[42, "c.FTAction", false]], "ftaction.ft_createdir (c enumerator)": [[42, "c.FTAction.FT_CREATEDIR", false]], "ftaction.ft_delete (c enumerator)": [[42, "c.FTAction.FT_DELETE", false]], "ftaction.ft_download (c enumerator)": [[42, "c.FTAction.FT_DOWNLOAD", false]], "ftaction.ft_fileinfo (c enumerator)": [[42, "c.FTAction.FT_FILEINFO", false]], "ftaction.ft_filelist (c enumerator)": [[42, "c.FTAction.FT_FILELIST", false]], "ftaction.ft_init_channel (c enumerator)": [[42, "c.FTAction.FT_INIT_CHANNEL", false]], "ftaction.ft_init_server (c enumerator)": [[42, "c.FTAction.FT_INIT_SERVER", false]], "ftaction.ft_rename (c enumerator)": [[42, "c.FTAction.FT_RENAME", false]], "ftaction.ft_upload (c enumerator)": [[42, "c.FTAction.FT_UPLOAD", false]], "groupwhispertargetmode (c enum)": [[42, "c.GroupWhisperTargetMode", false]], "groupwhispertargetmode.groupwhispertargetmode_all (c enumerator)": [[42, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ALL", false]], "groupwhispertargetmode.groupwhispertargetmode_allparentchannels (c enumerator)": [[42, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ALLPARENTCHANNELS", false]], "groupwhispertargetmode.groupwhispertargetmode_ancestorchannelfamily (c enumerator)": [[42, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ANCESTORCHANNELFAMILY", false]], "groupwhispertargetmode.groupwhispertargetmode_channelfamily (c enumerator)": [[42, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_CHANNELFAMILY", false]], "groupwhispertargetmode.groupwhispertargetmode_currentchannel (c enumerator)": [[42, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_CURRENTCHANNEL", false]], "groupwhispertargetmode.groupwhispertargetmode_endmarker (c enumerator)": [[42, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ENDMARKER", false]], "groupwhispertargetmode.groupwhispertargetmode_parentchannel (c enumerator)": [[42, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_PARENTCHANNEL", false]], "groupwhispertargetmode.groupwhispertargetmode_subchannels (c enumerator)": [[42, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_SUBCHANNELS", false]], "groupwhispertype (c enum)": [[42, "c.GroupWhisperType", false]], "groupwhispertype.groupwhispertype_allclients (c enumerator)": [[42, "c.GroupWhisperType.GROUPWHISPERTYPE_ALLCLIENTS", false]], "groupwhispertype.groupwhispertype_channelcommander (c enumerator)": [[42, "c.GroupWhisperType.GROUPWHISPERTYPE_CHANNELCOMMANDER", false]], "groupwhispertype.groupwhispertype_channelgroup (c enumerator)": [[42, "c.GroupWhisperType.GROUPWHISPERTYPE_CHANNELGROUP", false]], "groupwhispertype.groupwhispertype_endmarker (c enumerator)": [[42, "c.GroupWhisperType.GROUPWHISPERTYPE_ENDMARKER", false]], "groupwhispertype.groupwhispertype_servergroup (c enumerator)": [[42, "c.GroupWhisperType.GROUPWHISPERTYPE_SERVERGROUP", false]], "hardwareinputstatus (c enum)": [[42, "c.HardwareInputStatus", false]], "hardwareinputstatus.hardwareinput_disabled (c enumerator)": [[42, "c.HardwareInputStatus.HARDWAREINPUT_DISABLED", false]], "hardwareinputstatus.hardwareinput_enabled (c enumerator)": [[42, "c.HardwareInputStatus.HARDWAREINPUT_ENABLED", false]], "hardwareoutputstatus (c enum)": [[42, "c.HardwareOutputStatus", false]], "hardwareoutputstatus.hardwareoutput_disabled (c enumerator)": [[42, "c.HardwareOutputStatus.HARDWAREOUTPUT_DISABLED", false]], "hardwareoutputstatus.hardwareoutput_enabled (c enumerator)": [[42, "c.HardwareOutputStatus.HARDWAREOUTPUT_ENABLED", false]], "inputdeactivationstatus (c enum)": [[42, "c.InputDeactivationStatus", false]], "inputdeactivationstatus.input_active (c enumerator)": [[42, "c.InputDeactivationStatus.INPUT_ACTIVE", false]], "inputdeactivationstatus.input_deactivated (c enumerator)": [[42, "c.InputDeactivationStatus.INPUT_DEACTIVATED", false]], "localtestmode (c enum)": [[42, "c.LocalTestMode", false]], "localtestmode.test_mode_off (c enumerator)": [[42, "c.LocalTestMode.TEST_MODE_OFF", false]], "localtestmode.test_mode_talk_status_changes_only (c enumerator)": [[42, "c.LocalTestMode.TEST_MODE_TALK_STATUS_CHANGES_ONLY", false]], "localtestmode.test_mode_voice_local_and_remote (c enumerator)": [[42, "c.LocalTestMode.TEST_MODE_VOICE_LOCAL_AND_REMOTE", false]], "localtestmode.test_mode_voice_local_only (c enumerator)": [[42, "c.LocalTestMode.TEST_MODE_VOICE_LOCAL_ONLY", false]], "logtypes (c enum)": [[42, "c.LogTypes", false]], "logtypes.logtype_console (c enumerator)": [[42, "c.LogTypes.LogType_CONSOLE", false]], "logtypes.logtype_database (c enumerator)": [[42, "c.LogTypes.LogType_DATABASE", false]], "logtypes.logtype_file (c enumerator)": [[42, "c.LogTypes.LogType_FILE", false]], "logtypes.logtype_no_netlogging (c enumerator)": [[42, "c.LogTypes.LogType_NO_NETLOGGING", false]], "logtypes.logtype_none (c enumerator)": [[42, "c.LogTypes.LogType_NONE", false]], "logtypes.logtype_syslog (c enumerator)": [[42, "c.LogTypes.LogType_SYSLOG", false]], "logtypes.logtype_userlogging (c enumerator)": [[42, "c.LogTypes.LogType_USERLOGGING", false]], "muteinputstatus (c enum)": [[42, "c.MuteInputStatus", false]], "muteinputstatus.muteinput_muted (c enumerator)": [[42, "c.MuteInputStatus.MUTEINPUT_MUTED", false]], "muteinputstatus.muteinput_none (c enumerator)": [[42, "c.MuteInputStatus.MUTEINPUT_NONE", false]], "muteoutputstatus (c enum)": [[42, "c.MuteOutputStatus", false]], "muteoutputstatus.muteoutput_muted (c enumerator)": [[42, "c.MuteOutputStatus.MUTEOUTPUT_MUTED", false]], "muteoutputstatus.muteoutput_none (c enumerator)": [[42, "c.MuteOutputStatus.MUTEOUTPUT_NONE", false]], "reasonidentifier (c enum)": [[42, "c.ReasonIdentifier", false]], "reasonidentifier.reason_channeledit (c enumerator)": [[42, "c.ReasonIdentifier.REASON_CHANNELEDIT", false]], "reasonidentifier.reason_channelupdate (c enumerator)": [[42, "c.ReasonIdentifier.REASON_CHANNELUPDATE", false]], "reasonidentifier.reason_clientdisconnect (c enumerator)": [[42, "c.ReasonIdentifier.REASON_CLIENTDISCONNECT", false]], "reasonidentifier.reason_clientdisconnect_server_shutdown (c enumerator)": [[42, "c.ReasonIdentifier.REASON_CLIENTDISCONNECT_SERVER_SHUTDOWN", false]], "reasonidentifier.reason_kick_channel (c enumerator)": [[42, "c.ReasonIdentifier.REASON_KICK_CHANNEL", false]], "reasonidentifier.reason_kick_server (c enumerator)": [[42, "c.ReasonIdentifier.REASON_KICK_SERVER", false]], "reasonidentifier.reason_kick_server_ban (c enumerator)": [[42, "c.ReasonIdentifier.REASON_KICK_SERVER_BAN", false]], "reasonidentifier.reason_lost_connection (c enumerator)": [[42, "c.ReasonIdentifier.REASON_LOST_CONNECTION", false]], "reasonidentifier.reason_moved (c enumerator)": [[42, "c.ReasonIdentifier.REASON_MOVED", false]], "reasonidentifier.reason_none (c enumerator)": [[42, "c.ReasonIdentifier.REASON_NONE", false]], "reasonidentifier.reason_serverstop (c enumerator)": [[42, "c.ReasonIdentifier.REASON_SERVERSTOP", false]], "reasonidentifier.reason_subscription (c enumerator)": [[42, "c.ReasonIdentifier.REASON_SUBSCRIPTION", false]], "securitysaltoptions (c enum)": [[42, "c.SecuritySaltOptions", false]], "securitysaltoptions.security_salt_check_meta_data (c enumerator)": [[42, "c.SecuritySaltOptions.SECURITY_SALT_CHECK_META_DATA", false]], "securitysaltoptions.security_salt_check_nickname (c enumerator)": [[42, "c.SecuritySaltOptions.SECURITY_SALT_CHECK_NICKNAME", false]], "serverlibfunctions (c struct)": [[73, "c.ServerLibFunctions", false]], "serverlibfunctions.onaccountingerrorevent (c var)": [[73, "c.ServerLibFunctions.onAccountingErrorEvent", false]], "serverlibfunctions.onchannelcreated (c var)": [[73, "c.ServerLibFunctions.onChannelCreated", false]], "serverlibfunctions.onchanneldeleted (c var)": [[73, "c.ServerLibFunctions.onChannelDeleted", false]], "serverlibfunctions.onchanneledited (c var)": [[73, "c.ServerLibFunctions.onChannelEdited", false]], "serverlibfunctions.onchanneltextmessageevent (c var)": [[73, "c.ServerLibFunctions.onChannelTextMessageEvent", false]], "serverlibfunctions.onclientconnected (c var)": [[73, "c.ServerLibFunctions.onClientConnected", false]], "serverlibfunctions.onclientdisconnected (c var)": [[73, "c.ServerLibFunctions.onClientDisconnected", false]], "serverlibfunctions.onclientmoved (c var)": [[73, "c.ServerLibFunctions.onClientMoved", false]], "serverlibfunctions.onclientpasswordencrypt (c var)": [[73, "c.ServerLibFunctions.onClientPasswordEncrypt", false]], "serverlibfunctions.onclientstarttalkingevent (c var)": [[73, "c.ServerLibFunctions.onClientStartTalkingEvent", false]], "serverlibfunctions.onclientstoptalkingevent (c var)": [[73, "c.ServerLibFunctions.onClientStopTalkingEvent", false]], "serverlibfunctions.oncustomchannelpasswordcheck (c var)": [[73, "c.ServerLibFunctions.onCustomChannelPasswordCheck", false]], "serverlibfunctions.oncustompacketdecryptevent (c var)": [[73, "c.ServerLibFunctions.onCustomPacketDecryptEvent", false]], "serverlibfunctions.oncustompacketencryptevent (c var)": [[73, "c.ServerLibFunctions.onCustomPacketEncryptEvent", false]], "serverlibfunctions.oncustomserverpasswordcheck (c var)": [[73, "c.ServerLibFunctions.onCustomServerPasswordCheck", false]], "serverlibfunctions.onfiletransferevent (c var)": [[73, "c.ServerLibFunctions.onFileTransferEvent", false]], "serverlibfunctions.onservertextmessageevent (c var)": [[73, "c.ServerLibFunctions.onServerTextMessageEvent", false]], "serverlibfunctions.ontransformfilepath (c var)": [[73, "c.ServerLibFunctions.onTransformFilePath", false]], "serverlibfunctions.onuserloggingmessageevent (c var)": [[73, "c.ServerLibFunctions.onUserLoggingMessageEvent", false]], "serverlibfunctions.onvoicedataevent (c var)": [[73, "c.ServerLibFunctions.onVoiceDataEvent", false]], "serverlibfunctions.permchannelcreate (c var)": [[73, "c.ServerLibFunctions.permChannelCreate", false]], "serverlibfunctions.permchanneldelete (c var)": [[73, "c.ServerLibFunctions.permChannelDelete", false]], "serverlibfunctions.permchanneledit (c var)": [[73, "c.ServerLibFunctions.permChannelEdit", false]], "serverlibfunctions.permchannelmove (c var)": [[73, "c.ServerLibFunctions.permChannelMove", false]], "serverlibfunctions.permchannelsubscribe (c var)": [[73, "c.ServerLibFunctions.permChannelSubscribe", false]], "serverlibfunctions.permclientcanconnect (c var)": [[73, "c.ServerLibFunctions.permClientCanConnect", false]], "serverlibfunctions.permclientcangetchanneldescription (c var)": [[73, "c.ServerLibFunctions.permClientCanGetChannelDescription", false]], "serverlibfunctions.permclientkickfromchannel (c var)": [[73, "c.ServerLibFunctions.permClientKickFromChannel", false]], "serverlibfunctions.permclientkickfromserver (c var)": [[73, "c.ServerLibFunctions.permClientKickFromServer", false]], "serverlibfunctions.permclientmove (c var)": [[73, "c.ServerLibFunctions.permClientMove", false]], "serverlibfunctions.permclientupdate (c var)": [[73, "c.ServerLibFunctions.permClientUpdate", false]], "serverlibfunctions.permfiletransfercreatedirectory (c var)": [[73, "c.ServerLibFunctions.permFileTransferCreateDirectory", false]], "serverlibfunctions.permfiletransferdeletefile (c var)": [[73, "c.ServerLibFunctions.permFileTransferDeleteFile", false]], "serverlibfunctions.permfiletransfergetfileinfo (c var)": [[73, "c.ServerLibFunctions.permFileTransferGetFileInfo", false]], "serverlibfunctions.permfiletransfergetfilelist (c var)": [[73, "c.ServerLibFunctions.permFileTransferGetFileList", false]], "serverlibfunctions.permfiletransferinitdownload (c var)": [[73, "c.ServerLibFunctions.permFileTransferInitDownload", false]], "serverlibfunctions.permfiletransferinitupload (c var)": [[73, "c.ServerLibFunctions.permFileTransferInitUpload", false]], "serverlibfunctions.permfiletransferrenamefile (c var)": [[73, "c.ServerLibFunctions.permFileTransferRenameFile", false]], "serverlibfunctions.permsendconnectioninfo (c var)": [[73, "c.ServerLibFunctions.permSendConnectionInfo", false]], "serverlibfunctions.permsendtextmessage (c var)": [[73, "c.ServerLibFunctions.permSendTextMessage", false]], "serverlibfunctions.permserverrequestconnectioninfo (c var)": [[73, "c.ServerLibFunctions.permServerRequestConnectionInfo", false]], "talkstatus (c enum)": [[42, "c.TalkStatus", false]], "talkstatus.status_not_talking (c enumerator)": [[42, "c.TalkStatus.STATUS_NOT_TALKING", false]], "talkstatus.status_talking (c enumerator)": [[42, "c.TalkStatus.STATUS_TALKING", false]], "talkstatus.status_talking_while_disabled (c enumerator)": [[42, "c.TalkStatus.STATUS_TALKING_WHILE_DISABLED", false]], "textmessagetargetmode (c enum)": [[42, "c.TextMessageTargetMode", false]], "textmessagetargetmode.textmessagetarget_channel (c enumerator)": [[42, "c.TextMessageTargetMode.TextMessageTarget_CHANNEL", false]], "textmessagetargetmode.textmessagetarget_client (c enumerator)": [[42, "c.TextMessageTargetMode.TextMessageTarget_CLIENT", false]], "textmessagetargetmode.textmessagetarget_max (c enumerator)": [[42, "c.TextMessageTargetMode.TextMessageTarget_MAX", false]], "textmessagetargetmode.textmessagetarget_server (c enumerator)": [[42, "c.TextMessageTargetMode.TextMessageTarget_SERVER", false]], "transformfilepathexport (c struct)": [[42, "c.TransformFilePathExport", false]], "transformfilepathexport.action (c var)": [[42, "c.TransformFilePathExport.action", false]], "transformfilepathexport.channel (c var)": [[42, "c.TransformFilePathExport.channel", false]], "transformfilepathexport.channelpathmaxsize (c var)": [[42, "c.TransformFilePathExport.channelPathMaxSize", false]], "transformfilepathexport.filename (c var)": [[42, "c.TransformFilePathExport.filename", false]], "transformfilepathexport.transformedfilenamemaxsize (c var)": [[42, "c.TransformFilePathExport.transformedFileNameMaxSize", false]], "transformfilepathexportreturns (c struct)": [[42, "c.TransformFilePathExportReturns", false]], "transformfilepathexportreturns.channelpath (c var)": [[42, "c.TransformFilePathExportReturns.channelPath", false]], "transformfilepathexportreturns.logfileaction (c var)": [[42, "c.TransformFilePathExportReturns.logFileAction", false]], "transformfilepathexportreturns.transformedfilename (c var)": [[42, "c.TransformFilePathExportReturns.transformedFileName", false]], "ts3client_acquirecustomplaybackdata (c function)": [[41, "c.ts3client_acquireCustomPlaybackData", false]], "ts3client_activatecapturedevice (c function)": [[41, "c.ts3client_activateCaptureDevice", false]], "ts3client_allowwhispersfrom (c function)": [[41, "c.ts3client_allowWhispersFrom", false]], "ts3client_channelset3dattributes (c function)": [[41, "c.ts3client_channelset3DAttributes", false]], "ts3client_cleanupconnectioninfo (c function)": [[41, "c.ts3client_cleanUpConnectionInfo", false]], "ts3client_closeaudioplaybackhandle (c function)": [[41, "c.ts3client_closeAudioPlaybackHandle", false]], "ts3client_closecapturedevice (c function)": [[41, "c.ts3client_closeCaptureDevice", false]], "ts3client_closeplaybackdevice (c function)": [[41, "c.ts3client_closePlaybackDevice", false]], "ts3client_closewavefilehandle (c function)": [[41, "c.ts3client_closeWaveFileHandle", false]], "ts3client_createaudioplaybackhandle (c function)": [[41, "c.ts3client_createAudioPlaybackHandle", false]], "ts3client_createidentity (c function)": [[22, "c.ts3client_createIdentity", false], [41, "c.ts3client_createIdentity", false]], "ts3client_destroyclientlib (c function)": [[11, "c.ts3client_destroyClientLib", false], [41, "c.ts3client_destroyClientLib", false]], "ts3client_destroyserverconnectionhandler (c function)": [[22, "c.ts3client_destroyServerConnectionHandler", false], [41, "c.ts3client_destroyServerConnectionHandler", false]], "ts3client_enqueueaudioplaybackhandle (c function)": [[41, "c.ts3client_enqueueAudioPlaybackHandle", false]], "ts3client_flushchannelcreation (c function)": [[12, "c.ts3client_flushChannelCreation", false], [41, "c.ts3client_flushChannelCreation", false]], "ts3client_flushchannelupdates (c function)": [[41, "c.ts3client_flushChannelUpdates", false]], "ts3client_flushclientselfupdates (c function)": [[41, "c.ts3client_flushClientSelfUpdates", false]], "ts3client_freememory (c function)": [[41, "c.ts3client_freeMemory", false]], "ts3client_getaveragetransferspeed (c function)": [[41, "c.ts3client_getAverageTransferSpeed", false]], "ts3client_getcapturedevicelist (c function)": [[41, "c.ts3client_getCaptureDeviceList", false]], "ts3client_getcapturemodelist (c function)": [[41, "c.ts3client_getCaptureModeList", false]], "ts3client_getchannelclientlist (c function)": [[41, "c.ts3client_getChannelClientList", false]], "ts3client_getchannelemptysecs (c function)": [[41, "c.ts3client_getChannelEmptySecs", false]], "ts3client_getchannelidfromchannelnames (c function)": [[41, "c.ts3client_getChannelIDFromChannelNames", false]], "ts3client_getchannellist (c function)": [[41, "c.ts3client_getChannelList", false]], "ts3client_getchannelofclient (c function)": [[41, "c.ts3client_getChannelOfClient", false]], "ts3client_getchannelvariableasint (c function)": [[41, "c.ts3client_getChannelVariableAsInt", false]], "ts3client_getchannelvariableasstring (c function)": [[41, "c.ts3client_getChannelVariableAsString", false]], "ts3client_getchannelvariableasuint64 (c function)": [[41, "c.ts3client_getChannelVariableAsUInt64", false]], "ts3client_getclientid (c function)": [[41, "c.ts3client_getClientID", false]], "ts3client_getclientlibversion (c function)": [[41, "c.ts3client_getClientLibVersion", false]], "ts3client_getclientlibversionnumber (c function)": [[41, "c.ts3client_getClientLibVersionNumber", false]], "ts3client_getclientlist (c function)": [[41, "c.ts3client_getClientList", false]], "ts3client_getclientselfvariableasint (c function)": [[41, "c.ts3client_getClientSelfVariableAsInt", false]], "ts3client_getclientselfvariableasstring (c function)": [[41, "c.ts3client_getClientSelfVariableAsString", false]], "ts3client_getclientvariableasint (c function)": [[41, "c.ts3client_getClientVariableAsInt", false]], "ts3client_getclientvariableasstring (c function)": [[41, "c.ts3client_getClientVariableAsString", false]], "ts3client_getclientvariableasuint64 (c function)": [[41, "c.ts3client_getClientVariableAsUInt64", false]], "ts3client_getconnectionstatus (c function)": [[41, "c.ts3client_getConnectionStatus", false]], "ts3client_getconnectionvariableasdouble (c function)": [[41, "c.ts3client_getConnectionVariableAsDouble", false]], "ts3client_getconnectionvariableasstring (c function)": [[41, "c.ts3client_getConnectionVariableAsString", false]], "ts3client_getconnectionvariableasuint64 (c function)": [[41, "c.ts3client_getConnectionVariableAsUInt64", false]], "ts3client_getcurrentcapturedevicename (c function)": [[41, "c.ts3client_getCurrentCaptureDeviceName", false]], "ts3client_getcurrentcapturemode (c function)": [[41, "c.ts3client_getCurrentCaptureMode", false]], "ts3client_getcurrentplaybackdevicename (c function)": [[41, "c.ts3client_getCurrentPlaybackDeviceName", false]], "ts3client_getcurrentplaybackmode (c function)": [[41, "c.ts3client_getCurrentPlayBackMode", false]], "ts3client_getcurrenttransferspeed (c function)": [[41, "c.ts3client_getCurrentTransferSpeed", false]], "ts3client_getdefaultcapturedevice (c function)": [[41, "c.ts3client_getDefaultCaptureDevice", false]], "ts3client_getdefaultcapturemode (c function)": [[41, "c.ts3client_getDefaultCaptureMode", false]], "ts3client_getdefaultplaybackdevice (c function)": [[41, "c.ts3client_getDefaultPlaybackDevice", false]], "ts3client_getdefaultplaybackmode (c function)": [[41, "c.ts3client_getDefaultPlayBackMode", false]], "ts3client_getencodeconfigvalue (c function)": [[41, "c.ts3client_getEncodeConfigValue", false]], "ts3client_geterrormessage (c function)": [[41, "c.ts3client_getErrorMessage", false]], "ts3client_getglobalconfigvalueasint (c function)": [[41, "c.ts3client_getGlobalConfigValueAsInt", false]], "ts3client_getinstancespeedlimitdown (c function)": [[41, "c.ts3client_getInstanceSpeedLimitDown", false]], "ts3client_getinstancespeedlimitup (c function)": [[41, "c.ts3client_getInstanceSpeedLimitUp", false]], "ts3client_getparentchannelofchannel (c function)": [[41, "c.ts3client_getParentChannelOfChannel", false]], "ts3client_getplaybackconfigvalueasfloat (c function)": [[41, "c.ts3client_getPlaybackConfigValueAsFloat", false]], "ts3client_getplaybackdevicelist (c function)": [[41, "c.ts3client_getPlaybackDeviceList", false]], "ts3client_getplaybackmodelist (c function)": [[41, "c.ts3client_getPlaybackModeList", false]], "ts3client_getpreprocessorconfigvalue (c function)": [[41, "c.ts3client_getPreProcessorConfigValue", false]], "ts3client_getpreprocessorinfovaluefloat (c function)": [[41, "c.ts3client_getPreProcessorInfoValueFloat", false]], "ts3client_getserverconnectionhandlerlist (c function)": [[41, "c.ts3client_getServerConnectionHandlerList", false]], "ts3client_getserverconnectionhandlerspeedlimitdown (c function)": [[41, "c.ts3client_getServerConnectionHandlerSpeedLimitDown", false]], "ts3client_getserverconnectionhandlerspeedlimitup (c function)": [[41, "c.ts3client_getServerConnectionHandlerSpeedLimitUp", false]], "ts3client_getserverconnectionvariableasfloat (c function)": [[41, "c.ts3client_getServerConnectionVariableAsFloat", false]], "ts3client_getserverconnectionvariableasuint64 (c function)": [[41, "c.ts3client_getServerConnectionVariableAsUInt64", false]], "ts3client_getserverlegacyuuid (c function)": [[41, "c.ts3client_getServerLegacyUUID", false]], "ts3client_getservervariableasint (c function)": [[41, "c.ts3client_getServerVariableAsInt", false]], "ts3client_getservervariableasstring (c function)": [[41, "c.ts3client_getServerVariableAsString", false]], "ts3client_getservervariableasuint64 (c function)": [[41, "c.ts3client_getServerVariableAsUInt64", false]], "ts3client_gettransferfilename (c function)": [[41, "c.ts3client_getTransferFileName", false]], "ts3client_gettransferfilepath (c function)": [[41, "c.ts3client_getTransferFilePath", false]], "ts3client_gettransferfileremotepath (c function)": [[41, "c.ts3client_getTransferFileRemotePath", false]], "ts3client_gettransferfilesize (c function)": [[41, "c.ts3client_getTransferFileSize", false]], "ts3client_gettransferfilesizedone (c function)": [[41, "c.ts3client_getTransferFileSizeDone", false]], "ts3client_gettransferruntime (c function)": [[41, "c.ts3client_getTransferRunTime", false]], "ts3client_gettransferspeedlimit (c function)": [[41, "c.ts3client_getTransferSpeedLimit", false]], "ts3client_gettransferstatus (c function)": [[41, "c.ts3client_getTransferStatus", false]], "ts3client_getwhisperreceivewhitelist (c function)": [[41, "c.ts3client_getWhisperReceiveWhitelist", false]], "ts3client_halttransfer (c function)": [[26, "c.ts3client_haltTransfer", false], [41, "c.ts3client_haltTransfer", false]], "ts3client_identitystringtouniqueidentifier (c function)": [[41, "c.ts3client_identityStringToUniqueIdentifier", false]], "ts3client_initclientlib (c function)": [[41, "c.ts3client_initClientLib", false]], "ts3client_initiategracefulplaybackshutdown (c function)": [[41, "c.ts3client_initiateGracefulPlaybackShutdown", false]], "ts3client_istransfersender (c function)": [[41, "c.ts3client_isTransferSender", false]], "ts3client_iswhisperreceivewhitelisted (c function)": [[41, "c.ts3client_isWhisperReceiveWhitelisted", false]], "ts3client_logmessage (c function)": [[41, "c.ts3client_logMessage", false]], "ts3client_opencapturedevice (c function)": [[41, "c.ts3client_openCaptureDevice", false]], "ts3client_openplaybackdevice (c function)": [[41, "c.ts3client_openPlaybackDevice", false]], "ts3client_pauseaudioplaybackhandle (c function)": [[41, "c.ts3client_pauseAudioPlaybackHandle", false]], "ts3client_pausewavefilehandle (c function)": [[41, "c.ts3client_pauseWaveFileHandle", false]], "ts3client_playwavefile (c function)": [[41, "c.ts3client_playWaveFile", false]], "ts3client_playwavefilehandle (c function)": [[41, "c.ts3client_playWaveFileHandle", false]], "ts3client_processcustomcapturedata (c function)": [[41, "c.ts3client_processCustomCaptureData", false]], "ts3client_registercustomdevice (c function)": [[41, "c.ts3client_registerCustomDevice", false]], "ts3client_removefromallowedwhispersfrom (c function)": [[41, "c.ts3client_removeFromAllowedWhispersFrom", false]], "ts3client_requestchanneldelete (c function)": [[41, "c.ts3client_requestChannelDelete", false]], "ts3client_requestchanneldescription (c function)": [[41, "c.ts3client_requestChannelDescription", false]], "ts3client_requestchannelmove (c function)": [[41, "c.ts3client_requestChannelMove", false]], "ts3client_requestchannelsubscribe (c function)": [[41, "c.ts3client_requestChannelSubscribe", false]], "ts3client_requestchannelsubscribeall (c function)": [[41, "c.ts3client_requestChannelSubscribeAll", false]], "ts3client_requestchannelunsubscribe (c function)": [[41, "c.ts3client_requestChannelUnsubscribe", false]], "ts3client_requestchannelunsubscribeall (c function)": [[41, "c.ts3client_requestChannelUnsubscribeAll", false]], "ts3client_requestchat (c function)": [[41, "c.ts3client_requestChat", false]], "ts3client_requestclientids (c function)": [[41, "c.ts3client_requestClientIDs", false]], "ts3client_requestclientkickfromchannel (c function)": [[41, "c.ts3client_requestClientKickFromChannel", false]], "ts3client_requestclientkickfromserver (c function)": [[41, "c.ts3client_requestClientKickFromServer", false]], "ts3client_requestclientmove (c function)": [[41, "c.ts3client_requestClientMove", false]], "ts3client_requestclientsetwhisperlist (c function)": [[41, "c.ts3client_requestClientSetWhisperList", false]], "ts3client_requestclientvariables (c function)": [[41, "c.ts3client_requestClientVariables", false]], "ts3client_requestconnectioninfo (c function)": [[41, "c.ts3client_requestConnectionInfo", false]], "ts3client_requestcreatedirectory (c function)": [[41, "c.ts3client_requestCreateDirectory", false]], "ts3client_requestdeletechanneltextmsg (c function)": [[41, "c.ts3client_requestDeleteChannelTextMsg", false]], "ts3client_requestdeletefile (c function)": [[41, "c.ts3client_requestDeleteFile", false]], "ts3client_requestfile (c function)": [[41, "c.ts3client_requestFile", false]], "ts3client_requestfileinfo (c function)": [[26, "c.ts3client_requestFileInfo", false], [41, "c.ts3client_requestFileInfo", false]], "ts3client_requestfilelist (c function)": [[41, "c.ts3client_requestFileList", false]], "ts3client_requestmuteclients (c function)": [[41, "c.ts3client_requestMuteClients", false]], "ts3client_requestrenamefile (c function)": [[41, "c.ts3client_requestRenameFile", false]], "ts3client_requestsendchanneltextmsg (c function)": [[41, "c.ts3client_requestSendChannelTextMsg", false]], "ts3client_requestsendprivatetextmsg (c function)": [[41, "c.ts3client_requestSendPrivateTextMsg", false]], "ts3client_requestsendservertextmsg (c function)": [[41, "c.ts3client_requestSendServerTextMsg", false]], "ts3client_requestserverconnectioninfo (c function)": [[41, "c.ts3client_requestServerConnectionInfo", false]], "ts3client_requestservervariables (c function)": [[41, "c.ts3client_requestServerVariables", false]], "ts3client_requestunmuteclients (c function)": [[41, "c.ts3client_requestUnmuteClients", false]], "ts3client_s3ft_deletefile (c function)": [[41, "c.ts3client_s3ft_deleteFile", false]], "ts3client_s3ft_getdownloadurl (c function)": [[41, "c.ts3client_s3ft_getDownloadUrl", false]], "ts3client_s3ft_getpresignedurls (c function)": [[41, "c.ts3client_s3ft_getPresignedUrls", false]], "ts3client_s3ft_getuploadurl (c function)": [[41, "c.ts3client_s3ft_getUploadUrl", false]], "ts3client_s3ft_listfiles (c function)": [[41, "c.ts3client_s3ft_listFiles", false]], "ts3client_s3ft_renamefile (c function)": [[41, "c.ts3client_s3ft_renameFile", false]], "ts3client_s3ft_uploaddonenotification (c function)": [[41, "c.ts3client_s3ft_uploadDoneNotification", false]], "ts3client_sendfile (c function)": [[41, "c.ts3client_sendFile", false]], "ts3client_set3dwaveattributes (c function)": [[41, "c.ts3client_set3DWaveAttributes", false]], "ts3client_setaecreferencedevice (c function)": [[41, "c.ts3client_setAECReferenceDevice", false]], "ts3client_setchannelvariableasint (c function)": [[41, "c.ts3client_setChannelVariableAsInt", false]], "ts3client_setchannelvariableasstring (c function)": [[41, "c.ts3client_setChannelVariableAsString", false]], "ts3client_setchannelvariableasuint64 (c function)": [[41, "c.ts3client_setChannelVariableAsUInt64", false]], "ts3client_setclientselfvariableasint (c function)": [[41, "c.ts3client_setClientSelfVariableAsInt", false]], "ts3client_setclientselfvariableasstring (c function)": [[41, "c.ts3client_setClientSelfVariableAsString", false]], "ts3client_setclientvolumemodifier (c function)": [[41, "c.ts3client_setClientVolumeModifier", false]], "ts3client_setglobalconfigvalue (c function)": [[41, "c.ts3client_setGlobalConfigValue", false]], "ts3client_setinstancespeedlimitdown (c function)": [[41, "c.ts3client_setInstanceSpeedLimitDown", false]], "ts3client_setinstancespeedlimitup (c function)": [[41, "c.ts3client_setInstanceSpeedLimitUp", false]], "ts3client_setkeypressedduringchunk (c function)": [[41, "c.ts3client_setKeyPressedDuringChunk", false]], "ts3client_setlocaltestmode (c function)": [[41, "c.ts3client_setLocalTestMode", false]], "ts3client_setlogverbosity (c function)": [[41, "c.ts3client_setLogVerbosity", false]], "ts3client_setplaybackconfigvalue (c function)": [[41, "c.ts3client_setPlaybackConfigValue", false]], "ts3client_setpreprocessorconfigvalue (c function)": [[41, "c.ts3client_setPreProcessorConfigValue", false]], "ts3client_setserverconnectionhandlerspeedlimitdown (c function)": [[41, "c.ts3client_setServerConnectionHandlerSpeedLimitDown", false]], "ts3client_setserverconnectionhandlerspeedlimitup (c function)": [[41, "c.ts3client_setServerConnectionHandlerSpeedLimitUp", false]], "ts3client_settransferspeedlimit (c function)": [[41, "c.ts3client_setTransferSpeedLimit", false]], "ts3client_setwhisperreceivewhitelist (c function)": [[41, "c.ts3client_setWhisperReceiveWhitelist", false]], "ts3client_spawnnewserverconnectionhandler (c function)": [[22, "c.ts3client_spawnNewServerConnectionHandler", false], [41, "c.ts3client_spawnNewServerConnectionHandler", false]], "ts3client_startconnection (c function)": [[22, "c.ts3client_startConnection", false], [41, "c.ts3client_startConnection", false]], "ts3client_startconnectionwithchannelid (c function)": [[22, "c.ts3client_startConnectionWithChannelID", false], [41, "c.ts3client_startConnectionWithChannelID", false]], "ts3client_startvoicerecording (c function)": [[41, "c.ts3client_startVoiceRecording", false]], "ts3client_stopconnection (c function)": [[41, "c.ts3client_stopConnection", false]], "ts3client_stopvoicerecording (c function)": [[41, "c.ts3client_stopVoiceRecording", false]], "ts3client_systemset3dlistenerattributes (c function)": [[41, "c.ts3client_systemset3DListenerAttributes", false]], "ts3client_systemset3dsettings (c function)": [[41, "c.ts3client_systemset3DSettings", false]], "ts3client_unregistercustomdevice (c function)": [[41, "c.ts3client_unregisterCustomDevice", false]], "ts3errortype (c enum)": [[43, "c.Ts3ErrorType", false]], "ts3errortype.error_accounting_already_started (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_already_started", false]], "ts3errortype.error_accounting_instance_check_error (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_instance_check_error", false]], "ts3errortype.error_accounting_instance_duplicated (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_instance_duplicated", false]], "ts3errortype.error_accounting_instance_limit_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_instance_limit_reached", false]], "ts3errortype.error_accounting_license_date_not_ok (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_license_date_not_ok", false]], "ts3errortype.error_accounting_license_file_invalid (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_license_file_invalid", false]], "ts3errortype.error_accounting_license_file_not_found (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_license_file_not_found", false]], "ts3errortype.error_accounting_not_started (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_not_started", false]], "ts3errortype.error_accounting_running_elsewhere (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_running_elsewhere", false]], "ts3errortype.error_accounting_server_error (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_server_error", false]], "ts3errortype.error_accounting_slot_limit_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_slot_limit_reached", false]], "ts3errortype.error_accounting_to_many_starts (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_to_many_starts", false]], "ts3errortype.error_accounting_unable_to_connect_to_server (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_unable_to_connect_to_server", false]], "ts3errortype.error_accounting_unknown_error (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_unknown_error", false]], "ts3errortype.error_accounting_virtualserver_limit_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_accounting_virtualserver_limit_reached", false]], "ts3errortype.error_already_joined (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_already_joined", false]], "ts3errortype.error_already_registered (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_already_registered", false]], "ts3errortype.error_canceled (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_canceled", false]], "ts3errortype.error_channel_already_in (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_already_in", false]], "ts3errortype.error_channel_can_not_delete_default (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_can_not_delete_default", false]], "ts3errortype.error_channel_default_require_permanent (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_default_require_permanent", false]], "ts3errortype.error_channel_invalid_flags (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_invalid_flags", false]], "ts3errortype.error_channel_invalid_id (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_invalid_id", false]], "ts3errortype.error_channel_invalid_order (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_invalid_order", false]], "ts3errortype.error_channel_invalid_password (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_invalid_password", false]], "ts3errortype.error_channel_invalid_security_hash (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_invalid_security_hash", false]], "ts3errortype.error_channel_maxclients_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_maxclients_reached", false]], "ts3errortype.error_channel_maxfamily_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_maxfamily_reached", false]], "ts3errortype.error_channel_name_inuse (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_name_inuse", false]], "ts3errortype.error_channel_no_filetransfer_supported (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_no_filetransfer_supported", false]], "ts3errortype.error_channel_not_empty (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_not_empty", false]], "ts3errortype.error_channel_parent_not_permanent (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_parent_not_permanent", false]], "ts3errortype.error_channel_protocol_limit_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_channel_protocol_limit_reached", false]], "ts3errortype.error_client_already_subscribed (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_already_subscribed", false]], "ts3errortype.error_client_cannot_verify_now (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_cannot_verify_now", false]], "ts3errortype.error_client_could_not_validate_identity (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_could_not_validate_identity", false]], "ts3errortype.error_client_hacked (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_hacked", false]], "ts3errortype.error_client_invalid_id (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_invalid_id", false]], "ts3errortype.error_client_invalid_password (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_invalid_password", false]], "ts3errortype.error_client_invalid_type (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_invalid_type", false]], "ts3errortype.error_client_is_flooding (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_is_flooding", false]], "ts3errortype.error_client_login_not_permitted (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_login_not_permitted", false]], "ts3errortype.error_client_nickname_inuse (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_nickname_inuse", false]], "ts3errortype.error_client_not_logged_in (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_not_logged_in", false]], "ts3errortype.error_client_not_subscribed (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_not_subscribed", false]], "ts3errortype.error_client_protocol_limit_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_protocol_limit_reached", false]], "ts3errortype.error_client_version_outdated (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_client_version_outdated", false]], "ts3errortype.error_clientlibrary_not_initialised (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_clientlibrary_not_initialised", false]], "ts3errortype.error_command_line_exit_help (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_command_line_exit_help", false]], "ts3errortype.error_command_line_exit_version (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_command_line_exit_version", false]], "ts3errortype.error_command_line_parse_failed (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_command_line_parse_failed", false]], "ts3errortype.error_command_not_found (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_command_not_found", false]], "ts3errortype.error_connection_ip_protocol_missing (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_connection_ip_protocol_missing", false]], "ts3errortype.error_connection_lost (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_connection_lost", false]], "ts3errortype.error_could_not_initialise_input_manager (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_could_not_initialise_input_manager", false]], "ts3errortype.error_could_not_resolve_hostname (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_could_not_resolve_hostname", false]], "ts3errortype.error_currently_not_possible (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_currently_not_possible", false]], "ts3errortype.error_dont_notify (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_dont_notify", false]], "ts3errortype.error_failed_connection_initialisation (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_failed_connection_initialisation", false]], "ts3errortype.error_file_already_exists (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_already_exists", false]], "ts3errortype.error_file_already_in_use (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_already_in_use", false]], "ts3errortype.error_file_connection_lost (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_connection_lost", false]], "ts3errortype.error_file_could_not_open_connection (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_could_not_open_connection", false]], "ts3errortype.error_file_exceeds_file_system_maximum_size (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_exceeds_file_system_maximum_size", false]], "ts3errortype.error_file_exceeds_supplied_size (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_exceeds_supplied_size", false]], "ts3errortype.error_file_invalid_dimension (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_invalid_dimension", false]], "ts3errortype.error_file_invalid_name (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_invalid_name", false]], "ts3errortype.error_file_invalid_path (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_invalid_path", false]], "ts3errortype.error_file_invalid_permissions (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_invalid_permissions", false]], "ts3errortype.error_file_invalid_size (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_invalid_size", false]], "ts3errortype.error_file_invalid_storage_class (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_invalid_storage_class", false]], "ts3errortype.error_file_invalid_transfer_id (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_invalid_transfer_id", false]], "ts3errortype.error_file_io_error (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_io_error", false]], "ts3errortype.error_file_no_files_available (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_no_files_available", false]], "ts3errortype.error_file_no_space_left_on_device (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_no_space_left_on_device", false]], "ts3errortype.error_file_not_found (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_not_found", false]], "ts3errortype.error_file_overwrite_excludes_resume (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_overwrite_excludes_resume", false]], "ts3errortype.error_file_transfer_canceled (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_canceled", false]], "ts3errortype.error_file_transfer_channel_quota_exceeded (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_channel_quota_exceeded", false]], "ts3errortype.error_file_transfer_client_quota_exceeded (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_client_quota_exceeded", false]], "ts3errortype.error_file_transfer_complete (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_complete", false]], "ts3errortype.error_file_transfer_connection_timeout (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_connection_timeout", false]], "ts3errortype.error_file_transfer_interrupted (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_interrupted", false]], "ts3errortype.error_file_transfer_limit_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_limit_reached", false]], "ts3errortype.error_file_transfer_reset (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_reset", false]], "ts3errortype.error_file_transfer_server_quota_exceeded (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_file_transfer_server_quota_exceeded", false]], "ts3errortype.error_handshake_failed (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_handshake_failed", false]], "ts3errortype.error_illegal_server_license (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_illegal_server_license", false]], "ts3errortype.error_invalid_server_connection_handler_id (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_invalid_server_connection_handler_id", false]], "ts3errortype.error_join_request_not_found (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_join_request_not_found", false]], "ts3errortype.error_lib_time_limit_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_lib_time_limit_reached", false]], "ts3errortype.error_no_cached_connection_info (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_no_cached_connection_info", false]], "ts3errortype.error_no_network_port_available (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_no_network_port_available", false]], "ts3errortype.error_not_connected (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_not_connected", false]], "ts3errortype.error_not_implemented (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_not_implemented", false]], "ts3errortype.error_not_streamer (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_not_streamer", false]], "ts3errortype.error_ok (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_ok", false]], "ts3errortype.error_ok_no_error_event (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_ok_no_error_event", false]], "ts3errortype.error_ok_no_update (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_ok_no_update", false]], "ts3errortype.error_out_of_memory (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_out_of_memory", false]], "ts3errortype.error_parameter_checksum (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_parameter_checksum", false]], "ts3errortype.error_parameter_convert (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_parameter_convert", false]], "ts3errortype.error_parameter_invalid (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_parameter_invalid", false]], "ts3errortype.error_parameter_invalid_count (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_parameter_invalid_count", false]], "ts3errortype.error_parameter_invalid_size (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_parameter_invalid_size", false]], "ts3errortype.error_parameter_missing (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_parameter_missing", false]], "ts3errortype.error_parameter_not_found (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_parameter_not_found", false]], "ts3errortype.error_parameter_quote (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_parameter_quote", false]], "ts3errortype.error_permissions (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_permissions", false]], "ts3errortype.error_permissions_client_insufficient (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_permissions_client_insufficient", false]], "ts3errortype.error_port_already_in_use (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_port_already_in_use", false]], "ts3errortype.error_server_duplicate_running (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_duplicate_running", false]], "ts3errortype.error_server_invalid_id (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_invalid_id", false]], "ts3errortype.error_server_invalid_password (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_invalid_password", false]], "ts3errortype.error_server_is_booting (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_is_booting", false]], "ts3errortype.error_server_is_not_running (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_is_not_running", false]], "ts3errortype.error_server_is_shutting_down (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_is_shutting_down", false]], "ts3errortype.error_server_is_virtual (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_is_virtual", false]], "ts3errortype.error_server_maxclients_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_maxclients_reached", false]], "ts3errortype.error_server_running (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_running", false]], "ts3errortype.error_server_status_invalid (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_status_invalid", false]], "ts3errortype.error_server_version_outdated (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_server_version_outdated", false]], "ts3errortype.error_serverlibrary_not_initialised (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_serverlibrary_not_initialised", false]], "ts3errortype.error_sfu_failed_to_start (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sfu_failed_to_start", false]], "ts3errortype.error_sound_channel_mask_mismatch (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_channel_mask_mismatch", false]], "ts3errortype.error_sound_could_not_open_capture_device (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_could_not_open_capture_device", false]], "ts3errortype.error_sound_could_not_open_playback_device (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_could_not_open_playback_device", false]], "ts3errortype.error_sound_device_already_registerred (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_device_already_registerred", false]], "ts3errortype.error_sound_device_busy (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_device_busy", false]], "ts3errortype.error_sound_device_in_use (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_device_in_use", false]], "ts3errortype.error_sound_handler_has_device (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_handler_has_device", false]], "ts3errortype.error_sound_internal_capture (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_internal_capture", false]], "ts3errortype.error_sound_internal_encoder (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_internal_encoder", false]], "ts3errortype.error_sound_internal_playback (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_internal_playback", false]], "ts3errortype.error_sound_internal_preprocessor (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_internal_preprocessor", false]], "ts3errortype.error_sound_invalid_capture_device (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_invalid_capture_device", false]], "ts3errortype.error_sound_invalid_channel_count (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_invalid_channel_count", false]], "ts3errortype.error_sound_invalid_playback_device (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_invalid_playback_device", false]], "ts3errortype.error_sound_invalid_wave (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_invalid_wave", false]], "ts3errortype.error_sound_need_more_data (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_need_more_data", false]], "ts3errortype.error_sound_no_capture_device_available (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_no_capture_device_available", false]], "ts3errortype.error_sound_no_data (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_no_data", false]], "ts3errortype.error_sound_no_playback_device_available (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_no_playback_device_available", false]], "ts3errortype.error_sound_open_wave (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_open_wave", false]], "ts3errortype.error_sound_preprocessor_disabled (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_preprocessor_disabled", false]], "ts3errortype.error_sound_read_wave (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_read_wave", false]], "ts3errortype.error_sound_unknown_device (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_unknown_device", false]], "ts3errortype.error_sound_unsupported_frequency (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_unsupported_frequency", false]], "ts3errortype.error_sound_unsupported_wave (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_sound_unsupported_wave", false]], "ts3errortype.error_stream_not_participating (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_stream_not_participating", false]], "ts3errortype.error_stream_session_limit_reached (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_stream_session_limit_reached", false]], "ts3errortype.error_stream_session_not_found (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_stream_session_not_found", false]], "ts3errortype.error_stream_unknown (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_stream_unknown", false]], "ts3errortype.error_unable_to_bind_network_port (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_unable_to_bind_network_port", false]], "ts3errortype.error_undefined (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_undefined", false]], "ts3errortype.error_vs_critical (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_vs_critical", false]], "ts3errortype.error_whisper_no_targets (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_whisper_no_targets", false]], "ts3errortype.error_whisper_too_many_targets (c enumerator)": [[43, "c.Ts3ErrorType.ERROR_whisper_too_many_targets", false]], "ts3sc_array_ftdeletefile (c struct)": [[42, "c.ts3sc_array_ftdeletefile", false]], "ts3sc_array_ftdeletefile.filename (c var)": [[42, "c.ts3sc_array_ftdeletefile.fileName", false]], "ts3sc_array_ftgetfileinfo (c struct)": [[42, "c.ts3sc_array_ftgetfileinfo", false]], "ts3sc_array_ftgetfileinfo.channelid (c var)": [[42, "c.ts3sc_array_ftgetfileinfo.channelID", false]], "ts3sc_array_ftgetfileinfo.filename (c var)": [[42, "c.ts3sc_array_ftgetfileinfo.fileName", false]], "ts3sc_data_ftcreatedir (c struct)": [[42, "c.ts3sc_data_ftcreatedir", false]], "ts3sc_data_ftcreatedir.channelid (c var)": [[42, "c.ts3sc_data_ftcreatedir.channelID", false]], "ts3sc_data_ftcreatedir.dirname (c var)": [[42, "c.ts3sc_data_ftcreatedir.dirname", false]], "ts3sc_data_ftdeletefile (c struct)": [[42, "c.ts3sc_data_ftdeletefile", false]], "ts3sc_data_ftdeletefile.channelid (c var)": [[42, "c.ts3sc_data_ftdeletefile.channelID", false]], "ts3sc_data_ftgetfileinfo (c struct)": [[42, "c.ts3sc_data_ftgetfileinfo", false]], "ts3sc_data_ftgetfileinfo.reserved (c var)": [[42, "c.ts3sc_data_ftgetfileinfo.RESERVED", false]], "ts3sc_data_ftgetfilelist (c struct)": [[42, "c.ts3sc_data_ftgetfilelist", false]], "ts3sc_data_ftgetfilelist.channelid (c var)": [[42, "c.ts3sc_data_ftgetfilelist.channelID", false]], "ts3sc_data_ftgetfilelist.path (c var)": [[42, "c.ts3sc_data_ftgetfilelist.path", false]], "ts3sc_data_ftinitdownload (c struct)": [[42, "c.ts3sc_data_ftinitdownload", false]], "ts3sc_data_ftinitdownload.channelid (c var)": [[42, "c.ts3sc_data_ftinitdownload.channelID", false]], "ts3sc_data_ftinitdownload.filename (c var)": [[42, "c.ts3sc_data_ftinitdownload.fileName", false]], "ts3sc_data_ftinitupload (c struct)": [[42, "c.ts3sc_data_ftinitupload", false]], "ts3sc_data_ftinitupload.channelid (c var)": [[42, "c.ts3sc_data_ftinitupload.channelID", false]], "ts3sc_data_ftinitupload.filename (c var)": [[42, "c.ts3sc_data_ftinitupload.fileName", false]], "ts3sc_data_ftinitupload.filesize (c var)": [[42, "c.ts3sc_data_ftinitupload.fileSize", false]], "ts3sc_data_ftinitupload.overwrite (c var)": [[42, "c.ts3sc_data_ftinitupload.overwrite", false]], "ts3sc_data_ftinitupload.resume (c var)": [[42, "c.ts3sc_data_ftinitupload.resume", false]], "ts3sc_data_ftrenamefile (c struct)": [[42, "c.ts3sc_data_ftrenamefile", false]], "ts3sc_data_ftrenamefile.fromchannelid (c var)": [[42, "c.ts3sc_data_ftrenamefile.fromChannelID", false]], "ts3sc_data_ftrenamefile.newfilename (c var)": [[42, "c.ts3sc_data_ftrenamefile.newFileName", false]], "ts3sc_data_ftrenamefile.oldfilename (c var)": [[42, "c.ts3sc_data_ftrenamefile.oldFileName", false]], "ts3sc_data_ftrenamefile.tochannelid (c var)": [[42, "c.ts3sc_data_ftrenamefile.toChannelID", false]], "ts3sc_ftcreatedir (c struct)": [[42, "c.ts3sc_ftcreatedir", false]], "ts3sc_ftcreatedir.d (c var)": [[42, "c.ts3sc_ftcreatedir.d", false]], "ts3sc_ftcreatedir.m (c var)": [[42, "c.ts3sc_ftcreatedir.m", false]], "ts3sc_ftdeletefile (c struct)": [[42, "c.ts3sc_ftdeletefile", false]], "ts3sc_ftdeletefile.d (c var)": [[42, "c.ts3sc_ftdeletefile.d", false]], "ts3sc_ftdeletefile.m (c var)": [[42, "c.ts3sc_ftdeletefile.m", false]], "ts3sc_ftdeletefile.r (c var)": [[42, "c.ts3sc_ftdeletefile.r", false]], "ts3sc_ftdeletefile.r_size (c var)": [[42, "c.ts3sc_ftdeletefile.r_size", false]], "ts3sc_ftgetfileinfo (c struct)": [[42, "c.ts3sc_ftgetfileinfo", false]], "ts3sc_ftgetfileinfo.d (c var)": [[42, "c.ts3sc_ftgetfileinfo.d", false]], "ts3sc_ftgetfileinfo.m (c var)": [[42, "c.ts3sc_ftgetfileinfo.m", false]], "ts3sc_ftgetfileinfo.r (c var)": [[42, "c.ts3sc_ftgetfileinfo.r", false]], "ts3sc_ftgetfileinfo.r_size (c var)": [[42, "c.ts3sc_ftgetfileinfo.r_size", false]], "ts3sc_ftgetfilelist (c struct)": [[42, "c.ts3sc_ftgetfilelist", false]], "ts3sc_ftgetfilelist.d (c var)": [[42, "c.ts3sc_ftgetfilelist.d", false]], "ts3sc_ftgetfilelist.m (c var)": [[42, "c.ts3sc_ftgetfilelist.m", false]], "ts3sc_ftinitdownload (c struct)": [[42, "c.ts3sc_ftinitdownload", false]], "ts3sc_ftinitdownload.d (c var)": [[42, "c.ts3sc_ftinitdownload.d", false]], "ts3sc_ftinitdownload.m (c var)": [[42, "c.ts3sc_ftinitdownload.m", false]], "ts3sc_ftinitupload (c struct)": [[42, "c.ts3sc_ftinitupload", false]], "ts3sc_ftinitupload.d (c var)": [[42, "c.ts3sc_ftinitupload.d", false]], "ts3sc_ftinitupload.m (c var)": [[42, "c.ts3sc_ftinitupload.m", false]], "ts3sc_ftrenamefile (c struct)": [[42, "c.ts3sc_ftrenamefile", false]], "ts3sc_ftrenamefile.d (c var)": [[42, "c.ts3sc_ftrenamefile.d", false]], "ts3sc_ftrenamefile.m (c var)": [[42, "c.ts3sc_ftrenamefile.m", false]], "ts3sc_meta_ftcreatedir (c struct)": [[42, "c.ts3sc_meta_ftcreatedir", false]], "ts3sc_meta_ftcreatedir.reserved (c var)": [[42, "c.ts3sc_meta_ftcreatedir.RESERVED", false]], "ts3sc_meta_ftdeletefile (c struct)": [[42, "c.ts3sc_meta_ftdeletefile", false]], "ts3sc_meta_ftdeletefile.reserved (c var)": [[42, "c.ts3sc_meta_ftdeletefile.RESERVED", false]], "ts3sc_meta_ftgetfileinfo (c struct)": [[42, "c.ts3sc_meta_ftgetfileinfo", false]], "ts3sc_meta_ftgetfileinfo.reserved (c var)": [[42, "c.ts3sc_meta_ftgetfileinfo.RESERVED", false]], "ts3sc_meta_ftgetfilelist (c struct)": [[42, "c.ts3sc_meta_ftgetfilelist", false]], "ts3sc_meta_ftgetfilelist.reserved (c var)": [[42, "c.ts3sc_meta_ftgetfilelist.RESERVED", false]], "ts3sc_meta_ftinitdownload (c struct)": [[42, "c.ts3sc_meta_ftinitdownload", false]], "ts3sc_meta_ftinitdownload.reserved (c var)": [[42, "c.ts3sc_meta_ftinitdownload.RESERVED", false]], "ts3sc_meta_ftinitupload (c struct)": [[42, "c.ts3sc_meta_ftinitupload", false]], "ts3sc_meta_ftinitupload.reserved (c var)": [[42, "c.ts3sc_meta_ftinitupload.RESERVED", false]], "ts3sc_meta_ftrenamefile (c struct)": [[42, "c.ts3sc_meta_ftrenamefile", false]], "ts3sc_meta_ftrenamefile.has_tochannelid (c var)": [[42, "c.ts3sc_meta_ftrenamefile.has_toChannelID", false]], "ts3server_calculatesecurityhash (c function)": [[73, "c.ts3server_calculateSecurityHash", false]], "ts3server_channeldelete (c function)": [[73, "c.ts3server_channelDelete", false]], "ts3server_channelmove (c function)": [[73, "c.ts3server_channelMove", false]], "ts3server_clientmove (c function)": [[73, "c.ts3server_clientMove", false]], "ts3server_clientskickfromserver (c function)": [[73, "c.ts3server_clientsKickFromServer", false]], "ts3server_createchannel (c function)": [[73, "c.ts3server_createChannel", false]], "ts3server_createsecuritysalt (c function)": [[73, "c.ts3server_createSecuritySalt", false]], "ts3server_createvirtualserver (c function)": [[73, "c.ts3server_createVirtualServer", false]], "ts3server_createvirtualserver2 (c function)": [[73, "c.ts3server_createVirtualServer2", false]], "ts3server_destroyserverlib (c function)": [[73, "c.ts3server_destroyServerLib", false]], "ts3server_disableclientcommand (c function)": [[73, "c.ts3server_disableClientCommand", false]], "ts3server_enablefilemanager (c function)": [[59, "c.ts3server_enableFileManager", false], [73, "c.ts3server_enableFileManager", false]], "ts3server_flushchannelcreation (c function)": [[73, "c.ts3server_flushChannelCreation", false]], "ts3server_flushchannelvariable (c function)": [[73, "c.ts3server_flushChannelVariable", false]], "ts3server_flushclientvariable (c function)": [[73, "c.ts3server_flushClientVariable", false]], "ts3server_flushvirtualservervariable (c function)": [[73, "c.ts3server_flushVirtualServerVariable", false]], "ts3server_freememory (c function)": [[73, "c.ts3server_freeMemory", false]], "ts3server_getchannelclientlist (c function)": [[73, "c.ts3server_getChannelClientList", false]], "ts3server_getchannelcreationparamsvariables (c function)": [[73, "c.ts3server_getChannelCreationParamsVariables", false]], "ts3server_getchannellist (c function)": [[73, "c.ts3server_getChannelList", false]], "ts3server_getchannelofclient (c function)": [[73, "c.ts3server_getChannelOfClient", false]], "ts3server_getchannelvariableasint (c function)": [[73, "c.ts3server_getChannelVariableAsInt", false]], "ts3server_getchannelvariableasstring (c function)": [[73, "c.ts3server_getChannelVariableAsString", false]], "ts3server_getchannelvariableasuint64 (c function)": [[73, "c.ts3server_getChannelVariableAsUInt64", false]], "ts3server_getclientidsfromuids (c function)": [[73, "c.ts3server_getClientIDSfromUIDS", false]], "ts3server_getclientlist (c function)": [[73, "c.ts3server_getClientList", false]], "ts3server_getclientvariableasint (c function)": [[73, "c.ts3server_getClientVariableAsInt", false]], "ts3server_getclientvariableasstring (c function)": [[73, "c.ts3server_getClientVariableAsString", false]], "ts3server_getclientvariableasuint64 (c function)": [[73, "c.ts3server_getClientVariableAsUInt64", false]], "ts3server_getglobalerrormessage (c function)": [[73, "c.ts3server_getGlobalErrorMessage", false]], "ts3server_getparentchannelofchannel (c function)": [[73, "c.ts3server_getParentChannelOfChannel", false]], "ts3server_getserverlibversion (c function)": [[73, "c.ts3server_getServerLibVersion", false]], "ts3server_getserverlibversionnumber (c function)": [[73, "c.ts3server_getServerLibVersionNumber", false]], "ts3server_getvariableasint (c function)": [[73, "c.ts3server_getVariableAsInt", false]], "ts3server_getvariableasstring (c function)": [[73, "c.ts3server_getVariableAsString", false]], "ts3server_getvariableasuint64 (c function)": [[73, "c.ts3server_getVariableAsUInt64", false]], "ts3server_getvirtualserverconnectionvariableasdouble (c function)": [[73, "c.ts3server_getVirtualServerConnectionVariableAsDouble", false]], "ts3server_getvirtualserverconnectionvariableasuint64 (c function)": [[73, "c.ts3server_getVirtualServerConnectionVariableAsUInt64", false]], "ts3server_getvirtualservercreationparamschannelcreationparams (c function)": [[73, "c.ts3server_getVirtualServerCreationParamsChannelCreationParams", false]], "ts3server_getvirtualservercreationparamsvariables (c function)": [[73, "c.ts3server_getVirtualServerCreationParamsVariables", false]], "ts3server_getvirtualserverkeypair (c function)": [[73, "c.ts3server_getVirtualServerKeyPair", false]], "ts3server_getvirtualserverlist (c function)": [[73, "c.ts3server_getVirtualServerList", false]], "ts3server_getvirtualservervariableasint (c function)": [[73, "c.ts3server_getVirtualServerVariableAsInt", false]], "ts3server_getvirtualservervariableasstring (c function)": [[73, "c.ts3server_getVirtualServerVariableAsString", false]], "ts3server_getvirtualservervariableasuint64 (c function)": [[73, "c.ts3server_getVirtualServerVariableAsUInt64", false]], "ts3server_initserverlib (c function)": [[73, "c.ts3server_initServerLib", false]], "ts3server_makechannelcreationparams (c function)": [[73, "c.ts3server_makeChannelCreationParams", false]], "ts3server_makevirtualservercreationparams (c function)": [[73, "c.ts3server_makeVirtualServerCreationParams", false]], "ts3server_setchannelcreationparams (c function)": [[73, "c.ts3server_setChannelCreationParams", false]], "ts3server_setchannelvariableasint (c function)": [[73, "c.ts3server_setChannelVariableAsInt", false]], "ts3server_setchannelvariableasstring (c function)": [[73, "c.ts3server_setChannelVariableAsString", false]], "ts3server_setchannelvariableasuint64 (c function)": [[73, "c.ts3server_setChannelVariableAsUInt64", false]], "ts3server_setclientvariableasint (c function)": [[73, "c.ts3server_setClientVariableAsInt", false]], "ts3server_setclientvariableasstring (c function)": [[73, "c.ts3server_setClientVariableAsString", false]], "ts3server_setclientvariableasuint64 (c function)": [[73, "c.ts3server_setClientVariableAsUInt64", false]], "ts3server_setclientwhisperlist (c function)": [[73, "c.ts3server_setClientWhisperList", false]], "ts3server_setlogverbosity (c function)": [[73, "c.ts3server_setLogVerbosity", false]], "ts3server_setvariableasint (c function)": [[73, "c.ts3server_setVariableAsInt", false]], "ts3server_setvariableasstring (c function)": [[73, "c.ts3server_setVariableAsString", false]], "ts3server_setvariableasuint64 (c function)": [[73, "c.ts3server_setVariableAsUInt64", false]], "ts3server_setvirtualservercreationparams (c function)": [[73, "c.ts3server_setVirtualServerCreationParams", false]], "ts3server_setvirtualservervariableasint (c function)": [[73, "c.ts3server_setVirtualServerVariableAsInt", false]], "ts3server_setvirtualservervariableasstring (c function)": [[73, "c.ts3server_setVirtualServerVariableAsString", false]], "ts3server_setvirtualservervariableasuint64 (c function)": [[73, "c.ts3server_setVirtualServerVariableAsUInt64", false]], "ts3server_stopvirtualserver (c function)": [[73, "c.ts3server_stopVirtualServer", false]], "variablesexport (c struct)": [[42, "c.VariablesExport", false]], "variablesexport.items (c var)": [[42, "c.VariablesExport.items", false]], "variablesexportitem (c struct)": [[42, "c.VariablesExportItem", false]], "variablesexportitem.current (c var)": [[42, "c.VariablesExportItem.current", false]], "variablesexportitem.itemisvalid (c var)": [[42, "c.VariablesExportItem.itemIsValid", false]], "variablesexportitem.proposed (c var)": [[42, "c.VariablesExportItem.proposed", false]], "variablesexportitem.proposedisset (c var)": [[42, "c.VariablesExportItem.proposedIsSet", false]], "virtualservercreateflags (c enum)": [[73, "c.VirtualServerCreateFlags", false]], "virtualservercreateflags.virtualserver_create_flag_none (c enumerator)": [[73, "c.VirtualServerCreateFlags.VIRTUALSERVER_CREATE_FLAG_NONE", false]], "virtualservercreateflags.virtualserver_create_flag_passwords_encrypted (c enumerator)": [[73, "c.VirtualServerCreateFlags.VIRTUALSERVER_CREATE_FLAG_PASSWORDS_ENCRYPTED", false]], "virtualserverproperties (c enum)": [[45, "c.VirtualServerProperties", false]], "virtualserverproperties.virtualserver_address (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_ADDRESS", false]], "virtualserverproperties.virtualserver_channels_online (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_CHANNELS_ONLINE", false]], "virtualserverproperties.virtualserver_clients_online (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_CLIENTS_ONLINE", false]], "virtualserverproperties.virtualserver_codec_encryption_mode (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_CODEC_ENCRYPTION_MODE", false]], "virtualserverproperties.virtualserver_created (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_CREATED", false]], "virtualserverproperties.virtualserver_encryption_ciphers (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_ENCRYPTION_CIPHERS", false]], "virtualserverproperties.virtualserver_endmarker (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_ENDMARKER", false]], "virtualserverproperties.virtualserver_filebase (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_FILEBASE", false]], "virtualserverproperties.virtualserver_log_filetransfer (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_LOG_FILETRANSFER", false]], "virtualserverproperties.virtualserver_max_download_total_bandwidth (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH", false]], "virtualserverproperties.virtualserver_max_upload_total_bandwidth (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH", false]], "virtualserverproperties.virtualserver_maxclients (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_MAXCLIENTS", false]], "virtualserverproperties.virtualserver_name (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_NAME", false]], "virtualserverproperties.virtualserver_password (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_PASSWORD", false]], "virtualserverproperties.virtualserver_platform (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_PLATFORM", false]], "virtualserverproperties.virtualserver_unique_identifier (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_UNIQUE_IDENTIFIER", false]], "virtualserverproperties.virtualserver_uptime (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_UPTIME", false]], "virtualserverproperties.virtualserver_version (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_VERSION", false]], "virtualserverproperties.virtualserver_version_sign (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_VERSION_SIGN", false]], "virtualserverproperties.virtualserver_welcomemessage (c enumerator)": [[45, "c.VirtualServerProperties.VIRTUALSERVER_WELCOMEMESSAGE", false]], "visibility (c enum)": [[42, "c.Visibility", false]], "visibility.enter_visibility (c enumerator)": [[42, "c.Visibility.ENTER_VISIBILITY", false]], "visibility.leave_visibility (c enumerator)": [[42, "c.Visibility.LEAVE_VISIBILITY", false]], "visibility.retain_visibility (c enumerator)": [[42, "c.Visibility.RETAIN_VISIBILITY", false]]}, "objects": {"": [[45, 0, 1, "c.ChannelProperties.CHANNEL_CODEC", "CHANNEL_CODEC"], [45, 0, 1, "c.ChannelProperties.CHANNEL_CODEC_IS_UNENCRYPTED", "CHANNEL_CODEC_IS_UNENCRYPTED"], [45, 0, 1, "c.ChannelProperties.CHANNEL_CODEC_LATENCY_FACTOR", "CHANNEL_CODEC_LATENCY_FACTOR"], [45, 0, 1, "c.ChannelProperties.CHANNEL_CODEC_QUALITY", "CHANNEL_CODEC_QUALITY"], [73, 0, 1, "c.ChannelCreateFlags.CHANNEL_CREATE_FLAG_NONE", "CHANNEL_CREATE_FLAG_NONE"], [73, 0, 1, "c.ChannelCreateFlags.CHANNEL_CREATE_FLAG_PASSWORDS_ENCRYPTED", "CHANNEL_CREATE_FLAG_PASSWORDS_ENCRYPTED"], [45, 0, 1, "c.ChannelProperties.CHANNEL_DELETE_DELAY", "CHANNEL_DELETE_DELAY"], [45, 0, 1, "c.ChannelProperties.CHANNEL_DESCRIPTION", "CHANNEL_DESCRIPTION"], [45, 0, 1, "c.ChannelProperties.CHANNEL_ENDMARKER", "CHANNEL_ENDMARKER"], [45, 0, 1, "c.ChannelProperties.CHANNEL_FLAG_DEFAULT", "CHANNEL_FLAG_DEFAULT"], [45, 0, 1, "c.ChannelProperties.CHANNEL_FLAG_PASSWORD", "CHANNEL_FLAG_PASSWORD"], [45, 0, 1, "c.ChannelProperties.CHANNEL_FLAG_PERMANENT", "CHANNEL_FLAG_PERMANENT"], [45, 0, 1, "c.ChannelProperties.CHANNEL_FLAG_SEMI_PERMANENT", "CHANNEL_FLAG_SEMI_PERMANENT"], [45, 0, 1, "c.ChannelProperties.CHANNEL_MAXCLIENTS", "CHANNEL_MAXCLIENTS"], [45, 0, 1, "c.ChannelProperties.CHANNEL_MAXFAMILYCLIENTS", "CHANNEL_MAXFAMILYCLIENTS"], [45, 0, 1, "c.ChannelProperties.CHANNEL_NAME", "CHANNEL_NAME"], [45, 0, 1, "c.ChannelProperties.CHANNEL_ORDER", "CHANNEL_ORDER"], [45, 0, 1, "c.ChannelProperties.CHANNEL_PASSWORD", "CHANNEL_PASSWORD"], [45, 0, 1, "c.ChannelProperties.CHANNEL_SECURITY_SALT", "CHANNEL_SECURITY_SALT"], [45, 0, 1, "c.ChannelProperties.CHANNEL_TOPIC", "CHANNEL_TOPIC"], [45, 0, 1, "c.ChannelProperties.CHANNEL_UNIQUE_IDENTIFIER", "CHANNEL_UNIQUE_IDENTIFIER"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_ENDMARKER", "CLIENT_COMMAND_ENDMARKER"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_filetransfers", "CLIENT_COMMAND_filetransfers"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_flushChannelCreation", "CLIENT_COMMAND_flushChannelCreation"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_flushChannelUpdates", "CLIENT_COMMAND_flushChannelUpdates"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestChannelDelete", "CLIENT_COMMAND_requestChannelDelete"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestChannelDescription", "CLIENT_COMMAND_requestChannelDescription"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestChannelMove", "CLIENT_COMMAND_requestChannelMove"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestChannelXXSubscribeXXX", "CLIENT_COMMAND_requestChannelXXSubscribeXXX"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestClientKickFromXXX", "CLIENT_COMMAND_requestClientKickFromXXX"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestClientMove", "CLIENT_COMMAND_requestClientMove"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestConnectionInfo", "CLIENT_COMMAND_requestConnectionInfo"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestSendXXXTextMsg", "CLIENT_COMMAND_requestSendXXXTextMsg"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestServerConnectionInfo", "CLIENT_COMMAND_requestServerConnectionInfo"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestXXMuteClients", "CLIENT_COMMAND_requestXXMuteClients"], [45, 0, 1, "c.ClientProperties.CLIENT_DEFAULT_CHANNEL", "CLIENT_DEFAULT_CHANNEL"], [45, 0, 1, "c.ClientProperties.CLIENT_DEFAULT_CHANNEL_PASSWORD", "CLIENT_DEFAULT_CHANNEL_PASSWORD"], [45, 0, 1, "c.ClientProperties.CLIENT_ENCRYPTION_CIPHERS", "CLIENT_ENCRYPTION_CIPHERS"], [45, 0, 1, "c.ClientProperties.CLIENT_ENDMARKER", "CLIENT_ENDMARKER"], [45, 0, 1, "c.ClientProperties.CLIENT_FLAG_TALKING", "CLIENT_FLAG_TALKING"], [45, 0, 1, "c.ClientProperties.CLIENT_IDLE_TIME", "CLIENT_IDLE_TIME"], [45, 0, 1, "c.ClientProperties.CLIENT_INPUT_DEACTIVATED", "CLIENT_INPUT_DEACTIVATED"], [45, 0, 1, "c.ClientProperties.CLIENT_INPUT_HARDWARE", "CLIENT_INPUT_HARDWARE"], [45, 0, 1, "c.ClientProperties.CLIENT_INPUT_MUTED", "CLIENT_INPUT_MUTED"], [45, 0, 1, "c.ClientProperties.CLIENT_IS_MUTED", "CLIENT_IS_MUTED"], [45, 0, 1, "c.ClientProperties.CLIENT_IS_RECORDING", "CLIENT_IS_RECORDING"], [45, 0, 1, "c.ClientProperties.CLIENT_IS_STREAMING", "CLIENT_IS_STREAMING"], [45, 0, 1, "c.ClientProperties.CLIENT_META_DATA", "CLIENT_META_DATA"], [45, 0, 1, "c.ClientProperties.CLIENT_NICKNAME", "CLIENT_NICKNAME"], [45, 0, 1, "c.ClientProperties.CLIENT_OUTPUTONLY_MUTED", "CLIENT_OUTPUTONLY_MUTED"], [45, 0, 1, "c.ClientProperties.CLIENT_OUTPUT_HARDWARE", "CLIENT_OUTPUT_HARDWARE"], [45, 0, 1, "c.ClientProperties.CLIENT_OUTPUT_MUTED", "CLIENT_OUTPUT_MUTED"], [45, 0, 1, "c.ClientProperties.CLIENT_PLATFORM", "CLIENT_PLATFORM"], [45, 0, 1, "c.ClientProperties.CLIENT_SECURITY_HASH", "CLIENT_SECURITY_HASH"], [45, 0, 1, "c.ClientProperties.CLIENT_SERVER_PASSWORD", "CLIENT_SERVER_PASSWORD"], [45, 0, 1, "c.ClientProperties.CLIENT_UNIQUE_IDENTIFIER", "CLIENT_UNIQUE_IDENTIFIER"], [45, 0, 1, "c.ClientProperties.CLIENT_VERSION", "CLIENT_VERSION"], [45, 0, 1, "c.ClientProperties.CLIENT_VERSION_SIGN", "CLIENT_VERSION_SIGN"], [45, 0, 1, "c.ClientProperties.CLIENT_VOLUME_MODIFICATOR", "CLIENT_VOLUME_MODIFICATOR"], [42, 0, 1, "c.CodecType.CODEC_CELT_MONO", "CODEC_CELT_MONO"], [42, 0, 1, "c.CodecEncryptionMode.CODEC_ENCRYPTION_FORCED_OFF", "CODEC_ENCRYPTION_FORCED_OFF"], [42, 0, 1, "c.CodecEncryptionMode.CODEC_ENCRYPTION_FORCED_ON", "CODEC_ENCRYPTION_FORCED_ON"], [42, 0, 1, "c.CodecEncryptionMode.CODEC_ENCRYPTION_PER_CHANNEL", "CODEC_ENCRYPTION_PER_CHANNEL"], [42, 0, 1, "c.CodecType.CODEC_OPUS_MUSIC", "CODEC_OPUS_MUSIC"], [42, 0, 1, "c.CodecType.CODEC_OPUS_VOICE", "CODEC_OPUS_VOICE"], [42, 0, 1, "c.CodecType.CODEC_SPEEX_NARROWBAND", "CODEC_SPEEX_NARROWBAND"], [42, 0, 1, "c.CodecType.CODEC_SPEEX_ULTRAWIDEBAND", "CODEC_SPEEX_ULTRAWIDEBAND"], [42, 0, 1, "c.CodecType.CODEC_SPEEX_WIDEBAND", "CODEC_SPEEX_WIDEBAND"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_CONTROL", "CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_KEEPALIVE", "CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_SPEECH", "CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL", "CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_CONTROL", "CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_KEEPALIVE", "CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_SPEECH", "CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL", "CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_CONTROL", "CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_KEEPALIVE", "CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_SPEECH", "CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL", "CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_CONTROL", "CONNECTION_BANDWIDTH_SENT_LAST_SECOND_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_KEEPALIVE", "CONNECTION_BANDWIDTH_SENT_LAST_SECOND_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_SPEECH", "CONNECTION_BANDWIDTH_SENT_LAST_SECOND_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL", "CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_CONTROL", "CONNECTION_BYTES_RECEIVED_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_KEEPALIVE", "CONNECTION_BYTES_RECEIVED_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_SPEECH", "CONNECTION_BYTES_RECEIVED_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_TOTAL", "CONNECTION_BYTES_RECEIVED_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_SENT_CONTROL", "CONNECTION_BYTES_SENT_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_SENT_KEEPALIVE", "CONNECTION_BYTES_SENT_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_SENT_SPEECH", "CONNECTION_BYTES_SENT_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_SENT_TOTAL", "CONNECTION_BYTES_SENT_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_CONTROL", "CONNECTION_CLIENT2SERVER_PACKETLOSS_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_KEEPALIVE", "CONNECTION_CLIENT2SERVER_PACKETLOSS_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_SPEECH", "CONNECTION_CLIENT2SERVER_PACKETLOSS_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_TOTAL", "CONNECTION_CLIENT2SERVER_PACKETLOSS_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT_IP", "CONNECTION_CLIENT_IP"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT_PORT", "CONNECTION_CLIENT_PORT"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CONNECTED_TIME", "CONNECTION_CONNECTED_TIME"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_0", "CONNECTION_DUMMY_0"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_1", "CONNECTION_DUMMY_1"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_2", "CONNECTION_DUMMY_2"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_3", "CONNECTION_DUMMY_3"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_4", "CONNECTION_DUMMY_4"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_5", "CONNECTION_DUMMY_5"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_6", "CONNECTION_DUMMY_6"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_7", "CONNECTION_DUMMY_7"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_8", "CONNECTION_DUMMY_8"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_9", "CONNECTION_DUMMY_9"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_ENDMARKER", "CONNECTION_ENDMARKER"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED", "CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BANDWIDTH_SENT", "CONNECTION_FILETRANSFER_BANDWIDTH_SENT"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL", "CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL", "CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_IDLE_TIME", "CONNECTION_IDLE_TIME"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETLOSS_CONTROL", "CONNECTION_PACKETLOSS_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETLOSS_KEEPALIVE", "CONNECTION_PACKETLOSS_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETLOSS_SPEECH", "CONNECTION_PACKETLOSS_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETLOSS_TOTAL", "CONNECTION_PACKETLOSS_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_CONTROL", "CONNECTION_PACKETS_RECEIVED_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_KEEPALIVE", "CONNECTION_PACKETS_RECEIVED_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_SPEECH", "CONNECTION_PACKETS_RECEIVED_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_TOTAL", "CONNECTION_PACKETS_RECEIVED_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_CONTROL", "CONNECTION_PACKETS_SENT_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_KEEPALIVE", "CONNECTION_PACKETS_SENT_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_SPEECH", "CONNECTION_PACKETS_SENT_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_TOTAL", "CONNECTION_PACKETS_SENT_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PING", "CONNECTION_PING"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PING_DEVIATION", "CONNECTION_PING_DEVIATION"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_CONTROL", "CONNECTION_SERVER2CLIENT_PACKETLOSS_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_KEEPALIVE", "CONNECTION_SERVER2CLIENT_PACKETLOSS_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_SPEECH", "CONNECTION_SERVER2CLIENT_PACKETLOSS_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL", "CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER_IP", "CONNECTION_SERVER_IP"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER_PORT", "CONNECTION_SERVER_PORT"], [73, 1, 1, "c.ChannelCreateFlags", "ChannelCreateFlags"], [45, 1, 1, "c.ChannelProperties", "ChannelProperties"], [42, 1, 1, "c.ClientCommand", "ClientCommand"], [42, 2, 1, "c.ClientMiniExport", "ClientMiniExport"], [45, 1, 1, "c.ClientProperties", "ClientProperties"], [0, 2, 1, "c.ClientUIFunctions", "ClientUIFunctions"], [42, 1, 1, "c.CodecEncryptionMode", "CodecEncryptionMode"], [42, 1, 1, "c.CodecType", "CodecType"], [42, 1, 1, "c.ConnectStatus", "ConnectStatus"], [45, 1, 1, "c.ConnectionProperties", "ConnectionProperties"], [42, 0, 1, "c.Visibility.ENTER_VISIBILITY", "ENTER_VISIBILITY"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_already_started", "ERROR_accounting_already_started"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_instance_check_error", "ERROR_accounting_instance_check_error"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_instance_duplicated", "ERROR_accounting_instance_duplicated"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_instance_limit_reached", "ERROR_accounting_instance_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_license_date_not_ok", "ERROR_accounting_license_date_not_ok"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_license_file_invalid", "ERROR_accounting_license_file_invalid"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_license_file_not_found", "ERROR_accounting_license_file_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_not_started", "ERROR_accounting_not_started"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_running_elsewhere", "ERROR_accounting_running_elsewhere"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_server_error", "ERROR_accounting_server_error"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_slot_limit_reached", "ERROR_accounting_slot_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_to_many_starts", "ERROR_accounting_to_many_starts"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_unable_to_connect_to_server", "ERROR_accounting_unable_to_connect_to_server"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_unknown_error", "ERROR_accounting_unknown_error"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_virtualserver_limit_reached", "ERROR_accounting_virtualserver_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_already_joined", "ERROR_already_joined"], [43, 0, 1, "c.Ts3ErrorType.ERROR_already_registered", "ERROR_already_registered"], [43, 0, 1, "c.Ts3ErrorType.ERROR_canceled", "ERROR_canceled"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_already_in", "ERROR_channel_already_in"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_can_not_delete_default", "ERROR_channel_can_not_delete_default"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_default_require_permanent", "ERROR_channel_default_require_permanent"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_flags", "ERROR_channel_invalid_flags"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_id", "ERROR_channel_invalid_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_order", "ERROR_channel_invalid_order"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_password", "ERROR_channel_invalid_password"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_security_hash", "ERROR_channel_invalid_security_hash"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_maxclients_reached", "ERROR_channel_maxclients_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_maxfamily_reached", "ERROR_channel_maxfamily_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_name_inuse", "ERROR_channel_name_inuse"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_no_filetransfer_supported", "ERROR_channel_no_filetransfer_supported"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_not_empty", "ERROR_channel_not_empty"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_parent_not_permanent", "ERROR_channel_parent_not_permanent"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_protocol_limit_reached", "ERROR_channel_protocol_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_already_subscribed", "ERROR_client_already_subscribed"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_cannot_verify_now", "ERROR_client_cannot_verify_now"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_could_not_validate_identity", "ERROR_client_could_not_validate_identity"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_hacked", "ERROR_client_hacked"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_invalid_id", "ERROR_client_invalid_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_invalid_password", "ERROR_client_invalid_password"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_invalid_type", "ERROR_client_invalid_type"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_is_flooding", "ERROR_client_is_flooding"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_login_not_permitted", "ERROR_client_login_not_permitted"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_nickname_inuse", "ERROR_client_nickname_inuse"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_not_logged_in", "ERROR_client_not_logged_in"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_not_subscribed", "ERROR_client_not_subscribed"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_protocol_limit_reached", "ERROR_client_protocol_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_version_outdated", "ERROR_client_version_outdated"], [43, 0, 1, "c.Ts3ErrorType.ERROR_clientlibrary_not_initialised", "ERROR_clientlibrary_not_initialised"], [43, 0, 1, "c.Ts3ErrorType.ERROR_command_line_exit_help", "ERROR_command_line_exit_help"], [43, 0, 1, "c.Ts3ErrorType.ERROR_command_line_exit_version", "ERROR_command_line_exit_version"], [43, 0, 1, "c.Ts3ErrorType.ERROR_command_line_parse_failed", "ERROR_command_line_parse_failed"], [43, 0, 1, "c.Ts3ErrorType.ERROR_command_not_found", "ERROR_command_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_connection_ip_protocol_missing", "ERROR_connection_ip_protocol_missing"], [43, 0, 1, "c.Ts3ErrorType.ERROR_connection_lost", "ERROR_connection_lost"], [43, 0, 1, "c.Ts3ErrorType.ERROR_could_not_initialise_input_manager", "ERROR_could_not_initialise_input_manager"], [43, 0, 1, "c.Ts3ErrorType.ERROR_could_not_resolve_hostname", "ERROR_could_not_resolve_hostname"], [43, 0, 1, "c.Ts3ErrorType.ERROR_currently_not_possible", "ERROR_currently_not_possible"], [43, 0, 1, "c.Ts3ErrorType.ERROR_dont_notify", "ERROR_dont_notify"], [43, 0, 1, "c.Ts3ErrorType.ERROR_failed_connection_initialisation", "ERROR_failed_connection_initialisation"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_already_exists", "ERROR_file_already_exists"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_already_in_use", "ERROR_file_already_in_use"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_connection_lost", "ERROR_file_connection_lost"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_could_not_open_connection", "ERROR_file_could_not_open_connection"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_exceeds_file_system_maximum_size", "ERROR_file_exceeds_file_system_maximum_size"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_exceeds_supplied_size", "ERROR_file_exceeds_supplied_size"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_dimension", "ERROR_file_invalid_dimension"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_name", "ERROR_file_invalid_name"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_path", "ERROR_file_invalid_path"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_permissions", "ERROR_file_invalid_permissions"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_size", "ERROR_file_invalid_size"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_storage_class", "ERROR_file_invalid_storage_class"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_transfer_id", "ERROR_file_invalid_transfer_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_io_error", "ERROR_file_io_error"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_no_files_available", "ERROR_file_no_files_available"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_no_space_left_on_device", "ERROR_file_no_space_left_on_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_not_found", "ERROR_file_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_overwrite_excludes_resume", "ERROR_file_overwrite_excludes_resume"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_canceled", "ERROR_file_transfer_canceled"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_channel_quota_exceeded", "ERROR_file_transfer_channel_quota_exceeded"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_client_quota_exceeded", "ERROR_file_transfer_client_quota_exceeded"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_complete", "ERROR_file_transfer_complete"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_connection_timeout", "ERROR_file_transfer_connection_timeout"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_interrupted", "ERROR_file_transfer_interrupted"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_limit_reached", "ERROR_file_transfer_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_reset", "ERROR_file_transfer_reset"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_server_quota_exceeded", "ERROR_file_transfer_server_quota_exceeded"], [43, 0, 1, "c.Ts3ErrorType.ERROR_handshake_failed", "ERROR_handshake_failed"], [43, 0, 1, "c.Ts3ErrorType.ERROR_illegal_server_license", "ERROR_illegal_server_license"], [43, 0, 1, "c.Ts3ErrorType.ERROR_invalid_server_connection_handler_id", "ERROR_invalid_server_connection_handler_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_join_request_not_found", "ERROR_join_request_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_lib_time_limit_reached", "ERROR_lib_time_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_no_cached_connection_info", "ERROR_no_cached_connection_info"], [43, 0, 1, "c.Ts3ErrorType.ERROR_no_network_port_available", "ERROR_no_network_port_available"], [43, 0, 1, "c.Ts3ErrorType.ERROR_not_connected", "ERROR_not_connected"], [43, 0, 1, "c.Ts3ErrorType.ERROR_not_implemented", "ERROR_not_implemented"], [43, 0, 1, "c.Ts3ErrorType.ERROR_not_streamer", "ERROR_not_streamer"], [43, 0, 1, "c.Ts3ErrorType.ERROR_ok", "ERROR_ok"], [43, 0, 1, "c.Ts3ErrorType.ERROR_ok_no_error_event", "ERROR_ok_no_error_event"], [43, 0, 1, "c.Ts3ErrorType.ERROR_ok_no_update", "ERROR_ok_no_update"], [43, 0, 1, "c.Ts3ErrorType.ERROR_out_of_memory", "ERROR_out_of_memory"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_checksum", "ERROR_parameter_checksum"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_convert", "ERROR_parameter_convert"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_invalid", "ERROR_parameter_invalid"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_invalid_count", "ERROR_parameter_invalid_count"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_invalid_size", "ERROR_parameter_invalid_size"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_missing", "ERROR_parameter_missing"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_not_found", "ERROR_parameter_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_quote", "ERROR_parameter_quote"], [43, 0, 1, "c.Ts3ErrorType.ERROR_permissions", "ERROR_permissions"], [43, 0, 1, "c.Ts3ErrorType.ERROR_permissions_client_insufficient", "ERROR_permissions_client_insufficient"], [43, 0, 1, "c.Ts3ErrorType.ERROR_port_already_in_use", "ERROR_port_already_in_use"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_duplicate_running", "ERROR_server_duplicate_running"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_invalid_id", "ERROR_server_invalid_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_invalid_password", "ERROR_server_invalid_password"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_is_booting", "ERROR_server_is_booting"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_is_not_running", "ERROR_server_is_not_running"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_is_shutting_down", "ERROR_server_is_shutting_down"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_is_virtual", "ERROR_server_is_virtual"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_maxclients_reached", "ERROR_server_maxclients_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_running", "ERROR_server_running"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_status_invalid", "ERROR_server_status_invalid"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_version_outdated", "ERROR_server_version_outdated"], [43, 0, 1, "c.Ts3ErrorType.ERROR_serverlibrary_not_initialised", "ERROR_serverlibrary_not_initialised"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sfu_failed_to_start", "ERROR_sfu_failed_to_start"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_channel_mask_mismatch", "ERROR_sound_channel_mask_mismatch"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_could_not_open_capture_device", "ERROR_sound_could_not_open_capture_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_could_not_open_playback_device", "ERROR_sound_could_not_open_playback_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_device_already_registerred", "ERROR_sound_device_already_registerred"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_device_busy", "ERROR_sound_device_busy"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_device_in_use", "ERROR_sound_device_in_use"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_handler_has_device", "ERROR_sound_handler_has_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_internal_capture", "ERROR_sound_internal_capture"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_internal_encoder", "ERROR_sound_internal_encoder"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_internal_playback", "ERROR_sound_internal_playback"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_internal_preprocessor", "ERROR_sound_internal_preprocessor"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_invalid_capture_device", "ERROR_sound_invalid_capture_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_invalid_channel_count", "ERROR_sound_invalid_channel_count"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_invalid_playback_device", "ERROR_sound_invalid_playback_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_invalid_wave", "ERROR_sound_invalid_wave"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_need_more_data", "ERROR_sound_need_more_data"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_no_capture_device_available", "ERROR_sound_no_capture_device_available"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_no_data", "ERROR_sound_no_data"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_no_playback_device_available", "ERROR_sound_no_playback_device_available"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_open_wave", "ERROR_sound_open_wave"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_preprocessor_disabled", "ERROR_sound_preprocessor_disabled"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_read_wave", "ERROR_sound_read_wave"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_unknown_device", "ERROR_sound_unknown_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_unsupported_frequency", "ERROR_sound_unsupported_frequency"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_unsupported_wave", "ERROR_sound_unsupported_wave"], [43, 0, 1, "c.Ts3ErrorType.ERROR_stream_not_participating", "ERROR_stream_not_participating"], [43, 0, 1, "c.Ts3ErrorType.ERROR_stream_session_limit_reached", "ERROR_stream_session_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_stream_session_not_found", "ERROR_stream_session_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_stream_unknown", "ERROR_stream_unknown"], [43, 0, 1, "c.Ts3ErrorType.ERROR_unable_to_bind_network_port", "ERROR_unable_to_bind_network_port"], [43, 0, 1, "c.Ts3ErrorType.ERROR_undefined", "ERROR_undefined"], [43, 0, 1, "c.Ts3ErrorType.ERROR_vs_critical", "ERROR_vs_critical"], [43, 0, 1, "c.Ts3ErrorType.ERROR_whisper_no_targets", "ERROR_whisper_no_targets"], [43, 0, 1, "c.Ts3ErrorType.ERROR_whisper_too_many_targets", "ERROR_whisper_too_many_targets"], [42, 0, 1, "c.FileTransferState.FILETRANSFER_ACTIVE", "FILETRANSFER_ACTIVE"], [42, 0, 1, "c.FileTransferState.FILETRANSFER_FINISHED", "FILETRANSFER_FINISHED"], [42, 0, 1, "c.FileTransferState.FILETRANSFER_INITIALISING", "FILETRANSFER_INITIALISING"], [42, 1, 1, "c.FTAction", "FTAction"], [42, 0, 1, "c.FTAction.FT_CREATEDIR", "FT_CREATEDIR"], [42, 0, 1, "c.FTAction.FT_DELETE", "FT_DELETE"], [42, 0, 1, "c.FTAction.FT_DOWNLOAD", "FT_DOWNLOAD"], [42, 0, 1, "c.FTAction.FT_FILEINFO", "FT_FILEINFO"], [42, 0, 1, "c.FTAction.FT_FILELIST", "FT_FILELIST"], [42, 0, 1, "c.FTAction.FT_INIT_CHANNEL", "FT_INIT_CHANNEL"], [42, 0, 1, "c.FTAction.FT_INIT_SERVER", "FT_INIT_SERVER"], [42, 0, 1, "c.FTAction.FT_RENAME", "FT_RENAME"], [42, 0, 1, "c.FTAction.FT_UPLOAD", "FT_UPLOAD"], [42, 0, 1, "c.FileTransferType.FileListType_Directory", "FileListType_Directory"], [42, 0, 1, "c.FileTransferType.FileListType_File", "FileListType_File"], [42, 2, 1, "c.FileTransferCallbackExport", "FileTransferCallbackExport"], [42, 1, 1, "c.FileTransferState", "FileTransferState"], [42, 1, 1, "c.FileTransferType", "FileTransferType"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ALL", "GROUPWHISPERTARGETMODE_ALL"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ALLPARENTCHANNELS", "GROUPWHISPERTARGETMODE_ALLPARENTCHANNELS"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ANCESTORCHANNELFAMILY", "GROUPWHISPERTARGETMODE_ANCESTORCHANNELFAMILY"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_CHANNELFAMILY", "GROUPWHISPERTARGETMODE_CHANNELFAMILY"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_CURRENTCHANNEL", "GROUPWHISPERTARGETMODE_CURRENTCHANNEL"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ENDMARKER", "GROUPWHISPERTARGETMODE_ENDMARKER"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_PARENTCHANNEL", "GROUPWHISPERTARGETMODE_PARENTCHANNEL"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_SUBCHANNELS", "GROUPWHISPERTARGETMODE_SUBCHANNELS"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_ALLCLIENTS", "GROUPWHISPERTYPE_ALLCLIENTS"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_CHANNELCOMMANDER", "GROUPWHISPERTYPE_CHANNELCOMMANDER"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_CHANNELGROUP", "GROUPWHISPERTYPE_CHANNELGROUP"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_ENDMARKER", "GROUPWHISPERTYPE_ENDMARKER"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_SERVERGROUP", "GROUPWHISPERTYPE_SERVERGROUP"], [42, 1, 1, "c.GroupWhisperTargetMode", "GroupWhisperTargetMode"], [42, 1, 1, "c.GroupWhisperType", "GroupWhisperType"], [42, 0, 1, "c.HardwareInputStatus.HARDWAREINPUT_DISABLED", "HARDWAREINPUT_DISABLED"], [42, 0, 1, "c.HardwareInputStatus.HARDWAREINPUT_ENABLED", "HARDWAREINPUT_ENABLED"], [42, 0, 1, "c.HardwareOutputStatus.HARDWAREOUTPUT_DISABLED", "HARDWAREOUTPUT_DISABLED"], [42, 0, 1, "c.HardwareOutputStatus.HARDWAREOUTPUT_ENABLED", "HARDWAREOUTPUT_ENABLED"], [42, 1, 1, "c.HardwareInputStatus", "HardwareInputStatus"], [42, 1, 1, "c.HardwareOutputStatus", "HardwareOutputStatus"], [42, 0, 1, "c.InputDeactivationStatus.INPUT_ACTIVE", "INPUT_ACTIVE"], [42, 0, 1, "c.InputDeactivationStatus.INPUT_DEACTIVATED", "INPUT_DEACTIVATED"], [42, 1, 1, "c.InputDeactivationStatus", "InputDeactivationStatus"], [42, 0, 1, "c.Visibility.LEAVE_VISIBILITY", "LEAVE_VISIBILITY"], [42, 1, 1, "c.LocalTestMode", "LocalTestMode"], [42, 0, 1, "c.LogTypes.LogType_CONSOLE", "LogType_CONSOLE"], [42, 0, 1, "c.LogTypes.LogType_DATABASE", "LogType_DATABASE"], [42, 0, 1, "c.LogTypes.LogType_FILE", "LogType_FILE"], [42, 0, 1, "c.LogTypes.LogType_NONE", "LogType_NONE"], [42, 0, 1, "c.LogTypes.LogType_NO_NETLOGGING", "LogType_NO_NETLOGGING"], [42, 0, 1, "c.LogTypes.LogType_SYSLOG", "LogType_SYSLOG"], [42, 0, 1, "c.LogTypes.LogType_USERLOGGING", "LogType_USERLOGGING"], [42, 1, 1, "c.LogTypes", "LogTypes"], [42, 0, 1, "c.MuteInputStatus.MUTEINPUT_MUTED", "MUTEINPUT_MUTED"], [42, 0, 1, "c.MuteInputStatus.MUTEINPUT_NONE", "MUTEINPUT_NONE"], [42, 0, 1, "c.MuteOutputStatus.MUTEOUTPUT_MUTED", "MUTEOUTPUT_MUTED"], [42, 0, 1, "c.MuteOutputStatus.MUTEOUTPUT_NONE", "MUTEOUTPUT_NONE"], [42, 1, 1, "c.MuteInputStatus", "MuteInputStatus"], [42, 1, 1, "c.MuteOutputStatus", "MuteOutputStatus"], [42, 0, 1, "c.ReasonIdentifier.REASON_CHANNELEDIT", "REASON_CHANNELEDIT"], [42, 0, 1, "c.ReasonIdentifier.REASON_CHANNELUPDATE", "REASON_CHANNELUPDATE"], [42, 0, 1, "c.ReasonIdentifier.REASON_CLIENTDISCONNECT", "REASON_CLIENTDISCONNECT"], [42, 0, 1, "c.ReasonIdentifier.REASON_CLIENTDISCONNECT_SERVER_SHUTDOWN", "REASON_CLIENTDISCONNECT_SERVER_SHUTDOWN"], [42, 0, 1, "c.ReasonIdentifier.REASON_KICK_CHANNEL", "REASON_KICK_CHANNEL"], [42, 0, 1, "c.ReasonIdentifier.REASON_KICK_SERVER", "REASON_KICK_SERVER"], [42, 0, 1, "c.ReasonIdentifier.REASON_KICK_SERVER_BAN", "REASON_KICK_SERVER_BAN"], [42, 0, 1, "c.ReasonIdentifier.REASON_LOST_CONNECTION", "REASON_LOST_CONNECTION"], [42, 0, 1, "c.ReasonIdentifier.REASON_MOVED", "REASON_MOVED"], [42, 0, 1, "c.ReasonIdentifier.REASON_NONE", "REASON_NONE"], [42, 0, 1, "c.ReasonIdentifier.REASON_SERVERSTOP", "REASON_SERVERSTOP"], [42, 0, 1, "c.ReasonIdentifier.REASON_SUBSCRIPTION", "REASON_SUBSCRIPTION"], [42, 0, 1, "c.Visibility.RETAIN_VISIBILITY", "RETAIN_VISIBILITY"], [42, 1, 1, "c.ReasonIdentifier", "ReasonIdentifier"], [42, 0, 1, "c.SecuritySaltOptions.SECURITY_SALT_CHECK_META_DATA", "SECURITY_SALT_CHECK_META_DATA"], [42, 0, 1, "c.SecuritySaltOptions.SECURITY_SALT_CHECK_NICKNAME", "SECURITY_SALT_CHECK_NICKNAME"], [42, 0, 1, "c.ConnectStatus.STATUS_CONNECTED", "STATUS_CONNECTED"], [42, 0, 1, "c.ConnectStatus.STATUS_CONNECTING", "STATUS_CONNECTING"], [42, 0, 1, "c.ConnectStatus.STATUS_CONNECTION_ESTABLISHED", "STATUS_CONNECTION_ESTABLISHED"], [42, 0, 1, "c.ConnectStatus.STATUS_CONNECTION_ESTABLISHING", "STATUS_CONNECTION_ESTABLISHING"], [42, 0, 1, "c.ConnectStatus.STATUS_DISCONNECTED", "STATUS_DISCONNECTED"], [42, 0, 1, "c.TalkStatus.STATUS_NOT_TALKING", "STATUS_NOT_TALKING"], [42, 0, 1, "c.TalkStatus.STATUS_TALKING", "STATUS_TALKING"], [42, 0, 1, "c.TalkStatus.STATUS_TALKING_WHILE_DISABLED", "STATUS_TALKING_WHILE_DISABLED"], [42, 1, 1, "c.SecuritySaltOptions", "SecuritySaltOptions"], [57, 2, 1, "c.ServerLibFunctions", "ServerLibFunctions"], [42, 0, 1, "c.LocalTestMode.TEST_MODE_OFF", "TEST_MODE_OFF"], [42, 0, 1, "c.LocalTestMode.TEST_MODE_TALK_STATUS_CHANGES_ONLY", "TEST_MODE_TALK_STATUS_CHANGES_ONLY"], [42, 0, 1, "c.LocalTestMode.TEST_MODE_VOICE_LOCAL_AND_REMOTE", "TEST_MODE_VOICE_LOCAL_AND_REMOTE"], [42, 0, 1, "c.LocalTestMode.TEST_MODE_VOICE_LOCAL_ONLY", "TEST_MODE_VOICE_LOCAL_ONLY"], [0, 2, 1, "c.TS3_VECTOR", "TS3_VECTOR"], [42, 1, 1, "c.TalkStatus", "TalkStatus"], [42, 1, 1, "c.TextMessageTargetMode", "TextMessageTargetMode"], [42, 0, 1, "c.TextMessageTargetMode.TextMessageTarget_CHANNEL", "TextMessageTarget_CHANNEL"], [42, 0, 1, "c.TextMessageTargetMode.TextMessageTarget_CLIENT", "TextMessageTarget_CLIENT"], [42, 0, 1, "c.TextMessageTargetMode.TextMessageTarget_MAX", "TextMessageTarget_MAX"], [42, 0, 1, "c.TextMessageTargetMode.TextMessageTarget_SERVER", "TextMessageTarget_SERVER"], [42, 2, 1, "c.TransformFilePathExport", "TransformFilePathExport"], [42, 2, 1, "c.TransformFilePathExportReturns", "TransformFilePathExportReturns"], [43, 1, 1, "c.Ts3ErrorType", "Ts3ErrorType"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_ADDRESS", "VIRTUALSERVER_ADDRESS"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_CHANNELS_ONLINE", "VIRTUALSERVER_CHANNELS_ONLINE"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_CLIENTS_ONLINE", "VIRTUALSERVER_CLIENTS_ONLINE"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_CODEC_ENCRYPTION_MODE", "VIRTUALSERVER_CODEC_ENCRYPTION_MODE"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_CREATED", "VIRTUALSERVER_CREATED"], [73, 0, 1, "c.VirtualServerCreateFlags.VIRTUALSERVER_CREATE_FLAG_NONE", "VIRTUALSERVER_CREATE_FLAG_NONE"], [73, 0, 1, "c.VirtualServerCreateFlags.VIRTUALSERVER_CREATE_FLAG_PASSWORDS_ENCRYPTED", "VIRTUALSERVER_CREATE_FLAG_PASSWORDS_ENCRYPTED"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_ENCRYPTION_CIPHERS", "VIRTUALSERVER_ENCRYPTION_CIPHERS"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_ENDMARKER", "VIRTUALSERVER_ENDMARKER"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_FILEBASE", "VIRTUALSERVER_FILEBASE"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_LOG_FILETRANSFER", "VIRTUALSERVER_LOG_FILETRANSFER"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_MAXCLIENTS", "VIRTUALSERVER_MAXCLIENTS"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH", "VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH", "VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_NAME", "VIRTUALSERVER_NAME"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_PASSWORD", "VIRTUALSERVER_PASSWORD"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_PLATFORM", "VIRTUALSERVER_PLATFORM"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_UNIQUE_IDENTIFIER", "VIRTUALSERVER_UNIQUE_IDENTIFIER"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_UPTIME", "VIRTUALSERVER_UPTIME"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_VERSION", "VIRTUALSERVER_VERSION"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_VERSION_SIGN", "VIRTUALSERVER_VERSION_SIGN"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_WELCOMEMESSAGE", "VIRTUALSERVER_WELCOMEMESSAGE"], [42, 2, 1, "c.VariablesExport", "VariablesExport"], [42, 2, 1, "c.VariablesExportItem", "VariablesExportItem"], [73, 1, 1, "c.VirtualServerCreateFlags", "VirtualServerCreateFlags"], [45, 1, 1, "c.VirtualServerProperties", "VirtualServerProperties"], [42, 1, 1, "c.Visibility", "Visibility"], [6, 4, 1, "c.ts3client_acquireCustomPlaybackData", "ts3client_acquireCustomPlaybackData"], [2, 4, 1, "c.ts3client_activateCaptureDevice", "ts3client_activateCaptureDevice"], [40, 4, 1, "c.ts3client_allowWhispersFrom", "ts3client_allowWhispersFrom"], [0, 4, 1, "c.ts3client_channelset3DAttributes", "ts3client_channelset3DAttributes"], [41, 4, 1, "c.ts3client_cleanUpConnectionInfo", "ts3client_cleanUpConnectionInfo"], [41, 4, 1, "c.ts3client_closeAudioPlaybackHandle", "ts3client_closeAudioPlaybackHandle"], [4, 4, 1, "c.ts3client_closeCaptureDevice", "ts3client_closeCaptureDevice"], [4, 4, 1, "c.ts3client_closePlaybackDevice", "ts3client_closePlaybackDevice"], [39, 4, 1, "c.ts3client_closeWaveFileHandle", "ts3client_closeWaveFileHandle"], [41, 4, 1, "c.ts3client_createAudioPlaybackHandle", "ts3client_createAudioPlaybackHandle"], [22, 4, 1, "c.ts3client_createIdentity", "ts3client_createIdentity"], [11, 4, 1, "c.ts3client_destroyClientLib", "ts3client_destroyClientLib"], [22, 4, 1, "c.ts3client_destroyServerConnectionHandler", "ts3client_destroyServerConnectionHandler"], [41, 4, 1, "c.ts3client_enqueueAudioPlaybackHandle", "ts3client_enqueueAudioPlaybackHandle"], [12, 4, 1, "c.ts3client_flushChannelCreation", "ts3client_flushChannelCreation"], [28, 4, 1, "c.ts3client_flushChannelUpdates", "ts3client_flushChannelUpdates"], [29, 4, 1, "c.ts3client_flushClientSelfUpdates", "ts3client_flushClientSelfUpdates"], [41, 4, 1, "c.ts3client_freeMemory", "ts3client_freeMemory"], [26, 4, 1, "c.ts3client_getAverageTransferSpeed", "ts3client_getAverageTransferSpeed"], [9, 4, 1, "c.ts3client_getCaptureDeviceList", "ts3client_getCaptureDeviceList"], [9, 4, 1, "c.ts3client_getCaptureModeList", "ts3client_getCaptureModeList"], [21, 4, 1, "c.ts3client_getChannelClientList", "ts3client_getChannelClientList"], [13, 4, 1, "c.ts3client_getChannelEmptySecs", "ts3client_getChannelEmptySecs"], [28, 4, 1, "c.ts3client_getChannelIDFromChannelNames", "ts3client_getChannelIDFromChannelNames"], [15, 4, 1, "c.ts3client_getChannelList", "ts3client_getChannelList"], [15, 4, 1, "c.ts3client_getChannelOfClient", "ts3client_getChannelOfClient"], [28, 4, 1, "c.ts3client_getChannelVariableAsInt", "ts3client_getChannelVariableAsInt"], [28, 4, 1, "c.ts3client_getChannelVariableAsString", "ts3client_getChannelVariableAsString"], [28, 4, 1, "c.ts3client_getChannelVariableAsUInt64", "ts3client_getChannelVariableAsUInt64"], [29, 4, 1, "c.ts3client_getClientID", "ts3client_getClientID"], [11, 4, 1, "c.ts3client_getClientLibVersion", "ts3client_getClientLibVersion"], [11, 4, 1, "c.ts3client_getClientLibVersionNumber", "ts3client_getClientLibVersionNumber"], [21, 4, 1, "c.ts3client_getClientList", "ts3client_getClientList"], [29, 4, 1, "c.ts3client_getClientSelfVariableAsInt", "ts3client_getClientSelfVariableAsInt"], [29, 4, 1, "c.ts3client_getClientSelfVariableAsString", "ts3client_getClientSelfVariableAsString"], [29, 4, 1, "c.ts3client_getClientVariableAsInt", "ts3client_getClientVariableAsInt"], [29, 4, 1, "c.ts3client_getClientVariableAsString", "ts3client_getClientVariableAsString"], [29, 4, 1, "c.ts3client_getClientVariableAsUInt64", "ts3client_getClientVariableAsUInt64"], [41, 4, 1, "c.ts3client_getConnectionStatus", "ts3client_getConnectionStatus"], [41, 4, 1, "c.ts3client_getConnectionVariableAsDouble", "ts3client_getConnectionVariableAsDouble"], [41, 4, 1, "c.ts3client_getConnectionVariableAsString", "ts3client_getConnectionVariableAsString"], [41, 4, 1, "c.ts3client_getConnectionVariableAsUInt64", "ts3client_getConnectionVariableAsUInt64"], [7, 4, 1, "c.ts3client_getCurrentCaptureDeviceName", "ts3client_getCurrentCaptureDeviceName"], [7, 4, 1, "c.ts3client_getCurrentCaptureMode", "ts3client_getCurrentCaptureMode"], [7, 4, 1, "c.ts3client_getCurrentPlayBackMode", "ts3client_getCurrentPlayBackMode"], [7, 4, 1, "c.ts3client_getCurrentPlaybackDeviceName", "ts3client_getCurrentPlaybackDeviceName"], [26, 4, 1, "c.ts3client_getCurrentTransferSpeed", "ts3client_getCurrentTransferSpeed"], [9, 4, 1, "c.ts3client_getDefaultCaptureDevice", "ts3client_getDefaultCaptureDevice"], [9, 4, 1, "c.ts3client_getDefaultCaptureMode", "ts3client_getDefaultCaptureMode"], [9, 4, 1, "c.ts3client_getDefaultPlayBackMode", "ts3client_getDefaultPlayBackMode"], [9, 4, 1, "c.ts3client_getDefaultPlaybackDevice", "ts3client_getDefaultPlaybackDevice"], [23, 4, 1, "c.ts3client_getEncodeConfigValue", "ts3client_getEncodeConfigValue"], [11, 4, 1, "c.ts3client_getErrorMessage", "ts3client_getErrorMessage"], [41, 4, 1, "c.ts3client_getGlobalConfigValueAsInt", "ts3client_getGlobalConfigValueAsInt"], [26, 4, 1, "c.ts3client_getInstanceSpeedLimitDown", "ts3client_getInstanceSpeedLimitDown"], [26, 4, 1, "c.ts3client_getInstanceSpeedLimitUp", "ts3client_getInstanceSpeedLimitUp"], [15, 4, 1, "c.ts3client_getParentChannelOfChannel", "ts3client_getParentChannelOfChannel"], [35, 4, 1, "c.ts3client_getPlaybackConfigValueAsFloat", "ts3client_getPlaybackConfigValueAsFloat"], [9, 4, 1, "c.ts3client_getPlaybackDeviceList", "ts3client_getPlaybackDeviceList"], [9, 4, 1, "c.ts3client_getPlaybackModeList", "ts3client_getPlaybackModeList"], [36, 4, 1, "c.ts3client_getPreProcessorConfigValue", "ts3client_getPreProcessorConfigValue"], [36, 4, 1, "c.ts3client_getPreProcessorInfoValueFloat", "ts3client_getPreProcessorInfoValueFloat"], [22, 4, 1, "c.ts3client_getServerConnectionHandlerList", "ts3client_getServerConnectionHandlerList"], [26, 4, 1, "c.ts3client_getServerConnectionHandlerSpeedLimitDown", "ts3client_getServerConnectionHandlerSpeedLimitDown"], [26, 4, 1, "c.ts3client_getServerConnectionHandlerSpeedLimitUp", "ts3client_getServerConnectionHandlerSpeedLimitUp"], [41, 4, 1, "c.ts3client_getServerConnectionVariableAsFloat", "ts3client_getServerConnectionVariableAsFloat"], [41, 4, 1, "c.ts3client_getServerConnectionVariableAsUInt64", "ts3client_getServerConnectionVariableAsUInt64"], [41, 4, 1, "c.ts3client_getServerLegacyUUID", "ts3client_getServerLegacyUUID"], [30, 4, 1, "c.ts3client_getServerVariableAsInt", "ts3client_getServerVariableAsInt"], [30, 4, 1, "c.ts3client_getServerVariableAsString", "ts3client_getServerVariableAsString"], [30, 4, 1, "c.ts3client_getServerVariableAsUInt64", "ts3client_getServerVariableAsUInt64"], [26, 4, 1, "c.ts3client_getTransferFileName", "ts3client_getTransferFileName"], [26, 4, 1, "c.ts3client_getTransferFilePath", "ts3client_getTransferFilePath"], [26, 4, 1, "c.ts3client_getTransferFileRemotePath", "ts3client_getTransferFileRemotePath"], [26, 4, 1, "c.ts3client_getTransferFileSize", "ts3client_getTransferFileSize"], [26, 4, 1, "c.ts3client_getTransferFileSizeDone", "ts3client_getTransferFileSizeDone"], [26, 4, 1, "c.ts3client_getTransferRunTime", "ts3client_getTransferRunTime"], [26, 4, 1, "c.ts3client_getTransferSpeedLimit", "ts3client_getTransferSpeedLimit"], [26, 4, 1, "c.ts3client_getTransferStatus", "ts3client_getTransferStatus"], [41, 4, 1, "c.ts3client_getWhisperReceiveWhitelist", "ts3client_getWhisperReceiveWhitelist"], [26, 4, 1, "c.ts3client_haltTransfer", "ts3client_haltTransfer"], [41, 4, 1, "c.ts3client_identityStringToUniqueIdentifier", "ts3client_identityStringToUniqueIdentifier"], [11, 4, 1, "c.ts3client_initClientLib", "ts3client_initClientLib"], [4, 4, 1, "c.ts3client_initiateGracefulPlaybackShutdown", "ts3client_initiateGracefulPlaybackShutdown"], [26, 4, 1, "c.ts3client_isTransferSender", "ts3client_isTransferSender"], [41, 4, 1, "c.ts3client_isWhisperReceiveWhitelisted", "ts3client_isWhisperReceiveWhitelisted"], [33, 4, 1, "c.ts3client_logMessage", "ts3client_logMessage"], [8, 4, 1, "c.ts3client_openCaptureDevice", "ts3client_openCaptureDevice"], [8, 4, 1, "c.ts3client_openPlaybackDevice", "ts3client_openPlaybackDevice"], [41, 4, 1, "c.ts3client_pauseAudioPlaybackHandle", "ts3client_pauseAudioPlaybackHandle"], [39, 4, 1, "c.ts3client_pauseWaveFileHandle", "ts3client_pauseWaveFileHandle"], [39, 4, 1, "c.ts3client_playWaveFile", "ts3client_playWaveFile"], [39, 4, 1, "c.ts3client_playWaveFileHandle", "ts3client_playWaveFileHandle"], [6, 4, 1, "c.ts3client_processCustomCaptureData", "ts3client_processCustomCaptureData"], [6, 4, 1, "c.ts3client_registerCustomDevice", "ts3client_registerCustomDevice"], [40, 4, 1, "c.ts3client_removeFromAllowedWhispersFrom", "ts3client_removeFromAllowedWhispersFrom"], [13, 4, 1, "c.ts3client_requestChannelDelete", "ts3client_requestChannelDelete"], [41, 4, 1, "c.ts3client_requestChannelDescription", "ts3client_requestChannelDescription"], [16, 4, 1, "c.ts3client_requestChannelMove", "ts3client_requestChannelMove"], [18, 4, 1, "c.ts3client_requestChannelSubscribe", "ts3client_requestChannelSubscribe"], [18, 4, 1, "c.ts3client_requestChannelSubscribeAll", "ts3client_requestChannelSubscribeAll"], [18, 4, 1, "c.ts3client_requestChannelUnsubscribe", "ts3client_requestChannelUnsubscribe"], [18, 4, 1, "c.ts3client_requestChannelUnsubscribeAll", "ts3client_requestChannelUnsubscribeAll"], [41, 4, 1, "c.ts3client_requestChat", "ts3client_requestChat"], [41, 4, 1, "c.ts3client_requestClientIDs", "ts3client_requestClientIDs"], [20, 4, 1, "c.ts3client_requestClientKickFromChannel", "ts3client_requestClientKickFromChannel"], [20, 4, 1, "c.ts3client_requestClientKickFromServer", "ts3client_requestClientKickFromServer"], [14, 4, 1, "c.ts3client_requestClientMove", "ts3client_requestClientMove"], [40, 4, 1, "c.ts3client_requestClientSetWhisperList", "ts3client_requestClientSetWhisperList"], [29, 4, 1, "c.ts3client_requestClientVariables", "ts3client_requestClientVariables"], [41, 4, 1, "c.ts3client_requestConnectionInfo", "ts3client_requestConnectionInfo"], [26, 4, 1, "c.ts3client_requestCreateDirectory", "ts3client_requestCreateDirectory"], [41, 4, 1, "c.ts3client_requestDeleteChannelTextMsg", "ts3client_requestDeleteChannelTextMsg"], [26, 4, 1, "c.ts3client_requestDeleteFile", "ts3client_requestDeleteFile"], [26, 4, 1, "c.ts3client_requestFile", "ts3client_requestFile"], [26, 4, 1, "c.ts3client_requestFileInfo", "ts3client_requestFileInfo"], [26, 4, 1, "c.ts3client_requestFileList", "ts3client_requestFileList"], [32, 4, 1, "c.ts3client_requestMuteClients", "ts3client_requestMuteClients"], [26, 4, 1, "c.ts3client_requestRenameFile", "ts3client_requestRenameFile"], [37, 4, 1, "c.ts3client_requestSendChannelTextMsg", "ts3client_requestSendChannelTextMsg"], [37, 4, 1, "c.ts3client_requestSendPrivateTextMsg", "ts3client_requestSendPrivateTextMsg"], [37, 4, 1, "c.ts3client_requestSendServerTextMsg", "ts3client_requestSendServerTextMsg"], [41, 4, 1, "c.ts3client_requestServerConnectionInfo", "ts3client_requestServerConnectionInfo"], [30, 4, 1, "c.ts3client_requestServerVariables", "ts3client_requestServerVariables"], [32, 4, 1, "c.ts3client_requestUnmuteClients", "ts3client_requestUnmuteClients"], [41, 4, 1, "c.ts3client_s3ft_deleteFile", "ts3client_s3ft_deleteFile"], [41, 4, 1, "c.ts3client_s3ft_getDownloadUrl", "ts3client_s3ft_getDownloadUrl"], [41, 4, 1, "c.ts3client_s3ft_getPresignedUrls", "ts3client_s3ft_getPresignedUrls"], [41, 4, 1, "c.ts3client_s3ft_getUploadUrl", "ts3client_s3ft_getUploadUrl"], [41, 4, 1, "c.ts3client_s3ft_listFiles", "ts3client_s3ft_listFiles"], [41, 4, 1, "c.ts3client_s3ft_renameFile", "ts3client_s3ft_renameFile"], [41, 4, 1, "c.ts3client_s3ft_uploadDoneNotification", "ts3client_s3ft_uploadDoneNotification"], [26, 4, 1, "c.ts3client_sendFile", "ts3client_sendFile"], [0, 4, 1, "c.ts3client_set3DWaveAttributes", "ts3client_set3DWaveAttributes"], [41, 4, 1, "c.ts3client_setAECReferenceDevice", "ts3client_setAECReferenceDevice"], [12, 4, 1, "c.ts3client_setChannelVariableAsInt", "ts3client_setChannelVariableAsInt"], [12, 4, 1, "c.ts3client_setChannelVariableAsString", "ts3client_setChannelVariableAsString"], [12, 4, 1, "c.ts3client_setChannelVariableAsUInt64", "ts3client_setChannelVariableAsUInt64"], [29, 4, 1, "c.ts3client_setClientSelfVariableAsInt", "ts3client_setClientSelfVariableAsInt"], [29, 4, 1, "c.ts3client_setClientSelfVariableAsString", "ts3client_setClientSelfVariableAsString"], [35, 4, 1, "c.ts3client_setClientVolumeModifier", "ts3client_setClientVolumeModifier"], [41, 4, 1, "c.ts3client_setGlobalConfigValue", "ts3client_setGlobalConfigValue"], [26, 4, 1, "c.ts3client_setInstanceSpeedLimitDown", "ts3client_setInstanceSpeedLimitDown"], [26, 4, 1, "c.ts3client_setInstanceSpeedLimitUp", "ts3client_setInstanceSpeedLimitUp"], [41, 4, 1, "c.ts3client_setKeyPressedDuringChunk", "ts3client_setKeyPressedDuringChunk"], [10, 4, 1, "c.ts3client_setLocalTestMode", "ts3client_setLocalTestMode"], [33, 4, 1, "c.ts3client_setLogVerbosity", "ts3client_setLogVerbosity"], [35, 4, 1, "c.ts3client_setPlaybackConfigValue", "ts3client_setPlaybackConfigValue"], [36, 4, 1, "c.ts3client_setPreProcessorConfigValue", "ts3client_setPreProcessorConfigValue"], [26, 4, 1, "c.ts3client_setServerConnectionHandlerSpeedLimitDown", "ts3client_setServerConnectionHandlerSpeedLimitDown"], [26, 4, 1, "c.ts3client_setServerConnectionHandlerSpeedLimitUp", "ts3client_setServerConnectionHandlerSpeedLimitUp"], [26, 4, 1, "c.ts3client_setTransferSpeedLimit", "ts3client_setTransferSpeedLimit"], [41, 4, 1, "c.ts3client_setWhisperReceiveWhitelist", "ts3client_setWhisperReceiveWhitelist"], [22, 4, 1, "c.ts3client_spawnNewServerConnectionHandler", "ts3client_spawnNewServerConnectionHandler"], [22, 4, 1, "c.ts3client_startConnection", "ts3client_startConnection"], [22, 4, 1, "c.ts3client_startConnectionWithChannelID", "ts3client_startConnectionWithChannelID"], [3, 4, 1, "c.ts3client_startVoiceRecording", "ts3client_startVoiceRecording"], [22, 4, 1, "c.ts3client_stopConnection", "ts3client_stopConnection"], [3, 4, 1, "c.ts3client_stopVoiceRecording", "ts3client_stopVoiceRecording"], [0, 4, 1, "c.ts3client_systemset3DListenerAttributes", "ts3client_systemset3DListenerAttributes"], [0, 4, 1, "c.ts3client_systemset3DSettings", "ts3client_systemset3DSettings"], [41, 4, 1, "c.ts3client_unregisterCustomDevice", "ts3client_unregisterCustomDevice"], [42, 2, 1, "c.ts3sc_array_ftdeletefile", "ts3sc_array_ftdeletefile"], [42, 2, 1, "c.ts3sc_array_ftgetfileinfo", "ts3sc_array_ftgetfileinfo"], [42, 2, 1, "c.ts3sc_data_ftcreatedir", "ts3sc_data_ftcreatedir"], [42, 2, 1, "c.ts3sc_data_ftdeletefile", "ts3sc_data_ftdeletefile"], [42, 2, 1, "c.ts3sc_data_ftgetfileinfo", "ts3sc_data_ftgetfileinfo"], [42, 2, 1, "c.ts3sc_data_ftgetfilelist", "ts3sc_data_ftgetfilelist"], [42, 2, 1, "c.ts3sc_data_ftinitdownload", "ts3sc_data_ftinitdownload"], [42, 2, 1, "c.ts3sc_data_ftinitupload", "ts3sc_data_ftinitupload"], [42, 2, 1, "c.ts3sc_data_ftrenamefile", "ts3sc_data_ftrenamefile"], [42, 2, 1, "c.ts3sc_ftcreatedir", "ts3sc_ftcreatedir"], [42, 2, 1, "c.ts3sc_ftdeletefile", "ts3sc_ftdeletefile"], [42, 2, 1, "c.ts3sc_ftgetfileinfo", "ts3sc_ftgetfileinfo"], [42, 2, 1, "c.ts3sc_ftgetfilelist", "ts3sc_ftgetfilelist"], [42, 2, 1, "c.ts3sc_ftinitdownload", "ts3sc_ftinitdownload"], [42, 2, 1, "c.ts3sc_ftinitupload", "ts3sc_ftinitupload"], [42, 2, 1, "c.ts3sc_ftrenamefile", "ts3sc_ftrenamefile"], [42, 2, 1, "c.ts3sc_meta_ftcreatedir", "ts3sc_meta_ftcreatedir"], [42, 2, 1, "c.ts3sc_meta_ftdeletefile", "ts3sc_meta_ftdeletefile"], [42, 2, 1, "c.ts3sc_meta_ftgetfileinfo", "ts3sc_meta_ftgetfileinfo"], [42, 2, 1, "c.ts3sc_meta_ftgetfilelist", "ts3sc_meta_ftgetfilelist"], [42, 2, 1, "c.ts3sc_meta_ftinitdownload", "ts3sc_meta_ftinitdownload"], [42, 2, 1, "c.ts3sc_meta_ftinitupload", "ts3sc_meta_ftinitupload"], [42, 2, 1, "c.ts3sc_meta_ftrenamefile", "ts3sc_meta_ftrenamefile"], [70, 4, 1, "c.ts3server_calculateSecurityHash", "ts3server_calculateSecurityHash"], [50, 4, 1, "c.ts3server_channelDelete", "ts3server_channelDelete"], [52, 4, 1, "c.ts3server_channelMove", "ts3server_channelMove"], [55, 4, 1, "c.ts3server_clientMove", "ts3server_clientMove"], [55, 4, 1, "c.ts3server_clientsKickFromServer", "ts3server_clientsKickFromServer"], [49, 4, 1, "c.ts3server_createChannel", "ts3server_createChannel"], [70, 4, 1, "c.ts3server_createSecuritySalt", "ts3server_createSecuritySalt"], [71, 4, 1, "c.ts3server_createVirtualServer", "ts3server_createVirtualServer"], [46, 4, 1, "c.ts3server_createVirtualServer2", "ts3server_createVirtualServer2"], [47, 4, 1, "c.ts3server_destroyServerLib", "ts3server_destroyServerLib"], [56, 4, 1, "c.ts3server_disableClientCommand", "ts3server_disableClientCommand"], [59, 4, 1, "c.ts3server_enableFileManager", "ts3server_enableFileManager"], [48, 4, 1, "c.ts3server_flushChannelCreation", "ts3server_flushChannelCreation"], [73, 4, 1, "c.ts3server_flushChannelVariable", "ts3server_flushChannelVariable"], [73, 4, 1, "c.ts3server_flushClientVariable", "ts3server_flushClientVariable"], [73, 4, 1, "c.ts3server_flushVirtualServerVariable", "ts3server_flushVirtualServerVariable"], [73, 4, 1, "c.ts3server_freeMemory", "ts3server_freeMemory"], [54, 4, 1, "c.ts3server_getChannelClientList", "ts3server_getChannelClientList"], [46, 4, 1, "c.ts3server_getChannelCreationParamsVariables", "ts3server_getChannelCreationParamsVariables"], [51, 4, 1, "c.ts3server_getChannelList", "ts3server_getChannelList"], [51, 4, 1, "c.ts3server_getChannelOfClient", "ts3server_getChannelOfClient"], [62, 4, 1, "c.ts3server_getChannelVariableAsInt", "ts3server_getChannelVariableAsInt"], [62, 4, 1, "c.ts3server_getChannelVariableAsString", "ts3server_getChannelVariableAsString"], [62, 4, 1, "c.ts3server_getChannelVariableAsUInt64", "ts3server_getChannelVariableAsUInt64"], [73, 4, 1, "c.ts3server_getClientIDSfromUIDS", "ts3server_getClientIDSfromUIDS"], [54, 4, 1, "c.ts3server_getClientList", "ts3server_getClientList"], [55, 4, 1, "c.ts3server_getClientVariableAsInt", "ts3server_getClientVariableAsInt"], [55, 4, 1, "c.ts3server_getClientVariableAsString", "ts3server_getClientVariableAsString"], [55, 4, 1, "c.ts3server_getClientVariableAsUInt64", "ts3server_getClientVariableAsUInt64"], [47, 4, 1, "c.ts3server_getGlobalErrorMessage", "ts3server_getGlobalErrorMessage"], [51, 4, 1, "c.ts3server_getParentChannelOfChannel", "ts3server_getParentChannelOfChannel"], [47, 4, 1, "c.ts3server_getServerLibVersion", "ts3server_getServerLibVersion"], [47, 4, 1, "c.ts3server_getServerLibVersionNumber", "ts3server_getServerLibVersionNumber"], [46, 4, 1, "c.ts3server_getVariableAsInt", "ts3server_getVariableAsInt"], [46, 4, 1, "c.ts3server_getVariableAsString", "ts3server_getVariableAsString"], [46, 4, 1, "c.ts3server_getVariableAsUInt64", "ts3server_getVariableAsUInt64"], [61, 4, 1, "c.ts3server_getVirtualServerConnectionVariableAsDouble", "ts3server_getVirtualServerConnectionVariableAsDouble"], [61, 4, 1, "c.ts3server_getVirtualServerConnectionVariableAsUInt64", "ts3server_getVirtualServerConnectionVariableAsUInt64"], [46, 4, 1, "c.ts3server_getVirtualServerCreationParamsChannelCreationParams", "ts3server_getVirtualServerCreationParamsChannelCreationParams"], [46, 4, 1, "c.ts3server_getVirtualServerCreationParamsVariables", "ts3server_getVirtualServerCreationParamsVariables"], [71, 4, 1, "c.ts3server_getVirtualServerKeyPair", "ts3server_getVirtualServerKeyPair"], [66, 4, 1, "c.ts3server_getVirtualServerList", "ts3server_getVirtualServerList"], [64, 4, 1, "c.ts3server_getVirtualServerVariableAsInt", "ts3server_getVirtualServerVariableAsInt"], [64, 4, 1, "c.ts3server_getVirtualServerVariableAsString", "ts3server_getVirtualServerVariableAsString"], [64, 4, 1, "c.ts3server_getVirtualServerVariableAsUInt64", "ts3server_getVirtualServerVariableAsUInt64"], [47, 4, 1, "c.ts3server_initServerLib", "ts3server_initServerLib"], [49, 4, 1, "c.ts3server_makeChannelCreationParams", "ts3server_makeChannelCreationParams"], [46, 4, 1, "c.ts3server_makeVirtualServerCreationParams", "ts3server_makeVirtualServerCreationParams"], [46, 4, 1, "c.ts3server_setChannelCreationParams", "ts3server_setChannelCreationParams"], [48, 4, 1, "c.ts3server_setChannelVariableAsInt", "ts3server_setChannelVariableAsInt"], [48, 4, 1, "c.ts3server_setChannelVariableAsString", "ts3server_setChannelVariableAsString"], [48, 4, 1, "c.ts3server_setChannelVariableAsUInt64", "ts3server_setChannelVariableAsUInt64"], [55, 4, 1, "c.ts3server_setClientVariableAsInt", "ts3server_setClientVariableAsInt"], [55, 4, 1, "c.ts3server_setClientVariableAsString", "ts3server_setClientVariableAsString"], [55, 4, 1, "c.ts3server_setClientVariableAsUInt64", "ts3server_setClientVariableAsUInt64"], [72, 4, 1, "c.ts3server_setClientWhisperList", "ts3server_setClientWhisperList"], [73, 4, 1, "c.ts3server_setLogVerbosity", "ts3server_setLogVerbosity"], [46, 4, 1, "c.ts3server_setVariableAsInt", "ts3server_setVariableAsInt"], [46, 4, 1, "c.ts3server_setVariableAsString", "ts3server_setVariableAsString"], [46, 4, 1, "c.ts3server_setVariableAsUInt64", "ts3server_setVariableAsUInt64"], [46, 4, 1, "c.ts3server_setVirtualServerCreationParams", "ts3server_setVirtualServerCreationParams"], [64, 4, 1, "c.ts3server_setVirtualServerVariableAsInt", "ts3server_setVirtualServerVariableAsInt"], [64, 4, 1, "c.ts3server_setVirtualServerVariableAsString", "ts3server_setVirtualServerVariableAsString"], [64, 4, 1, "c.ts3server_setVirtualServerVariableAsUInt64", "ts3server_setVirtualServerVariableAsUInt64"], [71, 4, 1, "c.ts3server_stopVirtualServer", "ts3server_stopVirtualServer"]], "ChannelCreateFlags": [[73, 0, 1, "c.ChannelCreateFlags.CHANNEL_CREATE_FLAG_NONE", "CHANNEL_CREATE_FLAG_NONE"], [73, 0, 1, "c.ChannelCreateFlags.CHANNEL_CREATE_FLAG_PASSWORDS_ENCRYPTED", "CHANNEL_CREATE_FLAG_PASSWORDS_ENCRYPTED"]], "ChannelProperties": [[45, 0, 1, "c.ChannelProperties.CHANNEL_CODEC", "CHANNEL_CODEC"], [45, 0, 1, "c.ChannelProperties.CHANNEL_CODEC_IS_UNENCRYPTED", "CHANNEL_CODEC_IS_UNENCRYPTED"], [45, 0, 1, "c.ChannelProperties.CHANNEL_CODEC_LATENCY_FACTOR", "CHANNEL_CODEC_LATENCY_FACTOR"], [45, 0, 1, "c.ChannelProperties.CHANNEL_CODEC_QUALITY", "CHANNEL_CODEC_QUALITY"], [45, 0, 1, "c.ChannelProperties.CHANNEL_DELETE_DELAY", "CHANNEL_DELETE_DELAY"], [45, 0, 1, "c.ChannelProperties.CHANNEL_DESCRIPTION", "CHANNEL_DESCRIPTION"], [45, 0, 1, "c.ChannelProperties.CHANNEL_ENDMARKER", "CHANNEL_ENDMARKER"], [45, 0, 1, "c.ChannelProperties.CHANNEL_FLAG_DEFAULT", "CHANNEL_FLAG_DEFAULT"], [45, 0, 1, "c.ChannelProperties.CHANNEL_FLAG_PASSWORD", "CHANNEL_FLAG_PASSWORD"], [45, 0, 1, "c.ChannelProperties.CHANNEL_FLAG_PERMANENT", "CHANNEL_FLAG_PERMANENT"], [45, 0, 1, "c.ChannelProperties.CHANNEL_FLAG_SEMI_PERMANENT", "CHANNEL_FLAG_SEMI_PERMANENT"], [45, 0, 1, "c.ChannelProperties.CHANNEL_MAXCLIENTS", "CHANNEL_MAXCLIENTS"], [45, 0, 1, "c.ChannelProperties.CHANNEL_MAXFAMILYCLIENTS", "CHANNEL_MAXFAMILYCLIENTS"], [45, 0, 1, "c.ChannelProperties.CHANNEL_NAME", "CHANNEL_NAME"], [45, 0, 1, "c.ChannelProperties.CHANNEL_ORDER", "CHANNEL_ORDER"], [45, 0, 1, "c.ChannelProperties.CHANNEL_PASSWORD", "CHANNEL_PASSWORD"], [45, 0, 1, "c.ChannelProperties.CHANNEL_SECURITY_SALT", "CHANNEL_SECURITY_SALT"], [45, 0, 1, "c.ChannelProperties.CHANNEL_TOPIC", "CHANNEL_TOPIC"], [45, 0, 1, "c.ChannelProperties.CHANNEL_UNIQUE_IDENTIFIER", "CHANNEL_UNIQUE_IDENTIFIER"]], "ClientCommand": [[42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_ENDMARKER", "CLIENT_COMMAND_ENDMARKER"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_filetransfers", "CLIENT_COMMAND_filetransfers"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_flushChannelCreation", "CLIENT_COMMAND_flushChannelCreation"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_flushChannelUpdates", "CLIENT_COMMAND_flushChannelUpdates"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestChannelDelete", "CLIENT_COMMAND_requestChannelDelete"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestChannelDescription", "CLIENT_COMMAND_requestChannelDescription"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestChannelMove", "CLIENT_COMMAND_requestChannelMove"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestChannelXXSubscribeXXX", "CLIENT_COMMAND_requestChannelXXSubscribeXXX"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestClientKickFromXXX", "CLIENT_COMMAND_requestClientKickFromXXX"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestClientMove", "CLIENT_COMMAND_requestClientMove"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestConnectionInfo", "CLIENT_COMMAND_requestConnectionInfo"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestSendXXXTextMsg", "CLIENT_COMMAND_requestSendXXXTextMsg"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestServerConnectionInfo", "CLIENT_COMMAND_requestServerConnectionInfo"], [42, 0, 1, "c.ClientCommand.CLIENT_COMMAND_requestXXMuteClients", "CLIENT_COMMAND_requestXXMuteClients"]], "ClientMiniExport": [[42, 3, 1, "c.ClientMiniExport.ID", "ID"], [42, 3, 1, "c.ClientMiniExport.channel", "channel"], [42, 3, 1, "c.ClientMiniExport.ident", "ident"], [42, 3, 1, "c.ClientMiniExport.nickname", "nickname"]], "ClientProperties": [[45, 0, 1, "c.ClientProperties.CLIENT_DEFAULT_CHANNEL", "CLIENT_DEFAULT_CHANNEL"], [45, 0, 1, "c.ClientProperties.CLIENT_DEFAULT_CHANNEL_PASSWORD", "CLIENT_DEFAULT_CHANNEL_PASSWORD"], [45, 0, 1, "c.ClientProperties.CLIENT_ENCRYPTION_CIPHERS", "CLIENT_ENCRYPTION_CIPHERS"], [45, 0, 1, "c.ClientProperties.CLIENT_ENDMARKER", "CLIENT_ENDMARKER"], [45, 0, 1, "c.ClientProperties.CLIENT_FLAG_TALKING", "CLIENT_FLAG_TALKING"], [45, 0, 1, "c.ClientProperties.CLIENT_IDLE_TIME", "CLIENT_IDLE_TIME"], [45, 0, 1, "c.ClientProperties.CLIENT_INPUT_DEACTIVATED", "CLIENT_INPUT_DEACTIVATED"], [45, 0, 1, "c.ClientProperties.CLIENT_INPUT_HARDWARE", "CLIENT_INPUT_HARDWARE"], [45, 0, 1, "c.ClientProperties.CLIENT_INPUT_MUTED", "CLIENT_INPUT_MUTED"], [45, 0, 1, "c.ClientProperties.CLIENT_IS_MUTED", "CLIENT_IS_MUTED"], [45, 0, 1, "c.ClientProperties.CLIENT_IS_RECORDING", "CLIENT_IS_RECORDING"], [45, 0, 1, "c.ClientProperties.CLIENT_IS_STREAMING", "CLIENT_IS_STREAMING"], [45, 0, 1, "c.ClientProperties.CLIENT_META_DATA", "CLIENT_META_DATA"], [45, 0, 1, "c.ClientProperties.CLIENT_NICKNAME", "CLIENT_NICKNAME"], [45, 0, 1, "c.ClientProperties.CLIENT_OUTPUTONLY_MUTED", "CLIENT_OUTPUTONLY_MUTED"], [45, 0, 1, "c.ClientProperties.CLIENT_OUTPUT_HARDWARE", "CLIENT_OUTPUT_HARDWARE"], [45, 0, 1, "c.ClientProperties.CLIENT_OUTPUT_MUTED", "CLIENT_OUTPUT_MUTED"], [45, 0, 1, "c.ClientProperties.CLIENT_PLATFORM", "CLIENT_PLATFORM"], [45, 0, 1, "c.ClientProperties.CLIENT_SECURITY_HASH", "CLIENT_SECURITY_HASH"], [45, 0, 1, "c.ClientProperties.CLIENT_SERVER_PASSWORD", "CLIENT_SERVER_PASSWORD"], [45, 0, 1, "c.ClientProperties.CLIENT_UNIQUE_IDENTIFIER", "CLIENT_UNIQUE_IDENTIFIER"], [45, 0, 1, "c.ClientProperties.CLIENT_VERSION", "CLIENT_VERSION"], [45, 0, 1, "c.ClientProperties.CLIENT_VERSION_SIGN", "CLIENT_VERSION_SIGN"], [45, 0, 1, "c.ClientProperties.CLIENT_VOLUME_MODIFICATOR", "CLIENT_VOLUME_MODIFICATOR"]], "ClientUIFunctions": [[41, 3, 1, "c.ClientUIFunctions.onAuthenticationTokenEvent", "onAuthenticationTokenEvent"], [28, 3, 1, "c.ClientUIFunctions.onChannelDescriptionUpdateEvent", "onChannelDescriptionUpdateEvent"], [16, 3, 1, "c.ClientUIFunctions.onChannelMoveEvent", "onChannelMoveEvent"], [28, 3, 1, "c.ClientUIFunctions.onChannelPasswordChangedEvent", "onChannelPasswordChangedEvent"], [18, 3, 1, "c.ClientUIFunctions.onChannelSubscribeEvent", "onChannelSubscribeEvent"], [18, 3, 1, "c.ClientUIFunctions.onChannelSubscribeFinishedEvent", "onChannelSubscribeFinishedEvent"], [18, 3, 1, "c.ClientUIFunctions.onChannelUnsubscribeEvent", "onChannelUnsubscribeEvent"], [18, 3, 1, "c.ClientUIFunctions.onChannelUnsubscribeFinishedEvent", "onChannelUnsubscribeFinishedEvent"], [41, 3, 1, "c.ClientUIFunctions.onChatLoginTokenEvent", "onChatLoginTokenEvent"], [41, 3, 1, "c.ClientUIFunctions.onCheckServerUniqueIdentifierEvent", "onCheckServerUniqueIdentifierEvent"], [41, 3, 1, "c.ClientUIFunctions.onClientIDsEvent", "onClientIDsEvent"], [41, 3, 1, "c.ClientUIFunctions.onClientIDsFinishedEvent", "onClientIDsFinishedEvent"], [20, 3, 1, "c.ClientUIFunctions.onClientKickFromChannelEvent", "onClientKickFromChannelEvent"], [20, 3, 1, "c.ClientUIFunctions.onClientKickFromServerEvent", "onClientKickFromServerEvent"], [14, 3, 1, "c.ClientUIFunctions.onClientMoveEvent", "onClientMoveEvent"], [14, 3, 1, "c.ClientUIFunctions.onClientMoveMovedEvent", "onClientMoveMovedEvent"], [18, 3, 1, "c.ClientUIFunctions.onClientMoveSubscriptionEvent", "onClientMoveSubscriptionEvent"], [41, 3, 1, "c.ClientUIFunctions.onClientMoveTimeoutEvent", "onClientMoveTimeoutEvent"], [34, 3, 1, "c.ClientUIFunctions.onClientPasswordEncrypt", "onClientPasswordEncrypt"], [22, 3, 1, "c.ClientUIFunctions.onConnectStatusChangeEvent", "onConnectStatusChangeEvent"], [41, 3, 1, "c.ClientUIFunctions.onConnectionInfoEvent", "onConnectionInfoEvent"], [0, 3, 1, "c.ClientUIFunctions.onCustom3dRolloffCalculationClientEvent", "onCustom3dRolloffCalculationClientEvent"], [0, 3, 1, "c.ClientUIFunctions.onCustom3dRolloffCalculationWaveEvent", "onCustom3dRolloffCalculationWaveEvent"], [24, 3, 1, "c.ClientUIFunctions.onCustomPacketDecryptEvent", "onCustomPacketDecryptEvent"], [24, 3, 1, "c.ClientUIFunctions.onCustomPacketEncryptEvent", "onCustomPacketEncryptEvent"], [13, 3, 1, "c.ClientUIFunctions.onDelChannelEvent", "onDelChannelEvent"], [3, 3, 1, "c.ClientUIFunctions.onEditCapturedVoiceDataEvent", "onEditCapturedVoiceDataEvent"], [3, 3, 1, "c.ClientUIFunctions.onEditCapturedVoiceDataPreprocessEvent", "onEditCapturedVoiceDataPreprocessEvent"], [3, 3, 1, "c.ClientUIFunctions.onEditMixedPlaybackVoiceDataEvent", "onEditMixedPlaybackVoiceDataEvent"], [3, 3, 1, "c.ClientUIFunctions.onEditPlaybackVoiceDataEvent", "onEditPlaybackVoiceDataEvent"], [3, 3, 1, "c.ClientUIFunctions.onEditPostProcessVoiceDataEvent", "onEditPostProcessVoiceDataEvent"], [26, 3, 1, "c.ClientUIFunctions.onFileInfoEvent", "onFileInfoEvent"], [26, 3, 1, "c.ClientUIFunctions.onFileListEvent", "onFileListEvent"], [26, 3, 1, "c.ClientUIFunctions.onFileListFinishedEvent", "onFileListFinishedEvent"], [26, 3, 1, "c.ClientUIFunctions.onFileTransferStatusEvent", "onFileTransferStatusEvent"], [40, 3, 1, "c.ClientUIFunctions.onIgnoredWhisperEvent", "onIgnoredWhisperEvent"], [41, 3, 1, "c.ClientUIFunctions.onJsonReply", "onJsonReply"], [41, 3, 1, "c.ClientUIFunctions.onMessage", "onMessage"], [12, 3, 1, "c.ClientUIFunctions.onNewChannelCreatedEvent", "onNewChannelCreatedEvent"], [41, 3, 1, "c.ClientUIFunctions.onNewChannelEvent", "onNewChannelEvent"], [4, 3, 1, "c.ClientUIFunctions.onPlaybackShutdownCompleteEvent", "onPlaybackShutdownCompleteEvent"], [41, 3, 1, "c.ClientUIFunctions.onProtoEvent", "onProtoEvent"], [41, 3, 1, "c.ClientUIFunctions.onProtoResponse", "onProtoResponse"], [41, 3, 1, "c.ClientUIFunctions.onScreenshareSessionEvent", "onScreenshareSessionEvent"], [41, 3, 1, "c.ClientUIFunctions.onSendCallToMatrix", "onSendCallToMatrix"], [41, 3, 1, "c.ClientUIFunctions.onServerConnectionInfoEvent", "onServerConnectionInfoEvent"], [30, 3, 1, "c.ClientUIFunctions.onServerEditedEvent", "onServerEditedEvent"], [11, 3, 1, "c.ClientUIFunctions.onServerErrorEvent", "onServerErrorEvent"], [41, 3, 1, "c.ClientUIFunctions.onServerProtocolVersionEvent", "onServerProtocolVersionEvent"], [22, 3, 1, "c.ClientUIFunctions.onServerStopEvent", "onServerStopEvent"], [30, 3, 1, "c.ClientUIFunctions.onServerUpdatedEvent", "onServerUpdatedEvent"], [41, 3, 1, "c.ClientUIFunctions.onSoundDeviceListChangedEvent", "onSoundDeviceListChangedEvent"], [41, 3, 1, "c.ClientUIFunctions.onTalkStatusChangeEvent", "onTalkStatusChangeEvent"], [37, 3, 1, "c.ClientUIFunctions.onTextMessageEvent", "onTextMessageEvent"], [28, 3, 1, "c.ClientUIFunctions.onUpdateChannelEditedEvent", "onUpdateChannelEditedEvent"], [28, 3, 1, "c.ClientUIFunctions.onUpdateChannelEvent", "onUpdateChannelEvent"], [29, 3, 1, "c.ClientUIFunctions.onUpdateClientEvent", "onUpdateClientEvent"], [33, 3, 1, "c.ClientUIFunctions.onUserLoggingMessageEvent", "onUserLoggingMessageEvent"]], "CodecEncryptionMode": [[42, 0, 1, "c.CodecEncryptionMode.CODEC_ENCRYPTION_FORCED_OFF", "CODEC_ENCRYPTION_FORCED_OFF"], [42, 0, 1, "c.CodecEncryptionMode.CODEC_ENCRYPTION_FORCED_ON", "CODEC_ENCRYPTION_FORCED_ON"], [42, 0, 1, "c.CodecEncryptionMode.CODEC_ENCRYPTION_PER_CHANNEL", "CODEC_ENCRYPTION_PER_CHANNEL"]], "CodecType": [[42, 0, 1, "c.CodecType.CODEC_CELT_MONO", "CODEC_CELT_MONO"], [42, 0, 1, "c.CodecType.CODEC_OPUS_MUSIC", "CODEC_OPUS_MUSIC"], [42, 0, 1, "c.CodecType.CODEC_OPUS_VOICE", "CODEC_OPUS_VOICE"], [42, 0, 1, "c.CodecType.CODEC_SPEEX_NARROWBAND", "CODEC_SPEEX_NARROWBAND"], [42, 0, 1, "c.CodecType.CODEC_SPEEX_ULTRAWIDEBAND", "CODEC_SPEEX_ULTRAWIDEBAND"], [42, 0, 1, "c.CodecType.CODEC_SPEEX_WIDEBAND", "CODEC_SPEEX_WIDEBAND"]], "ConnectStatus": [[42, 0, 1, "c.ConnectStatus.STATUS_CONNECTED", "STATUS_CONNECTED"], [42, 0, 1, "c.ConnectStatus.STATUS_CONNECTING", "STATUS_CONNECTING"], [42, 0, 1, "c.ConnectStatus.STATUS_CONNECTION_ESTABLISHED", "STATUS_CONNECTION_ESTABLISHED"], [42, 0, 1, "c.ConnectStatus.STATUS_CONNECTION_ESTABLISHING", "STATUS_CONNECTION_ESTABLISHING"], [42, 0, 1, "c.ConnectStatus.STATUS_DISCONNECTED", "STATUS_DISCONNECTED"]], "ConnectionProperties": [[45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_CONTROL", "CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_KEEPALIVE", "CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_SPEECH", "CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL", "CONNECTION_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_CONTROL", "CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_KEEPALIVE", "CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_SPEECH", "CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL", "CONNECTION_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_CONTROL", "CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_KEEPALIVE", "CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_SPEECH", "CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL", "CONNECTION_BANDWIDTH_SENT_LAST_MINUTE_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_CONTROL", "CONNECTION_BANDWIDTH_SENT_LAST_SECOND_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_KEEPALIVE", "CONNECTION_BANDWIDTH_SENT_LAST_SECOND_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_SPEECH", "CONNECTION_BANDWIDTH_SENT_LAST_SECOND_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL", "CONNECTION_BANDWIDTH_SENT_LAST_SECOND_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_CONTROL", "CONNECTION_BYTES_RECEIVED_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_KEEPALIVE", "CONNECTION_BYTES_RECEIVED_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_SPEECH", "CONNECTION_BYTES_RECEIVED_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_RECEIVED_TOTAL", "CONNECTION_BYTES_RECEIVED_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_SENT_CONTROL", "CONNECTION_BYTES_SENT_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_SENT_KEEPALIVE", "CONNECTION_BYTES_SENT_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_SENT_SPEECH", "CONNECTION_BYTES_SENT_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_BYTES_SENT_TOTAL", "CONNECTION_BYTES_SENT_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_CONTROL", "CONNECTION_CLIENT2SERVER_PACKETLOSS_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_KEEPALIVE", "CONNECTION_CLIENT2SERVER_PACKETLOSS_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_SPEECH", "CONNECTION_CLIENT2SERVER_PACKETLOSS_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT2SERVER_PACKETLOSS_TOTAL", "CONNECTION_CLIENT2SERVER_PACKETLOSS_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT_IP", "CONNECTION_CLIENT_IP"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CLIENT_PORT", "CONNECTION_CLIENT_PORT"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_CONNECTED_TIME", "CONNECTION_CONNECTED_TIME"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_0", "CONNECTION_DUMMY_0"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_1", "CONNECTION_DUMMY_1"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_2", "CONNECTION_DUMMY_2"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_3", "CONNECTION_DUMMY_3"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_4", "CONNECTION_DUMMY_4"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_5", "CONNECTION_DUMMY_5"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_6", "CONNECTION_DUMMY_6"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_7", "CONNECTION_DUMMY_7"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_8", "CONNECTION_DUMMY_8"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_DUMMY_9", "CONNECTION_DUMMY_9"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_ENDMARKER", "CONNECTION_ENDMARKER"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED", "CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BANDWIDTH_SENT", "CONNECTION_FILETRANSFER_BANDWIDTH_SENT"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL", "CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL", "CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_IDLE_TIME", "CONNECTION_IDLE_TIME"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETLOSS_CONTROL", "CONNECTION_PACKETLOSS_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETLOSS_KEEPALIVE", "CONNECTION_PACKETLOSS_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETLOSS_SPEECH", "CONNECTION_PACKETLOSS_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETLOSS_TOTAL", "CONNECTION_PACKETLOSS_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_CONTROL", "CONNECTION_PACKETS_RECEIVED_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_KEEPALIVE", "CONNECTION_PACKETS_RECEIVED_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_SPEECH", "CONNECTION_PACKETS_RECEIVED_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_RECEIVED_TOTAL", "CONNECTION_PACKETS_RECEIVED_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_CONTROL", "CONNECTION_PACKETS_SENT_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_KEEPALIVE", "CONNECTION_PACKETS_SENT_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_SPEECH", "CONNECTION_PACKETS_SENT_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PACKETS_SENT_TOTAL", "CONNECTION_PACKETS_SENT_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PING", "CONNECTION_PING"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_PING_DEVIATION", "CONNECTION_PING_DEVIATION"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_CONTROL", "CONNECTION_SERVER2CLIENT_PACKETLOSS_CONTROL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_KEEPALIVE", "CONNECTION_SERVER2CLIENT_PACKETLOSS_KEEPALIVE"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_SPEECH", "CONNECTION_SERVER2CLIENT_PACKETLOSS_SPEECH"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL", "CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER_IP", "CONNECTION_SERVER_IP"], [45, 0, 1, "c.ConnectionProperties.CONNECTION_SERVER_PORT", "CONNECTION_SERVER_PORT"]], "FTAction": [[42, 0, 1, "c.FTAction.FT_CREATEDIR", "FT_CREATEDIR"], [42, 0, 1, "c.FTAction.FT_DELETE", "FT_DELETE"], [42, 0, 1, "c.FTAction.FT_DOWNLOAD", "FT_DOWNLOAD"], [42, 0, 1, "c.FTAction.FT_FILEINFO", "FT_FILEINFO"], [42, 0, 1, "c.FTAction.FT_FILELIST", "FT_FILELIST"], [42, 0, 1, "c.FTAction.FT_INIT_CHANNEL", "FT_INIT_CHANNEL"], [42, 0, 1, "c.FTAction.FT_INIT_SERVER", "FT_INIT_SERVER"], [42, 0, 1, "c.FTAction.FT_RENAME", "FT_RENAME"], [42, 0, 1, "c.FTAction.FT_UPLOAD", "FT_UPLOAD"]], "FileTransferCallbackExport": [[42, 3, 1, "c.FileTransferCallbackExport.bytes", "bytes"], [42, 3, 1, "c.FileTransferCallbackExport.clientID", "clientID"], [42, 3, 1, "c.FileTransferCallbackExport.isSender", "isSender"], [42, 3, 1, "c.FileTransferCallbackExport.remoteTransferID", "remoteTransferID"], [42, 3, 1, "c.FileTransferCallbackExport.remotefileSize", "remotefileSize"], [42, 3, 1, "c.FileTransferCallbackExport.status", "status"], [42, 3, 1, "c.FileTransferCallbackExport.statusMessage", "statusMessage"], [42, 3, 1, "c.FileTransferCallbackExport.transferID", "transferID"]], "FileTransferState": [[42, 0, 1, "c.FileTransferState.FILETRANSFER_ACTIVE", "FILETRANSFER_ACTIVE"], [42, 0, 1, "c.FileTransferState.FILETRANSFER_FINISHED", "FILETRANSFER_FINISHED"], [42, 0, 1, "c.FileTransferState.FILETRANSFER_INITIALISING", "FILETRANSFER_INITIALISING"]], "FileTransferType": [[42, 0, 1, "c.FileTransferType.FileListType_Directory", "FileListType_Directory"], [42, 0, 1, "c.FileTransferType.FileListType_File", "FileListType_File"]], "GroupWhisperTargetMode": [[42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ALL", "GROUPWHISPERTARGETMODE_ALL"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ALLPARENTCHANNELS", "GROUPWHISPERTARGETMODE_ALLPARENTCHANNELS"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ANCESTORCHANNELFAMILY", "GROUPWHISPERTARGETMODE_ANCESTORCHANNELFAMILY"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_CHANNELFAMILY", "GROUPWHISPERTARGETMODE_CHANNELFAMILY"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_CURRENTCHANNEL", "GROUPWHISPERTARGETMODE_CURRENTCHANNEL"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_ENDMARKER", "GROUPWHISPERTARGETMODE_ENDMARKER"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_PARENTCHANNEL", "GROUPWHISPERTARGETMODE_PARENTCHANNEL"], [42, 0, 1, "c.GroupWhisperTargetMode.GROUPWHISPERTARGETMODE_SUBCHANNELS", "GROUPWHISPERTARGETMODE_SUBCHANNELS"]], "GroupWhisperType": [[42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_ALLCLIENTS", "GROUPWHISPERTYPE_ALLCLIENTS"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_CHANNELCOMMANDER", "GROUPWHISPERTYPE_CHANNELCOMMANDER"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_CHANNELGROUP", "GROUPWHISPERTYPE_CHANNELGROUP"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_ENDMARKER", "GROUPWHISPERTYPE_ENDMARKER"], [42, 0, 1, "c.GroupWhisperType.GROUPWHISPERTYPE_SERVERGROUP", "GROUPWHISPERTYPE_SERVERGROUP"]], "HardwareInputStatus": [[42, 0, 1, "c.HardwareInputStatus.HARDWAREINPUT_DISABLED", "HARDWAREINPUT_DISABLED"], [42, 0, 1, "c.HardwareInputStatus.HARDWAREINPUT_ENABLED", "HARDWAREINPUT_ENABLED"]], "HardwareOutputStatus": [[42, 0, 1, "c.HardwareOutputStatus.HARDWAREOUTPUT_DISABLED", "HARDWAREOUTPUT_DISABLED"], [42, 0, 1, "c.HardwareOutputStatus.HARDWAREOUTPUT_ENABLED", "HARDWAREOUTPUT_ENABLED"]], "InputDeactivationStatus": [[42, 0, 1, "c.InputDeactivationStatus.INPUT_ACTIVE", "INPUT_ACTIVE"], [42, 0, 1, "c.InputDeactivationStatus.INPUT_DEACTIVATED", "INPUT_DEACTIVATED"]], "LocalTestMode": [[42, 0, 1, "c.LocalTestMode.TEST_MODE_OFF", "TEST_MODE_OFF"], [42, 0, 1, "c.LocalTestMode.TEST_MODE_TALK_STATUS_CHANGES_ONLY", "TEST_MODE_TALK_STATUS_CHANGES_ONLY"], [42, 0, 1, "c.LocalTestMode.TEST_MODE_VOICE_LOCAL_AND_REMOTE", "TEST_MODE_VOICE_LOCAL_AND_REMOTE"], [42, 0, 1, "c.LocalTestMode.TEST_MODE_VOICE_LOCAL_ONLY", "TEST_MODE_VOICE_LOCAL_ONLY"]], "LogTypes": [[42, 0, 1, "c.LogTypes.LogType_CONSOLE", "LogType_CONSOLE"], [42, 0, 1, "c.LogTypes.LogType_DATABASE", "LogType_DATABASE"], [42, 0, 1, "c.LogTypes.LogType_FILE", "LogType_FILE"], [42, 0, 1, "c.LogTypes.LogType_NONE", "LogType_NONE"], [42, 0, 1, "c.LogTypes.LogType_NO_NETLOGGING", "LogType_NO_NETLOGGING"], [42, 0, 1, "c.LogTypes.LogType_SYSLOG", "LogType_SYSLOG"], [42, 0, 1, "c.LogTypes.LogType_USERLOGGING", "LogType_USERLOGGING"]], "MuteInputStatus": [[42, 0, 1, "c.MuteInputStatus.MUTEINPUT_MUTED", "MUTEINPUT_MUTED"], [42, 0, 1, "c.MuteInputStatus.MUTEINPUT_NONE", "MUTEINPUT_NONE"]], "MuteOutputStatus": [[42, 0, 1, "c.MuteOutputStatus.MUTEOUTPUT_MUTED", "MUTEOUTPUT_MUTED"], [42, 0, 1, "c.MuteOutputStatus.MUTEOUTPUT_NONE", "MUTEOUTPUT_NONE"]], "ReasonIdentifier": [[42, 0, 1, "c.ReasonIdentifier.REASON_CHANNELEDIT", "REASON_CHANNELEDIT"], [42, 0, 1, "c.ReasonIdentifier.REASON_CHANNELUPDATE", "REASON_CHANNELUPDATE"], [42, 0, 1, "c.ReasonIdentifier.REASON_CLIENTDISCONNECT", "REASON_CLIENTDISCONNECT"], [42, 0, 1, "c.ReasonIdentifier.REASON_CLIENTDISCONNECT_SERVER_SHUTDOWN", "REASON_CLIENTDISCONNECT_SERVER_SHUTDOWN"], [42, 0, 1, "c.ReasonIdentifier.REASON_KICK_CHANNEL", "REASON_KICK_CHANNEL"], [42, 0, 1, "c.ReasonIdentifier.REASON_KICK_SERVER", "REASON_KICK_SERVER"], [42, 0, 1, "c.ReasonIdentifier.REASON_KICK_SERVER_BAN", "REASON_KICK_SERVER_BAN"], [42, 0, 1, "c.ReasonIdentifier.REASON_LOST_CONNECTION", "REASON_LOST_CONNECTION"], [42, 0, 1, "c.ReasonIdentifier.REASON_MOVED", "REASON_MOVED"], [42, 0, 1, "c.ReasonIdentifier.REASON_NONE", "REASON_NONE"], [42, 0, 1, "c.ReasonIdentifier.REASON_SERVERSTOP", "REASON_SERVERSTOP"], [42, 0, 1, "c.ReasonIdentifier.REASON_SUBSCRIPTION", "REASON_SUBSCRIPTION"]], "SecuritySaltOptions": [[42, 0, 1, "c.SecuritySaltOptions.SECURITY_SALT_CHECK_META_DATA", "SECURITY_SALT_CHECK_META_DATA"], [42, 0, 1, "c.SecuritySaltOptions.SECURITY_SALT_CHECK_NICKNAME", "SECURITY_SALT_CHECK_NICKNAME"]], "ServerLibFunctions": [[73, 3, 1, "c.ServerLibFunctions.onAccountingErrorEvent", "onAccountingErrorEvent"], [73, 3, 1, "c.ServerLibFunctions.onChannelCreated", "onChannelCreated"], [73, 3, 1, "c.ServerLibFunctions.onChannelDeleted", "onChannelDeleted"], [73, 3, 1, "c.ServerLibFunctions.onChannelEdited", "onChannelEdited"], [73, 3, 1, "c.ServerLibFunctions.onChannelTextMessageEvent", "onChannelTextMessageEvent"], [73, 3, 1, "c.ServerLibFunctions.onClientConnected", "onClientConnected"], [73, 3, 1, "c.ServerLibFunctions.onClientDisconnected", "onClientDisconnected"], [73, 3, 1, "c.ServerLibFunctions.onClientMoved", "onClientMoved"], [67, 3, 1, "c.ServerLibFunctions.onClientPasswordEncrypt", "onClientPasswordEncrypt"], [73, 3, 1, "c.ServerLibFunctions.onClientStartTalkingEvent", "onClientStartTalkingEvent"], [73, 3, 1, "c.ServerLibFunctions.onClientStopTalkingEvent", "onClientStopTalkingEvent"], [67, 3, 1, "c.ServerLibFunctions.onCustomChannelPasswordCheck", "onCustomChannelPasswordCheck"], [57, 3, 1, "c.ServerLibFunctions.onCustomPacketDecryptEvent", "onCustomPacketDecryptEvent"], [57, 3, 1, "c.ServerLibFunctions.onCustomPacketEncryptEvent", "onCustomPacketEncryptEvent"], [67, 3, 1, "c.ServerLibFunctions.onCustomServerPasswordCheck", "onCustomServerPasswordCheck"], [59, 3, 1, "c.ServerLibFunctions.onFileTransferEvent", "onFileTransferEvent"], [73, 3, 1, "c.ServerLibFunctions.onServerTextMessageEvent", "onServerTextMessageEvent"], [59, 3, 1, "c.ServerLibFunctions.onTransformFilePath", "onTransformFilePath"], [73, 3, 1, "c.ServerLibFunctions.onUserLoggingMessageEvent", "onUserLoggingMessageEvent"], [73, 3, 1, "c.ServerLibFunctions.onVoiceDataEvent", "onVoiceDataEvent"], [68, 3, 1, "c.ServerLibFunctions.permChannelCreate", "permChannelCreate"], [68, 3, 1, "c.ServerLibFunctions.permChannelDelete", "permChannelDelete"], [68, 3, 1, "c.ServerLibFunctions.permChannelEdit", "permChannelEdit"], [68, 3, 1, "c.ServerLibFunctions.permChannelMove", "permChannelMove"], [68, 3, 1, "c.ServerLibFunctions.permChannelSubscribe", "permChannelSubscribe"], [68, 3, 1, "c.ServerLibFunctions.permClientCanConnect", "permClientCanConnect"], [68, 3, 1, "c.ServerLibFunctions.permClientCanGetChannelDescription", "permClientCanGetChannelDescription"], [68, 3, 1, "c.ServerLibFunctions.permClientKickFromChannel", "permClientKickFromChannel"], [68, 3, 1, "c.ServerLibFunctions.permClientKickFromServer", "permClientKickFromServer"], [68, 3, 1, "c.ServerLibFunctions.permClientMove", "permClientMove"], [68, 3, 1, "c.ServerLibFunctions.permClientUpdate", "permClientUpdate"], [59, 3, 1, "c.ServerLibFunctions.permFileTransferCreateDirectory", "permFileTransferCreateDirectory"], [59, 3, 1, "c.ServerLibFunctions.permFileTransferDeleteFile", "permFileTransferDeleteFile"], [59, 3, 1, "c.ServerLibFunctions.permFileTransferGetFileInfo", "permFileTransferGetFileInfo"], [59, 3, 1, "c.ServerLibFunctions.permFileTransferGetFileList", "permFileTransferGetFileList"], [59, 3, 1, "c.ServerLibFunctions.permFileTransferInitDownload", "permFileTransferInitDownload"], [59, 3, 1, "c.ServerLibFunctions.permFileTransferInitUpload", "permFileTransferInitUpload"], [59, 3, 1, "c.ServerLibFunctions.permFileTransferRenameFile", "permFileTransferRenameFile"], [68, 3, 1, "c.ServerLibFunctions.permSendConnectionInfo", "permSendConnectionInfo"], [68, 3, 1, "c.ServerLibFunctions.permSendTextMessage", "permSendTextMessage"], [68, 3, 1, "c.ServerLibFunctions.permServerRequestConnectionInfo", "permServerRequestConnectionInfo"]], "TS3_VECTOR": [[0, 3, 1, "c.TS3_VECTOR.x", "x"], [0, 3, 1, "c.TS3_VECTOR.y", "y"], [0, 3, 1, "c.TS3_VECTOR.z", "z"]], "TalkStatus": [[42, 0, 1, "c.TalkStatus.STATUS_NOT_TALKING", "STATUS_NOT_TALKING"], [42, 0, 1, "c.TalkStatus.STATUS_TALKING", "STATUS_TALKING"], [42, 0, 1, "c.TalkStatus.STATUS_TALKING_WHILE_DISABLED", "STATUS_TALKING_WHILE_DISABLED"]], "TextMessageTargetMode": [[42, 0, 1, "c.TextMessageTargetMode.TextMessageTarget_CHANNEL", "TextMessageTarget_CHANNEL"], [42, 0, 1, "c.TextMessageTargetMode.TextMessageTarget_CLIENT", "TextMessageTarget_CLIENT"], [42, 0, 1, "c.TextMessageTargetMode.TextMessageTarget_MAX", "TextMessageTarget_MAX"], [42, 0, 1, "c.TextMessageTargetMode.TextMessageTarget_SERVER", "TextMessageTarget_SERVER"]], "TransformFilePathExport": [[42, 3, 1, "c.TransformFilePathExport.action", "action"], [42, 3, 1, "c.TransformFilePathExport.channel", "channel"], [42, 3, 1, "c.TransformFilePathExport.channelPathMaxSize", "channelPathMaxSize"], [42, 3, 1, "c.TransformFilePathExport.filename", "filename"], [42, 3, 1, "c.TransformFilePathExport.transformedFileNameMaxSize", "transformedFileNameMaxSize"]], "TransformFilePathExportReturns": [[42, 3, 1, "c.TransformFilePathExportReturns.channelPath", "channelPath"], [42, 3, 1, "c.TransformFilePathExportReturns.logFileAction", "logFileAction"], [42, 3, 1, "c.TransformFilePathExportReturns.transformedFileName", "transformedFileName"]], "Ts3ErrorType": [[43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_already_started", "ERROR_accounting_already_started"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_instance_check_error", "ERROR_accounting_instance_check_error"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_instance_duplicated", "ERROR_accounting_instance_duplicated"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_instance_limit_reached", "ERROR_accounting_instance_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_license_date_not_ok", "ERROR_accounting_license_date_not_ok"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_license_file_invalid", "ERROR_accounting_license_file_invalid"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_license_file_not_found", "ERROR_accounting_license_file_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_not_started", "ERROR_accounting_not_started"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_running_elsewhere", "ERROR_accounting_running_elsewhere"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_server_error", "ERROR_accounting_server_error"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_slot_limit_reached", "ERROR_accounting_slot_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_to_many_starts", "ERROR_accounting_to_many_starts"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_unable_to_connect_to_server", "ERROR_accounting_unable_to_connect_to_server"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_unknown_error", "ERROR_accounting_unknown_error"], [43, 0, 1, "c.Ts3ErrorType.ERROR_accounting_virtualserver_limit_reached", "ERROR_accounting_virtualserver_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_already_joined", "ERROR_already_joined"], [43, 0, 1, "c.Ts3ErrorType.ERROR_already_registered", "ERROR_already_registered"], [43, 0, 1, "c.Ts3ErrorType.ERROR_canceled", "ERROR_canceled"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_already_in", "ERROR_channel_already_in"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_can_not_delete_default", "ERROR_channel_can_not_delete_default"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_default_require_permanent", "ERROR_channel_default_require_permanent"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_flags", "ERROR_channel_invalid_flags"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_id", "ERROR_channel_invalid_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_order", "ERROR_channel_invalid_order"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_password", "ERROR_channel_invalid_password"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_invalid_security_hash", "ERROR_channel_invalid_security_hash"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_maxclients_reached", "ERROR_channel_maxclients_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_maxfamily_reached", "ERROR_channel_maxfamily_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_name_inuse", "ERROR_channel_name_inuse"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_no_filetransfer_supported", "ERROR_channel_no_filetransfer_supported"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_not_empty", "ERROR_channel_not_empty"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_parent_not_permanent", "ERROR_channel_parent_not_permanent"], [43, 0, 1, "c.Ts3ErrorType.ERROR_channel_protocol_limit_reached", "ERROR_channel_protocol_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_already_subscribed", "ERROR_client_already_subscribed"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_cannot_verify_now", "ERROR_client_cannot_verify_now"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_could_not_validate_identity", "ERROR_client_could_not_validate_identity"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_hacked", "ERROR_client_hacked"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_invalid_id", "ERROR_client_invalid_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_invalid_password", "ERROR_client_invalid_password"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_invalid_type", "ERROR_client_invalid_type"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_is_flooding", "ERROR_client_is_flooding"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_login_not_permitted", "ERROR_client_login_not_permitted"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_nickname_inuse", "ERROR_client_nickname_inuse"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_not_logged_in", "ERROR_client_not_logged_in"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_not_subscribed", "ERROR_client_not_subscribed"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_protocol_limit_reached", "ERROR_client_protocol_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_client_version_outdated", "ERROR_client_version_outdated"], [43, 0, 1, "c.Ts3ErrorType.ERROR_clientlibrary_not_initialised", "ERROR_clientlibrary_not_initialised"], [43, 0, 1, "c.Ts3ErrorType.ERROR_command_line_exit_help", "ERROR_command_line_exit_help"], [43, 0, 1, "c.Ts3ErrorType.ERROR_command_line_exit_version", "ERROR_command_line_exit_version"], [43, 0, 1, "c.Ts3ErrorType.ERROR_command_line_parse_failed", "ERROR_command_line_parse_failed"], [43, 0, 1, "c.Ts3ErrorType.ERROR_command_not_found", "ERROR_command_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_connection_ip_protocol_missing", "ERROR_connection_ip_protocol_missing"], [43, 0, 1, "c.Ts3ErrorType.ERROR_connection_lost", "ERROR_connection_lost"], [43, 0, 1, "c.Ts3ErrorType.ERROR_could_not_initialise_input_manager", "ERROR_could_not_initialise_input_manager"], [43, 0, 1, "c.Ts3ErrorType.ERROR_could_not_resolve_hostname", "ERROR_could_not_resolve_hostname"], [43, 0, 1, "c.Ts3ErrorType.ERROR_currently_not_possible", "ERROR_currently_not_possible"], [43, 0, 1, "c.Ts3ErrorType.ERROR_dont_notify", "ERROR_dont_notify"], [43, 0, 1, "c.Ts3ErrorType.ERROR_failed_connection_initialisation", "ERROR_failed_connection_initialisation"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_already_exists", "ERROR_file_already_exists"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_already_in_use", "ERROR_file_already_in_use"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_connection_lost", "ERROR_file_connection_lost"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_could_not_open_connection", "ERROR_file_could_not_open_connection"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_exceeds_file_system_maximum_size", "ERROR_file_exceeds_file_system_maximum_size"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_exceeds_supplied_size", "ERROR_file_exceeds_supplied_size"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_dimension", "ERROR_file_invalid_dimension"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_name", "ERROR_file_invalid_name"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_path", "ERROR_file_invalid_path"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_permissions", "ERROR_file_invalid_permissions"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_size", "ERROR_file_invalid_size"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_storage_class", "ERROR_file_invalid_storage_class"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_invalid_transfer_id", "ERROR_file_invalid_transfer_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_io_error", "ERROR_file_io_error"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_no_files_available", "ERROR_file_no_files_available"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_no_space_left_on_device", "ERROR_file_no_space_left_on_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_not_found", "ERROR_file_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_overwrite_excludes_resume", "ERROR_file_overwrite_excludes_resume"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_canceled", "ERROR_file_transfer_canceled"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_channel_quota_exceeded", "ERROR_file_transfer_channel_quota_exceeded"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_client_quota_exceeded", "ERROR_file_transfer_client_quota_exceeded"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_complete", "ERROR_file_transfer_complete"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_connection_timeout", "ERROR_file_transfer_connection_timeout"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_interrupted", "ERROR_file_transfer_interrupted"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_limit_reached", "ERROR_file_transfer_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_reset", "ERROR_file_transfer_reset"], [43, 0, 1, "c.Ts3ErrorType.ERROR_file_transfer_server_quota_exceeded", "ERROR_file_transfer_server_quota_exceeded"], [43, 0, 1, "c.Ts3ErrorType.ERROR_handshake_failed", "ERROR_handshake_failed"], [43, 0, 1, "c.Ts3ErrorType.ERROR_illegal_server_license", "ERROR_illegal_server_license"], [43, 0, 1, "c.Ts3ErrorType.ERROR_invalid_server_connection_handler_id", "ERROR_invalid_server_connection_handler_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_join_request_not_found", "ERROR_join_request_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_lib_time_limit_reached", "ERROR_lib_time_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_no_cached_connection_info", "ERROR_no_cached_connection_info"], [43, 0, 1, "c.Ts3ErrorType.ERROR_no_network_port_available", "ERROR_no_network_port_available"], [43, 0, 1, "c.Ts3ErrorType.ERROR_not_connected", "ERROR_not_connected"], [43, 0, 1, "c.Ts3ErrorType.ERROR_not_implemented", "ERROR_not_implemented"], [43, 0, 1, "c.Ts3ErrorType.ERROR_not_streamer", "ERROR_not_streamer"], [43, 0, 1, "c.Ts3ErrorType.ERROR_ok", "ERROR_ok"], [43, 0, 1, "c.Ts3ErrorType.ERROR_ok_no_error_event", "ERROR_ok_no_error_event"], [43, 0, 1, "c.Ts3ErrorType.ERROR_ok_no_update", "ERROR_ok_no_update"], [43, 0, 1, "c.Ts3ErrorType.ERROR_out_of_memory", "ERROR_out_of_memory"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_checksum", "ERROR_parameter_checksum"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_convert", "ERROR_parameter_convert"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_invalid", "ERROR_parameter_invalid"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_invalid_count", "ERROR_parameter_invalid_count"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_invalid_size", "ERROR_parameter_invalid_size"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_missing", "ERROR_parameter_missing"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_not_found", "ERROR_parameter_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_parameter_quote", "ERROR_parameter_quote"], [43, 0, 1, "c.Ts3ErrorType.ERROR_permissions", "ERROR_permissions"], [43, 0, 1, "c.Ts3ErrorType.ERROR_permissions_client_insufficient", "ERROR_permissions_client_insufficient"], [43, 0, 1, "c.Ts3ErrorType.ERROR_port_already_in_use", "ERROR_port_already_in_use"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_duplicate_running", "ERROR_server_duplicate_running"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_invalid_id", "ERROR_server_invalid_id"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_invalid_password", "ERROR_server_invalid_password"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_is_booting", "ERROR_server_is_booting"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_is_not_running", "ERROR_server_is_not_running"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_is_shutting_down", "ERROR_server_is_shutting_down"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_is_virtual", "ERROR_server_is_virtual"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_maxclients_reached", "ERROR_server_maxclients_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_running", "ERROR_server_running"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_status_invalid", "ERROR_server_status_invalid"], [43, 0, 1, "c.Ts3ErrorType.ERROR_server_version_outdated", "ERROR_server_version_outdated"], [43, 0, 1, "c.Ts3ErrorType.ERROR_serverlibrary_not_initialised", "ERROR_serverlibrary_not_initialised"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sfu_failed_to_start", "ERROR_sfu_failed_to_start"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_channel_mask_mismatch", "ERROR_sound_channel_mask_mismatch"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_could_not_open_capture_device", "ERROR_sound_could_not_open_capture_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_could_not_open_playback_device", "ERROR_sound_could_not_open_playback_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_device_already_registerred", "ERROR_sound_device_already_registerred"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_device_busy", "ERROR_sound_device_busy"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_device_in_use", "ERROR_sound_device_in_use"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_handler_has_device", "ERROR_sound_handler_has_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_internal_capture", "ERROR_sound_internal_capture"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_internal_encoder", "ERROR_sound_internal_encoder"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_internal_playback", "ERROR_sound_internal_playback"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_internal_preprocessor", "ERROR_sound_internal_preprocessor"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_invalid_capture_device", "ERROR_sound_invalid_capture_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_invalid_channel_count", "ERROR_sound_invalid_channel_count"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_invalid_playback_device", "ERROR_sound_invalid_playback_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_invalid_wave", "ERROR_sound_invalid_wave"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_need_more_data", "ERROR_sound_need_more_data"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_no_capture_device_available", "ERROR_sound_no_capture_device_available"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_no_data", "ERROR_sound_no_data"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_no_playback_device_available", "ERROR_sound_no_playback_device_available"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_open_wave", "ERROR_sound_open_wave"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_preprocessor_disabled", "ERROR_sound_preprocessor_disabled"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_read_wave", "ERROR_sound_read_wave"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_unknown_device", "ERROR_sound_unknown_device"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_unsupported_frequency", "ERROR_sound_unsupported_frequency"], [43, 0, 1, "c.Ts3ErrorType.ERROR_sound_unsupported_wave", "ERROR_sound_unsupported_wave"], [43, 0, 1, "c.Ts3ErrorType.ERROR_stream_not_participating", "ERROR_stream_not_participating"], [43, 0, 1, "c.Ts3ErrorType.ERROR_stream_session_limit_reached", "ERROR_stream_session_limit_reached"], [43, 0, 1, "c.Ts3ErrorType.ERROR_stream_session_not_found", "ERROR_stream_session_not_found"], [43, 0, 1, "c.Ts3ErrorType.ERROR_stream_unknown", "ERROR_stream_unknown"], [43, 0, 1, "c.Ts3ErrorType.ERROR_unable_to_bind_network_port", "ERROR_unable_to_bind_network_port"], [43, 0, 1, "c.Ts3ErrorType.ERROR_undefined", "ERROR_undefined"], [43, 0, 1, "c.Ts3ErrorType.ERROR_vs_critical", "ERROR_vs_critical"], [43, 0, 1, "c.Ts3ErrorType.ERROR_whisper_no_targets", "ERROR_whisper_no_targets"], [43, 0, 1, "c.Ts3ErrorType.ERROR_whisper_too_many_targets", "ERROR_whisper_too_many_targets"]], "VariablesExport": [[42, 3, 1, "c.VariablesExport.items", "items"]], "VariablesExportItem": [[42, 3, 1, "c.VariablesExportItem.current", "current"], [42, 3, 1, "c.VariablesExportItem.itemIsValid", "itemIsValid"], [42, 3, 1, "c.VariablesExportItem.proposed", "proposed"], [42, 3, 1, "c.VariablesExportItem.proposedIsSet", "proposedIsSet"]], "VirtualServerCreateFlags": [[73, 0, 1, "c.VirtualServerCreateFlags.VIRTUALSERVER_CREATE_FLAG_NONE", "VIRTUALSERVER_CREATE_FLAG_NONE"], [73, 0, 1, "c.VirtualServerCreateFlags.VIRTUALSERVER_CREATE_FLAG_PASSWORDS_ENCRYPTED", "VIRTUALSERVER_CREATE_FLAG_PASSWORDS_ENCRYPTED"]], "VirtualServerProperties": [[45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_ADDRESS", "VIRTUALSERVER_ADDRESS"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_CHANNELS_ONLINE", "VIRTUALSERVER_CHANNELS_ONLINE"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_CLIENTS_ONLINE", "VIRTUALSERVER_CLIENTS_ONLINE"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_CODEC_ENCRYPTION_MODE", "VIRTUALSERVER_CODEC_ENCRYPTION_MODE"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_CREATED", "VIRTUALSERVER_CREATED"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_ENCRYPTION_CIPHERS", "VIRTUALSERVER_ENCRYPTION_CIPHERS"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_ENDMARKER", "VIRTUALSERVER_ENDMARKER"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_FILEBASE", "VIRTUALSERVER_FILEBASE"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_LOG_FILETRANSFER", "VIRTUALSERVER_LOG_FILETRANSFER"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_MAXCLIENTS", "VIRTUALSERVER_MAXCLIENTS"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH", "VIRTUALSERVER_MAX_DOWNLOAD_TOTAL_BANDWIDTH"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH", "VIRTUALSERVER_MAX_UPLOAD_TOTAL_BANDWIDTH"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_NAME", "VIRTUALSERVER_NAME"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_PASSWORD", "VIRTUALSERVER_PASSWORD"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_PLATFORM", "VIRTUALSERVER_PLATFORM"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_UNIQUE_IDENTIFIER", "VIRTUALSERVER_UNIQUE_IDENTIFIER"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_UPTIME", "VIRTUALSERVER_UPTIME"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_VERSION", "VIRTUALSERVER_VERSION"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_VERSION_SIGN", "VIRTUALSERVER_VERSION_SIGN"], [45, 0, 1, "c.VirtualServerProperties.VIRTUALSERVER_WELCOMEMESSAGE", "VIRTUALSERVER_WELCOMEMESSAGE"]], "Visibility": [[42, 0, 1, "c.Visibility.ENTER_VISIBILITY", "ENTER_VISIBILITY"], [42, 0, 1, "c.Visibility.LEAVE_VISIBILITY", "LEAVE_VISIBILITY"], [42, 0, 1, "c.Visibility.RETAIN_VISIBILITY", "RETAIN_VISIBILITY"]], "ts3client_acquireCustomPlaybackData": [[6, 5, 1, "c.ts3client_acquireCustomPlaybackData", "buffer"], [6, 5, 1, "c.ts3client_acquireCustomPlaybackData", "deviceName"], [6, 5, 1, "c.ts3client_acquireCustomPlaybackData", "samples"]], "ts3client_activateCaptureDevice": [[2, 5, 1, "c.ts3client_activateCaptureDevice", "serverConnectionHandlerID"]], "ts3client_allowWhispersFrom": [[40, 5, 1, "c.ts3client_allowWhispersFrom", "clID"], [40, 5, 1, "c.ts3client_allowWhispersFrom", "serverConnectionHandlerID"]], "ts3client_channelset3DAttributes": [[0, 5, 1, "c.ts3client_channelset3DAttributes", "clientID"], [0, 5, 1, "c.ts3client_channelset3DAttributes", "position"], [0, 5, 1, "c.ts3client_channelset3DAttributes", "serverConnectionHandlerID"]], "ts3client_cleanUpConnectionInfo": [[41, 5, 1, "c.ts3client_cleanUpConnectionInfo", "clientID"], [41, 5, 1, "c.ts3client_cleanUpConnectionInfo", "serverConnectionHandlerID"]], "ts3client_closeAudioPlaybackHandle": [[41, 5, 1, "c.ts3client_closeAudioPlaybackHandle", "handle"], [41, 5, 1, "c.ts3client_closeAudioPlaybackHandle", "scHandlerID"]], "ts3client_closeCaptureDevice": [[4, 5, 1, "c.ts3client_closeCaptureDevice", "serverConnectionHandlerID"]], "ts3client_closePlaybackDevice": [[4, 5, 1, "c.ts3client_closePlaybackDevice", "serverConnectionHandlerID"]], "ts3client_closeWaveFileHandle": [[39, 5, 1, "c.ts3client_closeWaveFileHandle", "serverConnectionHandlerID"], [39, 5, 1, "c.ts3client_closeWaveFileHandle", "waveHandle"]], "ts3client_createAudioPlaybackHandle": [[41, 5, 1, "c.ts3client_createAudioPlaybackHandle", "handle"], [41, 5, 1, "c.ts3client_createAudioPlaybackHandle", "scHandlerID"]], "ts3client_createIdentity": [[22, 5, 1, "c.ts3client_createIdentity", "result"]], "ts3client_destroyServerConnectionHandler": [[22, 5, 1, "c.ts3client_destroyServerConnectionHandler", "serverConnectionHandlerID"]], "ts3client_enqueueAudioPlaybackHandle": [[41, 5, 1, "c.ts3client_enqueueAudioPlaybackHandle", "buffer"], [41, 5, 1, "c.ts3client_enqueueAudioPlaybackHandle", "buffer_size"], [41, 5, 1, "c.ts3client_enqueueAudioPlaybackHandle", "handle"], [41, 5, 1, "c.ts3client_enqueueAudioPlaybackHandle", "scHandlerID"]], "ts3client_flushChannelCreation": [[12, 5, 1, "c.ts3client_flushChannelCreation", "channelParentID"], [12, 5, 1, "c.ts3client_flushChannelCreation", "returnCode"], [12, 5, 1, "c.ts3client_flushChannelCreation", "serverConnectionHandlerID"]], "ts3client_flushChannelUpdates": [[28, 5, 1, "c.ts3client_flushChannelUpdates", "channelID"], [28, 5, 1, "c.ts3client_flushChannelUpdates", "returnCode"], [28, 5, 1, "c.ts3client_flushChannelUpdates", "serverConnectionHandlerID"]], "ts3client_flushClientSelfUpdates": [[29, 5, 1, "c.ts3client_flushClientSelfUpdates", "returnCode"], [29, 5, 1, "c.ts3client_flushClientSelfUpdates", "serverConnectionHandlerID"]], "ts3client_freeMemory": [[41, 5, 1, "c.ts3client_freeMemory", "pointer"]], "ts3client_getAverageTransferSpeed": [[26, 5, 1, "c.ts3client_getAverageTransferSpeed", "result"], [26, 5, 1, "c.ts3client_getAverageTransferSpeed", "transferID"]], "ts3client_getCaptureDeviceList": [[9, 5, 1, "c.ts3client_getCaptureDeviceList", "modeID"], [9, 5, 1, "c.ts3client_getCaptureDeviceList", "result"]], "ts3client_getCaptureModeList": [[9, 5, 1, "c.ts3client_getCaptureModeList", "result"]], "ts3client_getChannelClientList": [[21, 5, 1, "c.ts3client_getChannelClientList", "channelID"], [21, 5, 1, "c.ts3client_getChannelClientList", "result"], [21, 5, 1, "c.ts3client_getChannelClientList", "serverConnectionHandlerID"]], "ts3client_getChannelEmptySecs": [[13, 5, 1, "c.ts3client_getChannelEmptySecs", "channelID"], [13, 5, 1, "c.ts3client_getChannelEmptySecs", "result"], [13, 5, 1, "c.ts3client_getChannelEmptySecs", "serverConnectionHandlerID"]], "ts3client_getChannelIDFromChannelNames": [[28, 5, 1, "c.ts3client_getChannelIDFromChannelNames", "channelNameArray"], [28, 5, 1, "c.ts3client_getChannelIDFromChannelNames", "result"], [28, 5, 1, "c.ts3client_getChannelIDFromChannelNames", "serverConnectionHandlerID"]], "ts3client_getChannelList": [[15, 5, 1, "c.ts3client_getChannelList", "result"], [15, 5, 1, "c.ts3client_getChannelList", "serverConnectionHandlerID"]], "ts3client_getChannelOfClient": [[15, 5, 1, "c.ts3client_getChannelOfClient", "clientID"], [15, 5, 1, "c.ts3client_getChannelOfClient", "result"], [15, 5, 1, "c.ts3client_getChannelOfClient", "serverConnectionHandlerID"]], "ts3client_getChannelVariableAsInt": [[28, 5, 1, "c.ts3client_getChannelVariableAsInt", "channelID"], [28, 5, 1, "c.ts3client_getChannelVariableAsInt", "flag"], [28, 5, 1, "c.ts3client_getChannelVariableAsInt", "result"], [28, 5, 1, "c.ts3client_getChannelVariableAsInt", "serverConnectionHandlerID"]], "ts3client_getChannelVariableAsString": [[28, 5, 1, "c.ts3client_getChannelVariableAsString", "channelID"], [28, 5, 1, "c.ts3client_getChannelVariableAsString", "flag"], [28, 5, 1, "c.ts3client_getChannelVariableAsString", "result"], [28, 5, 1, "c.ts3client_getChannelVariableAsString", "serverConnectionHandlerID"]], "ts3client_getChannelVariableAsUInt64": [[28, 5, 1, "c.ts3client_getChannelVariableAsUInt64", "channelID"], [28, 5, 1, "c.ts3client_getChannelVariableAsUInt64", "flag"], [28, 5, 1, "c.ts3client_getChannelVariableAsUInt64", "result"], [28, 5, 1, "c.ts3client_getChannelVariableAsUInt64", "serverConnectionHandlerID"]], "ts3client_getClientID": [[29, 5, 1, "c.ts3client_getClientID", "result"], [29, 5, 1, "c.ts3client_getClientID", "serverConnectionHandlerID"]], "ts3client_getClientLibVersion": [[11, 5, 1, "c.ts3client_getClientLibVersion", "result"]], "ts3client_getClientLibVersionNumber": [[11, 5, 1, "c.ts3client_getClientLibVersionNumber", "result"]], "ts3client_getClientList": [[21, 5, 1, "c.ts3client_getClientList", "result"], [21, 5, 1, "c.ts3client_getClientList", "serverConnectionHandlerID"]], "ts3client_getClientSelfVariableAsInt": [[29, 5, 1, "c.ts3client_getClientSelfVariableAsInt", "flag"], [29, 5, 1, "c.ts3client_getClientSelfVariableAsInt", "result"], [29, 5, 1, "c.ts3client_getClientSelfVariableAsInt", "serverConnectionHandlerID"]], "ts3client_getClientSelfVariableAsString": [[29, 5, 1, "c.ts3client_getClientSelfVariableAsString", "flag"], [29, 5, 1, "c.ts3client_getClientSelfVariableAsString", "result"], [29, 5, 1, "c.ts3client_getClientSelfVariableAsString", "serverConnectionHandlerID"]], "ts3client_getClientVariableAsInt": [[29, 5, 1, "c.ts3client_getClientVariableAsInt", "clientID"], [29, 5, 1, "c.ts3client_getClientVariableAsInt", "flag"], [29, 5, 1, "c.ts3client_getClientVariableAsInt", "result"], [29, 5, 1, "c.ts3client_getClientVariableAsInt", "serverConnectionHandlerID"]], "ts3client_getClientVariableAsString": [[29, 5, 1, "c.ts3client_getClientVariableAsString", "clientID"], [29, 5, 1, "c.ts3client_getClientVariableAsString", "flag"], [29, 5, 1, "c.ts3client_getClientVariableAsString", "result"], [29, 5, 1, "c.ts3client_getClientVariableAsString", "serverConnectionHandlerID"]], "ts3client_getClientVariableAsUInt64": [[29, 5, 1, "c.ts3client_getClientVariableAsUInt64", "clientID"], [29, 5, 1, "c.ts3client_getClientVariableAsUInt64", "flag"], [29, 5, 1, "c.ts3client_getClientVariableAsUInt64", "result"], [29, 5, 1, "c.ts3client_getClientVariableAsUInt64", "serverConnectionHandlerID"]], "ts3client_getConnectionStatus": [[41, 5, 1, "c.ts3client_getConnectionStatus", "result"], [41, 5, 1, "c.ts3client_getConnectionStatus", "serverConnectionHandlerID"]], "ts3client_getConnectionVariableAsDouble": [[41, 5, 1, "c.ts3client_getConnectionVariableAsDouble", "clientID"], [41, 5, 1, "c.ts3client_getConnectionVariableAsDouble", "flag"], [41, 5, 1, "c.ts3client_getConnectionVariableAsDouble", "result"], [41, 5, 1, "c.ts3client_getConnectionVariableAsDouble", "serverConnectionHandlerID"]], "ts3client_getConnectionVariableAsString": [[41, 5, 1, "c.ts3client_getConnectionVariableAsString", "clientID"], [41, 5, 1, "c.ts3client_getConnectionVariableAsString", "flag"], [41, 5, 1, "c.ts3client_getConnectionVariableAsString", "result"], [41, 5, 1, "c.ts3client_getConnectionVariableAsString", "serverConnectionHandlerID"]], "ts3client_getConnectionVariableAsUInt64": [[41, 5, 1, "c.ts3client_getConnectionVariableAsUInt64", "clientID"], [41, 5, 1, "c.ts3client_getConnectionVariableAsUInt64", "flag"], [41, 5, 1, "c.ts3client_getConnectionVariableAsUInt64", "result"], [41, 5, 1, "c.ts3client_getConnectionVariableAsUInt64", "serverConnectionHandlerID"]], "ts3client_getCurrentCaptureDeviceName": [[7, 5, 1, "c.ts3client_getCurrentCaptureDeviceName", "isDefault"], [7, 5, 1, "c.ts3client_getCurrentCaptureDeviceName", "result"], [7, 5, 1, "c.ts3client_getCurrentCaptureDeviceName", "serverConnectionHandlerID"]], "ts3client_getCurrentCaptureMode": [[7, 5, 1, "c.ts3client_getCurrentCaptureMode", "result"], [7, 5, 1, "c.ts3client_getCurrentCaptureMode", "serverConnectionHandlerID"]], "ts3client_getCurrentPlayBackMode": [[7, 5, 1, "c.ts3client_getCurrentPlayBackMode", "result"], [7, 5, 1, "c.ts3client_getCurrentPlayBackMode", "serverConnectionHandlerID"]], "ts3client_getCurrentPlaybackDeviceName": [[7, 5, 1, "c.ts3client_getCurrentPlaybackDeviceName", "isDefault"], [7, 5, 1, "c.ts3client_getCurrentPlaybackDeviceName", "result"], [7, 5, 1, "c.ts3client_getCurrentPlaybackDeviceName", "serverConnectionHandlerID"]], "ts3client_getCurrentTransferSpeed": [[26, 5, 1, "c.ts3client_getCurrentTransferSpeed", "result"], [26, 5, 1, "c.ts3client_getCurrentTransferSpeed", "transferID"]], "ts3client_getDefaultCaptureDevice": [[9, 5, 1, "c.ts3client_getDefaultCaptureDevice", "modeID"], [9, 5, 1, "c.ts3client_getDefaultCaptureDevice", "result"]], "ts3client_getDefaultCaptureMode": [[9, 5, 1, "c.ts3client_getDefaultCaptureMode", "result"]], "ts3client_getDefaultPlayBackMode": [[9, 5, 1, "c.ts3client_getDefaultPlayBackMode", "result"]], "ts3client_getDefaultPlaybackDevice": [[9, 5, 1, "c.ts3client_getDefaultPlaybackDevice", "modeID"], [9, 5, 1, "c.ts3client_getDefaultPlaybackDevice", "result"]], "ts3client_getEncodeConfigValue": [[23, 5, 1, "c.ts3client_getEncodeConfigValue", "ident"], [23, 5, 1, "c.ts3client_getEncodeConfigValue", "result"], [23, 5, 1, "c.ts3client_getEncodeConfigValue", "serverConnectionHandlerID"]], "ts3client_getErrorMessage": [[11, 5, 1, "c.ts3client_getErrorMessage", "error"], [11, 5, 1, "c.ts3client_getErrorMessage", "errorCode"]], "ts3client_getGlobalConfigValueAsInt": [[41, 5, 1, "c.ts3client_getGlobalConfigValueAsInt", "ident"], [41, 5, 1, "c.ts3client_getGlobalConfigValueAsInt", "result"]], "ts3client_getInstanceSpeedLimitDown": [[26, 5, 1, "c.ts3client_getInstanceSpeedLimitDown", "limit"]], "ts3client_getInstanceSpeedLimitUp": [[26, 5, 1, "c.ts3client_getInstanceSpeedLimitUp", "limit"]], "ts3client_getParentChannelOfChannel": [[15, 5, 1, "c.ts3client_getParentChannelOfChannel", "channelID"], [15, 5, 1, "c.ts3client_getParentChannelOfChannel", "result"], [15, 5, 1, "c.ts3client_getParentChannelOfChannel", "serverConnectionHandlerID"]], "ts3client_getPlaybackConfigValueAsFloat": [[35, 5, 1, "c.ts3client_getPlaybackConfigValueAsFloat", "ident"], [35, 5, 1, "c.ts3client_getPlaybackConfigValueAsFloat", "result"], [35, 5, 1, "c.ts3client_getPlaybackConfigValueAsFloat", "serverConnectionHandlerID"]], "ts3client_getPlaybackDeviceList": [[9, 5, 1, "c.ts3client_getPlaybackDeviceList", "modeID"], [9, 5, 1, "c.ts3client_getPlaybackDeviceList", "result"]], "ts3client_getPlaybackModeList": [[9, 5, 1, "c.ts3client_getPlaybackModeList", "result"]], "ts3client_getPreProcessorConfigValue": [[36, 5, 1, "c.ts3client_getPreProcessorConfigValue", "ident"], [36, 5, 1, "c.ts3client_getPreProcessorConfigValue", "result"], [36, 5, 1, "c.ts3client_getPreProcessorConfigValue", "serverConnectionHandlerID"]], "ts3client_getPreProcessorInfoValueFloat": [[36, 5, 1, "c.ts3client_getPreProcessorInfoValueFloat", "ident"], [36, 5, 1, "c.ts3client_getPreProcessorInfoValueFloat", "result"], [36, 5, 1, "c.ts3client_getPreProcessorInfoValueFloat", "serverConnectionHandlerID"]], "ts3client_getServerConnectionHandlerList": [[22, 5, 1, "c.ts3client_getServerConnectionHandlerList", "result"]], "ts3client_getServerConnectionHandlerSpeedLimitDown": [[26, 5, 1, "c.ts3client_getServerConnectionHandlerSpeedLimitDown", "limit"], [26, 5, 1, "c.ts3client_getServerConnectionHandlerSpeedLimitDown", "serverConnectionHandlerID"]], "ts3client_getServerConnectionHandlerSpeedLimitUp": [[26, 5, 1, "c.ts3client_getServerConnectionHandlerSpeedLimitUp", "limit"], [26, 5, 1, "c.ts3client_getServerConnectionHandlerSpeedLimitUp", "serverConnectionHandlerID"]], "ts3client_getServerConnectionVariableAsFloat": [[41, 5, 1, "c.ts3client_getServerConnectionVariableAsFloat", "flag"], [41, 5, 1, "c.ts3client_getServerConnectionVariableAsFloat", "result"], [41, 5, 1, "c.ts3client_getServerConnectionVariableAsFloat", "serverConnectionHandlerID"]], "ts3client_getServerConnectionVariableAsUInt64": [[41, 5, 1, "c.ts3client_getServerConnectionVariableAsUInt64", "flag"], [41, 5, 1, "c.ts3client_getServerConnectionVariableAsUInt64", "result"], [41, 5, 1, "c.ts3client_getServerConnectionVariableAsUInt64", "serverConnectionHandlerID"]], "ts3client_getServerLegacyUUID": [[41, 5, 1, "c.ts3client_getServerLegacyUUID", "result"], [41, 5, 1, "c.ts3client_getServerLegacyUUID", "serverConnectionHandlerID"]], "ts3client_getServerVariableAsInt": [[30, 5, 1, "c.ts3client_getServerVariableAsInt", "flag"], [30, 5, 1, "c.ts3client_getServerVariableAsInt", "result"], [30, 5, 1, "c.ts3client_getServerVariableAsInt", "serverConnectionHandlerID"]], "ts3client_getServerVariableAsString": [[30, 5, 1, "c.ts3client_getServerVariableAsString", "flag"], [30, 5, 1, "c.ts3client_getServerVariableAsString", "result"], [30, 5, 1, "c.ts3client_getServerVariableAsString", "serverConnectionHandlerID"]], "ts3client_getServerVariableAsUInt64": [[30, 5, 1, "c.ts3client_getServerVariableAsUInt64", "flag"], [30, 5, 1, "c.ts3client_getServerVariableAsUInt64", "result"], [30, 5, 1, "c.ts3client_getServerVariableAsUInt64", "serverConnectionHandlerID"]], "ts3client_getTransferFileName": [[26, 5, 1, "c.ts3client_getTransferFileName", "result"], [26, 5, 1, "c.ts3client_getTransferFileName", "transferID"]], "ts3client_getTransferFilePath": [[26, 5, 1, "c.ts3client_getTransferFilePath", "result"], [26, 5, 1, "c.ts3client_getTransferFilePath", "transferID"]], "ts3client_getTransferFileRemotePath": [[26, 5, 1, "c.ts3client_getTransferFileRemotePath", "result"], [26, 5, 1, "c.ts3client_getTransferFileRemotePath", "transferID"]], "ts3client_getTransferFileSize": [[26, 5, 1, "c.ts3client_getTransferFileSize", "result"], [26, 5, 1, "c.ts3client_getTransferFileSize", "transferID"]], "ts3client_getTransferFileSizeDone": [[26, 5, 1, "c.ts3client_getTransferFileSizeDone", "result"], [26, 5, 1, "c.ts3client_getTransferFileSizeDone", "transferID"]], "ts3client_getTransferRunTime": [[26, 5, 1, "c.ts3client_getTransferRunTime", "result"], [26, 5, 1, "c.ts3client_getTransferRunTime", "transferID"]], "ts3client_getTransferSpeedLimit": [[26, 5, 1, "c.ts3client_getTransferSpeedLimit", "limit"], [26, 5, 1, "c.ts3client_getTransferSpeedLimit", "transferID"]], "ts3client_getTransferStatus": [[26, 5, 1, "c.ts3client_getTransferStatus", "result"], [26, 5, 1, "c.ts3client_getTransferStatus", "transferID"]], "ts3client_getWhisperReceiveWhitelist": [[41, 5, 1, "c.ts3client_getWhisperReceiveWhitelist", "result"], [41, 5, 1, "c.ts3client_getWhisperReceiveWhitelist", "serverConnectionHandlerID"]], "ts3client_haltTransfer": [[26, 5, 1, "c.ts3client_haltTransfer", "deleteUnfinishedFile"], [26, 5, 1, "c.ts3client_haltTransfer", "returnCode"], [26, 5, 1, "c.ts3client_haltTransfer", "serverConnectionHandlerID"], [26, 5, 1, "c.ts3client_haltTransfer", "transferID"]], "ts3client_identityStringToUniqueIdentifier": [[41, 5, 1, "c.ts3client_identityStringToUniqueIdentifier", "identityString"], [41, 5, 1, "c.ts3client_identityStringToUniqueIdentifier", "result"]], "ts3client_initClientLib": [[11, 5, 1, "c.ts3client_initClientLib", "functionPointers"], [11, 5, 1, "c.ts3client_initClientLib", "functionRarePointers"], [11, 5, 1, "c.ts3client_initClientLib", "logFileFolder"], [11, 5, 1, "c.ts3client_initClientLib", "resourcesFolder"], [11, 5, 1, "c.ts3client_initClientLib", "usedLogTypes"]], "ts3client_initiateGracefulPlaybackShutdown": [[4, 5, 1, "c.ts3client_initiateGracefulPlaybackShutdown", "serverConnectionHandlerID"]], "ts3client_isTransferSender": [[26, 5, 1, "c.ts3client_isTransferSender", "result"], [26, 5, 1, "c.ts3client_isTransferSender", "transferID"]], "ts3client_isWhisperReceiveWhitelisted": [[41, 5, 1, "c.ts3client_isWhisperReceiveWhitelisted", "clientID"], [41, 5, 1, "c.ts3client_isWhisperReceiveWhitelisted", "result"], [41, 5, 1, "c.ts3client_isWhisperReceiveWhitelisted", "serverConnectionHandlerID"]], "ts3client_logMessage": [[33, 5, 1, "c.ts3client_logMessage", "channel"], [33, 5, 1, "c.ts3client_logMessage", "logID"], [33, 5, 1, "c.ts3client_logMessage", "logMessage"], [33, 5, 1, "c.ts3client_logMessage", "severity"]], "ts3client_openCaptureDevice": [[8, 5, 1, "c.ts3client_openCaptureDevice", "captureDevice"], [8, 5, 1, "c.ts3client_openCaptureDevice", "modeID"], [8, 5, 1, "c.ts3client_openCaptureDevice", "serverConnectionHandlerID"]], "ts3client_openPlaybackDevice": [[8, 5, 1, "c.ts3client_openPlaybackDevice", "modeID"], [8, 5, 1, "c.ts3client_openPlaybackDevice", "playbackDevice"], [8, 5, 1, "c.ts3client_openPlaybackDevice", "serverConnectionHandlerID"]], "ts3client_pauseAudioPlaybackHandle": [[41, 5, 1, "c.ts3client_pauseAudioPlaybackHandle", "handle"], [41, 5, 1, "c.ts3client_pauseAudioPlaybackHandle", "pause"], [41, 5, 1, "c.ts3client_pauseAudioPlaybackHandle", "scHandlerID"]], "ts3client_pauseWaveFileHandle": [[39, 5, 1, "c.ts3client_pauseWaveFileHandle", "pause"], [39, 5, 1, "c.ts3client_pauseWaveFileHandle", "serverConnectionHandlerID"], [39, 5, 1, "c.ts3client_pauseWaveFileHandle", "waveHandle"]], "ts3client_playWaveFile": [[39, 5, 1, "c.ts3client_playWaveFile", "path"], [39, 5, 1, "c.ts3client_playWaveFile", "serverConnectionHandlerID"]], "ts3client_playWaveFileHandle": [[39, 5, 1, "c.ts3client_playWaveFileHandle", "loop"], [39, 5, 1, "c.ts3client_playWaveFileHandle", "path"], [39, 5, 1, "c.ts3client_playWaveFileHandle", "serverConnectionHandlerID"], [39, 5, 1, "c.ts3client_playWaveFileHandle", "waveHandle"]], "ts3client_processCustomCaptureData": [[6, 5, 1, "c.ts3client_processCustomCaptureData", "buffer"], [6, 5, 1, "c.ts3client_processCustomCaptureData", "deviceName"], [6, 5, 1, "c.ts3client_processCustomCaptureData", "samples"]], "ts3client_registerCustomDevice": [[6, 5, 1, "c.ts3client_registerCustomDevice", "capChannels"], [6, 5, 1, "c.ts3client_registerCustomDevice", "capFrequency"], [6, 5, 1, "c.ts3client_registerCustomDevice", "deviceDisplayName"], [6, 5, 1, "c.ts3client_registerCustomDevice", "deviceID"], [6, 5, 1, "c.ts3client_registerCustomDevice", "playChannels"], [6, 5, 1, "c.ts3client_registerCustomDevice", "playFrequency"]], "ts3client_removeFromAllowedWhispersFrom": [[40, 5, 1, "c.ts3client_removeFromAllowedWhispersFrom", "clID"], [40, 5, 1, "c.ts3client_removeFromAllowedWhispersFrom", "serverConnectionHandlerID"]], "ts3client_requestChannelDelete": [[13, 5, 1, "c.ts3client_requestChannelDelete", "channelID"], [13, 5, 1, "c.ts3client_requestChannelDelete", "force"], [13, 5, 1, "c.ts3client_requestChannelDelete", "returnCode"], [13, 5, 1, "c.ts3client_requestChannelDelete", "serverConnectionHandlerID"]], "ts3client_requestChannelDescription": [[41, 5, 1, "c.ts3client_requestChannelDescription", "channelID"], [41, 5, 1, "c.ts3client_requestChannelDescription", "returnCode"], [41, 5, 1, "c.ts3client_requestChannelDescription", "serverConnectionHandlerID"]], "ts3client_requestChannelMove": [[16, 5, 1, "c.ts3client_requestChannelMove", "channelID"], [16, 5, 1, "c.ts3client_requestChannelMove", "newChannelOrder"], [16, 5, 1, "c.ts3client_requestChannelMove", "newChannelParentID"], [16, 5, 1, "c.ts3client_requestChannelMove", "returnCode"], [16, 5, 1, "c.ts3client_requestChannelMove", "serverConnectionHandlerID"]], "ts3client_requestChannelSubscribe": [[18, 5, 1, "c.ts3client_requestChannelSubscribe", "channelIDArray"], [18, 5, 1, "c.ts3client_requestChannelSubscribe", "returnCode"], [18, 5, 1, "c.ts3client_requestChannelSubscribe", "serverConnectionHandlerID"]], "ts3client_requestChannelSubscribeAll": [[18, 5, 1, "c.ts3client_requestChannelSubscribeAll", "returnCode"], [18, 5, 1, "c.ts3client_requestChannelSubscribeAll", "serverConnectionHandlerID"]], "ts3client_requestChannelUnsubscribe": [[18, 5, 1, "c.ts3client_requestChannelUnsubscribe", "channelIDArray"], [18, 5, 1, "c.ts3client_requestChannelUnsubscribe", "returnCode"], [18, 5, 1, "c.ts3client_requestChannelUnsubscribe", "serverConnectionHandlerID"]], "ts3client_requestChannelUnsubscribeAll": [[18, 5, 1, "c.ts3client_requestChannelUnsubscribeAll", "returnCode"], [18, 5, 1, "c.ts3client_requestChannelUnsubscribeAll", "serverConnectionHandlerID"]], "ts3client_requestChat": [[41, 5, 1, "c.ts3client_requestChat", "returnCode"], [41, 5, 1, "c.ts3client_requestChat", "serverConnectionHandlerID"], [41, 5, 1, "c.ts3client_requestChat", "targetClientID"], [41, 5, 1, "c.ts3client_requestChat", "type"]], "ts3client_requestClientIDs": [[41, 5, 1, "c.ts3client_requestClientIDs", "clientUniqueIdentifier"], [41, 5, 1, "c.ts3client_requestClientIDs", "returnCode"], [41, 5, 1, "c.ts3client_requestClientIDs", "serverConnectionHandlerID"]], "ts3client_requestClientKickFromChannel": [[20, 5, 1, "c.ts3client_requestClientKickFromChannel", "clientIDArray"], [20, 5, 1, "c.ts3client_requestClientKickFromChannel", "kickReason"], [20, 5, 1, "c.ts3client_requestClientKickFromChannel", "returnCode"], [20, 5, 1, "c.ts3client_requestClientKickFromChannel", "serverConnectionHandlerID"]], "ts3client_requestClientKickFromServer": [[20, 5, 1, "c.ts3client_requestClientKickFromServer", "clientIDArray"], [20, 5, 1, "c.ts3client_requestClientKickFromServer", "kickReason"], [20, 5, 1, "c.ts3client_requestClientKickFromServer", "returnCode"], [20, 5, 1, "c.ts3client_requestClientKickFromServer", "serverConnectionHandlerID"]], "ts3client_requestClientMove": [[14, 5, 1, "c.ts3client_requestClientMove", "clientIDArray"], [14, 5, 1, "c.ts3client_requestClientMove", "newChannelID"], [14, 5, 1, "c.ts3client_requestClientMove", "password"], [14, 5, 1, "c.ts3client_requestClientMove", "returnCode"], [14, 5, 1, "c.ts3client_requestClientMove", "serverConnectionHandlerID"]], "ts3client_requestClientSetWhisperList": [[40, 5, 1, "c.ts3client_requestClientSetWhisperList", "clientID"], [40, 5, 1, "c.ts3client_requestClientSetWhisperList", "returnCode"], [40, 5, 1, "c.ts3client_requestClientSetWhisperList", "serverConnectionHandlerID"], [40, 5, 1, "c.ts3client_requestClientSetWhisperList", "targetChannelIDArray"], [40, 5, 1, "c.ts3client_requestClientSetWhisperList", "targetClientIDArray"]], "ts3client_requestClientVariables": [[29, 5, 1, "c.ts3client_requestClientVariables", "clientID"], [29, 5, 1, "c.ts3client_requestClientVariables", "returnCode"], [29, 5, 1, "c.ts3client_requestClientVariables", "serverConnectionHandlerID"]], "ts3client_requestConnectionInfo": [[41, 5, 1, "c.ts3client_requestConnectionInfo", "clientID"], [41, 5, 1, "c.ts3client_requestConnectionInfo", "returnCode"], [41, 5, 1, "c.ts3client_requestConnectionInfo", "serverConnectionHandlerID"]], "ts3client_requestCreateDirectory": [[26, 5, 1, "c.ts3client_requestCreateDirectory", "channelID"], [26, 5, 1, "c.ts3client_requestCreateDirectory", "channelPW"], [26, 5, 1, "c.ts3client_requestCreateDirectory", "directoryPath"], [26, 5, 1, "c.ts3client_requestCreateDirectory", "returnCode"], [26, 5, 1, "c.ts3client_requestCreateDirectory", "serverConnectionHandlerID"]], "ts3client_requestDeleteChannelTextMsg": [[41, 5, 1, "c.ts3client_requestDeleteChannelTextMsg", "messageCount"], [41, 5, 1, "c.ts3client_requestDeleteChannelTextMsg", "messageIds"], [41, 5, 1, "c.ts3client_requestDeleteChannelTextMsg", "returnCode"], [41, 5, 1, "c.ts3client_requestDeleteChannelTextMsg", "roomAlias"], [41, 5, 1, "c.ts3client_requestDeleteChannelTextMsg", "serverConnectionHandlerID"]], "ts3client_requestDeleteFile": [[26, 5, 1, "c.ts3client_requestDeleteFile", "channelID"], [26, 5, 1, "c.ts3client_requestDeleteFile", "channelPW"], [26, 5, 1, "c.ts3client_requestDeleteFile", "file"], [26, 5, 1, "c.ts3client_requestDeleteFile", "returnCode"], [26, 5, 1, "c.ts3client_requestDeleteFile", "serverConnectionHandlerID"]], "ts3client_requestFile": [[26, 5, 1, "c.ts3client_requestFile", "channelID"], [26, 5, 1, "c.ts3client_requestFile", "channelPW"], [26, 5, 1, "c.ts3client_requestFile", "destinationDirectory"], [26, 5, 1, "c.ts3client_requestFile", "file"], [26, 5, 1, "c.ts3client_requestFile", "overwrite"], [26, 5, 1, "c.ts3client_requestFile", "result"], [26, 5, 1, "c.ts3client_requestFile", "resume"], [26, 5, 1, "c.ts3client_requestFile", "returnCode"], [26, 5, 1, "c.ts3client_requestFile", "serverConnectionHandlerID"]], "ts3client_requestFileInfo": [[26, 5, 1, "c.ts3client_requestFileInfo", "channelID"], [26, 5, 1, "c.ts3client_requestFileInfo", "channelPW"], [26, 5, 1, "c.ts3client_requestFileInfo", "file"], [26, 5, 1, "c.ts3client_requestFileInfo", "returnCode"], [26, 5, 1, "c.ts3client_requestFileInfo", "serverConnectionHandlerID"]], "ts3client_requestFileList": [[26, 5, 1, "c.ts3client_requestFileList", "channelID"], [26, 5, 1, "c.ts3client_requestFileList", "channelPW"], [26, 5, 1, "c.ts3client_requestFileList", "path"], [26, 5, 1, "c.ts3client_requestFileList", "returnCode"], [26, 5, 1, "c.ts3client_requestFileList", "serverConnectionHandlerID"]], "ts3client_requestMuteClients": [[32, 5, 1, "c.ts3client_requestMuteClients", "clientIDArray"], [32, 5, 1, "c.ts3client_requestMuteClients", "returnCode"], [32, 5, 1, "c.ts3client_requestMuteClients", "serverConnectionHandlerID"]], "ts3client_requestRenameFile": [[26, 5, 1, "c.ts3client_requestRenameFile", "fromChannelID"], [26, 5, 1, "c.ts3client_requestRenameFile", "fromChannelPW"], [26, 5, 1, "c.ts3client_requestRenameFile", "newFile"], [26, 5, 1, "c.ts3client_requestRenameFile", "oldFile"], [26, 5, 1, "c.ts3client_requestRenameFile", "returnCode"], [26, 5, 1, "c.ts3client_requestRenameFile", "serverConnectionHandlerID"], [26, 5, 1, "c.ts3client_requestRenameFile", "toChannelID"], [26, 5, 1, "c.ts3client_requestRenameFile", "toChannelPW"]], "ts3client_requestSendChannelTextMsg": [[37, 5, 1, "c.ts3client_requestSendChannelTextMsg", "message"], [37, 5, 1, "c.ts3client_requestSendChannelTextMsg", "returnCode"], [37, 5, 1, "c.ts3client_requestSendChannelTextMsg", "serverConnectionHandlerID"], [37, 5, 1, "c.ts3client_requestSendChannelTextMsg", "targetChannelID"]], "ts3client_requestSendPrivateTextMsg": [[37, 5, 1, "c.ts3client_requestSendPrivateTextMsg", "message"], [37, 5, 1, "c.ts3client_requestSendPrivateTextMsg", "returnCode"], [37, 5, 1, "c.ts3client_requestSendPrivateTextMsg", "serverConnectionHandlerID"], [37, 5, 1, "c.ts3client_requestSendPrivateTextMsg", "targetClientID"]], "ts3client_requestSendServerTextMsg": [[37, 5, 1, "c.ts3client_requestSendServerTextMsg", "message"], [37, 5, 1, "c.ts3client_requestSendServerTextMsg", "returnCode"], [37, 5, 1, "c.ts3client_requestSendServerTextMsg", "serverConnectionHandlerID"]], "ts3client_requestServerConnectionInfo": [[41, 5, 1, "c.ts3client_requestServerConnectionInfo", "returnCode"], [41, 5, 1, "c.ts3client_requestServerConnectionInfo", "serverConnectionHandlerID"]], "ts3client_requestServerVariables": [[30, 5, 1, "c.ts3client_requestServerVariables", "returnCode"], [30, 5, 1, "c.ts3client_requestServerVariables", "serverConnectionHandlerID"]], "ts3client_requestUnmuteClients": [[32, 5, 1, "c.ts3client_requestUnmuteClients", "clientIDArray"], [32, 5, 1, "c.ts3client_requestUnmuteClients", "returnCode"], [32, 5, 1, "c.ts3client_requestUnmuteClients", "serverConnectionHandlerID"]], "ts3client_s3ft_deleteFile": [[41, 5, 1, "c.ts3client_s3ft_deleteFile", "channelID"], [41, 5, 1, "c.ts3client_s3ft_deleteFile", "channelPW"], [41, 5, 1, "c.ts3client_s3ft_deleteFile", "objectKey"], [41, 5, 1, "c.ts3client_s3ft_deleteFile", "returnCode"], [41, 5, 1, "c.ts3client_s3ft_deleteFile", "scHandlerID"]], "ts3client_s3ft_getDownloadUrl": [[41, 5, 1, "c.ts3client_s3ft_getDownloadUrl", "channelID"], [41, 5, 1, "c.ts3client_s3ft_getDownloadUrl", "channelPW"], [41, 5, 1, "c.ts3client_s3ft_getDownloadUrl", "objectKey"], [41, 5, 1, "c.ts3client_s3ft_getDownloadUrl", "returnCode"], [41, 5, 1, "c.ts3client_s3ft_getDownloadUrl", "scHandlerID"]], "ts3client_s3ft_getPresignedUrls": [[41, 5, 1, "c.ts3client_s3ft_getPresignedUrls", "channelID"], [41, 5, 1, "c.ts3client_s3ft_getPresignedUrls", "channelPW"], [41, 5, 1, "c.ts3client_s3ft_getPresignedUrls", "contentLengths"], [41, 5, 1, "c.ts3client_s3ft_getPresignedUrls", "numObjects"], [41, 5, 1, "c.ts3client_s3ft_getPresignedUrls", "objectKeys"], [41, 5, 1, "c.ts3client_s3ft_getPresignedUrls", "returnCode"], [41, 5, 1, "c.ts3client_s3ft_getPresignedUrls", "scHandlerID"], [41, 5, 1, "c.ts3client_s3ft_getPresignedUrls", "verbs"]], "ts3client_s3ft_getUploadUrl": [[41, 5, 1, "c.ts3client_s3ft_getUploadUrl", "channelID"], [41, 5, 1, "c.ts3client_s3ft_getUploadUrl", "channelPW"], [41, 5, 1, "c.ts3client_s3ft_getUploadUrl", "contentLength"], [41, 5, 1, "c.ts3client_s3ft_getUploadUrl", "objectKey"], [41, 5, 1, "c.ts3client_s3ft_getUploadUrl", "returnCode"], [41, 5, 1, "c.ts3client_s3ft_getUploadUrl", "scHandlerID"]], "ts3client_s3ft_listFiles": [[41, 5, 1, "c.ts3client_s3ft_listFiles", "channelID"], [41, 5, 1, "c.ts3client_s3ft_listFiles", "channelPW"], [41, 5, 1, "c.ts3client_s3ft_listFiles", "returnCode"], [41, 5, 1, "c.ts3client_s3ft_listFiles", "scHandlerID"]], "ts3client_s3ft_renameFile": [[41, 5, 1, "c.ts3client_s3ft_renameFile", "channelID"], [41, 5, 1, "c.ts3client_s3ft_renameFile", "channelPW"], [41, 5, 1, "c.ts3client_s3ft_renameFile", "newObjectKey"], [41, 5, 1, "c.ts3client_s3ft_renameFile", "oldObjectKey"], [41, 5, 1, "c.ts3client_s3ft_renameFile", "returnCode"], [41, 5, 1, "c.ts3client_s3ft_renameFile", "scHandlerID"]], "ts3client_s3ft_uploadDoneNotification": [[41, 5, 1, "c.ts3client_s3ft_uploadDoneNotification", "channelID"], [41, 5, 1, "c.ts3client_s3ft_uploadDoneNotification", "returnCode"], [41, 5, 1, "c.ts3client_s3ft_uploadDoneNotification", "scHandlerID"]], "ts3client_sendFile": [[26, 5, 1, "c.ts3client_sendFile", "channelID"], [26, 5, 1, "c.ts3client_sendFile", "channelPW"], [26, 5, 1, "c.ts3client_sendFile", "file"], [26, 5, 1, "c.ts3client_sendFile", "overwrite"], [26, 5, 1, "c.ts3client_sendFile", "result"], [26, 5, 1, "c.ts3client_sendFile", "resume"], [26, 5, 1, "c.ts3client_sendFile", "returnCode"], [26, 5, 1, "c.ts3client_sendFile", "serverConnectionHandlerID"], [26, 5, 1, "c.ts3client_sendFile", "sourceDirectory"]], "ts3client_set3DWaveAttributes": [[0, 5, 1, "c.ts3client_set3DWaveAttributes", "position"], [0, 5, 1, "c.ts3client_set3DWaveAttributes", "serverConnectionHandlerID"], [0, 5, 1, "c.ts3client_set3DWaveAttributes", "waveHandle"]], "ts3client_setAECReferenceDevice": [[41, 5, 1, "c.ts3client_setAECReferenceDevice", "modeID"], [41, 5, 1, "c.ts3client_setAECReferenceDevice", "renderDeviceID"], [41, 5, 1, "c.ts3client_setAECReferenceDevice", "serverConnectionHandlerID"]], "ts3client_setChannelVariableAsInt": [[12, 5, 1, "c.ts3client_setChannelVariableAsInt", "channelID"], [12, 5, 1, "c.ts3client_setChannelVariableAsInt", "flag"], [12, 5, 1, "c.ts3client_setChannelVariableAsInt", "serverConnectionHandlerID"], [12, 5, 1, "c.ts3client_setChannelVariableAsInt", "value"]], "ts3client_setChannelVariableAsString": [[12, 5, 1, "c.ts3client_setChannelVariableAsString", "channelID"], [12, 5, 1, "c.ts3client_setChannelVariableAsString", "flag"], [12, 5, 1, "c.ts3client_setChannelVariableAsString", "serverConnectionHandlerID"], [12, 5, 1, "c.ts3client_setChannelVariableAsString", "value"]], "ts3client_setChannelVariableAsUInt64": [[12, 5, 1, "c.ts3client_setChannelVariableAsUInt64", "channelID"], [12, 5, 1, "c.ts3client_setChannelVariableAsUInt64", "flag"], [12, 5, 1, "c.ts3client_setChannelVariableAsUInt64", "serverConnectionHandlerID"], [12, 5, 1, "c.ts3client_setChannelVariableAsUInt64", "value"]], "ts3client_setClientSelfVariableAsInt": [[29, 5, 1, "c.ts3client_setClientSelfVariableAsInt", "flag"], [29, 5, 1, "c.ts3client_setClientSelfVariableAsInt", "serverConnectionHandlerID"], [29, 5, 1, "c.ts3client_setClientSelfVariableAsInt", "value"]], "ts3client_setClientSelfVariableAsString": [[29, 5, 1, "c.ts3client_setClientSelfVariableAsString", "flag"], [29, 5, 1, "c.ts3client_setClientSelfVariableAsString", "serverConnectionHandlerID"], [29, 5, 1, "c.ts3client_setClientSelfVariableAsString", "value"]], "ts3client_setClientVolumeModifier": [[35, 5, 1, "c.ts3client_setClientVolumeModifier", "clientID"], [35, 5, 1, "c.ts3client_setClientVolumeModifier", "serverConnectionHandlerID"], [35, 5, 1, "c.ts3client_setClientVolumeModifier", "value"]], "ts3client_setGlobalConfigValue": [[41, 5, 1, "c.ts3client_setGlobalConfigValue", "ident"], [41, 5, 1, "c.ts3client_setGlobalConfigValue", "value"]], "ts3client_setInstanceSpeedLimitDown": [[26, 5, 1, "c.ts3client_setInstanceSpeedLimitDown", "newLimit"]], "ts3client_setInstanceSpeedLimitUp": [[26, 5, 1, "c.ts3client_setInstanceSpeedLimitUp", "newLimit"]], "ts3client_setLocalTestMode": [[10, 5, 1, "c.ts3client_setLocalTestMode", "serverConnectionHandlerID"], [10, 5, 1, "c.ts3client_setLocalTestMode", "status"]], "ts3client_setLogVerbosity": [[33, 5, 1, "c.ts3client_setLogVerbosity", "logVerbosity"]], "ts3client_setPlaybackConfigValue": [[35, 5, 1, "c.ts3client_setPlaybackConfigValue", "ident"], [35, 5, 1, "c.ts3client_setPlaybackConfigValue", "serverConnectionHandlerID"], [35, 5, 1, "c.ts3client_setPlaybackConfigValue", "value"]], "ts3client_setPreProcessorConfigValue": [[36, 5, 1, "c.ts3client_setPreProcessorConfigValue", "ident"], [36, 5, 1, "c.ts3client_setPreProcessorConfigValue", "serverConnectionHandlerID"], [36, 5, 1, "c.ts3client_setPreProcessorConfigValue", "value"]], "ts3client_setServerConnectionHandlerSpeedLimitDown": [[26, 5, 1, "c.ts3client_setServerConnectionHandlerSpeedLimitDown", "newLimit"], [26, 5, 1, "c.ts3client_setServerConnectionHandlerSpeedLimitDown", "serverConnectionHandlerID"]], "ts3client_setServerConnectionHandlerSpeedLimitUp": [[26, 5, 1, "c.ts3client_setServerConnectionHandlerSpeedLimitUp", "newLimit"], [26, 5, 1, "c.ts3client_setServerConnectionHandlerSpeedLimitUp", "serverConnectionHandlerID"]], "ts3client_setTransferSpeedLimit": [[26, 5, 1, "c.ts3client_setTransferSpeedLimit", "newLimit"], [26, 5, 1, "c.ts3client_setTransferSpeedLimit", "transferID"]], "ts3client_setWhisperReceiveWhitelist": [[41, 5, 1, "c.ts3client_setWhisperReceiveWhitelist", "clientIDs"], [41, 5, 1, "c.ts3client_setWhisperReceiveWhitelist", "serverConnectionHandlerID"]], "ts3client_spawnNewServerConnectionHandler": [[22, 5, 1, "c.ts3client_spawnNewServerConnectionHandler", "port"], [22, 5, 1, "c.ts3client_spawnNewServerConnectionHandler", "result"]], "ts3client_startConnection": [[22, 5, 1, "c.ts3client_startConnection", "defaultChannelArray"], [22, 5, 1, "c.ts3client_startConnection", "defaultChannelPassword"], [22, 5, 1, "c.ts3client_startConnection", "identity"], [22, 5, 1, "c.ts3client_startConnection", "ip"], [22, 5, 1, "c.ts3client_startConnection", "nickname"], [22, 5, 1, "c.ts3client_startConnection", "port"], [22, 5, 1, "c.ts3client_startConnection", "serverConnectionHandlerID"], [22, 5, 1, "c.ts3client_startConnection", "serverPassword"]], "ts3client_startConnectionWithChannelID": [[22, 5, 1, "c.ts3client_startConnectionWithChannelID", "defaultChannelId"], [22, 5, 1, "c.ts3client_startConnectionWithChannelID", "defaultChannelPassword"], [22, 5, 1, "c.ts3client_startConnectionWithChannelID", "identity"], [22, 5, 1, "c.ts3client_startConnectionWithChannelID", "ip"], [22, 5, 1, "c.ts3client_startConnectionWithChannelID", "nickname"], [22, 5, 1, "c.ts3client_startConnectionWithChannelID", "port"], [22, 5, 1, "c.ts3client_startConnectionWithChannelID", "serverConnectionHandlerID"], [22, 5, 1, "c.ts3client_startConnectionWithChannelID", "serverPassword"]], "ts3client_startVoiceRecording": [[3, 5, 1, "c.ts3client_startVoiceRecording", "serverConnectionHandlerID"]], "ts3client_stopConnection": [[22, 5, 1, "c.ts3client_stopConnection", "quitMessage"], [22, 5, 1, "c.ts3client_stopConnection", "serverConnectionHandlerID"]], "ts3client_stopVoiceRecording": [[3, 5, 1, "c.ts3client_stopVoiceRecording", "serverConnectionHandlerID"]], "ts3client_systemset3DListenerAttributes": [[0, 5, 1, "c.ts3client_systemset3DListenerAttributes", "forward"], [0, 5, 1, "c.ts3client_systemset3DListenerAttributes", "position"], [0, 5, 1, "c.ts3client_systemset3DListenerAttributes", "serverConnectionHandlerID"], [0, 5, 1, "c.ts3client_systemset3DListenerAttributes", "up"]], "ts3client_systemset3DSettings": [[0, 5, 1, "c.ts3client_systemset3DSettings", "distanceFactor"], [0, 5, 1, "c.ts3client_systemset3DSettings", "rolloffScale"], [0, 5, 1, "c.ts3client_systemset3DSettings", "serverConnectionHandlerID"]], "ts3client_unregisterCustomDevice": [[41, 5, 1, "c.ts3client_unregisterCustomDevice", "deviceID"]], "ts3sc_array_ftdeletefile": [[42, 3, 1, "c.ts3sc_array_ftdeletefile.fileName", "fileName"]], "ts3sc_array_ftgetfileinfo": [[42, 3, 1, "c.ts3sc_array_ftgetfileinfo.channelID", "channelID"], [42, 3, 1, "c.ts3sc_array_ftgetfileinfo.fileName", "fileName"]], "ts3sc_data_ftcreatedir": [[42, 3, 1, "c.ts3sc_data_ftcreatedir.channelID", "channelID"], [42, 3, 1, "c.ts3sc_data_ftcreatedir.dirname", "dirname"]], "ts3sc_data_ftdeletefile": [[42, 3, 1, "c.ts3sc_data_ftdeletefile.channelID", "channelID"]], "ts3sc_data_ftgetfileinfo": [[42, 3, 1, "c.ts3sc_data_ftgetfileinfo.RESERVED", "RESERVED"]], "ts3sc_data_ftgetfilelist": [[42, 3, 1, "c.ts3sc_data_ftgetfilelist.channelID", "channelID"], [42, 3, 1, "c.ts3sc_data_ftgetfilelist.path", "path"]], "ts3sc_data_ftinitdownload": [[42, 3, 1, "c.ts3sc_data_ftinitdownload.channelID", "channelID"], [42, 3, 1, "c.ts3sc_data_ftinitdownload.fileName", "fileName"]], "ts3sc_data_ftinitupload": [[42, 3, 1, "c.ts3sc_data_ftinitupload.channelID", "channelID"], [42, 3, 1, "c.ts3sc_data_ftinitupload.fileName", "fileName"], [42, 3, 1, "c.ts3sc_data_ftinitupload.fileSize", "fileSize"], [42, 3, 1, "c.ts3sc_data_ftinitupload.overwrite", "overwrite"], [42, 3, 1, "c.ts3sc_data_ftinitupload.resume", "resume"]], "ts3sc_data_ftrenamefile": [[42, 3, 1, "c.ts3sc_data_ftrenamefile.fromChannelID", "fromChannelID"], [42, 3, 1, "c.ts3sc_data_ftrenamefile.newFileName", "newFileName"], [42, 3, 1, "c.ts3sc_data_ftrenamefile.oldFileName", "oldFileName"], [42, 3, 1, "c.ts3sc_data_ftrenamefile.toChannelID", "toChannelID"]], "ts3sc_ftcreatedir": [[42, 3, 1, "c.ts3sc_ftcreatedir.d", "d"], [42, 3, 1, "c.ts3sc_ftcreatedir.m", "m"]], "ts3sc_ftdeletefile": [[42, 3, 1, "c.ts3sc_ftdeletefile.d", "d"], [42, 3, 1, "c.ts3sc_ftdeletefile.m", "m"], [42, 3, 1, "c.ts3sc_ftdeletefile.r", "r"], [42, 3, 1, "c.ts3sc_ftdeletefile.r_size", "r_size"]], "ts3sc_ftgetfileinfo": [[42, 3, 1, "c.ts3sc_ftgetfileinfo.d", "d"], [42, 3, 1, "c.ts3sc_ftgetfileinfo.m", "m"], [42, 3, 1, "c.ts3sc_ftgetfileinfo.r", "r"], [42, 3, 1, "c.ts3sc_ftgetfileinfo.r_size", "r_size"]], "ts3sc_ftgetfilelist": [[42, 3, 1, "c.ts3sc_ftgetfilelist.d", "d"], [42, 3, 1, "c.ts3sc_ftgetfilelist.m", "m"]], "ts3sc_ftinitdownload": [[42, 3, 1, "c.ts3sc_ftinitdownload.d", "d"], [42, 3, 1, "c.ts3sc_ftinitdownload.m", "m"]], "ts3sc_ftinitupload": [[42, 3, 1, "c.ts3sc_ftinitupload.d", "d"], [42, 3, 1, "c.ts3sc_ftinitupload.m", "m"]], "ts3sc_ftrenamefile": [[42, 3, 1, "c.ts3sc_ftrenamefile.d", "d"], [42, 3, 1, "c.ts3sc_ftrenamefile.m", "m"]], "ts3sc_meta_ftcreatedir": [[42, 3, 1, "c.ts3sc_meta_ftcreatedir.RESERVED", "RESERVED"]], "ts3sc_meta_ftdeletefile": [[42, 3, 1, "c.ts3sc_meta_ftdeletefile.RESERVED", "RESERVED"]], "ts3sc_meta_ftgetfileinfo": [[42, 3, 1, "c.ts3sc_meta_ftgetfileinfo.RESERVED", "RESERVED"]], "ts3sc_meta_ftgetfilelist": [[42, 3, 1, "c.ts3sc_meta_ftgetfilelist.RESERVED", "RESERVED"]], "ts3sc_meta_ftinitdownload": [[42, 3, 1, "c.ts3sc_meta_ftinitdownload.RESERVED", "RESERVED"]], "ts3sc_meta_ftinitupload": [[42, 3, 1, "c.ts3sc_meta_ftinitupload.RESERVED", "RESERVED"]], "ts3sc_meta_ftrenamefile": [[42, 3, 1, "c.ts3sc_meta_ftrenamefile.has_toChannelID", "has_toChannelID"]], "ts3server_calculateSecurityHash": [[70, 5, 1, "c.ts3server_calculateSecurityHash", "clientMetaData"], [70, 5, 1, "c.ts3server_calculateSecurityHash", "clientNickName"], [70, 5, 1, "c.ts3server_calculateSecurityHash", "clientUniqueIdentifier"], [70, 5, 1, "c.ts3server_calculateSecurityHash", "securityHash"], [70, 5, 1, "c.ts3server_calculateSecurityHash", "securitySalt"]], "ts3server_channelDelete": [[50, 5, 1, "c.ts3server_channelDelete", "channelID"], [50, 5, 1, "c.ts3server_channelDelete", "force"], [50, 5, 1, "c.ts3server_channelDelete", "serverID"]], "ts3server_channelMove": [[52, 5, 1, "c.ts3server_channelMove", "channelID"], [52, 5, 1, "c.ts3server_channelMove", "newChannelParentID"], [52, 5, 1, "c.ts3server_channelMove", "newOrder"], [52, 5, 1, "c.ts3server_channelMove", "serverID"]], "ts3server_clientMove": [[55, 5, 1, "c.ts3server_clientMove", "clientIDArray"], [55, 5, 1, "c.ts3server_clientMove", "newChannelID"], [55, 5, 1, "c.ts3server_clientMove", "serverID"]], "ts3server_clientsKickFromServer": [[55, 5, 1, "c.ts3server_clientsKickFromServer", "clientIDArray"], [55, 5, 1, "c.ts3server_clientsKickFromServer", "failOnClientError"], [55, 5, 1, "c.ts3server_clientsKickFromServer", "kickReason"], [55, 5, 1, "c.ts3server_clientsKickFromServer", "serverID"]], "ts3server_createChannel": [[49, 5, 1, "c.ts3server_createChannel", "channelCreationParams"], [49, 5, 1, "c.ts3server_createChannel", "flags"], [49, 5, 1, "c.ts3server_createChannel", "result"], [49, 5, 1, "c.ts3server_createChannel", "serverID"]], "ts3server_createSecuritySalt": [[70, 5, 1, "c.ts3server_createSecuritySalt", "options"], [70, 5, 1, "c.ts3server_createSecuritySalt", "salt"], [70, 5, 1, "c.ts3server_createSecuritySalt", "saltByteSize"], [70, 5, 1, "c.ts3server_createSecuritySalt", "securitySalt"]], "ts3server_createVirtualServer": [[71, 5, 1, "c.ts3server_createVirtualServer", "result"], [71, 5, 1, "c.ts3server_createVirtualServer", "serverIp"], [71, 5, 1, "c.ts3server_createVirtualServer", "serverKeyPair"], [71, 5, 1, "c.ts3server_createVirtualServer", "serverMaxClients"], [71, 5, 1, "c.ts3server_createVirtualServer", "serverName"], [71, 5, 1, "c.ts3server_createVirtualServer", "serverPort"]], "ts3server_createVirtualServer2": [[46, 5, 1, "c.ts3server_createVirtualServer2", "flags"], [46, 5, 1, "c.ts3server_createVirtualServer2", "result"], [46, 5, 1, "c.ts3server_createVirtualServer2", "virtualServerCreationParams"]], "ts3server_disableClientCommand": [[56, 5, 1, "c.ts3server_disableClientCommand", "clientCommand"]], "ts3server_enableFileManager": [[59, 5, 1, "c.ts3server_enableFileManager", "downloadBandwidth"], [59, 5, 1, "c.ts3server_enableFileManager", "filebase"], [59, 5, 1, "c.ts3server_enableFileManager", "ips"], [59, 5, 1, "c.ts3server_enableFileManager", "port"], [59, 5, 1, "c.ts3server_enableFileManager", "uploadBandwidth"]], "ts3server_flushChannelCreation": [[48, 5, 1, "c.ts3server_flushChannelCreation", "channelParentID"], [48, 5, 1, "c.ts3server_flushChannelCreation", "result"], [48, 5, 1, "c.ts3server_flushChannelCreation", "serverID"]], "ts3server_flushChannelVariable": [[73, 5, 1, "c.ts3server_flushChannelVariable", "channelID"], [73, 5, 1, "c.ts3server_flushChannelVariable", "serverID"]], "ts3server_flushClientVariable": [[73, 5, 1, "c.ts3server_flushClientVariable", "clientID"], [73, 5, 1, "c.ts3server_flushClientVariable", "serverID"]], "ts3server_flushVirtualServerVariable": [[73, 5, 1, "c.ts3server_flushVirtualServerVariable", "serverID"]], "ts3server_freeMemory": [[73, 5, 1, "c.ts3server_freeMemory", "pointer"]], "ts3server_getChannelClientList": [[54, 5, 1, "c.ts3server_getChannelClientList", "channelID"], [54, 5, 1, "c.ts3server_getChannelClientList", "result"], [54, 5, 1, "c.ts3server_getChannelClientList", "serverID"]], "ts3server_getChannelCreationParamsVariables": [[46, 5, 1, "c.ts3server_getChannelCreationParamsVariables", "channelCreationParams"], [46, 5, 1, "c.ts3server_getChannelCreationParamsVariables", "result"]], "ts3server_getChannelList": [[51, 5, 1, "c.ts3server_getChannelList", "result"], [51, 5, 1, "c.ts3server_getChannelList", "serverID"]], "ts3server_getChannelOfClient": [[51, 5, 1, "c.ts3server_getChannelOfClient", "clientID"], [51, 5, 1, "c.ts3server_getChannelOfClient", "result"], [51, 5, 1, "c.ts3server_getChannelOfClient", "serverID"]], "ts3server_getChannelVariableAsInt": [[62, 5, 1, "c.ts3server_getChannelVariableAsInt", "channelID"], [62, 5, 1, "c.ts3server_getChannelVariableAsInt", "flag"], [62, 5, 1, "c.ts3server_getChannelVariableAsInt", "result"], [62, 5, 1, "c.ts3server_getChannelVariableAsInt", "serverID"]], "ts3server_getChannelVariableAsString": [[62, 5, 1, "c.ts3server_getChannelVariableAsString", "channelID"], [62, 5, 1, "c.ts3server_getChannelVariableAsString", "flag"], [62, 5, 1, "c.ts3server_getChannelVariableAsString", "result"], [62, 5, 1, "c.ts3server_getChannelVariableAsString", "serverID"]], "ts3server_getChannelVariableAsUInt64": [[62, 5, 1, "c.ts3server_getChannelVariableAsUInt64", "channelID"], [62, 5, 1, "c.ts3server_getChannelVariableAsUInt64", "flag"], [62, 5, 1, "c.ts3server_getChannelVariableAsUInt64", "result"], [62, 5, 1, "c.ts3server_getChannelVariableAsUInt64", "serverID"]], "ts3server_getClientIDSfromUIDS": [[73, 5, 1, "c.ts3server_getClientIDSfromUIDS", "clientUIDs"], [73, 5, 1, "c.ts3server_getClientIDSfromUIDS", "result"], [73, 5, 1, "c.ts3server_getClientIDSfromUIDS", "serverID"]], "ts3server_getClientList": [[54, 5, 1, "c.ts3server_getClientList", "result"], [54, 5, 1, "c.ts3server_getClientList", "serverID"]], "ts3server_getClientVariableAsInt": [[55, 5, 1, "c.ts3server_getClientVariableAsInt", "clientID"], [55, 5, 1, "c.ts3server_getClientVariableAsInt", "flag"], [55, 5, 1, "c.ts3server_getClientVariableAsInt", "result"], [55, 5, 1, "c.ts3server_getClientVariableAsInt", "serverID"]], "ts3server_getClientVariableAsString": [[55, 5, 1, "c.ts3server_getClientVariableAsString", "clientID"], [55, 5, 1, "c.ts3server_getClientVariableAsString", "flag"], [55, 5, 1, "c.ts3server_getClientVariableAsString", "result"], [55, 5, 1, "c.ts3server_getClientVariableAsString", "serverID"]], "ts3server_getClientVariableAsUInt64": [[55, 5, 1, "c.ts3server_getClientVariableAsUInt64", "clientID"], [55, 5, 1, "c.ts3server_getClientVariableAsUInt64", "flag"], [55, 5, 1, "c.ts3server_getClientVariableAsUInt64", "result"], [55, 5, 1, "c.ts3server_getClientVariableAsUInt64", "serverID"]], "ts3server_getGlobalErrorMessage": [[47, 5, 1, "c.ts3server_getGlobalErrorMessage", "globalErrorCode"], [47, 5, 1, "c.ts3server_getGlobalErrorMessage", "result"]], "ts3server_getParentChannelOfChannel": [[51, 5, 1, "c.ts3server_getParentChannelOfChannel", "channelID"], [51, 5, 1, "c.ts3server_getParentChannelOfChannel", "result"], [51, 5, 1, "c.ts3server_getParentChannelOfChannel", "serverID"]], "ts3server_getServerLibVersion": [[47, 5, 1, "c.ts3server_getServerLibVersion", "result"]], "ts3server_getServerLibVersionNumber": [[47, 5, 1, "c.ts3server_getServerLibVersionNumber", "result"]], "ts3server_getVariableAsInt": [[46, 5, 1, "c.ts3server_getVariableAsInt", "flag"], [46, 5, 1, "c.ts3server_getVariableAsInt", "result"], [46, 5, 1, "c.ts3server_getVariableAsInt", "var"]], "ts3server_getVariableAsString": [[46, 5, 1, "c.ts3server_getVariableAsString", "flag"], [46, 5, 1, "c.ts3server_getVariableAsString", "result"], [46, 5, 1, "c.ts3server_getVariableAsString", "var"]], "ts3server_getVariableAsUInt64": [[46, 5, 1, "c.ts3server_getVariableAsUInt64", "flag"], [46, 5, 1, "c.ts3server_getVariableAsUInt64", "result"], [46, 5, 1, "c.ts3server_getVariableAsUInt64", "var"]], "ts3server_getVirtualServerConnectionVariableAsDouble": [[61, 5, 1, "c.ts3server_getVirtualServerConnectionVariableAsDouble", "flag"], [61, 5, 1, "c.ts3server_getVirtualServerConnectionVariableAsDouble", "result"], [61, 5, 1, "c.ts3server_getVirtualServerConnectionVariableAsDouble", "serverID"]], "ts3server_getVirtualServerConnectionVariableAsUInt64": [[61, 5, 1, "c.ts3server_getVirtualServerConnectionVariableAsUInt64", "flag"], [61, 5, 1, "c.ts3server_getVirtualServerConnectionVariableAsUInt64", "result"], [61, 5, 1, "c.ts3server_getVirtualServerConnectionVariableAsUInt64", "serverID"]], "ts3server_getVirtualServerCreationParamsChannelCreationParams": [[46, 5, 1, "c.ts3server_getVirtualServerCreationParamsChannelCreationParams", "channelIdx"], [46, 5, 1, "c.ts3server_getVirtualServerCreationParamsChannelCreationParams", "result"], [46, 5, 1, "c.ts3server_getVirtualServerCreationParamsChannelCreationParams", "virtualServerCreationParams"]], "ts3server_getVirtualServerCreationParamsVariables": [[46, 5, 1, "c.ts3server_getVirtualServerCreationParamsVariables", "result"], [46, 5, 1, "c.ts3server_getVirtualServerCreationParamsVariables", "virtualServerCreationParams"]], "ts3server_getVirtualServerKeyPair": [[71, 5, 1, "c.ts3server_getVirtualServerKeyPair", "result"], [71, 5, 1, "c.ts3server_getVirtualServerKeyPair", "serverID"]], "ts3server_getVirtualServerList": [[66, 5, 1, "c.ts3server_getVirtualServerList", "result"]], "ts3server_getVirtualServerVariableAsInt": [[64, 5, 1, "c.ts3server_getVirtualServerVariableAsInt", "flag"], [64, 5, 1, "c.ts3server_getVirtualServerVariableAsInt", "result"], [64, 5, 1, "c.ts3server_getVirtualServerVariableAsInt", "serverID"]], "ts3server_getVirtualServerVariableAsString": [[64, 5, 1, "c.ts3server_getVirtualServerVariableAsString", "flag"], [64, 5, 1, "c.ts3server_getVirtualServerVariableAsString", "result"], [64, 5, 1, "c.ts3server_getVirtualServerVariableAsString", "serverID"]], "ts3server_getVirtualServerVariableAsUInt64": [[64, 5, 1, "c.ts3server_getVirtualServerVariableAsUInt64", "flag"], [64, 5, 1, "c.ts3server_getVirtualServerVariableAsUInt64", "result"], [64, 5, 1, "c.ts3server_getVirtualServerVariableAsUInt64", "serverID"]], "ts3server_initServerLib": [[47, 5, 1, "c.ts3server_initServerLib", "argc"], [47, 5, 1, "c.ts3server_initServerLib", "argv"], [47, 5, 1, "c.ts3server_initServerLib", "functionPointers"], [47, 5, 1, "c.ts3server_initServerLib", "logFileFolder"], [47, 5, 1, "c.ts3server_initServerLib", "usedLogTypes"]], "ts3server_makeChannelCreationParams": [[49, 5, 1, "c.ts3server_makeChannelCreationParams", "result"]], "ts3server_makeVirtualServerCreationParams": [[46, 5, 1, "c.ts3server_makeVirtualServerCreationParams", "result"]], "ts3server_setChannelCreationParams": [[46, 5, 1, "c.ts3server_setChannelCreationParams", "channelCreationParams"], [46, 5, 1, "c.ts3server_setChannelCreationParams", "channelID"], [46, 5, 1, "c.ts3server_setChannelCreationParams", "channelParentID"]], "ts3server_setChannelVariableAsInt": [[48, 5, 1, "c.ts3server_setChannelVariableAsInt", "channelID"], [48, 5, 1, "c.ts3server_setChannelVariableAsInt", "flag"], [48, 5, 1, "c.ts3server_setChannelVariableAsInt", "serverID"], [48, 5, 1, "c.ts3server_setChannelVariableAsInt", "value"]], "ts3server_setChannelVariableAsString": [[48, 5, 1, "c.ts3server_setChannelVariableAsString", "channelID"], [48, 5, 1, "c.ts3server_setChannelVariableAsString", "flag"], [48, 5, 1, "c.ts3server_setChannelVariableAsString", "serverID"], [48, 5, 1, "c.ts3server_setChannelVariableAsString", "value"]], "ts3server_setChannelVariableAsUInt64": [[48, 5, 1, "c.ts3server_setChannelVariableAsUInt64", "channelID"], [48, 5, 1, "c.ts3server_setChannelVariableAsUInt64", "flag"], [48, 5, 1, "c.ts3server_setChannelVariableAsUInt64", "serverID"], [48, 5, 1, "c.ts3server_setChannelVariableAsUInt64", "value"]], "ts3server_setClientVariableAsInt": [[55, 5, 1, "c.ts3server_setClientVariableAsInt", "clientID"], [55, 5, 1, "c.ts3server_setClientVariableAsInt", "flag"], [55, 5, 1, "c.ts3server_setClientVariableAsInt", "serverID"], [55, 5, 1, "c.ts3server_setClientVariableAsInt", "value"]], "ts3server_setClientVariableAsString": [[55, 5, 1, "c.ts3server_setClientVariableAsString", "clientID"], [55, 5, 1, "c.ts3server_setClientVariableAsString", "flag"], [55, 5, 1, "c.ts3server_setClientVariableAsString", "serverID"], [55, 5, 1, "c.ts3server_setClientVariableAsString", "value"]], "ts3server_setClientVariableAsUInt64": [[55, 5, 1, "c.ts3server_setClientVariableAsUInt64", "clientID"], [55, 5, 1, "c.ts3server_setClientVariableAsUInt64", "flag"], [55, 5, 1, "c.ts3server_setClientVariableAsUInt64", "serverID"], [55, 5, 1, "c.ts3server_setClientVariableAsUInt64", "value"]], "ts3server_setClientWhisperList": [[72, 5, 1, "c.ts3server_setClientWhisperList", "channelID"], [72, 5, 1, "c.ts3server_setClientWhisperList", "clID"], [72, 5, 1, "c.ts3server_setClientWhisperList", "clientID"], [72, 5, 1, "c.ts3server_setClientWhisperList", "serverID"]], "ts3server_setLogVerbosity": [[73, 5, 1, "c.ts3server_setLogVerbosity", "logVerbosity"]], "ts3server_setVariableAsInt": [[46, 5, 1, "c.ts3server_setVariableAsInt", "flag"], [46, 5, 1, "c.ts3server_setVariableAsInt", "value"], [46, 5, 1, "c.ts3server_setVariableAsInt", "var"]], "ts3server_setVariableAsString": [[46, 5, 1, "c.ts3server_setVariableAsString", "flag"], [46, 5, 1, "c.ts3server_setVariableAsString", "value"], [46, 5, 1, "c.ts3server_setVariableAsString", "var"]], "ts3server_setVariableAsUInt64": [[46, 5, 1, "c.ts3server_setVariableAsUInt64", "flag"], [46, 5, 1, "c.ts3server_setVariableAsUInt64", "value"], [46, 5, 1, "c.ts3server_setVariableAsUInt64", "var"]], "ts3server_setVirtualServerCreationParams": [[46, 5, 1, "c.ts3server_setVirtualServerCreationParams", "channelCount"], [46, 5, 1, "c.ts3server_setVirtualServerCreationParams", "serverID"], [46, 5, 1, "c.ts3server_setVirtualServerCreationParams", "serverIp"], [46, 5, 1, "c.ts3server_setVirtualServerCreationParams", "serverKeyPair"], [46, 5, 1, "c.ts3server_setVirtualServerCreationParams", "serverMaxClients"], [46, 5, 1, "c.ts3server_setVirtualServerCreationParams", "serverPort"], [46, 5, 1, "c.ts3server_setVirtualServerCreationParams", "virtualServerCreationParams"]], "ts3server_setVirtualServerVariableAsInt": [[64, 5, 1, "c.ts3server_setVirtualServerVariableAsInt", "flag"], [64, 5, 1, "c.ts3server_setVirtualServerVariableAsInt", "serverID"], [64, 5, 1, "c.ts3server_setVirtualServerVariableAsInt", "value"]], "ts3server_setVirtualServerVariableAsString": [[64, 5, 1, "c.ts3server_setVirtualServerVariableAsString", "flag"], [64, 5, 1, "c.ts3server_setVirtualServerVariableAsString", "serverID"], [64, 5, 1, "c.ts3server_setVirtualServerVariableAsString", "value"]], "ts3server_setVirtualServerVariableAsUInt64": [[64, 5, 1, "c.ts3server_setVirtualServerVariableAsUInt64", "flag"], [64, 5, 1, "c.ts3server_setVirtualServerVariableAsUInt64", "serverID"], [64, 5, 1, "c.ts3server_setVirtualServerVariableAsUInt64", "value"]], "ts3server_stopVirtualServer": [[71, 5, 1, "c.ts3server_stopVirtualServer", "serverID"]]}, "objnames": {"0": ["c", "enumerator", "C enumerator"], "1": ["c", "enum", "C enum"], "2": ["c", "struct", "C struct"], "3": ["c", "member", "C member"], "4": ["c", "function", "C function"], "5": ["c", "functionParam", "C function parameter"]}, "objtypes": {"0": "c:enumerator", "1": "c:enum", "2": "c:struct", "3": "c:member", "4": "c:function", "5": "c:functionParam"}, "terms": {"": [9, 11, 13, 20, 23, 25, 26, 29, 39, 41, 47, 55, 56, 59, 62, 63, 68, 69, 71, 73], "0": [0, 3, 5, 9, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 59, 66, 68, 72, 73], "000": 5, "04x": [11, 35, 56], "056": 5, "096": 5, "0f": 35, "0x": [11, 56], "1": [0, 3, 5, 9, 12, 13, 15, 17, 18, 22, 26, 28, 29, 31, 32, 38, 41, 42, 43, 45, 46, 48, 49, 50, 54, 55, 56, 59, 63, 65, 66, 68, 71, 72, 73], "10": [5, 21, 23, 25, 31, 35, 41, 45, 65], "100": 58, "12": [5, 14, 55, 71, 73], "123": [15, 32, 35, 37, 55, 62, 63, 66], "127": 56, "14": 5, "15": 35, "16": [3, 5, 41], "16000": 36, "16bit": 42, "16khz": 42, "192": 5, "2": [3, 5, 9, 17, 21, 28, 29, 32, 36, 41, 46, 49, 54, 55, 56, 63, 66, 71, 73], "20": 5, "200": 5, "21": 5, "23": [51, 66, 73], "24": 5, "28": 5, "288": 5, "3": [0, 3, 5, 9, 14, 17, 22, 24, 29, 31, 32, 33, 36, 37, 41, 44, 45, 54, 55, 57, 58, 65, 66, 71, 72, 73], "30": [21, 35, 36, 41], "32": [5, 58, 65], "32khz": 42, "36": 5, "384": 5, "39": [54, 55, 66, 73], "3d": [3, 41], "4": [3, 5, 9, 17, 21, 41, 51, 55, 56, 66, 72, 73], "40": [5, 35], "400": 5, "4023": [15, 41], "4096": 45, "41": 71, "43": 5, "45": 5, "456": 32, "480": 5, "48khz": [3, 5, 41, 42], "49": [15, 41], "4th": 3, "5": [3, 5, 9, 17, 22, 23, 26, 35, 41, 45, 54, 55, 66, 71, 73], "50": [5, 21, 36, 41, 54, 55, 66, 73], "5120": [26, 41], "55": [55, 63], "57": 5, "576": 5, "5kb": 26, "6": [3, 5, 17, 31, 35, 65], "600": 5, "64": [5, 12, 28, 30, 41, 42, 46, 55, 62, 63, 73], "64bit": [29, 41], "65": [51, 66, 73], "66": [55, 63], "672": 5, "7": [5, 9, 17, 23, 31, 65], "72": 5, "768": 5, "79": 5, "8": [5, 31, 36, 60, 65, 66, 73], "800": 5, "84": [72, 73], "8534": [15, 41], "864": 5, "8k": 45, "8khz": 42, "9": [5, 41, 55, 73], "94": [72, 73], "960": 5, "9987": [22, 56], "A": [0, 4, 13, 15, 18, 22, 24, 26, 30, 36, 40, 41, 42, 43, 45, 50, 51, 54, 55, 57, 66, 70, 71, 72, 73], "As": [2, 11, 23, 24, 26, 28, 29, 41, 47, 57, 70], "At": 43, "Be": [3, 35, 41], "By": [18, 26, 38, 41, 56], "For": [3, 6, 22, 25, 29, 31, 36, 41, 45, 46, 49, 56, 65, 73], "If": [2, 3, 8, 11, 12, 14, 15, 16, 18, 22, 24, 25, 26, 31, 33, 35, 38, 40, 41, 42, 45, 55, 57, 59, 65, 67, 68, 69, 70, 71, 73], "In": [11, 17, 18, 25, 26, 29, 31, 35, 37, 41, 46, 47, 55, 57, 58, 65, 68, 70, 73], "It": [3, 6, 11, 13, 18, 23, 25, 31, 32, 35, 36, 39, 41, 47, 53, 58, 59, 65], "NOT": [3, 26, 41, 42, 59, 73], "No": [6, 18, 25, 41, 42, 43], "Not": [6, 18, 22, 28, 29, 30, 41, 42, 43, 45, 46, 47, 55, 62, 63, 73], "On": [18, 45, 71], "One": [11, 12, 14, 18, 20, 22, 26, 28, 29, 30, 33, 37, 41, 42, 45, 46, 47, 48, 55, 56, 59, 61, 62, 63, 64, 65, 68, 73], "Or": [34, 67], "Such": 43, "THe": 41, "The": [0, 1, 3, 4, 5, 6, 7, 9, 13, 14, 17, 18, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 70, 71, 72, 73], "Then": 71, "There": [1, 22, 30, 41, 42, 49, 56, 64], "These": [3, 11, 26, 31, 36, 37, 41, 45, 46, 47, 49, 59, 73], "To": [0, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 26, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 47, 48, 49, 51, 52, 54, 55, 56, 57, 61, 62, 63, 64, 66, 67, 71, 73], "Will": [18, 41, 42, 72, 73], "With": [13, 17], "_": [11, 47], "_win32": 9, "abil": [26, 34, 59], "abl": [11, 18, 41, 42, 47, 55, 56, 65, 71, 73], "abort": [6, 26, 41], "about": [3, 13, 18, 22, 23, 26, 29, 30, 41, 43, 45, 55, 59, 61, 62, 63, 64, 65, 68, 73], "abov": [3, 11, 14, 17, 22, 29, 31, 33, 36, 41, 59, 65, 68, 69, 71, 73], "absolut": [22, 26, 41], "accept": [35, 40, 41, 42, 43, 71, 73], "access": [1, 11, 23, 26, 31, 41, 43, 45, 47, 59, 65, 68, 70, 73], "access_sdk": 41, "accord": [3, 41], "account": [35, 43], "accross": 25, "across": [26, 41, 45, 46, 49, 59, 73], "action": [11, 26, 31, 41, 42, 43, 47, 55, 56, 59, 68, 69, 73], "activ": [1, 6, 7, 8, 11, 25, 36, 41, 42, 43, 45, 57, 59, 67, 68, 69, 73], "actual": [3, 4, 12, 37, 41, 46, 53, 71], "ad": [3, 40, 41, 68, 71], "add": [3, 34, 41, 67, 72, 73], "addit": [11, 18, 22, 25, 26, 29, 31, 35, 37, 41, 46, 47, 53, 55, 58, 73], "address": [6, 7, 9, 11, 13, 15, 21, 22, 23, 26, 28, 29, 30, 31, 35, 36, 39, 41, 43, 45, 46, 47, 48, 49, 51, 54, 55, 59, 61, 62, 63, 64, 65, 66, 70, 71, 73], "adjust": [1, 10, 17, 23, 36, 41, 45], "advanc": [22, 41, 53, 66, 73], "advantag": [25, 46], "advis": 35, "ae": [24, 57], "aec": 41, "affect": [35, 71, 73], "afk": 28, "after": [4, 11, 12, 13, 16, 17, 18, 22, 23, 25, 26, 28, 29, 30, 35, 36, 40, 41, 43, 45, 46, 47, 48, 49, 50, 52, 55, 57, 59, 62, 63, 64, 68, 71, 73], "afterward": [22, 71], "again": [2, 22, 26, 29, 32, 35, 41, 43, 56, 58, 71, 73], "against": [34, 41, 67, 70], "agc": [25, 36], "agc_level": 36, "agc_main_gain": 36, "ahead": [46, 50], "algoritm": 41, "alia": 41, "aliv": 45, "all": [3, 4, 9, 11, 12, 15, 17, 18, 21, 22, 24, 25, 26, 28, 29, 30, 33, 35, 36, 37, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 59, 60, 62, 63, 64, 65, 66, 71, 72, 73], "alloc": [6, 7, 9, 11, 15, 21, 22, 23, 24, 26, 28, 29, 30, 31, 36, 41, 46, 47, 51, 54, 55, 57, 58, 62, 64, 65, 66, 70, 71, 73], "allow": [3, 4, 5, 6, 10, 11, 18, 24, 25, 26, 33, 34, 35, 37, 41, 43, 44, 45, 46, 49, 56, 57, 58, 59, 67, 68, 69, 70, 73], "alon": 73, "alreadi": [2, 4, 8, 13, 17, 26, 41, 43, 58, 59, 73], "alsa": [1, 9], "also": [3, 6, 9, 11, 16, 18, 20, 22, 24, 27, 29, 30, 41, 42, 45, 47, 49, 53, 55, 57, 58, 73], "alter": 3, "altern": [46, 49], "although": 58, "alwai": [18, 20, 26, 31, 36, 41, 45, 55, 62, 63, 64, 65], "am": 29, "amount": [6, 26, 34, 41, 46, 73], "an": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "ani": [2, 3, 4, 6, 8, 11, 13, 22, 23, 26, 28, 29, 31, 32, 41, 42, 43, 45, 46, 47, 56, 57, 59, 65, 67, 68, 69, 71, 73], "annouc": 17, "announc": [6, 17, 18], "anoth": [14, 17, 22, 31, 40, 41, 42, 43, 55, 58, 65, 68, 73], "answer": [26, 41], "anyid": [0, 3, 11, 12, 13, 14, 15, 16, 18, 20, 21, 26, 28, 29, 30, 32, 35, 37, 40, 41, 42, 47, 51, 54, 55, 56, 58, 59, 63, 66, 68, 72, 73], "anymor": [13, 22, 32, 40, 41, 72, 73], "anywher": 46, "api": [1, 6, 9, 49, 65], "appear": [52, 73], "append": [26, 41], "appli": [3, 24, 26, 29, 31, 35, 41, 55, 57, 62, 63, 65, 73], "applic": [3, 11, 22, 31, 43, 44, 47, 59, 65, 73], "appropri": [35, 41, 46, 48, 49, 56], "approxim": [26, 41], "aquir": [3, 6, 41], "ar": [0, 1, 3, 4, 5, 8, 9, 11, 13, 14, 15, 17, 18, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 73], "arbitrari": [33, 41, 45, 73], "arbitrarili": 58, "arg1": [31, 65], "arg2": [31, 65], "argc": [47, 73], "argument": [43, 47, 73], "argv": [47, 73], "arrai": [3, 9, 11, 14, 15, 18, 20, 21, 22, 24, 26, 28, 31, 32, 40, 41, 51, 54, 55, 57, 59, 65, 66, 68, 72, 73], "arriv": [17, 45], "ask": [29, 41], "assign": [0, 11, 25, 29, 41, 46, 47, 49, 73], "associ": [13, 41], "assum": 17, "asynchron": [11, 22, 41], "attach": [41, 49, 70], "attempt": [11, 14, 18, 22, 41, 43, 45, 47, 59, 67, 68, 69, 70, 73], "attenu": [0, 41], "audibl": 10, "audio": [2, 3, 7, 8, 9, 10, 11, 23, 32, 35, 39, 40, 41, 42, 43, 45, 73], "authent": 41, "author": [56, 73], "automat": [2, 4, 6, 14, 18, 25, 30, 36, 38, 41, 45, 59, 71, 73], "avail": [0, 1, 3, 4, 5, 6, 11, 12, 13, 14, 16, 18, 20, 22, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 38, 40, 41, 42, 43, 45, 46, 49, 51, 55, 59, 60, 61, 62, 63, 64, 71, 73], "avatar": 43, "averag": [23, 26, 41, 45], "avoid": [29, 57, 59, 67, 68, 69, 71, 73], "awai": [4, 41, 71], "axi": [0, 41], "b": [0, 41], "back": [3, 6, 41], "backend": [1, 11, 41, 43, 71], "bad": 35, "balanc": [18, 23], "ban": [14, 32, 41], "bandwidth": [5, 18, 23, 41, 42, 43, 45, 60], "bandwidth_limit_unlimit": [59, 73], "bandwith": 45, "base": [41, 45, 58, 61], "basic": [25, 31, 33, 46, 53, 65, 73], "becaus": [42, 43, 45, 58, 71], "becom": [35, 41], "been": [2, 3, 4, 6, 22, 23, 26, 27, 28, 29, 35, 36, 40, 41, 42, 43, 45, 46, 48, 49, 50, 52, 57, 73], "befor": [4, 6, 8, 11, 13, 22, 29, 36, 41, 43, 46, 47, 49, 58, 68, 71, 73], "begin": [6, 26, 41], "behavior": [25, 40, 41, 72, 73], "behaviour": 41, "behind": [29, 55, 62, 63], "being": [6, 9, 16, 18, 26, 30, 41, 42, 43, 59, 68, 69, 71, 73], "below": [16, 26, 29, 41, 45, 52, 73], "best": 5, "better": [22, 36, 45, 70, 73], "between": [0, 5, 23, 25, 31, 36, 41], "bin": 65, "binari": 65, "bit": [3, 12, 28, 30, 41, 46, 55, 62, 63, 73], "bitmask": [3, 41], "bitrat": [5, 23, 41, 42], "block": [4, 22, 39, 41, 47, 58], "bob": [55, 63], "bool": [25, 29, 45], "boolean": [10, 13, 26, 36, 39, 41, 42, 45, 50, 55, 59, 73], "boost": 35, "both": [9, 14, 22, 24, 31, 34, 35, 40, 41, 57, 67, 72, 73], "bound": [23, 35, 36, 41], "bp": 5, "break": 29, "briefli": 25, "broadcast": 25, "bucket": 41, "buffer": [1, 6, 11, 24, 36, 41, 73], "buffer_s": 41, "build": [11, 47], "built": [34, 67], "bye": 56, "byte": [6, 11, 24, 26, 31, 34, 41, 42, 43, 45, 47, 57, 59, 67, 70, 73], "c": [7, 8, 9, 12, 13, 14, 16, 18, 20, 22, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 46, 55, 59, 64, 65, 67, 68, 71, 73], "cach": [28, 41], "calcul": [0, 35, 41, 45, 70], "call": [0, 2, 3, 4, 6, 8, 11, 12, 13, 14, 16, 18, 20, 22, 23, 24, 26, 28, 29, 30, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 52, 55, 56, 57, 58, 59, 62, 63, 64, 67, 68, 69, 70, 71, 73], "callback": [3, 4, 14, 17, 19, 22, 24, 27, 29, 30, 31, 32, 33, 34, 37, 40, 41, 42, 48, 50, 52, 57, 58, 67, 69, 73], "caller": [6, 7, 9, 11, 15, 21, 22, 23, 26, 28, 29, 30, 31, 36, 41, 46, 47, 51, 54, 55, 62, 64, 65, 66, 70, 71, 73], "can": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 45, 46, 47, 49, 50, 51, 54, 55, 56, 58, 59, 61, 62, 63, 64, 66, 67, 68, 71, 72, 73], "cancel": [36, 41, 43], "cancelconnect": 41, "cannot": [8, 14, 18, 22, 29, 35, 41, 43, 46, 50, 57, 60, 73], "capchannel": [6, 41], "capfrequ": [6, 41], "captur": [1, 4, 6, 7, 9, 10, 23, 25, 36, 41, 42, 43, 45], "capturebuff": 6, "capturebuffers": 6, "capturechannel": [6, 41], "capturedevic": [8, 41], "capturefrequ": 6, "care": [1, 24, 25, 35, 41, 45, 46, 49, 57, 73], "carri": 29, "case": [6, 22, 27, 29, 31, 57, 58, 65, 73], "categori": [33, 41], "caus": [0, 3, 11, 13, 14, 16, 22, 26, 29, 35, 41, 43], "cdecl": [31, 65], "certain": [11, 22, 32, 41, 46, 47, 49, 56, 59, 68, 69, 71, 73], "cf": 56, "chanc": [3, 41, 45], "chang": [0, 3, 5, 11, 12, 14, 17, 18, 19, 25, 28, 29, 30, 35, 36, 41, 42, 43, 45, 47, 48, 55, 58, 59, 60, 62, 63, 68, 71, 73], "channel": [3, 5, 6, 21, 22, 23, 26, 27, 30, 33, 34, 35, 40, 41, 42, 43, 47, 54, 55, 56, 59, 60, 68, 69, 71, 72, 73], "channel_1": 17, "channel_2": 17, "channel_3": 17, "channel_codec": [5, 12, 45, 48], "channel_codec_is_unencrypt": [38, 45], "channel_codec_latency_factor": 45, "channel_codec_qu": [12, 23, 45, 48], "channel_create_flag_non": 73, "channel_create_flag_passwords_encrypt": 73, "channel_delete_delai": [13, 45], "channel_descript": [12, 45, 48], "channel_endmark": 45, "channel_filepath": 43, "channel_flag_are_subscrib": 18, "channel_flag_default": [12, 14, 17, 43, 45, 48], "channel_flag_password": 45, "channel_flag_perman": [12, 45, 48, 56], "channel_flag_semi_perman": [12, 45, 48], "channel_i": 59, "channel_maxcli": [12, 43, 45, 48], "channel_maxfamilycli": [12, 43, 45, 48], "channel_nam": [12, 28, 45, 48, 56, 62], "channel_ord": [12, 16, 17, 43, 45, 48], "channel_password": [12, 45, 48], "channel_security_salt": [45, 70, 73], "channel_top": [12, 28, 45, 48, 62], "channel_unique_identifi": 45, "channel_x": 42, "channelcount": [46, 73], "channelcreateflag": [49, 73], "channelcreationparam": [46, 49, 73], "channelfillmask": [3, 41], "channelid": [5, 12, 13, 15, 16, 18, 21, 23, 26, 28, 41, 42, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 58, 62, 66, 67, 68, 72, 73], "channelidarrai": [18, 41, 55], "channelidx": [46, 73], "channelnamearrai": [28, 41], "channelparentid": [12, 41, 46, 48, 49, 73], "channelpath": 42, "channelpathmaxs": 42, "channelproperti": [12, 28, 41, 43, 45, 48, 62, 73], "channelpropertiesrar": [12, 28, 41], "channelpw": [26, 41], "channelspeakerarrai": [3, 41], "chapter": [0, 53, 55, 60], "char": [6, 7, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 46, 47, 48, 55, 56, 57, 58, 59, 62, 63, 64, 65, 67, 68, 70, 71, 73], "charact": 43, "chat": 41, "check": [19, 23, 29, 30, 34, 40, 41, 43, 64, 67, 70, 73], "check_error": [12, 48], "child": 56, "choos": [6, 35, 41], "chosen": 43, "chunk": 41, "cipher": 45, "claim": 43, "clean": [41, 43, 46, 49, 59, 73], "clear": [3, 34, 41, 67], "clid": [0, 40, 41, 72, 73], "client": [2, 3, 4, 6, 7, 9, 11, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 26, 27, 28, 30, 33, 34, 36, 37, 39, 40, 43, 44, 46, 47, 48, 49, 50, 51, 53, 56, 57, 59, 60, 62, 64, 67, 68, 69, 71, 72, 73], "client_command_endmark": 42, "client_command_filetransf": 42, "client_command_flushchannelcr": [42, 56], "client_command_flushchannelupd": 42, "client_command_requestchanneldelet": 42, "client_command_requestchanneldescript": 42, "client_command_requestchannelmov": 42, "client_command_requestchannelxxsubscribexxx": 42, "client_command_requestclientkickfromxxx": 42, "client_command_requestclientmov": 42, "client_command_requestconnectioninfo": 42, "client_command_requestsendxxxtextmsg": 42, "client_command_requestserverconnectioninfo": 42, "client_command_requestxxmutecli": 42, "client_customdevic": 6, "client_default_channel": 45, "client_default_channel_password": 45, "client_encryption_ciph": 45, "client_endmark": 45, "client_flag_talk": [29, 45], "client_idle_tim": 45, "client_input_deactiv": [25, 29, 45], "client_input_hardwar": [2, 25, 45], "client_input_mut": [25, 45], "client_is_mut": [32, 45], "client_is_record": 45, "client_is_stream": 45, "client_meta_data": [29, 45, 55, 58, 63], "client_nicknam": [29, 45, 55, 63], "client_output_hardwar": 45, "client_output_mut": 45, "client_outputonly_mut": 45, "client_platform": 45, "client_security_hash": [45, 70], "client_server_password": 45, "client_unique_identifi": 45, "client_vers": 45, "client_version_sign": 45, "client_volume_modif": 45, "clientcommand": [42, 56, 73], "clientcommandrespons": 41, "clientid": [0, 3, 14, 15, 18, 20, 29, 31, 32, 35, 40, 41, 42, 47, 51, 55, 58, 59, 63, 66, 68, 72, 73], "clientidarrai": [14, 20, 32, 41, 55, 73], "clientismut": 32, "clientlib": [11, 31, 41, 56], "clientlib_publicdefinit": 31, "clientmetadata": [70, 73], "clientminiexport": [42, 59, 67, 68, 69, 73], "clientnam": 41, "clientnicknam": [70, 73], "clientproperti": [29, 41, 45, 55, 63, 73], "clientpropertiesrar": [29, 41], "clientsonlin": [30, 64], "clienttab": 56, "clientuid": 73, "clientuifunct": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30, 33, 34, 37, 40, 41, 56], "clientuifunctionsrar": [11, 41], "clientuniqueidentifi": [41, 70, 73], "clip": 35, "close": [1, 6, 8, 25, 41, 43], "cluifunc": 11, "co": 0, "code": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 41, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 66, 68, 70, 71, 72, 73], "codec": [1, 12, 23, 41, 45, 48], "codec_celt_mono": 42, "codec_encryption_forced_off": 42, "codec_encryption_forced_on": 42, "codec_encryption_per_channel": [38, 42, 45], "codec_opus_mus": 42, "codec_opus_voic": 42, "codec_speex_narrowband": 42, "codec_speex_ultrawideband": 42, "codec_speex_wideband": 42, "codecencryptionmod": [38, 42, 45], "codecqu": [12, 48], "codectyp": [5, 42, 45], "codeserror": 31, "com": [22, 58, 65], "combin": [11, 26, 41, 43, 46, 47, 49, 58, 70, 73], "come": 6, "comma": [45, 46, 71, 73], "command": [41, 42, 43, 45, 47, 73], "common": [31, 65], "commun": [11, 25, 31, 37, 43, 47, 57, 73], "compar": 45, "complain": 58, "complet": [4, 6, 9, 11, 17, 26, 33, 41, 42, 43, 46, 47, 49, 59, 73], "completelogstr": [33, 41, 73], "complex": [25, 39], "concern": [5, 55, 62, 63, 64], "concurr": [26, 41], "condit": 71, "conect": 22, "config": [1, 35], "configur": [10, 22, 23, 26, 33, 35, 36, 38, 41, 46, 73], "conform": 43, "connect": [0, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 23, 25, 26, 28, 29, 30, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 45, 46, 47, 54, 55, 56, 58, 59, 61, 63, 66, 67, 68, 70, 71, 73], "connection_bandwidth_received_last_minute_control": 45, "connection_bandwidth_received_last_minute_keepal": 45, "connection_bandwidth_received_last_minute_speech": 45, "connection_bandwidth_received_last_minute_tot": [45, 61], "connection_bandwidth_received_last_second_control": 45, "connection_bandwidth_received_last_second_keepal": 45, "connection_bandwidth_received_last_second_speech": 45, "connection_bandwidth_received_last_second_tot": [45, 61], "connection_bandwidth_sent_last_minute_control": 45, "connection_bandwidth_sent_last_minute_keepal": 45, "connection_bandwidth_sent_last_minute_speech": 45, "connection_bandwidth_sent_last_minute_tot": [45, 61], "connection_bandwidth_sent_last_second_control": 45, "connection_bandwidth_sent_last_second_keepal": 45, "connection_bandwidth_sent_last_second_speech": 45, "connection_bandwidth_sent_last_second_tot": [45, 61], "connection_bytes_received_control": 45, "connection_bytes_received_keepal": 45, "connection_bytes_received_speech": 45, "connection_bytes_received_tot": [45, 61], "connection_bytes_sent_control": 45, "connection_bytes_sent_keepal": 45, "connection_bytes_sent_speech": 45, "connection_bytes_sent_tot": [45, 61], "connection_client2server_packetloss_control": 45, "connection_client2server_packetloss_keepal": 45, "connection_client2server_packetloss_speech": 45, "connection_client2server_packetloss_tot": 45, "connection_client_ip": 45, "connection_client_port": 45, "connection_connected_tim": 45, "connection_dummy_0": 45, "connection_dummy_1": 45, "connection_dummy_2": 45, "connection_dummy_3": 45, "connection_dummy_4": 45, "connection_dummy_5": 45, "connection_dummy_6": 45, "connection_dummy_7": 45, "connection_dummy_8": 45, "connection_dummy_9": 45, "connection_endmark": 45, "connection_filetransfer_bandwidth_receiv": 45, "connection_filetransfer_bandwidth_s": 45, "connection_filetransfer_bytes_received_tot": 45, "connection_filetransfer_bytes_sent_tot": 45, "connection_idle_tim": 45, "connection_p": 45, "connection_packetloss_control": 45, "connection_packetloss_keepal": 45, "connection_packetloss_speech": 45, "connection_packetloss_tot": 45, "connection_packets_received_control": 45, "connection_packets_received_keepal": 45, "connection_packets_received_speech": 45, "connection_packets_received_tot": [45, 61], "connection_packets_sent_control": 45, "connection_packets_sent_keepal": 45, "connection_packets_sent_speech": 45, "connection_packets_sent_tot": [45, 61], "connection_ping_devi": 45, "connection_server2client_packetloss_control": 45, "connection_server2client_packetloss_keepal": 45, "connection_server2client_packetloss_speech": 45, "connection_server2client_packetloss_tot": 45, "connection_server_ip": 45, "connection_server_port": 45, "connectionproperti": [41, 45, 61, 73], "connectionpropertiessdk": 61, "connectstatu": [17, 22, 41, 42], "consid": [26, 57, 59, 67, 68, 69, 73], "consist": [25, 40, 42, 44, 72], "consol": [11, 47], "const": [0, 3, 6, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 46, 47, 48, 55, 56, 59, 62, 63, 64, 67, 68, 69, 70, 71, 72, 73], "consum": [8, 41], "contact": [58, 65, 71], "contain": [8, 11, 13, 14, 16, 20, 22, 24, 26, 28, 29, 30, 33, 34, 37, 41, 42, 43, 46, 59, 64, 67, 68, 71, 73], "content": [26, 41], "contentlength": 41, "context": 43, "continu": [17, 40, 41, 43], "control": [23, 25, 26, 36, 45, 59, 68, 73], "conveni": [27, 29, 33, 41], "convent": [11, 31, 47, 65], "convers": [3, 35, 41], "copi": [34, 43, 58, 59, 67, 73], "core": 26, "coreaudio": [1, 9], "correct": [43, 58, 70], "correspond": [3, 22, 41], "corrupt": [31, 65], "cost": 45, "could": [11, 25, 31, 65], "count": [6, 11, 31, 41, 43, 47, 71], "cover": 60, "cpu": [6, 38], "crash": [11, 31, 47, 65, 71], "creat": [0, 6, 11, 17, 19, 26, 38, 41, 42, 43, 45, 47, 53, 56, 58, 59, 65, 68, 69, 73], "createchannel": [12, 48], "creation": [19, 26, 41, 53, 66, 70, 73], "criteria": 43, "critic": 73, "critici": 33, "cross": 44, "crowd": 18, "cryptograph": [70, 73], "cryptographi": [24, 41], "ctrl": 71, "cumul": 45, "current": [1, 4, 6, 8, 9, 14, 15, 17, 18, 20, 21, 22, 23, 25, 26, 29, 35, 36, 37, 39, 40, 41, 42, 43, 45, 46, 49, 51, 54, 55, 61, 63, 66, 71, 72, 73], "custom": [1, 31, 33, 41, 43, 65, 68, 73], "custom_crypt_kei": [24, 57], "customiz": 5, "customwavedeviceid": 6, "d": [11, 12, 22, 30, 32, 42, 46, 47, 48, 55, 63, 64], "dat": [58, 65], "data": [1, 3, 10, 12, 24, 25, 27, 28, 29, 30, 32, 34, 36, 40, 41, 42, 43, 45, 46, 48, 49, 55, 57, 58, 59, 60, 63, 67, 70, 72, 73], "databas": [34, 42, 45, 67], "datareceiv": [24, 41, 57, 73], "datareceiveds": [24, 41, 57, 73], "datasourc": [34, 67], "datatosend": [24, 41, 57, 73], "date": 73, "datetim": [26, 41], "db": 35, "deactiv": [2, 25], "deal": [28, 62], "debug": [11, 47], "decibel": [25, 35, 36], "decibel_last_period": 36, "decid": [32, 40, 42, 56], "declar": [31, 65], "decod": 3, "decrypt": [41, 73], "deem": 71, "default": [0, 1, 7, 8, 12, 17, 18, 20, 22, 23, 24, 26, 29, 36, 38, 40, 41, 42, 43, 45, 47, 48, 56, 57, 58, 59, 68, 72, 73], "defaultchannelarrai": [22, 41], "defaultchannelid": [22, 41], "defaultchannelpassword": [22, 41], "defaultmod": 9, "defaultplaybackdevic": 9, "defin": [0, 3, 4, 5, 9, 11, 12, 13, 14, 16, 17, 18, 20, 22, 24, 25, 26, 28, 29, 30, 31, 34, 37, 39, 40, 41, 42, 43, 46, 47, 48, 49, 59, 72, 73], "definit": [26, 31], "delai": [19, 22, 29, 41, 45], "delet": [19, 26, 41, 42, 43, 45, 53, 56, 58, 59, 68, 69, 71, 73], "deleteunfinishedfil": [26, 41], "deliv": 5, "demand": 6, "demonstr": 68, "deni": [43, 45, 59, 68, 69, 73], "denois": 36, "depend": [5, 6, 9, 14, 20, 23, 26, 37, 41, 42, 46, 55, 62, 63, 64, 68, 73], "deploi": [31, 43], "deprec": [23, 42, 45], "depth": [46, 70, 73], "deregist": 71, "desc": 12, "describ": [0, 11, 13, 22, 26, 28, 29, 31, 38, 41, 42, 45, 46, 47, 53, 55, 56, 59, 62, 64, 65, 67, 68, 69, 73], "descript": [9, 11, 12, 26, 28, 41, 42, 47, 48, 59, 68, 73], "desir": [0, 11, 12, 17, 28, 29, 35, 41, 46, 47, 49, 59, 68, 73], "despit": 50, "desript": 9, "destinationdirectori": [26, 41], "destroi": [4, 11, 22, 41, 47, 56, 73], "destruct": [22, 41], "detail": [26, 29, 45, 46, 49, 59, 65, 73], "detect": [6, 25, 29, 36], "determin": [3, 6, 10, 13, 26, 41, 43], "develop": [11, 25, 31, 34, 44, 47, 65, 67, 68], "deviat": 45, "devic": [1, 3, 10, 23, 25, 35, 36, 39, 41, 42, 43, 45], "devicedisplaynam": [6, 41], "deviceid": [6, 9, 41], "devicenam": [6, 9, 41], "did": [11, 43, 45, 46, 47], "differ": [1, 5, 9, 14, 16, 36, 41, 42, 43, 45, 52, 55, 58, 73], "dimension": 0, "dir": [26, 41], "dir1": 26, "dir2": 26, "direct": [10, 41], "directli": [10, 11, 25, 41, 53, 60], "directori": [1, 11, 41, 42, 43, 45, 47, 58, 59, 65, 68, 69, 73], "directorypath": [26, 41], "directsound": [1, 9], "dirnam": 42, "disabl": [10, 25, 29, 38, 40, 41, 42, 43, 73], "discard": [35, 41], "disconnect": [11, 14, 20, 35, 41, 42, 43, 71, 73], "discuss": [0, 29, 60], "disk": [43, 45], "displai": [6, 13, 14, 16, 17, 18, 20, 22, 28, 29, 30, 37, 41, 42, 45, 71, 73], "display": 6, "dispos": [46, 49], "distanc": [0, 41], "distancefactor": [0, 41], "distinguish": [18, 41], "distort": 35, "distribut": [31, 65], "do": [3, 11, 22, 23, 24, 29, 31, 34, 40, 41, 42, 46, 47, 49, 53, 56, 57, 58, 59, 65, 67, 71, 73], "document": [31, 45, 46, 59, 65, 70, 73], "doe": [3, 22, 26, 29, 41, 43, 45], "doesn": 27, "domain": 22, "don": [7, 22, 24, 41, 42, 57, 58, 59, 71, 73], "done": [4, 6, 13, 28, 34, 41, 46, 48, 59, 64, 67, 73], "doubl": [41, 45, 61, 73], "down": [0, 2, 4, 22, 41, 43, 73], "download": [41, 42, 45, 59, 68, 69, 73], "downloadbandwidth": [59, 73], "downstream": 45, "due": [35, 43], "dure": [25, 26, 41, 45, 46, 47, 49, 70, 73], "dynam": [11, 47], "e": [26, 28, 34, 41, 43, 46, 56, 59, 71, 73], "each": [0, 3, 5, 11, 22, 23, 25, 26, 27, 41, 43, 46, 47, 56, 58, 60, 71, 73], "earlier": 6, "easi": 44, "easier": [10, 41], "echo": [36, 41], "echo_cancel": 36, "edit": [3, 19, 27, 30, 41, 42, 48, 68, 70, 73], "editerid": [30, 41], "editernam": [30, 41], "editeruniqueidentifi": [30, 41], "effect": [2, 28, 39, 41, 42], "either": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 26, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 41, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 59, 61, 62, 63, 64, 66, 70, 71, 72, 73], "element": 9, "els": [6, 9, 11, 18, 20, 31, 41, 65], "empti": [3, 8, 12, 13, 14, 16, 18, 20, 22, 26, 28, 29, 30, 32, 33, 37, 40, 41, 42, 43, 45, 46, 55, 71, 73], "enabl": [10, 33, 36, 38, 41, 42, 56, 73], "encapsul": 31, "encod": [1, 5, 8, 9, 11, 13, 14, 16, 20, 22, 26, 28, 29, 30, 33, 34, 35, 36, 37, 41, 42, 46, 47, 55, 59, 60, 64, 67, 68, 71, 73], "encrypt": [41, 42, 45, 46, 71, 73], "encryptedtext": [34, 41, 67, 73], "encryptedtextbytes": [34, 41, 67, 73], "end": 55, "endif": 9, "endpoint": 41, "enforc": [29, 45, 70], "engin": 41, "enough": [6, 24, 41, 43], "ensur": [4, 6, 17, 29, 41, 71], "enter": [34, 35, 41, 56, 67, 70, 73], "enter_vis": [14, 42], "entir": [6, 37, 42, 46, 58, 59, 73], "entiti": [56, 58, 73], "entri": [3, 26, 41, 42], "enum": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 59, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73], "enumer": [43, 45, 73], "ephemer": [22, 41], "equal": [26, 41, 45], "err": 56, "error": [0, 2, 3, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 46, 48, 49, 50, 51, 52, 54, 55, 56, 58, 59, 61, 62, 63, 64, 65, 66, 70, 71, 72, 73], "error_": [11, 47], "error_accounting_already_start": 43, "error_accounting_instance_check_error": 43, "error_accounting_instance_dupl": 43, "error_accounting_instance_limit_reach": 43, "error_accounting_license_date_not_ok": 43, "error_accounting_license_file_invalid": 43, "error_accounting_license_file_not_found": 43, "error_accounting_not_start": 43, "error_accounting_running_elsewher": 43, "error_accounting_server_error": 43, "error_accounting_slot_limit_reach": 43, "error_accounting_to_many_start": 43, "error_accounting_unable_to_connect_to_serv": 43, "error_accounting_unknown_error": 43, "error_accounting_virtualserver_limit_reach": 43, "error_already_join": 43, "error_already_regist": 43, "error_cancel": 43, "error_channel_already_in": 43, "error_channel_can_not_delete_default": 43, "error_channel_default_require_perman": 43, "error_channel_invalid_flag": 43, "error_channel_invalid_id": 43, "error_channel_invalid_ord": 43, "error_channel_invalid_password": 43, "error_channel_invalid_security_hash": 43, "error_channel_maxclients_reach": 43, "error_channel_maxfamily_reach": 43, "error_channel_name_inus": 43, "error_channel_no_filetransfer_support": 43, "error_channel_not_empti": 43, "error_channel_parent_not_perman": 43, "error_channel_protocol_limit_reach": 43, "error_client_already_subscrib": 43, "error_client_cannot_verify_now": 43, "error_client_could_not_validate_ident": 43, "error_client_hack": 43, "error_client_invalid_id": [11, 43, 47], "error_client_invalid_password": 43, "error_client_invalid_typ": 43, "error_client_is_flood": 43, "error_client_login_not_permit": 43, "error_client_nickname_inus": 43, "error_client_not_logged_in": [43, 58], "error_client_not_subscrib": 43, "error_client_protocol_limit_reach": 43, "error_client_version_outd": 43, "error_clientlibrary_not_initialis": 43, "error_command_line_exit_help": 43, "error_command_line_exit_vers": 43, "error_command_line_parse_fail": 43, "error_command_not_found": 43, "error_connection_ip_protocol_miss": 43, "error_connection_lost": 43, "error_could_not_initialise_input_manag": 43, "error_could_not_resolve_hostnam": 43, "error_currently_not_poss": 43, "error_dont_notifi": 43, "error_failed_connection_initialis": 43, "error_file_already_exist": 43, "error_file_already_in_us": 43, "error_file_connection_lost": 43, "error_file_could_not_open_connect": 43, "error_file_exceeds_file_system_maximum_s": 43, "error_file_exceeds_supplied_s": 43, "error_file_invalid_dimens": 43, "error_file_invalid_nam": 43, "error_file_invalid_path": 43, "error_file_invalid_permiss": 43, "error_file_invalid_s": 43, "error_file_invalid_storage_class": 43, "error_file_invalid_transfer_id": 43, "error_file_io_error": 43, "error_file_no_files_avail": 43, "error_file_no_space_left_on_devic": 43, "error_file_not_found": 43, "error_file_overwrite_excludes_resum": 43, "error_file_transfer_cancel": 43, "error_file_transfer_channel_quota_exceed": 43, "error_file_transfer_client_quota_exceed": 43, "error_file_transfer_complet": 43, "error_file_transfer_connection_timeout": 43, "error_file_transfer_interrupt": 43, "error_file_transfer_limit_reach": 43, "error_file_transfer_reset": 43, "error_file_transfer_server_quota_exceed": 43, "error_handshake_fail": 43, "error_illegal_server_licens": 43, "error_invalid_server_connection_handler_id": 43, "error_join_request_not_found": 43, "error_lib_time_limit_reach": 43, "error_no_cached_connection_info": 43, "error_no_network_port_avail": 43, "error_not_connect": 43, "error_not_impl": [41, 43], "error_not_stream": 43, "error_ok": [6, 9, 11, 12, 15, 22, 23, 25, 28, 29, 30, 31, 32, 35, 37, 41, 43, 46, 47, 48, 51, 55, 56, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 73], "error_ok_no_error_ev": 43, "error_ok_no_upd": 43, "error_out_of_memori": 43, "error_parameter_checksum": 43, "error_parameter_convert": 43, "error_parameter_invalid": [43, 67, 73], "error_parameter_invalid_count": 43, "error_parameter_invalid_s": 43, "error_parameter_miss": 43, "error_parameter_not_found": 43, "error_parameter_quot": 43, "error_permiss": [43, 59, 68, 69, 73], "error_permissions_client_insuffici": 43, "error_port_already_in_us": 43, "error_server_duplicate_run": 43, "error_server_invalid_id": 43, "error_server_invalid_password": [43, 67, 73], "error_server_is_boot": 43, "error_server_is_not_run": 43, "error_server_is_shutting_down": 43, "error_server_is_virtu": 43, "error_server_maxclients_reach": 43, "error_server_run": 43, "error_server_status_invalid": 43, "error_server_version_outd": 43, "error_serverlibrary_not_initialis": 43, "error_sfu_failed_to_start": 43, "error_sound_channel_mask_mismatch": 43, "error_sound_could_not_open_capture_devic": [8, 43], "error_sound_could_not_open_playback_devic": 43, "error_sound_device_already_regist": 43, "error_sound_device_busi": 43, "error_sound_device_in_us": 43, "error_sound_handler_has_devic": [8, 43], "error_sound_internal_captur": 43, "error_sound_internal_encod": 43, "error_sound_internal_playback": 43, "error_sound_internal_preprocessor": 43, "error_sound_invalid_capture_devic": 43, "error_sound_invalid_channel_count": 43, "error_sound_invalid_playback_devic": 43, "error_sound_invalid_wav": 43, "error_sound_need_more_data": 43, "error_sound_no_capture_device_avail": 43, "error_sound_no_data": [6, 41, 43], "error_sound_no_playback_device_avail": 43, "error_sound_open_wav": 43, "error_sound_preprocessor_dis": 43, "error_sound_read_wav": 43, "error_sound_unknown_devic": 43, "error_sound_unsupported_frequ": 43, "error_sound_unsupported_wav": 43, "error_stream_not_particip": 43, "error_stream_session_limit_reach": 43, "error_stream_session_not_found": 43, "error_stream_unknown": 43, "error_unable_to_bind_network_port": 43, "error_undefin": 43, "error_vs_crit": 43, "error_whisper_no_target": 43, "error_whisper_too_many_target": 43, "errorcod": [11, 41, 73], "errormessag": [11, 31, 41], "errormsg": [11, 25, 29, 47], "errornumb": [11, 22, 41], "essenti": [20, 41, 49], "establish": [22, 29, 42], "estim": [5, 23, 41], "etc": [6, 26, 31, 42, 43, 59, 65, 68, 69, 73], "even": [3, 18, 39, 41, 50, 59, 67, 68, 69, 73], "event": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30, 33, 34, 37, 40, 41, 43, 47, 52, 57, 59, 67, 68, 69, 73], "event_nam": 41, "eventu": 46, "ever": 45, "everi": [6, 18, 22, 24, 26, 29, 31, 33, 37, 41, 42, 50, 57, 58, 59, 67, 68, 69, 73], "everyon": [13, 20, 37, 41], "everytim": 59, "exact": 29, "exactli": [6, 46, 73], "exampel": 62, "exampl": [1, 10, 17, 19, 27, 41, 43, 49, 53, 58, 71, 73], "exce": [24, 26, 41, 43, 58, 59], "exceed": [43, 71], "except": [11, 32, 45, 65, 71], "exclus": [26, 41, 42, 43, 45], "execut": [33, 58, 65], "exist": [6, 22, 24, 26, 41, 42, 43, 46, 49, 58, 59, 64, 70, 73], "exit": [11, 43, 47, 57, 59, 67, 68, 69, 73], "expect": [6, 41, 43], "expens": [57, 59, 67, 68, 69, 73], "expir": [43, 45, 58, 73], "explain": 26, "explan": [70, 73], "explanatori": [20, 41], "explicit": 41, "explicitli": [45, 56], "export": [31, 65], "extern": [34, 41], "extra": [43, 56], "extramessag": [11, 31, 41], "f": 35, "facil": 33, "factor": [0, 9, 41], "fail": [6, 8, 9, 11, 13, 26, 41, 43, 45, 46, 47, 50, 55, 56, 58, 64, 73], "failonclienterror": [55, 73], "failur": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 26, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 59, 61, 62, 63, 64, 66, 70, 71, 72, 73], "fall": 41, "fals": [25, 36], "familymaxcli": [12, 48], "faq": 29, "fashion": 48, "fast": [0, 41], "faster": [0, 36, 41], "fault": [11, 47], "featur": [3, 13, 24, 25, 31, 32, 36, 45, 55, 56, 57, 59, 70, 73], "fed": 41, "feedback": [10, 41], "few": [46, 73], "fifth": 9, "file": [6, 11, 35, 41, 43, 45, 47, 58, 61, 65, 68, 69, 71, 73], "filebas": [59, 73], "filelisttype_directori": 42, "filelisttype_fil": 42, "filenam": [26, 41, 42], "files": 42, "filesystem": [26, 59], "filetransf": 43, "filetransfer_act": 42, "filetransfer_finish": 42, "filetransfer_initialis": 42, "filetransfercallbackexport": [42, 59, 73], "filetransferst": [26, 41, 42, 59], "filetransfertyp": [26, 41, 42], "fill": [6, 34, 41, 42, 46, 49, 58, 59, 67, 73], "filter": 41, "final": [13, 22, 41, 46, 49, 50], "find": [5, 28, 31, 41, 73], "fine": 43, "finetun": 26, "finish": [4, 11, 26, 41, 42, 59], "fire": [26, 39, 41], "first": [3, 8, 9, 11, 17, 26, 31, 32, 41, 43, 45, 46, 47, 48, 49, 50, 66, 71, 73], "five": 43, "fix": 58, "flag": [2, 3, 5, 12, 14, 17, 26, 28, 29, 30, 36, 41, 45, 46, 48, 49, 50, 55, 61, 62, 63, 64, 73], "flexibl": [5, 18, 25], "float": [0, 26, 31, 35, 36, 41, 65], "flood": [29, 43], "flush": [12, 16, 25, 28, 29, 43, 48, 55, 58, 62, 63, 64], "folder": [11, 26, 41, 42, 47, 58, 65, 73], "follow": [0, 3, 4, 5, 11, 12, 13, 14, 16, 17, 18, 20, 22, 26, 28, 29, 30, 31, 33, 34, 35, 36, 37, 40, 41, 46, 55, 58, 59, 61, 62, 63, 64, 65, 67, 71], "forbid": [42, 68], "forc": [13, 22, 38, 41, 50, 73], "forcefulli": 20, "foreign": 0, "forget": 39, "form": [9, 26], "format": [60, 67, 73], "formfactor": 9, "forth": 9, "forward": [0, 11, 41], "found": [1, 6, 45], "frame": [3, 6, 41, 73], "free": [9, 11, 21, 22, 24, 31, 41, 46, 47, 49, 51, 54, 55, 57, 62, 65, 66, 73], "freed": [7, 9, 11, 15, 21, 22, 23, 24, 26, 28, 29, 30, 36, 41, 46, 47, 49, 57, 64, 70, 71, 73], "freedom": 6, "freeli": [6, 41], "frequenc": [6, 41, 73], "frequent": 71, "friendli": [4, 41], "from": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 21, 22, 23, 24, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "fromchannelid": [26, 41, 42], "fromchannelpw": [26, 41], "fromfactor": [9, 41], "fromid": [37, 41], "fromnam": [37, 41], "fromuniqueidentifi": [37, 41], "ft_createdir": 42, "ft_delet": 42, "ft_download": 42, "ft_fileinfo": 42, "ft_filelist": 42, "ft_init_channel": 42, "ft_init_serv": 42, "ft_renam": 42, "ft_upload": 42, "ftaction": 42, "ftcreatedir": 42, "ftdeletefil": 42, "ftgetfileinfo": 42, "ftgetfilelist": 42, "ftinitdownload": 42, "ftinitupload": 42, "ftrenamefil": 42, "full": [6, 39, 41, 43], "func": 68, "function": [0, 2, 3, 4, 5, 6, 8, 11, 12, 13, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 36, 37, 39, 40, 43, 46, 47, 48, 52, 53, 55, 56, 57, 59, 60, 61, 62, 63, 64, 67, 68, 69, 71], "functionpoint": [11, 41, 47, 73], "functionrarepoint": [11, 41], "funtion": [0, 18, 41], "further": [6, 11, 27, 29, 43, 45, 59, 73], "futur": [22, 23, 41, 73], "g": [26, 28, 34, 41, 43, 56, 59, 71, 73], "gain": [25, 36, 68], "game": 41, "gandalf": 22, "gener": [5, 25, 26, 35, 43, 44, 46, 58, 70, 71, 73], "get": [1, 3, 6, 10, 13, 14, 15, 18, 21, 22, 26, 28, 29, 30, 32, 35, 40, 41, 42, 43, 45, 46, 49, 51, 54, 55, 59, 61, 62, 63, 64, 66, 68, 69, 71, 73], "getchannelsounddata": 3, "getchar": 56, "give": [6, 39, 41], "given": [2, 4, 5, 6, 7, 8, 11, 15, 17, 26, 28, 29, 40, 41, 43, 46, 51, 66, 71, 73], "global": [25, 35, 38, 41, 46], "globalerrorcod": [47, 73], "glorifi": [20, 41], "go": [2, 41, 43, 46, 50, 55, 63, 73], "goe": 6, "gone": [13, 41, 45, 73], "good": 5, "got": [14, 31, 41, 42], "goto": [12, 48], "grace": 71, "gracefulli": 73, "grant": 43, "greater": 35, "group": [11, 31, 33, 41, 42, 47, 73], "groupwhispertargetmod": 42, "groupwhispertargetmode_al": 42, "groupwhispertargetmode_allparentchannel": 42, "groupwhispertargetmode_ancestorchannelfamili": 42, "groupwhispertargetmode_channelfamili": 42, "groupwhispertargetmode_currentchannel": 42, "groupwhispertargetmode_endmark": 42, "groupwhispertargetmode_parentchannel": 42, "groupwhispertargetmode_subchannel": 42, "groupwhispertyp": 42, "groupwhispertype_allcli": 42, "groupwhispertype_channelcommand": 42, "groupwhispertype_channelgroup": 42, "groupwhispertype_endmark": 42, "groupwhispertype_servergroup": 42, "guarante": [22, 29, 41], "gui": 17, "h": [3, 31, 41, 42, 56, 73], "ha": [2, 3, 4, 6, 11, 13, 14, 15, 17, 22, 23, 26, 27, 28, 29, 31, 34, 35, 36, 40, 41, 42, 43, 45, 46, 47, 48, 52, 55, 56, 57, 59, 62, 63, 64, 65, 66, 70, 71, 73], "halt": [26, 33, 41], "handl": [0, 1, 22, 25, 31, 33, 34, 37, 41, 55, 65, 67, 73], "handler": [0, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 23, 26, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 41, 43], "happen": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30, 33, 34, 37, 40, 41, 47, 57, 58, 59, 67, 68, 69, 71, 73], "hard": 43, "harddisk": 39, "hardwareinput_dis": [25, 42], "hardwareinput_en": 42, "hardwareinputstatu": [42, 45], "hardwareoutput_dis": 42, "hardwareoutput_en": 42, "hardwareoutputstatu": [42, 45], "hardwarestatu": 25, "has_tochannelid": 42, "hash": [34, 41, 42, 45, 67, 73], "have": [3, 4, 6, 8, 11, 17, 18, 22, 26, 28, 29, 32, 36, 37, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 56, 58, 59, 62, 71, 72, 73], "haven": 42, "hear": [42, 73], "heard": [32, 40, 72], "height": 43, "hello": 37, "help": 43, "helper": 41, "henc": [11, 47], "here": [11, 41, 42, 45, 58, 70], "hi": 25, "high": [35, 36], "higher": [0, 35, 36, 41, 45], "highli": 23, "him": 25, "hint": [41, 42], "hirarchi": 17, "hold": 36, "hook": 47, "host": [22, 41, 59, 73], "hostnam": [22, 41, 43, 45], "how": [0, 3, 6, 13, 17, 41, 46, 49, 53, 60, 71, 73], "howev": [11, 22, 25, 40, 41, 47, 50, 58, 59, 61, 72, 73], "http": 41, "human": [11, 26, 41, 42, 47, 59, 73], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73], "id": [0, 3, 6, 9, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 26, 28, 29, 30, 32, 35, 37, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 59, 62, 63, 66, 68, 70, 71, 72, 73], "idea": [29, 49, 55, 62, 63], "ident": [23, 26, 29, 30, 35, 36, 37, 41, 42, 43, 45, 56, 58, 70, 73], "identifi": [0, 11, 12, 13, 14, 16, 18, 20, 22, 26, 28, 29, 30, 32, 37, 40, 41, 42, 45, 46, 49, 59, 73], "identitystr": 41, "ie": 43, "ifdef": 9, "ignor": [0, 32, 37, 40, 41, 42], "imag": 43, "immedi": [4, 10, 41], "implement": [3, 6, 11, 24, 26, 29, 34, 40, 41, 45, 47, 56, 57, 59, 67, 68, 73], "impli": 45, "import": [11, 31, 47, 58, 65, 71], "includ": [6, 26, 33, 34, 41, 42, 45, 46, 56, 58, 59, 70, 71, 73], "inclus": [23, 41, 45], "incom": [11, 24, 45, 57], "incompat": [24, 57], "incompletes": [26, 41], "increas": [0, 25, 38, 41, 45], "indefinit": 43, "index": 3, "indic": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 43, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 66, 70, 71, 72, 73], "individu": [1, 3, 9, 11, 25, 26, 32, 40, 41, 47, 59, 72], "info": [26, 42], "inform": [3, 7, 11, 13, 17, 18, 19, 22, 23, 32, 41, 42, 43, 45, 46, 49, 53, 59, 61, 65, 68, 69, 73], "init": 56, "initi": [1, 20, 22, 33, 41, 43, 56, 57, 59, 67, 68, 69, 73], "input": [36, 43], "input_act": [25, 29, 42], "input_deactiv": [25, 29, 42], "input_deactivation_delay_act": 41, "input_deactivation_delay_m": 41, "inputdeactivationstatu": [25, 42, 45], "inquiri": 58, "insid": 26, "instal": 45, "instanc": [11, 26, 41, 43, 47, 56, 66, 71, 73], "instantli": [4, 6, 41], "instead": [6, 10, 18, 22, 23, 25, 34, 40, 41, 58, 59, 67, 71, 73], "insuffici": 43, "int": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "integ": [12, 24, 28, 29, 30, 36, 41, 45, 46, 55, 61, 62, 63, 64, 73], "integr": 44, "intend": [18, 26, 41, 42, 48, 59, 73], "interact": 31, "interest": 6, "interfac": [9, 27, 31], "interfacenam": [9, 41], "intern": [22, 40, 45], "interrupt": [4, 41], "invalid": [22, 28, 29, 39, 41, 43, 58, 67, 73], "investig": 71, "invok": 41, "invokerclientid": [59, 73], "invokerid": [12, 13, 16, 28, 29, 41, 56], "invokernam": [12, 13, 16, 28, 29, 41, 56], "invokeruid": 56, "invokeruniqueidentifi": [12, 13, 16, 28, 29, 41], "invokerunqiueidentifi": [13, 41], "ip": [22, 41, 42, 43, 44, 45, 46, 59, 68, 71, 73], "ipv4": [22, 41, 43, 46, 59, 71, 73], "ipv6": [22, 41, 43, 46, 59, 71, 73], "isdefault": [7, 41], "ispushtotalkbuttonpress": [25, 29], "isreceivedwhisp": 41, "issend": [42, 59], "issu": [43, 56, 71], "issubscrib": 18, "item": 42, "itemisvalid": 42, "its": [2, 9, 17, 18, 22, 26, 31, 39, 41, 42, 43, 70], "itself": [9, 29, 33, 41, 46, 55, 71], "joe": [29, 55, 63], "join": [15, 17, 18, 19, 22, 35, 41, 42, 45, 47, 55, 67, 73], "json": 41, "just": [6, 14, 24, 34, 57, 67, 71], "keep": [25, 26, 31, 41, 45, 71, 73], "keepal": 45, "kei": [25, 29, 41, 46, 58, 65, 71, 73], "keypair": 58, "keypair_": 58, "kick": [13, 14, 41, 42, 50, 68, 73], "kickerid": [20, 41], "kickernam": [20, 41], "kickeruniqueidentifi": [20, 41], "kickmessag": [20, 41], "kickreason": [20, 41, 55, 73], "kill": 71, "kind": [26, 41], "kit": 44, "know": [14, 26, 31, 41, 50], "known": 43, "larg": [24, 41, 43], "larger": [24, 34, 41, 67, 70, 73], "last": [3, 9, 11, 13, 18, 26, 31, 41, 43, 45, 47, 65, 73], "latenc": [36, 45], "later": [26, 31, 43, 46, 58, 65, 71], "latest": 29, "layout": [46, 73], "ld": 11, "ldap": [34, 41, 67], "lead": [44, 71], "leader": 25, "least": [26, 43, 73], "leav": [11, 18, 35, 41, 45, 47], "leave_vis": [14, 42], "left": [13, 14, 23, 41], "legaci": 41, "length": [0, 41, 42, 59], "less": 35, "let": [47, 58], "level": [3, 25, 26, 36, 41, 43, 45], "lib": [0, 1, 2, 3, 4, 6, 7, 9, 11, 15, 21, 22, 23, 26, 27, 28, 29, 30, 33, 34, 35, 36, 39, 40, 41, 46, 47, 49, 53, 55, 56, 59, 60, 67, 68, 73], "libari": [31, 65], "librari": [1, 22, 31, 41, 43, 46, 49, 51, 54, 55, 59, 62, 64, 65, 66, 70, 71, 73], "libstdc": [31, 65], "licens": [43, 47, 58, 65, 71, 73], "licensekei": [58, 65], "life": [46, 73], "lifetim": [26, 41, 46, 49, 73], "like": [3, 6, 8, 9, 11, 15, 18, 21, 22, 26, 28, 31, 34, 41, 46, 47, 51, 54, 55, 56, 59, 65, 66, 67, 72, 73], "limit": [18, 41, 42, 43, 45, 55, 59, 62, 63, 64, 65, 71, 73], "line": [43, 45, 47, 73], "linux": [1, 9, 31, 41, 42, 65], "list": [1, 8, 18, 19, 25, 26, 29, 31, 32, 41, 42, 43, 45, 46, 53, 59, 63, 65, 68, 69, 71, 73], "listen": [22, 32, 41, 43, 46, 59, 71, 73], "live": [18, 41], "ll": 26, "llu": [11, 56], "load": [11, 38, 41], "lobbi": 28, "local": [1, 22, 29, 30, 32, 39, 41, 42, 45, 59], "localtestmod": 42, "locat": [0, 11, 12, 13, 14, 15, 16, 20, 21, 26, 28, 29, 35, 39, 40, 41, 42, 45, 48, 50, 51, 52, 54, 55, 58, 62, 65, 66, 73], "lock": [70, 73], "log": [11, 14, 41, 42, 45, 47, 73], "logchannel": [33, 41, 73], "logfileact": 42, "logfilefold": [11, 41, 47, 73], "logid": [33, 41, 73], "login": [17, 41], "loglevel": [33, 41, 73], "loglevel_crit": 33, "logmessag": [33, 41, 73], "logtim": [33, 41, 73], "logtyp": [11, 41, 42, 47, 73], "logtype_consol": [11, 42, 47], "logtype_databas": 42, "logtype_fil": [11, 42, 47], "logtype_no_netlog": 42, "logtype_non": [42, 56], "logtype_syslog": 42, "logtype_userlog": [33, 42], "logverbos": [33, 41, 73], "long": [11, 22, 35, 41, 43, 45, 46, 47, 49, 55, 63], "longer": [3, 6, 10, 11, 18, 22, 32, 41, 43, 47, 59, 64, 73], "look": 46, "loop": [6, 39, 41], "loopback": 41, "lose": [41, 47, 73], "lossi": 23, "lost": [35, 41, 45], "lot": 27, "louder": [25, 35, 36], "loudest": 35, "low": [3, 25], "lower": [35, 36], "lowest": 45, "lsb": [3, 41], "lunch": 29, "m": 42, "mac": [1, 9, 31, 65], "machin": [43, 58, 59, 65, 73], "maco": 41, "made": [33, 35, 40, 41, 46, 58, 60, 73], "mai": [6, 9, 22, 23, 25, 26, 31, 34, 41, 43, 45, 46, 47, 49, 50, 56, 65, 67, 68, 71, 73], "main": [6, 28, 41, 56], "mainli": 32, "make": [6, 23, 24, 25, 30, 31, 35, 36, 41, 46, 49, 52, 57, 58, 71, 73], "manag": [43, 71], "mandatori": [29, 46, 49, 73], "mani": [3, 6, 13, 22, 27, 29, 41, 43, 46, 60, 71, 73], "manipul": 11, "manual": 25, "mark": [3, 41], "marker": 55, "mask": [3, 41], "match": [41, 43, 45, 46], "matrix": 41, "matter": [56, 73], "maxclient": [12, 48], "maximum": [26, 34, 35, 36, 41, 42, 43, 45, 46, 65, 67, 71, 73], "mayviewipport": [68, 73], "meachan": [46, 73], "mean": [3, 6, 17, 22, 25, 36, 41, 45, 73], "meant": 18, "mechan": [6, 25, 34, 39, 40, 58, 67, 68, 70], "meet": 43, "member": [0, 3, 4, 9, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 25, 26, 28, 29, 30, 33, 34, 37, 40, 41, 42, 47, 57, 59, 66, 67, 68, 69, 73], "memori": [6, 7, 9, 11, 15, 21, 22, 23, 24, 26, 28, 29, 30, 31, 36, 41, 42, 43, 46, 47, 51, 54, 55, 57, 58, 62, 64, 65, 66, 70, 71, 73], "memset": [11, 47, 56], "mention": [46, 55, 62, 63, 64, 71], "mere": [3, 41, 46], "messag": [14, 20, 22, 26, 33, 37, 41, 43, 45, 56, 64, 68, 73], "messagecount": 41, "messageid": 41, "meta": [29, 42, 55, 58, 63, 70, 73], "meta_data": 70, "metadata": [58, 70], "meter": [0, 41], "method": [0, 46], "mic": 45, "microphon": [25, 29, 36, 42, 43, 45], "middl": 5, "might": [11, 24, 35, 47, 57, 58, 71], "millisecond": 41, "min": [26, 41], "min_client_vers": 43, "mind": 71, "minimum": [26, 73], "minut": [45, 71], "miss": 73, "mix": 41, "mixer": 41, "mode": [1, 8, 38, 41, 43], "modeid": [8, 9, 41], "moder": 35, "modif": [3, 25, 35, 41], "modifi": [0, 3, 25, 26, 27, 28, 29, 35, 38, 41, 42, 43, 46, 53, 55, 62, 63, 64, 71], "modifii": [55, 63], "modul": 41, "modular": 31, "moment": 6, "monitor": [4, 41], "mono": [5, 42], "more": [4, 8, 11, 14, 24, 25, 26, 28, 29, 39, 40, 41, 43, 45, 46, 47, 55, 58, 59, 62, 63, 64, 65, 68, 69, 70, 71, 73], "most": [3, 22, 26, 58], "motiv": 70, "move": [13, 14, 17, 19, 20, 26, 31, 41, 42, 43, 53, 56, 59, 68, 69, 73], "movemessag": [14, 41], "moverid": [14, 41], "movernam": [14, 41], "moveruniqueidentifi": [14, 41], "msg": [37, 41, 42], "multipl": [2, 13, 22, 29, 41, 47, 55, 56, 62, 63, 73], "music": [5, 42], "must": [0, 6, 7, 9, 11, 15, 21, 22, 23, 24, 26, 28, 29, 30, 31, 34, 36, 41, 43, 45, 46, 47, 49, 51, 54, 55, 57, 58, 59, 62, 63, 64, 65, 66, 67, 70, 71, 73], "mute": [3, 25, 29, 41, 42, 45], "muteinput_mut": [25, 42], "muteinput_non": 42, "muteinputstatu": [42, 45], "muteoutput_mut": 42, "muteoutput_non": 42, "muteoutputstatu": [42, 45], "muter": 32, "mutual": [26, 41, 42, 43, 45], "my": [22, 29, 46], "my_onaccountingerrorevent_callback": 47, "my_onchannelcreated_callback": 47, "my_onchanneldeleted_callback": 47, "my_onchanneledited_callback": 47, "my_onchanneltextmessageevent_callback": 47, "my_onclientconnected_callback": 47, "my_onclientdisconnected_callback": 47, "my_onclientmoved_callback": 47, "my_onclientmoveev": 14, "my_onclientstarttalkingevent_callback": 47, "my_onclientstoptalkingevent_callback": 47, "my_onconnectstatuschangeevent_callback": 11, "my_onnewchannelevent_callback": 11, "my_onservererrorev": 31, "my_onservertextmessageevent_callback": 47, "my_onuserloggingmessageevent_callback": 47, "my_onvoicedataevent_callback": 47, "myclientmovereturncod": 31, "myid": 11, "n": [6, 9, 11, 12, 15, 22, 23, 25, 28, 29, 30, 32, 35, 46, 47, 48, 51, 55, 56, 58, 62, 63, 64, 66], "name": [6, 7, 8, 9, 11, 12, 13, 14, 16, 20, 22, 23, 26, 28, 29, 30, 35, 36, 37, 41, 42, 43, 45, 46, 47, 48, 59, 62, 71, 73], "nativ": 41, "necessari": [2, 25, 36, 43, 59, 64, 73], "necessarili": 3, "need": [2, 3, 5, 6, 7, 11, 13, 22, 24, 25, 26, 27, 31, 34, 35, 36, 38, 41, 43, 45, 46, 47, 48, 49, 57, 58, 59, 60, 62, 64, 65, 67, 68, 69, 70, 71, 73], "neg": [25, 35], "neglect": 43, "neither": [26, 43, 46], "network": [10, 18, 23, 24, 25, 41, 43, 57], "never": [11, 47, 71], "new": [2, 4, 6, 8, 16, 17, 19, 22, 26, 28, 29, 35, 36, 41, 42, 43, 46, 49, 52, 53, 55, 57, 58, 59, 62, 63, 64, 67, 68, 69, 71, 73], "newchannel": [68, 73], "newchannelid": [14, 18, 20, 31, 41, 48, 55, 73], "newchannelord": [16, 41], "newchannelparentid": [16, 41, 52, 73], "newdirnam": [26, 41], "newer": [9, 43], "newfil": [26, 41], "newfilenam": 42, "newli": [12, 18, 38, 41, 48, 49, 73], "newlimit": [26, 41], "newobjectkei": 41, "neword": [52, 73], "newparentchannelid": [68, 73], "newstatu": [11, 22, 41], "next": [17, 22], "nice": 6, "nicknam": [22, 29, 41, 42, 55, 63, 68, 70, 73], "nobodi": [6, 40, 43, 73], "nois": 36, "non": [22, 43], "nor": [26, 46], "normal": [43, 71], "note": [11, 26, 29, 41, 47, 58], "noth": 71, "notic": 58, "notif": [18, 47], "notifi": [3, 4, 6, 41, 59], "now": [14, 26, 29, 41, 42, 43, 58, 73], "null": [0, 7, 9, 11, 14, 15, 20, 21, 22, 25, 26, 28, 29, 31, 37, 40, 41, 47, 51, 56, 66], "nullptr": [11, 41, 72, 73], "number": [3, 6, 11, 18, 25, 26, 30, 41, 42, 43, 45, 46, 47, 59, 64, 67, 68, 70, 71, 73], "numer": [11, 43, 47], "numobject": 41, "o": [1, 9, 31, 65], "object": 41, "objectkei": 41, "obtain": [46, 53, 58, 65, 73], "obvious": [30, 64], "occur": [6, 11, 31, 41, 43, 65, 68, 71, 73], "off": 38, "offer": [18, 26, 29, 33, 39, 44, 45, 53, 55, 58, 59, 61, 68, 70], "offlin": 43, "often": [36, 43, 46, 58, 71, 73], "old": [42, 68, 73], "oldchannelid": [14, 18, 20, 41, 73], "oldfil": [26, 41], "oldfilenam": 42, "oldobjectkei": 41, "on_error": [12, 48], "onaccountingerrorev": [47, 73], "onauthenticationtokenev": 41, "onc": [4, 6, 11, 18, 22, 26, 29, 30, 35, 41, 42, 43, 46, 47, 48, 49, 56, 58, 73], "onchannelcr": [47, 48, 56, 73], "onchanneldelet": [47, 50, 73], "onchanneldescriptionupdateev": [28, 41], "onchanneledit": [47, 52, 73], "onchannelmoveev": [16, 41], "onchannelpasswordchangedev": [28, 41], "onchannelsubscribeev": [18, 41], "onchannelsubscribefinishedev": [18, 41], "onchanneltextmessageev": [47, 73], "onchannelunsubscribeev": [18, 41], "onchannelunsubscribefinishedev": [18, 41], "onchatlogintokenev": 41, "oncheckserveruniqueidentifierev": 41, "onclientconnect": [47, 58, 73], "onclientdisconnect": [47, 73], "onclientidsev": 41, "onclientidsfinishedev": 41, "onclientkickfromchannelev": [20, 41], "onclientkickfromserverev": [20, 41], "onclientmov": [47, 73], "onclientmoveev": [14, 22, 41], "onclientmovemovedev": [14, 41], "onclientmovesubscriptionev": [18, 41], "onclientmovetimeoutev": 41, "onclientpasswordencrypt": [34, 41, 67, 73], "onclientstarttalkingev": [47, 73], "onclientstoptalkingev": [47, 73], "onconnect": 56, "onconnectioninfoev": 41, "onconnectstatuschang": 43, "onconnectstatuschangeev": [11, 17, 22, 41, 56], "oncustom3drolloffcalculationclientev": [0, 41], "oncustom3drolloffcalculationwaveev": [0, 41], "oncustomchannelpasswordcheck": [67, 73], "oncustompacketdecryptev": [24, 41, 47, 57, 73], "oncustompacketencryptev": [24, 41, 47, 57, 73], "oncustomserverpasswordcheck": [67, 73], "ondelchannelev": [13, 41], "one": [2, 8, 12, 14, 22, 25, 26, 28, 29, 40, 41, 42, 43, 45, 46, 49, 55, 58, 59, 62, 63, 64, 68, 69, 73], "oneditcapturedvoicedataev": [3, 41], "oneditcapturedvoicedatapreprocessev": [3, 41], "oneditmixedplaybackvoicedataev": [3, 41], "oneditplaybackvoicedataev": [3, 41], "oneditpostprocessvoicedataev": [3, 41], "onerror": 56, "ones": [22, 24, 57], "onfileinfoev": [26, 41], "onfilelist_finishedev": [26, 41], "onfilelistev": [26, 41], "onfilelistfinishedev": [26, 41], "onfiletransferev": [59, 73], "onfiletransferstatusev": [26, 41], "ongo": 59, "onignoredwhisperev": [40, 41], "onjsonrepli": 41, "onli": [2, 3, 6, 8, 9, 11, 18, 22, 23, 24, 25, 26, 28, 29, 30, 31, 35, 36, 38, 40, 41, 42, 43, 45, 46, 47, 55, 56, 57, 58, 60, 61, 62, 63, 65, 71, 72, 73], "onlin": [30, 43, 54, 55, 64, 66], "onmessag": 41, "onnewchannelcreatedev": [12, 41, 56], "onnewchannelev": [11, 17, 22, 41], "onpermclientcanconnect": 68, "onplaybackshutdowncompleteev": [4, 41], "onprotoev": 41, "onprotorespons": 41, "onscreensharesessionev": 41, "onsendcalltomatrix": 41, "onserverconnectioninfoev": 41, "onservereditedev": [30, 41], "onservererrorev": [11, 13, 14, 16, 18, 20, 26, 31, 32, 37, 40, 41, 56], "onserverprotocolversionev": 41, "onserverstopev": [22, 41], "onservertextmessageev": [47, 73], "onserverupdatedev": [30, 41], "onserverupdateev": [30, 41], "onsounddevicelistchangedev": 41, "ontalkstatuschangeev": 41, "ontextmessageev": [37, 41], "ontransformfilepath": [42, 59, 73], "onupdatechanneleditedev": [28, 41], "onupdatechannelev": [16, 28, 41], "onupdateclientev": [29, 41], "onuserloggingmessageev": [33, 41, 42, 47, 73], "onvoicedataev": [47, 73], "open": [0, 2, 6, 7, 8, 23, 35, 36, 41, 42, 43, 45], "oper": [1, 9, 16, 18, 20, 26, 32, 37, 40, 41, 43, 45, 71], "opposit": [40, 41], "opt": 56, "optim": [6, 35, 42], "optimis": 6, "option": [1, 6, 14, 22, 24, 25, 26, 34, 39, 41, 49, 57, 59, 67, 68, 70, 73], "opu": [5, 23], "order": [12, 16, 17, 36, 48], "ordin": 0, "ore": [6, 41], "organ": [11, 26, 31, 41, 47], "orient": [0, 41], "origin": [24, 41, 42, 46, 57, 59, 71, 73], "other": [3, 5, 9, 11, 17, 18, 22, 24, 25, 26, 28, 33, 34, 35, 40, 41, 42, 43, 45, 46, 47, 49, 55, 57, 67, 68, 73], "otherwis": [31, 47, 57, 65, 66, 73], "our": [6, 41, 45, 55, 62, 63, 66, 71], "ourself": 45, "ourselv": 45, "out": [6, 13, 23, 31, 41, 43, 50], "outdat": 43, "outgo": [24, 45, 57], "output": [34, 35, 41, 42, 43, 73], "outsid": [18, 25, 34, 41, 43, 45, 67, 70, 73], "over": [3, 44, 45, 56, 57, 68, 70, 73], "overal": 5, "overhead": [23, 41], "overrid": 6, "overrul": 25, "overview": 6, "overwrit": [26, 41, 42, 43], "own": [3, 6, 10, 14, 18, 24, 25, 34, 37, 40, 41, 42, 44, 45, 57, 67, 73], "packag": [46, 49], "packet": [3, 24, 32, 41, 43, 45, 57, 73], "page": [27, 60], "pair": [41, 46, 58, 71, 73], "param": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30, 33, 34, 37, 40, 41, 57, 59, 67, 68, 69, 73], "paramet": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 66, 70, 71, 72, 73], "paramt": 46, "parent": [12, 15, 16, 17, 26, 41, 42, 46, 48, 49, 51, 52, 66, 68, 73], "parentchannelid": [12, 48, 68, 73], "parentid": 56, "part": [11, 41, 47], "parti": [31, 43, 65], "partial": [26, 41], "particular": 18, "pass": [0, 5, 6, 7, 8, 11, 12, 13, 14, 16, 17, 18, 20, 22, 26, 27, 28, 29, 30, 31, 32, 33, 37, 40, 41, 43, 45, 46, 47, 48, 49, 55, 58, 59, 60, 65, 68, 71, 72, 73], "password": [12, 14, 22, 26, 28, 31, 41, 43, 45, 48, 73], "past": [26, 41], "path": [11, 17, 22, 26, 28, 39, 41, 42, 43, 45, 47, 73], "pattern": [31, 65], "paus": [6, 41], "payload": 41, "pc": 58, "peer": 41, "pend": [6, 41], "per": [5, 8, 22, 26, 36, 38, 41, 42, 45, 56, 58, 59, 65, 73], "percentag": 45, "perform": [6, 11, 41, 42, 43, 55, 56, 67, 73], "period": [43, 71], "perm": [12, 48], "perman": [26, 43, 45], "permchannelcr": [68, 73], "permchanneldelet": [68, 73], "permchanneledit": [68, 73], "permchannelmov": [68, 73], "permchannelsubscrib": [68, 73], "permclientcanconnect": [68, 73], "permclientcangetchanneldescript": [68, 73], "permclientkickfromchannel": [68, 73], "permclientkickfromserv": [68, 73], "permclientmov": [68, 73], "permclientupd": [68, 73], "permfiletransfercreatedirectori": [59, 68, 69, 73], "permfiletransferdeletefil": [59, 68, 69, 73], "permfiletransfergetfileinfo": [59, 68, 69, 73], "permfiletransfergetfilelist": [59, 68, 69, 73], "permfiletransferinitdownload": [59, 68, 69, 73], "permfiletransferinitupload": [59, 68, 69, 73], "permfiletransferrenamefil": [59, 68, 69, 73], "permiss": 43, "permsendconnectioninfo": [68, 73], "permsendtextmessag": [68, 73], "permserverrequestconnectioninfo": [68, 73], "perpendicular": [0, 41], "persist": [71, 73], "piec": 60, "ping": [41, 42, 43], "place": [3, 11, 20, 22, 35, 41, 47, 57, 58, 73], "plai": [0, 3, 4, 6, 7, 35, 41], "plaintext": [34, 41, 67, 73], "platform": [9, 41, 44, 45], "playback": [1, 2, 4, 7, 9, 10, 25, 39, 41, 42, 43, 45], "playbackbuff": 6, "playbackbuffers": 6, "playbackchannel": 6, "playbackdevic": [8, 41], "playbackfrequnci": 6, "playchannel": [6, 41], "playfrequ": [6, 41], "playorcap": 41, "pleas": [42, 46, 49, 58, 65, 68], "plu": [32, 55], "point": [3, 11, 24, 35, 36, 41, 42, 45, 47, 57, 73], "pointer": [6, 11, 24, 31, 41, 42, 47, 49, 57, 59, 65, 68, 70, 73], "poll": 6, "port": [22, 41, 42, 43, 45, 46, 59, 68, 71, 73], "posit": [3, 17, 25, 35, 41], "possibl": [13, 17, 18, 24, 25, 26, 31, 35, 41, 43, 46, 53, 57, 58, 65], "potenti": [6, 13], "power": 25, "pre": [3, 41, 43], "predecessor": 17, "prefer": [35, 45], "preprocess": [25, 36, 43], "preprocessor": [1, 25, 41], "present": [6, 41, 46, 49, 59, 65, 73], "press": [41, 56], "pretti": 6, "prevent": [42, 43, 56, 68, 71, 73], "previou": [2, 14, 17, 20, 26, 41, 43, 73], "previous": [0, 2, 3, 6, 26, 27, 28, 29, 41, 43, 46, 58, 73], "print": [11, 15, 43, 47, 51, 66], "printabl": [11, 47], "printf": [6, 9, 11, 12, 15, 22, 23, 25, 28, 29, 30, 32, 35, 46, 47, 48, 51, 55, 56, 58, 62, 63, 64, 66], "prior": [23, 28, 30, 40, 41, 47, 73], "prite": 43, "privat": [18, 41, 42, 58], "probabl": [45, 58], "problem": [58, 71], "process": [3, 6, 11, 27, 41, 43, 47, 65, 71, 73], "processor": 43, "produc": 41, "program": [31, 33, 65], "progress": [42, 43], "propag": [17, 25], "proper": [17, 46], "properli": 71, "properti": [5, 12, 16, 18, 23, 27, 28, 30, 32, 38, 41, 42, 43, 48, 53, 58, 60, 61, 62, 64, 73], "propos": 42, "proposedisset": 42, "proprocessor": 36, "protect": [14, 43, 45, 67, 71, 73], "proto": 41, "protobuf": 41, "protocol": 43, "protocolvers": 41, "prototyp": 31, "provid": [1, 20, 22, 26, 29, 41, 43, 45, 47, 65, 67, 68, 73], "ptt": 41, "public": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30, 33, 34, 37, 40, 41, 42, 45, 57, 58, 59, 67, 68, 69, 70, 73], "public_definit": [3, 31, 41, 56], "public_error": [31, 56], "publish": [28, 29, 41, 48, 64, 73], "pulseaudio": [1, 9, 41], "purpos": 22, "push": [29, 45], "put": 42, "qualiti": [5, 23, 35, 36, 41, 42, 44, 45, 70, 73], "queri": [1, 2, 13, 15, 17, 19, 22, 23, 25, 27, 32, 41, 43, 45, 49, 51, 53, 54, 58, 60, 66, 73], "question": [26, 41, 57, 59, 67, 68, 69, 73], "quick": 22, "quickli": [57, 59, 67, 68, 69, 73], "quiet": 35, "quieter": [25, 35], "quit": 3, "quitmessag": [22, 41], "quota": 43, "r": 42, "r_size": 42, "rais": 71, "random": [70, 73], "rang": [23, 35, 36, 43], "rate": [5, 73], "rather": [4, 10, 22, 41], "raw": [3, 6, 41], "re": [6, 11, 22, 41, 58, 59, 64, 73], "reach": 43, "reaction": 31, "reactiv": [2, 41], "read": [6, 22, 29, 30, 36, 41, 43, 45, 60], "readabl": [11, 26, 41, 42, 47, 59, 73], "readi": [41, 46, 73], "realli": 35, "reappli": 41, "reason": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 26, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 41, 42, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 66, 68, 70, 71, 72, 73], "reason_channeledit": 42, "reason_channelupd": 42, "reason_clientdisconnect": 42, "reason_clientdisconnect_server_shutdown": 42, "reason_kick_channel": 42, "reason_kick_serv": 42, "reason_kick_server_ban": 42, "reason_lost_connect": 42, "reason_mov": 42, "reason_non": 42, "reason_serverstop": 42, "reason_subscript": 42, "reasonidentifi": 42, "reasontext": [68, 73], "receiv": [0, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 45, 46, 47, 48, 49, 51, 54, 55, 57, 59, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73], "recent": [31, 58, 65], "reciev": 40, "recipi": [37, 41], "recommend": [5, 11, 23, 35, 47], "reconnect": [22, 35, 41], "record": [9, 41, 45, 73], "recreat": [71, 73], "recurs": [26, 41, 50], "redirect": 24, "reduc": [18, 43, 45], "ref": [70, 73], "refer": [6, 22, 41], "refus": 58, "regard": [26, 41, 44, 55, 62, 63, 64], "regardless": [4, 37, 41, 42, 57], "regist": [1, 41, 43, 71], "regular": [26, 40, 42, 59, 72], "regularli": [6, 41], "reject": [56, 59, 68, 69, 71, 73], "rel": [0, 41], "relat": [26, 28, 29, 55, 62, 63, 64], "releas": [1, 9, 11, 31, 41, 47, 58, 65, 73], "relev": 41, "reli": 22, "remain": [17, 45, 46, 71], "rememb": 27, "remot": [26, 42, 59], "remotefiles": [26, 41, 42, 59], "remotetransferid": [42, 59], "remov": [1, 13, 18, 20, 23, 41, 43, 45, 71], "removeclienterror": [47, 58, 73], "renam": [26, 41, 42, 59, 68, 69, 73], "render": 41, "renderdeviceid": 41, "reopen": 25, "repeat": 42, "replac": [24, 41, 57, 73], "repli": 41, "report": [3, 9, 25, 41, 43, 71], "repres": [3, 41], "represent": [36, 73], "request": [11, 13, 14, 16, 18, 19, 20, 22, 27, 28, 31, 32, 37, 40, 41, 42, 43, 45, 55, 58, 59, 68, 69, 73], "requestservervari": 45, "requir": [2, 3, 6, 11, 22, 29, 38, 41, 43, 46, 59, 73], "reserv": [3, 42], "reset": [41, 72, 73], "resid": [26, 41], "resolv": [22, 41, 43, 45], "resourc": 73, "resourcesfold": [11, 41], "respect": [11, 41, 47, 59, 73], "respons": [17, 36, 41, 59, 73], "rest": 73, "restart": [45, 58], "restor": [40, 41, 45, 46, 71, 72, 73], "restrict": [58, 70], "result": [7, 9, 11, 13, 15, 18, 21, 22, 23, 26, 28, 29, 30, 31, 35, 36, 41, 42, 46, 47, 48, 49, 51, 54, 55, 59, 61, 62, 63, 64, 65, 66, 71, 73], "resum": [26, 41, 42, 43], "retain_vis": [14, 42], "retreiv": 41, "retriev": [0, 1, 7, 9, 11, 15, 21, 23, 26, 28, 29, 30, 35, 36, 39, 41, 46, 47, 49, 55, 62, 63, 71, 73], "return": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 25, 26, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 58, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "return_cod": 41, "returncod": [11, 12, 13, 14, 16, 18, 20, 26, 28, 29, 30, 31, 32, 37, 40, 41, 56], "reus": [22, 26, 41, 58], "rewrit": [42, 73], "rewritten": 42, "right": [4, 17, 41, 43, 59], "rolloffscal": [0, 41], "room": 41, "roomalia": 41, "root": [12, 15, 26, 41, 46, 49, 52, 68, 73], "round": 45, "rout": [10, 41], "run": [41, 43, 45, 59, 65, 71, 73], "runtim": [31, 65], "s3": 41, "safe": [31, 65], "said": 73, "sale": [58, 65], "salt": [45, 73], "saltbytes": [70, 73], "same": [2, 5, 11, 14, 17, 18, 22, 24, 25, 26, 27, 29, 31, 34, 41, 42, 43, 45, 57, 58, 59, 65, 67, 71, 73], "sampl": [3, 5, 6, 41, 43, 46, 49, 58, 71, 73], "samplecount": [3, 41], "save": [6, 25, 71, 73], "saw": [18, 41], "scalabl": 44, "scenario": 25, "schandlerid": [5, 6, 11, 12, 14, 15, 18, 22, 23, 25, 28, 29, 30, 31, 32, 35, 37, 41, 58], "schid": 56, "scratch": 42, "screenshar": 41, "script": 71, "sdk": [1, 3, 6, 11, 24, 25, 26, 29, 31, 33, 34, 41, 42, 45, 46, 49, 56, 57, 58, 59, 65, 67, 68, 70, 71, 73], "sec": [26, 41], "second": [9, 11, 13, 26, 29, 31, 32, 41, 45, 47, 58, 59, 71, 73], "secret": 22, "section": [11, 13, 29, 47], "secur": [42, 43, 45, 73], "security_salt_check_meta_data": 42, "security_salt_check_nicknam": 42, "securityhash": [70, 73], "securitysalt": [70, 73], "securitysaltopt": [42, 70, 73], "see": [3, 8, 11, 14, 17, 18, 20, 24, 26, 27, 29, 41, 42, 43, 45, 46, 47, 49, 57, 58, 59, 60, 68, 70, 71, 73], "seem": 71, "seen": [45, 68, 73], "segment": [11, 47], "select": 46, "semi": 45, "semiperm": [12, 48], "send": [3, 6, 8, 10, 16, 25, 28, 29, 32, 34, 36, 38, 40, 41, 42, 59, 67, 68, 73], "sender": 40, "sens": [23, 35, 36], "sent": [3, 6, 11, 24, 26, 29, 36, 37, 41, 42, 45, 57, 68, 73], "separ": [31, 45, 46, 71, 73], "seri": [11, 47], "serial": 41, "serious": [33, 41], "serv": [32, 41], "server": [0, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 21, 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 40, 41, 43, 44, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 62, 63, 68, 69, 70, 72], "server_commands_file_transf": 42, "server_creation_param": [46, 49], "server_permiss": 68, "serverconnectionhandl": 43, "serverconnectionhandlerid": [0, 2, 3, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 25, 26, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41], "serverev": 41, "serverid": [15, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 58, 59, 61, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73], "serverip": [46, 71, 73], "serverkeypair": [46, 71, 73], "serverlib": [47, 56, 59, 73], "serverlibfunct": [42, 47, 48, 50, 56, 57, 58, 59, 67, 68, 69, 73], "serverlibfunt": 50, "servermaxcli": [46, 71, 73], "servernam": [71, 73], "serverpassword": [22, 41], "serverport": [46, 71, 73], "serveruniqueidentifi": 41, "servic": 71, "session": [1, 3, 9, 22, 41], "set": [1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 16, 17, 18, 20, 22, 23, 24, 25, 27, 28, 30, 34, 37, 38, 39, 40, 41, 42, 43, 45, 47, 48, 52, 53, 56, 57, 58, 59, 60, 64, 67, 68, 69, 70, 72, 73], "setup": [3, 55], "setvirtualservervariablea": 73, "sever": [31, 33, 41, 65, 73], "sf": 56, "sha1": 41, "share": [1, 31, 41, 43, 65], "short": [3, 6, 41, 43, 45], "should": [0, 3, 5, 6, 11, 12, 17, 22, 23, 25, 26, 31, 35, 38, 41, 43, 45, 46, 47, 49, 56, 57, 58, 59, 65, 67, 68, 69, 71, 73], "shouldtalk": [25, 29], "shown": [20, 41], "shut": [2, 4, 22, 41, 43, 73], "shutdown": [22, 41, 46, 71, 73], "shutdownmessag": [22, 41], "side": [11, 26, 31, 41, 45, 53, 55, 56, 58, 59, 61, 65, 73], "sign": [3, 41], "signal": [25, 35, 41], "signatur": 45, "signifi": [26, 41], "silenc": 6, "similar": [11, 28, 30, 41, 46, 48, 49, 62], "simpl": [24, 55, 57, 63], "simpli": [3, 16, 22, 26, 31, 59, 65], "simultan": [2, 8, 22, 45, 46, 58, 71, 73], "sinc": [13, 26, 41, 43, 45], "singl": [3, 22, 35, 37, 41, 45, 46, 55, 73], "size": [24, 26, 34, 36, 41, 42, 43, 45, 57, 59, 68, 69, 73], "size_t": [12, 28, 29, 30, 41], "sizeof": [6, 11, 41, 47, 56], "sizeofdata": [24, 41, 57, 73], "slfunc": 47, "slot": [43, 58, 65, 71], "slow": [11, 47], "slower": [70, 73], "smaller": [24, 57, 73], "snapshot": [43, 46], "so": [2, 3, 11, 22, 23, 25, 26, 27, 31, 35, 36, 38, 41, 42, 47, 49, 56, 58, 65, 71, 73], "softwar": [6, 41, 44, 45], "some": [6, 10, 11, 26, 28, 29, 30, 41, 46, 47, 50, 55, 62, 63, 73], "someon": [40, 41], "someth": [3, 6], "soon": [2, 17], "sort": [19, 32, 41, 45, 52, 73], "sound": [1, 3, 4, 6, 10, 11, 35, 36, 39, 41, 43], "soundbackend": [1, 11, 41], "sourc": [0, 3, 6, 26, 29, 34, 41, 45, 67, 73], "sourcedirectori": [26, 41], "space": [0, 24, 41], "spam": 71, "spawn": 22, "speak": [36, 43], "speaker": [0, 3, 35, 41, 42, 45], "speaker_": [3, 41], "speaker_back_left": 3, "speaker_back_right": 3, "speaker_front_cent": 3, "speaker_low_frequ": 3, "speaker_side_left": 3, "speaker_side_right": 3, "special": 6, "specif": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 24, 25, 26, 28, 29, 30, 33, 34, 37, 40, 41, 45, 47, 56, 70, 71, 73], "specifi": [0, 3, 4, 6, 8, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 43, 45, 46, 47, 48, 49, 50, 51, 54, 55, 58, 59, 61, 62, 63, 64, 66, 67, 70, 71, 72, 73], "speech": [23, 45], "speed": [41, 59, 73], "speex": [23, 36], "spontan": [34, 67], "sporad": [30, 41], "squad": 25, "stack": [31, 65], "stai": 17, "stall": [57, 59, 67, 68, 69, 73], "standard": [6, 25, 40, 41, 42, 45], "start": [3, 4, 8, 26, 32, 36, 41, 42, 43, 45, 46, 49, 57, 59, 67, 68, 69, 71, 73], "startup": [71, 73], "state": [22, 25, 31, 32, 41, 43, 47, 65, 71, 73], "static": [11, 47], "statu": [10, 11, 17, 19, 22, 26, 41, 42, 43, 45, 56, 59], "status_connect": [22, 42, 45], "status_connection_establish": [17, 42, 56], "status_disconnect": 42, "status_not_talk": [29, 42], "status_talk": [29, 42], "status_talking_while_dis": [29, 42], "statusmessag": [26, 41, 42, 59], "stdcall": [31, 65], "stdio": 56, "steal": 58, "step": [17, 29, 46, 49, 55, 62, 63], "stereo": [5, 42], "still": [18, 26, 35, 40, 41, 56, 72, 73], "stop": [3, 22, 32, 39, 40, 41, 43, 64, 72, 73], "storag": [26, 59], "store": [11, 22, 26, 28, 34, 36, 41, 42, 45, 46, 58, 59, 67, 71, 73], "strcmp": [31, 68], "stream": [3, 6, 41, 45], "string": [6, 7, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 45, 46, 47, 55, 56, 59, 60, 62, 63, 64, 65, 67, 68, 71, 73], "stringifi": 41, "struct": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30, 31, 33, 34, 37, 40, 41, 42, 46, 47, 49, 56, 57, 59, 67, 68, 69, 73], "structur": [11, 52, 53, 59, 73], "style": 41, "sub": [12, 13, 28, 41, 42, 43, 45, 46, 49, 50, 52, 59, 73], "subchannel": 17, "subchannel_1": 17, "subchannel_2": 17, "subdir": [26, 41], "subdirectori": [26, 41], "subscrib": [19, 21, 41, 42, 43, 68, 73], "subscript": [19, 41], "subsequ": [29, 46, 71, 73], "subset": [18, 41, 53], "subsubchannel_1": 17, "subsubchannel_2": 17, "subsystem": [59, 73], "succeed": 47, "success": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 59, 61, 62, 63, 64, 65, 66, 70, 71, 72, 73], "successful": 20, "successfulli": [12, 18, 41, 43, 46, 50, 55], "suffici": [6, 41, 73], "suggest": [22, 58], "sum": 45, "superior": 44, "suppli": [6, 43, 45, 73], "support": [0, 1, 5, 6, 23, 26, 39, 41, 43, 46, 59, 71, 73], "suppos": [68, 73], "suppress": 36, "sure": [3, 41], "switch": [8, 17, 29, 42, 45, 73], "syslog": 42, "system": [0, 1, 9, 26, 39, 41, 43, 44, 45, 58, 59, 68, 71, 73], "t": [3, 7, 11, 22, 24, 27, 41, 42, 47, 57, 58, 59, 71, 73], "take": [1, 3, 11, 24, 25, 31, 35, 41, 45, 46, 47, 49, 57, 73], "taken": [35, 43], "talk": [2, 5, 6, 29, 40, 41, 42, 45, 72, 73], "talkstatu": [41, 42], "tamper": 73, "target": [14, 26, 35, 37, 40, 41, 42, 43, 68, 73], "targetchannelid": [37, 41, 73], "targetchannelidarrai": [40, 41], "targetcli": [37, 68, 73], "targetclientid": [37, 41], "targetclientidarrai": [40, 41], "targetclientorchannel": [68, 73], "targetmod": [37, 41, 68, 73], "tcp": [59, 73], "team": 25, "teamspeak": [0, 3, 5, 6, 8, 14, 17, 22, 24, 26, 29, 31, 32, 33, 34, 36, 37, 39, 45, 47, 55, 56, 57, 58, 59, 65, 67, 68, 70, 71], "teamspeakusa": [58, 65], "technologi": 44, "tell": [11, 41], "temporari": [13, 26, 35, 41, 45], "temporarili": 25, "termin": [9, 14, 15, 18, 20, 21, 22, 26, 28, 32, 34, 40, 41, 43, 47, 54, 55, 56, 59, 66, 72, 73], "termint": [51, 66, 73], "test": [1, 26, 41], "test_mode_off": 42, "test_mode_talk_status_changes_onli": 42, "test_mode_voice_local_and_remot": 42, "test_mode_voice_local_onli": 42, "testchannel": 56, "testserv": 56, "testus": 56, "text": [33, 34, 41, 45, 67, 73], "textmessag": [68, 73], "textmessagetarget_channel": 42, "textmessagetarget_cli": 42, "textmessagetarget_max": 42, "textmessagetarget_serv": 42, "textmessagetargetmod": [37, 41, 42, 68, 73], "than": [8, 10, 11, 22, 24, 34, 35, 41, 42, 43, 45, 47, 57, 58, 67, 71, 73], "thei": [22, 26, 31, 45, 46, 55, 59, 63, 65, 70, 73], "them": [11, 20, 22, 28, 30, 32, 41, 43, 46, 47, 49, 59, 64, 71, 73], "themselv": [55, 73], "thi": [0, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 59, 60, 65, 66, 67, 68, 70, 71, 73], "thing": [6, 22, 41, 46, 53, 71], "third": [9, 31, 65], "those": [11, 26, 31, 33, 36, 47, 65], "thread": [31, 57, 59, 65, 67, 68, 69, 73], "three": 37, "through": [4, 10, 11, 13, 22, 27, 35, 41, 43, 73], "throw": 71, "thu": [25, 55, 62, 63, 64], "ti": [23, 35, 36], "time": [2, 6, 8, 13, 14, 18, 22, 23, 26, 29, 31, 37, 41, 42, 43, 45, 46, 47, 49, 58, 62, 65, 71, 73], "timeout": [43, 47, 73], "timeoutmessag": 41, "timestamp": [26, 41, 45], "tochannelid": [26, 41, 42], "tochannelpw": [26, 41], "todo": 41, "togeth": [3, 41], "toggl": [25, 29, 41], "toid": [37, 41], "token": 41, "tokickcli": [68, 73], "tokickcount": [68, 73], "tomovecli": [68, 73], "tomovecount": [68, 73], "tone": [0, 41], "too": [43, 71], "top": [17, 26, 45, 58], "topic": [12, 28, 48, 62, 70, 73], "total": [26, 41, 45], "tradit": 55, "traffic": [18, 23, 24, 25, 41, 45, 57, 60], "trail": [34, 41], "transfer": [41, 43, 45, 61, 73], "transferid": [26, 41, 42, 59], "transformedfilenam": 42, "transformedfilenamemaxs": 42, "transformfilepathexport": [42, 59, 73], "transformfilepathexportreturn": [42, 59, 73], "transmiss": [3, 5, 10, 36, 40, 41, 45, 72], "transmit": [3, 26, 36, 40, 41, 42, 45, 70, 72, 73], "treat": [59, 73], "tree": [16, 41, 43, 52, 73], "tri": [40, 41, 58, 68, 73], "trigger": [26, 43, 71], "trip": 45, "true": [3, 36], "try": [42, 43, 68, 73], "ts3_vector": [0, 41], "ts3channelcreationparam": [46, 49, 73], "ts3client_acquirecustomplaybackdata": [6, 41], "ts3client_activatecapturedevic": [2, 41], "ts3client_allowwhispersfrom": [40, 41], "ts3client_channelset3dattribut": [0, 41], "ts3client_cleanupconnectioninfo": 41, "ts3client_closeaudioplaybackhandl": 41, "ts3client_closecapturedevic": [4, 41, 43], "ts3client_closeplaybackdevic": [4, 41, 43], "ts3client_closewavefilehandl": [39, 41], "ts3client_createaudioplaybackhandl": 41, "ts3client_createident": [22, 41, 56], "ts3client_destroyclientlib": [11, 26, 41, 56], "ts3client_destroyserverconnectionhandl": [4, 11, 22, 41, 56], "ts3client_enqueueaudioplaybackhandl": 41, "ts3client_flushchannelcr": [12, 19, 41, 56], "ts3client_flushchannelupd": [16, 28, 41, 43], "ts3client_flushclientselfupd": [25, 29, 41], "ts3client_freememori": [7, 9, 11, 15, 21, 22, 23, 25, 26, 28, 29, 30, 31, 36, 41], "ts3client_funcnam": 31, "ts3client_getauthenticationtoken": 41, "ts3client_getaveragetransferspe": [26, 41], "ts3client_getcapturedevicelist": [8, 9, 41], "ts3client_getcapturemodelist": [8, 9, 41], "ts3client_getchannelclientlist": [15, 21, 41], "ts3client_getchannelemptysec": [13, 41], "ts3client_getchannelidfromchannelnam": [28, 41], "ts3client_getchannellist": [15, 41], "ts3client_getchannelofcli": [15, 41], "ts3client_getchannelvariableasint": [18, 28, 41], "ts3client_getchannelvariableasstr": [28, 41], "ts3client_getchannelvariableasuint64": [17, 28, 41], "ts3client_getchatlogintoken": 41, "ts3client_getclientid": [11, 14, 29, 41], "ts3client_getclientlibvers": [11, 41], "ts3client_getclientlibversionnumb": [11, 41], "ts3client_getclientlist": [15, 21, 41], "ts3client_getclientselfvariableasint": [2, 25, 29, 41], "ts3client_getclientselfvariableasstr": [29, 41], "ts3client_getclientvariableasint": [29, 32, 41], "ts3client_getclientvariableasstr": [29, 41], "ts3client_getclientvariableasuint64": [29, 41], "ts3client_getconnectionstatu": [41, 43, 45], "ts3client_getconnectionvariableasdoubl": 41, "ts3client_getconnectionvariableasstr": 41, "ts3client_getconnectionvariableasuint64": 41, "ts3client_getcurrentcapturedevicenam": [7, 41], "ts3client_getcurrentcapturemod": [7, 41], "ts3client_getcurrentplaybackdevicenam": [7, 41], "ts3client_getcurrentplaybackmod": [7, 41], "ts3client_getcurrenttransferspe": [26, 41], "ts3client_getdefaultcapturedevic": [8, 9, 41], "ts3client_getdefaultcapturemod": [8, 9, 41], "ts3client_getdefaultplaybackdevic": [8, 9, 41], "ts3client_getdefaultplaybackmod": [8, 9, 41], "ts3client_getencodeconfigvalu": [23, 41], "ts3client_geterrormessag": [11, 25, 29, 41], "ts3client_getfilelist": [26, 41], "ts3client_getglobalconfigvalueasint": 41, "ts3client_getinstancespeedlimitdown": [26, 41], "ts3client_getinstancespeedlimitup": [26, 41], "ts3client_getparentchannelofchannel": [15, 41], "ts3client_getplaybackconfigvalueasfloat": [35, 41], "ts3client_getplaybackdevicelist": [8, 9, 41], "ts3client_getplaybackmodelist": [8, 9, 41], "ts3client_getpreprocessorconfigvalu": [36, 41], "ts3client_getpreprocessorinfovaluefloat": [36, 41], "ts3client_getserverconnectionhandlerlist": [22, 41], "ts3client_getserverconnectionhandlerspeedlimitdown": [26, 41], "ts3client_getserverconnectionhandlerspeedlimitup": [26, 41], "ts3client_getserverconnectionvariableasfloat": 41, "ts3client_getserverconnectionvariableasuint64": 41, "ts3client_getserverlegacyuuid": 41, "ts3client_getservervariableasint": [30, 41], "ts3client_getservervariableasstr": [11, 30, 41], "ts3client_getservervariableasuint64": [30, 41], "ts3client_gettransferfilenam": [26, 41], "ts3client_gettransferfilepath": [26, 41], "ts3client_gettransferfileremotepath": [26, 41], "ts3client_gettransferfiles": [26, 41], "ts3client_gettransferfilesizedon": [26, 41], "ts3client_gettransferruntim": [26, 41], "ts3client_gettransferspeedlimit": [26, 41], "ts3client_gettransferstatu": [26, 41], "ts3client_getwhisperreceivewhitelist": 41, "ts3client_halttransf": [26, 41, 43], "ts3client_identitystringtouniqueidentifi": 41, "ts3client_initclientlib": [11, 33, 41, 43, 56], "ts3client_initiategracefulplaybackshutdown": [4, 41], "ts3client_istransfersend": [26, 41], "ts3client_iswhisperreceivewhitelist": 41, "ts3client_logmessag": [33, 41], "ts3client_onmatrixmessag": 41, "ts3client_opencapturedevic": [6, 8, 41], "ts3client_openplaybackdevic": [6, 8, 41], "ts3client_openwavefilehandl": [0, 41], "ts3client_pauseaudioplaybackhandl": 41, "ts3client_pausewavefilehandl": [39, 41], "ts3client_playwavefil": [35, 39, 41, 43], "ts3client_playwavefilehandl": [0, 35, 39, 41, 43], "ts3client_postmessag": 41, "ts3client_postprotocommand": 41, "ts3client_processcustomcapturedata": [6, 41], "ts3client_registercustomdevic": [6, 41, 43], "ts3client_removefromallowedwhispersfrom": [40, 41], "ts3client_requestchanneldelet": [13, 41], "ts3client_requestchanneldescript": [41, 45, 68, 73], "ts3client_requestchannelmov": [16, 17, 41], "ts3client_requestchannelsubscrib": [18, 41], "ts3client_requestchannelsubscribeal": [18, 41], "ts3client_requestchannelunsubscrib": [18, 41], "ts3client_requestchannelunsubscribeal": [18, 41], "ts3client_requestchat": 41, "ts3client_requestclientid": 41, "ts3client_requestclientkickfromchannel": [20, 41], "ts3client_requestclientkickfromserv": [20, 41], "ts3client_requestclientmov": [14, 31, 41], "ts3client_requestclientsetwhisperlist": [40, 41], "ts3client_requestclientvari": [29, 41, 43, 45], "ts3client_requestconnectioninfo": [41, 43, 45, 68, 73], "ts3client_requestcreatedirectori": [26, 41, 59, 68, 69, 73], "ts3client_requestdeletechanneltextmsg": 41, "ts3client_requestdeletefil": [26, 41, 59, 68, 69, 73], "ts3client_requestfil": [26, 41], "ts3client_requestfileinfo": [26, 41, 59, 68, 69, 73], "ts3client_requestfilelist": [26, 41, 59, 68, 69, 73], "ts3client_requestmutecli": [32, 41, 45], "ts3client_requestrenamefil": [26, 41, 59, 68, 69, 73], "ts3client_requestsendchanneltextmsg": [37, 41], "ts3client_requestsendprivatetextmsg": [37, 41], "ts3client_requestsendservertextmsg": [37, 41], "ts3client_requestserverconnectioninfo": [41, 45, 68, 73], "ts3client_requestservervari": [30, 41, 43, 45], "ts3client_requestunmutecli": [32, 41], "ts3client_s3ft_deletefil": 41, "ts3client_s3ft_getdownloadurl": 41, "ts3client_s3ft_getpresignedurl": 41, "ts3client_s3ft_getuploadurl": 41, "ts3client_s3ft_listfil": 41, "ts3client_s3ft_renamefil": 41, "ts3client_s3ft_uploaddonenotif": 41, "ts3client_sendfil": [26, 41], "ts3client_set3dwaveattribut": [0, 41], "ts3client_setaecreferencedevic": 41, "ts3client_setchannelvariableasint": [5, 12, 16, 23, 28, 41, 43, 56], "ts3client_setchannelvariableasstr": [12, 28, 41, 56], "ts3client_setchannelvariableasuint64": [12, 17, 28, 41], "ts3client_setclientselfvariableasint": [25, 29, 41], "ts3client_setclientselfvariableasstr": [29, 41, 58], "ts3client_setclientvolumemodifi": [25, 35, 41, 45], "ts3client_setglobalconfigvalu": 41, "ts3client_setinstancespeedlimitdown": [26, 41], "ts3client_setinstancespeedlimitup": [26, 41], "ts3client_setkeypressedduringchunk": 41, "ts3client_setlocaltestmod": [10, 41], "ts3client_setlogverbos": [33, 41], "ts3client_setplaybackconfigvalu": [25, 35, 41], "ts3client_setpreprocessorconfigvalu": [25, 36, 41], "ts3client_setserverconnectionhandlerspeedlimitdown": [26, 41], "ts3client_setserverconnectionhandlerspeedlimitup": [26, 41], "ts3client_settransferspeedlimit": [26, 41], "ts3client_setwhisperreceivewhitelist": [40, 41], "ts3client_spawnnewserverconnectionhandl": [22, 41, 56], "ts3client_startconnect": [14, 17, 22, 41, 43, 56, 58], "ts3client_startconnectionwithchannelid": [22, 41, 43], "ts3client_startvoicerecord": [3, 41], "ts3client_stopconnect": [11, 22, 41, 56], "ts3client_stopvoicerecord": [3, 41], "ts3client_systemset3dlistenerattribut": [0, 41], "ts3client_systemset3dset": [0, 41], "ts3client_unregistercustomdevic": [6, 41], "ts3client_xxx": 31, "ts3errortyp": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 59, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73], "ts3sc_array_ftdeletefil": 42, "ts3sc_array_ftgetfileinfo": 42, "ts3sc_data_ftcreatedir": 42, "ts3sc_data_ftdeletefil": 42, "ts3sc_data_ftgetfileinfo": 42, "ts3sc_data_ftgetfilelist": 42, "ts3sc_data_ftinitdownload": 42, "ts3sc_data_ftinitupload": 42, "ts3sc_data_ftrenamefil": 42, "ts3sc_ftcreatedir": [42, 59, 68, 69, 73], "ts3sc_ftdeletefil": [42, 59, 68, 69, 73], "ts3sc_ftgetfileinfo": [42, 59, 68, 69, 73], "ts3sc_ftgetfilelist": [42, 59, 68, 69, 73], "ts3sc_ftinitdownload": [42, 59, 68, 69, 73], "ts3sc_ftinitupload": [42, 59, 68, 69, 73], "ts3sc_ftrenamefil": [42, 59, 68, 69, 73], "ts3sc_meta_ftcreatedir": 42, "ts3sc_meta_ftdeletefil": 42, "ts3sc_meta_ftgetfileinfo": 42, "ts3sc_meta_ftgetfilelist": 42, "ts3sc_meta_ftinitdownload": 42, "ts3sc_meta_ftinitupload": 42, "ts3sc_meta_ftrenamefil": 42, "ts3server_calculatesecurityhash": [70, 73], "ts3server_channeldelet": [50, 73], "ts3server_channelmov": [52, 73], "ts3server_clientmov": [55, 73], "ts3server_clientskickfromserv": [55, 73], "ts3server_createchannel": [46, 49, 73], "ts3server_createsecuritysalt": [70, 73], "ts3server_createvirtualserv": [46, 56, 58, 71, 73], "ts3server_createvirtualserver2": [46, 49, 71, 73], "ts3server_destroyserverlib": [47, 56, 73], "ts3server_disableclientcommand": [56, 73], "ts3server_enablefilemanag": [45, 59, 73], "ts3server_flushchannelcr": [48, 73], "ts3server_flushchannelvari": [48, 62, 73], "ts3server_flushclientvari": [55, 63, 73], "ts3server_flushvirtualservervari": [58, 64, 73], "ts3server_freememori": [46, 47, 51, 54, 55, 58, 62, 63, 64, 65, 66, 70, 71, 73], "ts3server_funcnam": 65, "ts3server_getchannelclientlist": [54, 55, 66, 73], "ts3server_getchannelcreationparamsvari": [46, 49, 73], "ts3server_getchannellist": [51, 66, 73], "ts3server_getchannelofcli": [51, 66, 73], "ts3server_getchannelvariableasint": [62, 73], "ts3server_getchannelvariableasstr": [62, 73], "ts3server_getchannelvariableasuint64": [62, 73], "ts3server_getclientidsfromuid": 73, "ts3server_getclientlist": [54, 55, 66, 73], "ts3server_getclientvariableasint": [55, 63, 73], "ts3server_getclientvariableasstr": [55, 58, 63, 73], "ts3server_getclientvariableasuint64": [55, 63, 73], "ts3server_getglobalerrormessag": [47, 73], "ts3server_getparentchannelofchannel": [51, 66, 73], "ts3server_getserverlibvers": [47, 73], "ts3server_getserverlibversionnumb": [47, 73], "ts3server_getvariableasint": [46, 49, 73], "ts3server_getvariableasstr": [46, 49, 73], "ts3server_getvariableasuint64": [46, 49, 73], "ts3server_getvirtualserverconnectionvariableasdoubl": [61, 73], "ts3server_getvirtualserverconnectionvariableasuint64": [61, 73], "ts3server_getvirtualservercreationparamschannelcreationparam": [46, 49, 73], "ts3server_getvirtualservercreationparamsvari": [46, 73], "ts3server_getvirtualserverkeypair": [46, 71, 73], "ts3server_getvirtualserverlist": [66, 73], "ts3server_getvirtualservervariableasint": [64, 73], "ts3server_getvirtualservervariableasstr": [47, 64, 73], "ts3server_getvirtualservervariableasuint64": [64, 73], "ts3server_initserverlib": [43, 47, 56, 59, 68, 73], "ts3server_makechannelcreationparam": [46, 49, 73], "ts3server_makevirtualservercreationparam": [46, 73], "ts3server_setchannelcreationparam": [46, 49, 73], "ts3server_setchannelvariableasint": [43, 48, 62, 73], "ts3server_setchannelvariableasstr": [48, 62, 73], "ts3server_setchannelvariableasuint64": [48, 62, 73], "ts3server_setclientvariableasint": [55, 63, 73], "ts3server_setclientvariableasstr": [55, 63, 73], "ts3server_setclientvariableasuint64": [55, 63, 73], "ts3server_setclientwhisperlist": [72, 73], "ts3server_setlogverbos": 73, "ts3server_setservervariableasint": 71, "ts3server_setservervariableasstr": 71, "ts3server_setvariableasint": [46, 49, 73], "ts3server_setvariableasstr": [46, 49, 73], "ts3server_setvariableasuint64": [46, 49, 73], "ts3server_setvirtualservercreationparam": [46, 73], "ts3server_setvirtualservervariableasint": [58, 64, 73], "ts3server_setvirtualservervariableasstr": [64, 73], "ts3server_setvirtualservervariableasuint64": [64, 73], "ts3server_stopvirtualserv": [56, 64, 71, 73], "ts3server_xxx": 65, "ts3variabl": [46, 49, 73], "ts3virtualservercreationparam": [46, 73], "ts_chat_id": 41, "twice": 42, "two": [0, 9, 22, 24, 29, 32, 40, 41, 46, 49, 57, 58, 71], "txt": [26, 41, 58], "type": [8, 11, 26, 31, 36, 37, 41, 43, 46, 47, 55, 61, 62, 63, 64, 65, 68, 73], "u": [11, 15, 18, 40, 41, 42, 45, 47, 48, 51, 62, 66], "udp": [22, 41, 46, 71, 73], "uft8": 41, "ui": [11, 31, 41], "uid": [28, 41], "uid1": 73, "uid2": 73, "uint64": [0, 2, 3, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 58, 59, 61, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73], "un": [18, 41], "unabl": 56, "unavail": 6, "undefin": [3, 11, 30, 31, 41, 47, 65], "under": [33, 41], "undon": [40, 41], "unencrypt": 38, "unimpl": [11, 47], "uniniti": [11, 31, 47, 65], "uniqu": [0, 6, 13, 16, 22, 26, 41, 43, 45, 46, 49, 70, 71, 73], "uniqueclientidentifi": 41, "unit": [0, 41], "unix": [26, 41, 45], "unless": [14, 22, 26, 33, 41, 45, 56, 66], "unlimit": [26, 58], "unmut": [29, 41], "unpaus": 39, "unreach": 47, "unregist": [6, 43], "unset": [3, 41], "unsign": [0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73], "unspecifi": 43, "unsubscrib": [19, 35, 41, 42], "unsupport": 43, "until": [4, 22, 26, 39, 40, 41], "unus": [12, 13, 14, 16, 18, 20, 22, 26, 28, 29, 30, 32, 33, 37, 40, 41, 55, 73], "unusu": [3, 22], "up": [0, 6, 8, 26, 41, 43, 45, 46, 49, 58, 59, 71, 73], "updat": [18, 27, 28, 41, 42, 43, 45, 68, 71, 73], "upload": [41, 42, 43, 45, 59, 68, 69, 73], "uploadbandwidth": [59, 73], "upon": [4, 43, 46, 57, 59, 67, 68, 69, 73], "upstream": 45, "upward": [0, 41], "url": 41, "us": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 73], "usabl": 44, "usag": [5, 18, 23, 41, 42, 43, 45], "usedlogtyp": [11, 33, 41, 47, 73], "user": [2, 3, 4, 5, 6, 10, 11, 13, 17, 18, 22, 24, 29, 31, 32, 34, 41, 42, 45, 56, 57, 59, 60, 65, 67, 68, 73], "usernam": 58, "usual": 22, "utf": 60, "utf8": [8, 9, 11, 13, 14, 16, 20, 22, 23, 26, 28, 29, 30, 33, 34, 35, 37, 41, 42, 43, 46, 47, 55, 59, 64, 67, 68, 71, 73], "uuid": 41, "v": 5, "vad": [25, 36], "vad_extrabuffers": 36, "valid": [0, 8, 9, 22, 23, 25, 26, 34, 35, 36, 37, 41, 42, 43, 45, 46, 49, 58, 73], "validatenamepassword": 58, "valu": [0, 1, 5, 10, 11, 12, 13, 14, 17, 18, 20, 22, 23, 24, 25, 26, 28, 29, 30, 33, 37, 38, 39, 41, 42, 43, 45, 46, 47, 48, 49, 55, 56, 58, 59, 60, 62, 63, 64, 65, 67, 68, 70, 73], "var": [46, 73], "variabl": [7, 9, 11, 12, 13, 15, 17, 21, 22, 23, 25, 26, 28, 29, 30, 31, 35, 36, 39, 41, 43, 47, 48, 49, 51, 54, 55, 56, 60, 61, 62, 63, 64, 65, 66, 68, 70, 71, 73], "variablea": 43, "variablesexport": [42, 68, 73], "variablesexportitem": 42, "variou": [9, 26, 29, 31, 36, 45, 46, 60], "vector": [0, 41], "veloc": [0, 41], "verb": 41, "verbos": [33, 41, 73], "veri": [24, 25, 35, 57, 71], "verifi": [67, 73], "versa": 43, "version": [39, 41, 43, 45, 73], "via": [6, 31, 37, 41, 46, 73], "vice": 43, "virtual": [15, 21, 26, 37, 38, 41, 42, 43, 45, 47, 49, 51, 54, 55, 59, 63, 64, 65, 66, 67, 73], "virtualserv": 71, "virtualserver_address": 45, "virtualserver_channels_onlin": 45, "virtualserver_clients_onlin": [30, 45, 64], "virtualserver_codec_encryption_mod": [38, 45], "virtualserver_cr": 45, "virtualserver_create_flag_non": 73, "virtualserver_create_flag_passwords_encrypt": 73, "virtualserver_encryption_ciph": 45, "virtualserver_endmark": 45, "virtualserver_filebas": 45, "virtualserver_log_filetransf": [42, 45], "virtualserver_max_download_total_bandwidth": 45, "virtualserver_max_upload_total_bandwidth": 45, "virtualserver_maxcli": [43, 45, 58], "virtualserver_min_clients_in_channel_before_forced_sil": 43, "virtualserver_nam": [45, 46], "virtualserver_password": 45, "virtualserver_platform": 45, "virtualserver_unique_identifi": 45, "virtualserver_uptim": 45, "virtualserver_vers": 45, "virtualserver_version_sign": 45, "virtualserver_welcomemessag": [11, 22, 45, 47, 64], "virtualserver_x": [42, 59], "virtualservercreateflag": [46, 73], "virtualservercreationparam": [46, 73], "virtualserverproperti": [30, 41, 45, 46, 64, 73], "virtualserverpropertiesrar": [30, 41], "virtualserverpropertiessdk": 64, "visibl": [14, 15, 17, 18, 20, 21, 22, 35, 41, 42, 45], "voic": [1, 5, 23, 25, 29, 32, 35, 36, 37, 40, 41, 44, 45, 72, 73], "voiceactivation_level": 36, "voicedata": 73, "voicedatas": 73, "void": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 24, 26, 28, 29, 30, 31, 33, 34, 37, 40, 41, 47, 56, 57, 58, 59, 67, 70, 73], "voip": 44, "volu": 25, "volum": [0, 35, 41, 45], "volume_factor_wav": [35, 41], "volume_modifi": [25, 35, 41], "wa": [0, 3, 4, 11, 12, 13, 14, 16, 18, 20, 22, 25, 26, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41, 42, 43, 45, 46, 59, 67, 68, 69, 71, 73], "wai": [4, 6, 18, 22, 24, 34, 41, 46, 56, 57, 58, 67, 70, 71], "wait": [4, 14, 41, 71], "want": [0, 2, 3, 8, 18, 22, 24, 25, 40, 41, 46, 57, 59, 61, 62, 64, 68, 71, 73], "wasapi": 41, "wav": 43, "wave": [6, 35, 41, 43], "wavehandl": [0, 39, 41], "we": [0, 6, 11, 14, 18, 20, 22, 31, 32, 35, 40, 41, 42, 45, 46, 47, 49, 58, 73], "welcom": [42, 45, 64], "welcomemessag": [11, 64], "welcomemsg": [11, 47], "well": [11, 22, 25, 27, 29, 33, 41, 42, 59, 61], "were": [17, 26, 41, 73], "what": [22, 26, 27, 41, 45, 60], "whatev": [39, 41, 42], "when": [0, 2, 3, 4, 5, 6, 11, 12, 13, 14, 16, 17, 18, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 45, 46, 47, 49, 50, 57, 58, 59, 60, 65, 67, 68, 69, 70, 71, 73], "whenev": [29, 30, 34, 41, 59, 67, 73], "where": [6, 11, 17, 25, 31, 32, 37, 42, 46, 47, 59, 65, 68, 69, 73], "whether": [3, 4, 7, 11, 13, 14, 16, 18, 20, 26, 32, 36, 37, 39, 40, 41, 42, 43, 45, 57, 68, 73], "which": [0, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73], "while": [4, 6, 25, 29, 31, 40, 42, 45, 55, 73], "whipser": 42, "whisper": [25, 41, 43, 45, 73], "who": [15, 18, 25, 26, 42, 56, 59, 66, 73], "whole": [20, 38], "whose": 41, "wide": [26, 41, 73], "width": 43, "win": 9, "window": [1, 9, 11, 31, 41, 43, 47, 65, 71], "windowsaudiosess": 41, "wire": [57, 73], "within": [11, 17, 22, 25, 26, 31, 35, 41, 43, 47, 52, 58, 59, 64, 71, 73], "without": [3, 16, 23, 41, 43, 58, 71], "won": [3, 11, 47], "work": [41, 47, 73], "would": [3, 11, 17, 22, 23, 25, 38, 40, 41, 47, 56, 58, 73], "write": [6, 24, 33, 41, 43, 45, 67, 73], "written": [6, 34, 41, 46], "wrong": 43, "x": [0, 1, 12, 31, 41, 42, 48, 59, 65], "xor": [24, 57], "y": [0, 59], "yet": [40, 42, 43], "yield": [30, 41], "you": [0, 3, 4, 6, 7, 8, 11, 12, 13, 14, 16, 18, 20, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 41, 43, 45, 46, 47, 48, 49, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 67, 68, 69, 71, 73], "your": [3, 6, 11, 14, 24, 25, 29, 35, 37, 40, 41, 44, 45, 47, 57, 58, 65, 67, 71, 73], "yourself": [24, 41, 45], "z": 0, "zero": [6, 11, 15, 18, 21, 22, 26, 28, 32, 34, 35, 40, 41, 47, 51, 54, 55, 57, 59, 66, 67, 68, 69, 72, 73]}, "titles": ["3D Sound", "Client Audio", "Activating the capture device", "Accessing the voice buffer", "Closing devices", "Audio codecs", "Using custom devices", "Query current mode and device", "Initializing devices", "List available modes and devices", "Local Test mode", "Getting started", "Creating a new channel", "Deleting a channel", "Joining a channel", "List channels", "Moving a channel", "Channel sorting", "Channel subscriptions", "Channel Management", "Kicking clients", "List clients", "Managing server connections", "Encoder options", "Custom encryption", "FAQ", "Filetransfer", "Retrieve and store information", "Channel information", "Client information", "Server information", "Introduction", "Muting other clients", "Logging", "Custom passwords", "Playback options", "Preprocessor options", "Text chat", "Channel voice data encryption", "Playing wave files", "Whisper lists", "TeamSpeak Client Functions", "Structures & Enumerations", "TeamSpeak Error Codes", "Welcome to TeamSpeak SDK\u2019s documentation!", "Property Enums", "Advanced virtual server creation", "Getting started", "Creating a new channel", "Advanced channel creation", "Deleting channels", "List channels", "Moving channels", "Managing channels", "List clients", "Managing clients", "Disabling protocol commands", "Custom encryption", "FAQ", "Filetransfer", "Retrieve and store information", "Bandwidth and Traffic", "Channel information", "Client information", "Server information", "Introduction", "List available clients, channels, servers", "Custom passwords", "Permission checks", "<no title>", "Security salts and hashes", "Create and stop virtual servers", "Whisper lists", "TeamSpeak Server Functions"], "titleterms": {"": 44, "1": 58, "3d": 0, "A": [11, 47], "The": [11, 47], "To": 25, "access": 3, "account": 58, "across": 25, "activ": [2, 26], "actual": [48, 49], "add": 40, "addit": 49, "adjust": [0, 25, 35], "advanc": [39, 46, 49], "after": 3, "allow": 40, "an": 22, "audio": [1, 5, 6], "authent": 58, "avail": [9, 35, 36, 66, 68], "bandwidth": 61, "basic": 49, "befor": 3, "buffer": 3, "c": [11, 47], "call": [31, 65], "callback": [0, 11, 12, 13, 16, 18, 20, 26, 28, 47, 59, 68], "can": 40, "cancel": 26, "captur": [2, 3, 8], "chang": [16, 22, 64], "changelog": 44, "channel": [12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 28, 37, 38, 45, 46, 48, 49, 50, 51, 52, 53, 62, 66, 67, 70], "chat": 37, "check": [18, 32, 68], "client": [0, 1, 20, 21, 29, 31, 32, 35, 41, 42, 45, 54, 55, 58, 63, 66, 70], "close": [4, 39], "code": [31, 43], "codec": [5, 42], "command": 56, "common": [42, 45], "config": 36, "configur": 58, "connect": 22, "control": 40, "creat": [12, 22, 46, 48, 49, 70, 71], "creation": [12, 46, 49], "current": 7, "custom": [6, 24, 34, 57, 67], "data": [6, 38], "decrypt": [24, 57], "default": 9, "defin": 33, "delai": 13, "delet": [13, 50], "devic": [2, 4, 6, 7, 8, 9], "directori": 26, "disabl": 56, "disconnect": 22, "document": 44, "down": [11, 47], "download": 26, "edit": 28, "effect": 3, "enabl": 59, "encod": 23, "encrypt": [24, 34, 38, 57, 67], "enrypt": 24, "enum": 45, "enumer": 42, "error": [11, 43, 47], "essenti": 46, "exampl": [3, 6, 9, 11, 12, 14, 15, 18, 22, 23, 24, 25, 28, 29, 30, 31, 32, 35, 37, 46, 47, 48, 51, 55, 56, 57, 62, 63, 64, 66, 68], "faq": [25, 58], "file": [0, 26, 31, 39, 42, 59], "filetransf": [26, 59, 68], "from": [18, 20, 40], "function": [31, 41, 65, 73], "futur": 71, "gener": 0, "get": [9, 11, 47, 58], "handl": [11, 39, 47], "handler": 22, "hash": 70, "header": 31, "i": 58, "ident": 22, "implement": [25, 58], "individu": 35, "inform": [26, 27, 28, 29, 30, 55, 60, 62, 63, 64], "initi": [8, 11, 26, 46, 47, 58], "input": 25, "introduct": [31, 65], "join": 14, "keypair": 71, "kick": [20, 55], "level": 33, "lib": [31, 65], "librari": [11, 47], "limit": 26, "list": [9, 15, 21, 22, 40, 51, 54, 55, 66, 72], "local": [10, 26], "log": [33, 58], "manag": [19, 22, 53, 55], "maximum": 58, "mechan": [11, 47], "messag": 42, "mix": 3, "mode": [7, 9, 10], "move": [16, 52, 55], "multipl": 58, "mute": 32, "name": 58, "new": [12, 48], "notif": 22, "number": 58, "obtain": [39, 49], "option": [23, 35, 36, 46], "other": [0, 32], "output": 25, "overview": 31, "own": [0, 29], "password": [34, 58, 67], "path": 59, "paus": 39, "permiss": [59, 68], "plai": 39, "playback": [3, 6, 8, 35], "pointer": 46, "posit": 0, "preprocess": 3, "preprocessor": 36, "privat": 37, "process": 58, "properti": [45, 46, 49], "protocol": 56, "provid": 6, "push": 25, "queri": [7, 9, 11, 26, 28, 29, 30, 35, 36, 46, 47, 55, 61, 62, 63, 64, 71], "receiv": 37, "record": 3, "regist": 6, "remov": [6, 22, 40], "request": [12, 26, 29, 30], "requir": [31, 65], "resum": 39, "retriev": [6, 27, 60], "return": 31, "reus": 71, "rewrit": 59, "run": 58, "salt": 70, "sdk": 44, "secur": 70, "send": 37, "server": [20, 22, 30, 37, 42, 45, 46, 58, 59, 64, 65, 66, 67, 71, 73], "set": [0, 26, 29, 33, 35, 36, 46, 49, 55, 62, 63], "shut": [11, 47], "shutdown": 58, "sid": 58, "simpl": 39, "sort": [16, 17], "sound": 0, "speed": 26, "standard": 68, "start": [11, 47, 58], "statu": [18, 32], "stop": 71, "store": [27, 60], "structur": [42, 46, 49], "subscrib": 18, "subscript": 18, "system": [31, 65], "talk": 25, "teamspeak": [41, 43, 44, 73], "test": 10, "text": [37, 42], "traffic": 61, "transfer": [26, 42, 59], "tree": 46, "unabl": 58, "unmut": 32, "unsubscrib": 18, "updat": [29, 30], "upload": 26, "us": 6, "usag": 65, "user": 33, "valid": 67, "valu": [35, 36, 61], "variabl": 46, "version": [11, 47], "virtual": [46, 58, 71], "voic": [3, 38, 42], "volum": 25, "wave": [0, 39], "welcom": 44, "whisper": [40, 42, 72], "who": 40, "you": 40}})
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/advanced-create.html b/docs/teamspeak-sdk-3.5.2/doc/server/advanced-create.html
deleted file mode 100644
index a040fd4..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/advanced-create.html
+++ /dev/null
@@ -1,528 +0,0 @@
-
-
-
-
-
-
-
-
-
Advanced virtual server creation — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Advanced virtual server creation
-
-
-
-
-
-
-
-
-
-Advanced virtual server creation
-In addition to the previously mentioned way to create a virtual server
-using ts3server_createVirtualServer() , there is an alternative way to
-create a virtual server. The advantage of this method is the possibility
-to restore the complete channel structure upon server creation including
-the channel IDs in one step. This allows taking and restoring server
-snapshots including the channel tree.
-
-
Note
-
For a complete example please see the “server_creation_params” sample
-code in the SDK package.
-
-
-Create server structure pointer
-First, a TS3VirtualServerCreationParams has to be created, which
-will be filled with essential and optional server parameters. This will eventually
-contain the entire virtual server structure and is used to create and start the virtual server.
-Create a new virtual server parameter structure using
-
-
-unsigned int ts3server_makeVirtualServerCreationParams ( struct TS3VirtualServerCreationParams * * result )
-Creates a structure to define an entire virtual server including the channel layout for server creation for use with ts3server_createVirtualServer2 .
-This is the first function to call when using the ts3server_createVirtualServer2 meachanism of creating virtual servers in one go, including all of their channels. After receiving the structure using this function, you need to call ts3server_setVirtualServerCreationParams to set basic configuration for this virtual server. Once that is done you can set additional parameters using ts3server_getVirtualServerCreationParamsVariables and ts3server_setVariableAsInt , ts3server_setVariableAsUInt64 or ts3server_setVariableAsString
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Important
-
Do not free or dispose of the structure, it must be valid as long
-as the virtual server exists.
-The server lib will take care of cleaning up the structure at an
-appropriate time.
-
-
-
-Set essential server properties
-Once the TS3VirtualServerCreationParams structure has been created, it
-needs to be filled with the essential parameters to create a new virtual
-server. Essential parameters include server port, IP, the key pair, maximum number of
-clients, number of channels we want to start the server with and the
-virtual server ID.
-To set these essential parameters call the function
-
-
-unsigned int ts3server_setVirtualServerCreationParams ( struct TS3VirtualServerCreationParams * virtualServerCreationParams , unsigned int serverPort , const char * serverIp , const char * serverKeyPair , unsigned int serverMaxClients , unsigned int channelCount , uint64 serverID )
-Set mandatory server creation properties for server creation using ts3server_createVirtualServer2 .
-This call is mandatory after calling ts3server_makeVirtualServerCreationParams when using ts3server_createVirtualServer2 and sets the basic information to create a virtual server. After this call you can optionally set other variables by calling ts3server_getVirtualServerCreationParamsVariables after this.
-
-Parameters:
-
-virtualServerCreationParams – pointer to a struct of creation parameters obtained by calling ts3server_makeVirtualServerCreationParams
-serverPort – the UDP port to listen for client connections on
-serverIp – comma separated list of IP address(es) to listen for client connections on. IPv4 and IPv6 addresses are supported.
-serverKeyPair – unique key for encryption. Pass an empty string when originally creating a new server, query the generated encryption key with ts3server_getVirtualServerKeyPair , store it and use it on subsequent start ups.
-serverMaxClients – maximum number of clients that can be connected simultaneously at any given time
-channelCount – the amount of channels this server will have after creation. You must call ts3server_getVirtualServerCreationParamsChannelCreationParams with this virtualServerCreationParams exactly this many times.
-serverID – the id this virtual server will have when created. server id must be unique during life time of the server library.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Query and set optional server properties
-After essential virtual server parameters have been defined with
-ts3server_setVirtualServerCreationParams() , additional parameters can
-be set. For that, we first need to get a TS3Variables from the
-TS3VirtualServerCreationParams , in which the additional
-paramters will be written using the functions
-ts3server_setVariableAsInt() , ts3server_setVariableAsUInt64() and
-ts3server_setVariableAsString() .
-To receive a pointer to a TS3Variables structure call
-
-
-unsigned int ts3server_getVirtualServerCreationParamsVariables ( struct TS3VirtualServerCreationParams * virtualServerCreationParams , struct TS3Variables * * result )
-create struct to define optional server settings for server creation with ts3server_createVirtualServer2
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-Once you have a pointer to a valid TS3Variables structure, you can query
-and modify various parameters with one of the following functions.
-Select the proper function depending of the type of the parameter you
-want to query or modify.
-
-Query variables
-
-
-unsigned int ts3server_getVariableAsInt ( struct TS3Variables * var , int flag , int * result )
-get the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as integer. Some are only available as string or unsigned 64 bit integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVariableAsUInt64 ( struct TS3Variables * var , int flag , uint64 * result )
-get the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as unsigned 64 bit integer. Some are only available as string or integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVariableAsString ( struct TS3Variables * var , int flag , char * * result )
-get the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as string. Some are only available as unsigned 64 bit integer or integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Set variables
-
-
-unsigned int ts3server_setVariableAsInt ( struct TS3Variables * var , int flag , int value )
-set the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as integer. Some are only available as string or unsigned 64 bit integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVariableAsUInt64 ( struct TS3Variables * var , int flag , uint64 value )
-set the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as unsigned 64 bit integer. Some are only available as string or integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVariableAsString ( struct TS3Variables * var , int flag , const char * value )
-set the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as string. Some are only available as unsigned 64 bit integer or integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Example
-The following will set the virtual server name of the server to be created later to “My Server”
-if ( ts3server_setVariableAsString ( vars , VIRTUALSERVER_NAME , "My Server" ) != ERROR_ok ) {
- printf ( "Failed to set virtual server name: %d \n " , error );
-}
-
-
-
-
-
-Initialize the channel tree
-After setting global virtual server parameters we are ready to
-initialize the channel tree.
-
-For each channel you need to get a TS3ChannelCreationParams and fill it
-with the desired channel parameters, including the channel ID.
-
-
-unsigned int ts3server_getVirtualServerCreationParamsChannelCreationParams ( struct TS3VirtualServerCreationParams * virtualServerCreationParams , unsigned int channelIdx , struct TS3ChannelCreationParams * * result )
-Used to specify channels to create during advanced server creation using ts3server_createVirtualServer2 .
-Call this function exactly as often as you indicated channels to be created in the ts3server_setVirtualServerCreationParams call. Once you have received the struct you must set the details using ts3server_setChannelCreationParams and can optionally set additional parameters using ts3server_getChannelCreationParamsVariables to get a structure to fill using ts3server_setVariableAsInt , ts3server_setVariableAsString , ts3server_setVariableAsUInt64
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Important
-
These structures are used by the server library and must remain valid
-for the life time of the virtual server we are creating.
-Do not free or dispose of these structures.
-
-
-Set essential channel properties
-Once we have a TS3ChannelCreationParams pointer for this channel, we can
-start to fill it in two steps. Step 1 is setting the essential data,
-step 2 is setting optional additional data.
-Essential parameters are channel parent ID and channel ID, which define where the
-channel will exist. Set them using
-
-
-unsigned int ts3server_setChannelCreationParams ( struct TS3ChannelCreationParams * channelCreationParams , uint64 channelParentID , uint64 channelID )
-Specify mandatory details of a channel to be created at server creation using ts3server_createVirtualServer2 .
-Must be called after ts3server_getVirtualServerCreationParamsChannelCreationParams to set basic properties of a channel. After this call you may set additional channel properties by calling ts3server_getChannelCreationParamsVariables and ts3server_setVariableAsInt , ts3server_setVariableAsUInt64 or ts3server_setVariableAsString
-
-Parameters:
-
-channelCreationParams – defines the channel for which we set basic properties. Obtained by calling ts3server_getVirtualServerCreationParamsChannelCreationParams
-channelParentID – the id of the channel that this channel is a sub channel of. Pass 0 to make this channel a root channel.
-channelID – the id this channel should have. Pass 0 to have the server lib assign a free ID. This is used to identify the channel in other calls to the client and server library. Must be unique across all virtual servers during the lifetime of the server library.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-Create the virtual server and channels
-Once we have defined the virtual server, and set up all the channels needed as described before,
-we can finally go ahead and actually create the virtual server and all the channels as specified using
-
-
-unsigned int ts3server_createVirtualServer2 ( struct TS3VirtualServerCreationParams * virtualServerCreationParams , enum VirtualServerCreateFlags flags , uint64 * result )
-Create an entire server structure in a single call. Useful for restoring an entire virtual server including channels including their ids after storing them on shutdown. See the SDK documentation for more in depth information.
-This requires a few other calls to be made in advance. First you need to call ts3server_makeVirtualServerCreationParams to get a TS3VirtualServerCreationParams struct that then needs to be filled via ts3server_setVirtualServerCreationParams . You can then use ts3server_getVirtualServerCreationParamsVariables to set other server settings and use ts3server_getVirtualServerCreationParamsChannelCreationParams to specify channels to create using ts3server_setChannelCreationParams .
-
-Parameters:
-
-virtualServerCreationParams – pointer to the server parameters obtained by calling ts3server_makeVirtualServerCreationParams . These must have been filled using ts3server_setVirtualServerCreationParams before calling this function.
-flags – defines how certain information is present in the virtualServerCreationParams. Combination of the values from the VirtualServerCreateFlags enum
-result – address of a variable to receive the created servers id. This is used in other calls to the server library to identify this server.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
Before this function is called, neither the server nor any of the channels
-actually exist anywhere. We merely described how they should look like and
-where the channels are.
-You cannot use any functions that require things to actually exist before
-this function was successfully called
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/basic.html b/docs/teamspeak-sdk-3.5.2/doc/server/basic.html
deleted file mode 100644
index 6a7ed2c..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/basic.html
+++ /dev/null
@@ -1,420 +0,0 @@
-
-
-
-
-
-
-
-
-
Getting started — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Getting started
-
-
-
-
-
-
-
-
-
-Getting started
-
-The callback mechanism
-The communication from the Server Lib to the server application takes
-place using callbacks. The server application has to define a
-series of function pointers using the ServerLibFunctions struct.
-These callbacks are used to let the server application
-hook into the library and receive notifications on certain actions.
-
-A callback example in C:
-static void my_onClientConnected_callback ( uint64 serverID , anyID clientID , uint64 channelID , unsigned int * removeClientError ) {
- printf ( "Client %u connected on virtual server %u joining channel %u" , clientID , serverID , channelID );
-}
-
-
-C++ developers can also use static member functions for the callbacks.
-Before calling ts3server_initServerLib() , create an instance of ServerLibFunctions
-, initialize all function pointers with NULL and point
-the structs function pointers to your implemented callback functions:
- 1 unsigned int error ;
- 2
- 3 /* Create struct */
- 4 ServerLibFunctions slFuncs ;
- 5
- 6 /* Initialize all function pointers with NULL */
- 7 memset ( & slFuncs , 0 , sizeof ( struct ServerLibFunctions ));
- 8
- 9 /* Assign those function pointers you implemented */
-10 slFuncs . onVoiceDataEvent = my_onVoiceDataEvent_callback ;
-11 slFuncs . onClientStartTalkingEvent = my_onClientStartTalkingEvent_callback ;
-12 slFuncs . onClientStopTalkingEvent = my_onClientStopTalkingEvent_callback ;
-13 slFuncs . onClientConnected = my_onClientConnected_callback ;
-14 slFuncs . onClientDisconnected = my_onClientDisconnected_callback ;
-15 slFuncs . onClientMoved = my_onClientMoved_callback ;
-16 slFuncs . onChannelCreated = my_onChannelCreated_callback ;
-17 slFuncs . onChannelEdited = my_onChannelEdited_callback ;
-18 slFuncs . onChannelDeleted = my_onChannelDeleted_callback ;
-19 slFuncs . onServerTextMessageEvent = my_onServerTextMessageEvent_callback ;
-20 slFuncs . onChannelTextMessageEvent = my_onChannelTextMessageEvent_callback ;
-21 slFuncs . onUserLoggingMessageEvent = my_onUserLoggingMessageEvent_callback ;
-22 slFuncs . onAccountingErrorEvent = my_onAccountingErrorEvent_callback ;
-23 slFuncs . onCustomPacketEncryptEvent = NULL ; // Not used by your application
-24 slFuncs . onCustomPacketDecryptEvent = NULL ; // Not used by your application
-25
-26 /* Initialize library with callback function pointers */
-27 error = ts3server_initServerLib ( & slFuncs , LogType_FILE | LogType_CONSOLE );
-28 if ( error != ERROR_ok ) {
-29 printf ( "Error initializing serverlib: %d \n " , error );
-30 (...)
-31 }
-
-
-
-
Important
-
As long as you initialize unimplemented callbacks with NULL, the
-Server Lib won’t attempt to call those function pointers. However, if
-you leave unimplemented callbacks undefined, the Server Lib will attempt to call
-them, crashing the application.
-
-The individual callbacks are described in ServerLibFunctions .
-
-
-
-Initializing
-When starting the server application, initialize the Server Lib with
-
-
-unsigned int ts3server_initServerLib ( const struct ServerLibFunctions * functionPointers , int usedLogTypes , const char * logFileFolder , int argc , const char * const * argv )
-initializes the server library and defines callback functions
-This is the first function you need to call, before this all calls to the server library will fail. In this call you will also set the functions you would like to have called when certain changes or events happen. This function must not be called multiple times.
-
-Parameters:
-
-functionPointers – defines which functions in your code are to be called on specific events. Zero initialize it and assign the desired function to call to the respective members of the ServerLibFunctions struct
-usedLogTypes – a combination of values from the LogTypes enum. Specifies which type(s) of logging you would like to use.
-logFileFolder – path in which to create log files. Pass 0 to use the default of using a folder called logs in the working directory.
-argc – The number of arguments provided to the application in argv. Used to process command line arguments
-argv – The command line arguments provided to the application. These will be processed prior to server lib initialization.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Important
-
This function must not be called more than once.
-
-
-
Note
-
Logging to console can slow down the application on Windows. Hence
-we do not recommend to log to the console on Windows other than in
-debug builds.
-
-
-
Note
-
During initialization the serverlib will attempt to connect to the
-TeamSpeak licensing server. This function may block if the licensing
-server is unreachable.
-
-
-
-Querying the library version
-The Server Lib version can be queried with
-
-
-unsigned int ts3server_getServerLibVersion ( char * * result )
-Retrieve the server version string.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To get only the version number, which is a part of the complete version
-string, as numeric value use
-
-
-unsigned int ts3server_getServerLibVersionNumber ( uint64 * result )
-Retrieve the server version number.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Example
-Query the Server Lib version:
-unsigned int error ;
-char * version ;
-error = ts3server_getServerLibVersion ( & version );
-if ( error != ERROR_ok ) {
- printf ( "Error querying serverlib version: %d \n " , error );
- return ;
-}
-printf ( "Server library version: %s \n " , version ); /* Print version */
-ts3server_freeMemory ( version ); /* Release string */
-
-
-
-
-
-Shutting down
-Before exiting the application, the Server Lib should be shut down using
-
-
-unsigned int ts3server_destroyServerLib ( )
-Destroys the server lib. Must not be called from within a callback.
-All clients will lose connection and timeout, all servers will terminate. This is the last function to call. After this call you will no longer be able to use any server library functions.
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-Any call to Server Lib functions after shutting down has undefined
-results.
-
-
Caution
-
Never destroy the Server Lib from within a callback function. This
-might result in a segmentation fault.
-
-
-
-Error handling
-Each Server Lib function returns either ERROR_ok on success or an error
-value as defined in the Ts3ErrorType enum if the function fails.
-The returned error codes are organized in groups, where the first byte
-defines the error group and the second the count within the group: The
-naming convention is ERROR_<group>_<error>, for example
-ERROR_client_invalid_id.
-
-
Note
-
Result variables should only be accessed if the function returned
-ERROR_ok . Otherwise the state of the result variable is undefined.
-
-
-
Important
-
Some Server Lib functions dynamically allocate memory which has to be
-freed by the caller using ts3server_freeMemory() .
-It is important to only access and release the memory if the
-function returned ERROR_ok . Should the function return an error, the
-result variable is uninitialized, so freeing or accessing it will
-likely result in a segmentation fault.
-
-See the section Calling Server Lib functions for
-additional notes and examples.
-A printable error string for a specific error code can be queried with
-
-
-unsigned int ts3server_getGlobalErrorMessage ( unsigned int globalErrorCode , char * * result )
-get a human readable error description string for an error code
-
-Parameters:
-
-globalErrorCode – the error code to retrieve the description for. One of the values from the Ts3ErrorType enum.
-result – address of a variable to receive the error description as a utf8 encoded c string. Memory is allocated by the server library and must be freed by caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Examples
- 1 unsigned int error ;
- 2 char * welcomeMsg ;
- 3
- 4 /* welcomeMsg memory is allocated if error is ERROR_ok */
- 5 error = ts3server_getVirtualServerVariableAsString ( serverID , VIRTUALSERVER_WELCOMEMESSAGE , & welcomeMsg );
- 6 if ( error != ERROR_ok ) {
- 7 /* Handle error */
- 8 return ;
- 9 }
-10 /* Use welcomeMsg... */
-11 ts3server_freeMemory ( welcomeMsg ); /* Release memory *only* if function did not return an error */
-
-
- 1 unsigned int error ;
- 2 char * version ;
- 3
- 4 error = ts3server_getServerLibVersion ( & version ); /* Calling some Server Lib function */
- 5 if ( error != ERROR_ok ) {
- 6 char * errorMsg ;
- 7 if ( ts3server_getGlobalErrorMessage ( error , & errorMsg ) == ERROR_ok ) { /* Query printable error */
- 8 printf ( "Error querying client ID: %s \n " , errorMsg );
- 9 ts3server_freeMemory ( errorMsg ); /* Release memory only if function succeeded */
-10 }
-11 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/channel-create-adv.html b/docs/teamspeak-sdk-3.5.2/doc/server/channel-create-adv.html
deleted file mode 100644
index 6dc9baf..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/channel-create-adv.html
+++ /dev/null
@@ -1,283 +0,0 @@
-
-
-
-
-
-
-
-
-
Advanced channel creation — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Advanced channel creation
-There is an alternative API available for channel creation, similar to the alternative virtual server creation
-API . The idea is to create a
-TS3ChannelCreationParams structure, query the attached TS3Variables structure, fill
-it with desired parameters and finally call ts3server_createChannel() .
-
-
Note
-
For a complete example please see the “server_creation_params” sample
-code in the SDK package.
-
-
-Obtain a channel creation structure
-First we need to create a TS3ChannelCreationParams struct using
-
-
-unsigned int ts3server_makeChannelCreationParams ( struct TS3ChannelCreationParams * * result )
-Create a structure that defines channel properties for use with ts3server_createChannel .
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Important
-
Do not free or dispose of the structure, it must be valid as long
-as the channel exists.
-The server lib will take care of cleaning up the structure at an
-appropriate time.
-
-Once we have a TS3ChannelCreationParams struct for this channel, we can
-start to fill it in two steps. Step 1 is setting the essential data,
-step 2 is setting additional data.
-
-
-
-
-Actually create the channel
-Finally, after setting up channel parameters, create the channel in one
-step with
-
-
-unsigned int ts3server_createChannel ( uint64 serverID , struct TS3ChannelCreationParams * channelCreationParams , enum ChannelCreateFlags flags , uint64 * result )
-create a new channel on an existing virtual server.
-
-Parameters:
-
-serverID – the server on which to create the channel.
-channelCreationParams – defines channel properties. Address of the structure obtained by calling ts3server_makeChannelCreationParams Must have been filled using ts3server_setChannelCreationParams before this call.
-flags – defines how certain information is presented in the channelCreationParams. Combination of the values from the ChannelCreateFlags enum
-result – address of a variable to receive the channel id of the newly created channel.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/channel-create.html b/docs/teamspeak-sdk-3.5.2/doc/server/channel-create.html
deleted file mode 100644
index 10aa7ac..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/channel-create.html
+++ /dev/null
@@ -1,295 +0,0 @@
-
-
-
-
-
-
-
-
-
Creating a new channel — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Creating a new channel
-Creating a channel is done in a similar fashion as editing a channel.
-First you set all the properties of the channel on channel ID 0 which
-will indicate that you intend to create a new channel.
-Use the appropriate function for the property you are setting:
-
-
-unsigned int ts3server_setChannelVariableAsInt ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , int value )
-set the variable of a channel to a new value.
-Call ts3server_flushChannelVariable after having set all variables you need to change.
-
-Parameters:
-
-serverID – specifies the server the channel is located on
-channelID – specifies the channel on which to change the variable
-flag – specifies which variable to change. One of the values from the ChannelProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setChannelVariableAsUInt64 ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , uint64 value )
-set a channel variable
-Call ts3server_flushChannelVariable after having set all variables you need to change.
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the id of the channel to set the variable for
-flag – specifies which variable to set. One of the values from the ChannelProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setChannelVariableAsString ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , const char * value )
-Call ts3server_flushChannelVariable after having set all variables you need to change.
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the id of the channel to set the variable for
-flag – specifies which variable to set. One of the values from the ChannelProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Actually create the channel
-To actually create the channel you will then call
-
-
-unsigned int ts3server_flushChannelCreation ( uint64 serverID , uint64 channelParentID , uint64 * result )
-After setting the channel properties on a new channel, call this function to publish the channel to clients.
-
-Parameters:
-
-serverID – the server on which to create the channel
-channelParentID – the id of the parent channel for the new channel
-result – address of a variable to receive the channel id of the newly created channel
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-Example
-Example code to create a channel:
- 1 #define CHECK_ERROR(x) if ((error = x) != ERROR_ok) { goto on_error; }
- 2
- 3 int createChannel ( uint64 serverID , uint64 parentChannelID , const char * name , const char * topic ,
- 4 const char * description , const char * password , int codec , int codecQuality ,
- 5 int maxClients , int familyMaxClients , int order , int perm , int semiperm ,
- 6 int default ) {
- 7 unsigned int error ;
- 8 uint64 newChannelID ;
- 9
-10 /* Set channel data, pass 0 as channel ID */
-11 CHECK_ERROR ( ts3server_setChannelVariableAsString ( serverID , 0 , CHANNEL_NAME , name ));
-12 CHECK_ERROR ( ts3server_setChannelVariableAsString ( serverID , 0 , CHANNEL_TOPIC , topic ));
-13 CHECK_ERROR ( ts3server_setChannelVariableAsString ( serverID , 0 , CHANNEL_DESCRIPTION , description ));
-14 CHECK_ERROR ( ts3server_setChannelVariableAsString ( serverID , 0 , CHANNEL_PASSWORD , password ));
-15 CHECK_ERROR ( ts3server_setChannelVariableAsInt ( serverID , 0 , CHANNEL_CODEC , codec ));
-16 CHECK_ERROR ( ts3server_setChannelVariableAsInt ( serverID , 0 , CHANNEL_CODEC_QUALITY , codecQuality ));
-17 CHECK_ERROR ( ts3server_setChannelVariableAsInt ( serverID , 0 , CHANNEL_MAXCLIENTS , maxClients ));
-18 CHECK_ERROR ( ts3server_setChannelVariableAsInt ( serverID , 0 , CHANNEL_MAXFAMILYCLIENTS , familyMaxClients ));
-19 CHECK_ERROR ( ts3server_setChannelVariableAsInt ( serverID , 0 , CHANNEL_ORDER , order ));
-20 CHECK_ERROR ( ts3server_setChannelVariableAsInt ( serverID , 0 , CHANNEL_FLAG_PERMANENT , perm ));
-21 CHECK_ERROR ( ts3server_setChannelVariableAsInt ( serverID , 0 , CHANNEL_FLAG_SEMI_PERMANENT , semiperm ));
-22 CHECK_ERROR ( ts3server_setChannelVariableAsInt ( serverID , 0 , CHANNEL_FLAG_DEFAULT , default ));
-23
-24 /* Flush changes to server */
-25 CHECK_ERROR ( ts3server_flushChannelCreation ( serverID , parentChannelID , & newChannelID ));
-26
-27 printf ( "Created new channel with ID: %u \n " , newChannelID );
-28 return 0 ; /* Success */
-29
-30 on_error :
-31 printf ( "Error creating channel: %d \n " , error );
-32 return 1 ; /* Failure */
-33 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/channel-delete.html b/docs/teamspeak-sdk-3.5.2/doc/server/channel-delete.html
deleted file mode 100644
index b7af04b..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/channel-delete.html
+++ /dev/null
@@ -1,195 +0,0 @@
-
-
-
-
-
-
-
-
-
Deleting channels — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Deleting channels
-A channel can be deleted by the server by calling
-
-
-unsigned int ts3server_channelDelete ( uint64 serverID , uint64 channelID , int force )
-delete a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the id of the channel to delete
-force – boolean flag, 1 = delete even if there are clients or sub channels in the channel. 0 = fail if there are sub channels or clients in the channel or sub channels.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
After successfully deleting a channel, the ServerLibFuntions.onChannelDeleted() callback
-is called for every deleted channel.
-
-When specifying the force parameter as 1, all clients in this channel and all the sub channels of this
-channel will be kicked out of the channel first. The server will then go ahead and recursively delete all
-the sub channels and finally the channel specified.
-
-
Warning
-
The call will fail on the first channel that cannot be deleted. However some channels may have been deleted despite that.
-Use the ServerLibFunctions.onChannelDeleted() callback to know which have been deleted.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/channel-list.html b/docs/teamspeak-sdk-3.5.2/doc/server/channel-list.html
deleted file mode 100644
index 75273d7..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/channel-list.html
+++ /dev/null
@@ -1,237 +0,0 @@
-
-
-
-
-
-
-
-
-
List channels — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-List channels
-A list of all channels currently available on the specified virtual
-server can be queried with
-
-
-unsigned int ts3server_getChannelList ( uint64 serverID , uint64 * * result )
-list all channels on the server
-
-Parameters:
-
-serverID – the server to get the list of channels on
-result – address of a variable to receive a zero terminted array of channel ids. Like {4, 65, 23, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To query the current channel of a client use
-
-
-unsigned int ts3server_getChannelOfClient ( uint64 serverID , anyID clientID , uint64 * result )
-get the id of the clients current channel
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – the client to get the channel of
-result – address of a variable to receive the channel id
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-Get the parent channel of a given channel with
-
-
-unsigned int ts3server_getParentChannelOfChannel ( uint64 serverID , uint64 channelID , uint64 * result )
-get the parent channel of a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the channel of which to get the parent channel
-result – address of a variable to receive the parent channel id
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Example
-Example to print a list of all channels on a virtual server:
-1 uint64 * channels ;
-2
-3 if ( ts3server_getChannelList ( serverID , & channels ) == ERROR_ok ) {
-4 for ( int i = 0 ; channels [ i ] != NULL ; i ++ ) {
-5 printf ( "Channel ID: %u \n " , channels [ i ]);
-6 }
-7 ts3server_freeMemory ( channels );
-8 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/channel-move.html b/docs/teamspeak-sdk-3.5.2/doc/server/channel-move.html
deleted file mode 100644
index 4ef751d..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/channel-move.html
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
-
-
-
-
-
Moving channels — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Moving channels
-To move a channel to a new parent channel, making it appear in a
-different location in the channel structure, call this function:
-
-
-unsigned int ts3server_channelMove ( uint64 serverID , uint64 channelID , uint64 newChannelParentID , uint64 newOrder )
-move a channel within the tree, make it a sub channel or root channel.
-
-Parameters:
-
-serverID – the server on which to move a channel
-channelID – the channel to move
-newChannelParentID – id of the parent channel to move this channel into. Set to 0 to make this channel a root channel.
-newOrder – id of the channel below which this channel is to be sorted.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Note
-
After the channel has been moved, the event onChannelEdited() callback is called.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/channels.html b/docs/teamspeak-sdk-3.5.2/doc/server/channels.html
deleted file mode 100644
index ba1507d..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/channels.html
+++ /dev/null
@@ -1,199 +0,0 @@
-
-
-
-
-
-
-
-
-
Managing channels — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Managing channels
-
-
-
-
-
-
-
-
-
-Managing channels
-The Server Lib offers a subset of client-side functionality to create,
-move and delete channels directly on the server.
-It is also possible to query and modify channel properties from the server side.
-This chapter will describe how to do all these things.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/client-list.html b/docs/teamspeak-sdk-3.5.2/doc/server/client-list.html
deleted file mode 100644
index acaf907..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/client-list.html
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-
-
-
-
-
-
-
List clients — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-List clients
-A list of all clients currently online on the specified virtual server
-can be queried with
-
-
-unsigned int ts3server_getClientList ( uint64 serverID , anyID * * result )
-get a list of all clients connected to a server
-
-Parameters:
-
-serverID – specifies the server on which to get the list of clients
-result – address of a variable to receive the zero terminated list of clients, like {1, 2, 50, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To get a list of all clients currently in the specified channel
-
-
-unsigned int ts3server_getChannelClientList ( uint64 serverID , uint64 channelID , anyID * * result )
-get list of clients in a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the channel of which to get the list of clients
-result – address of a variable to receive a zero terminated array of client ids in the channel. Like {3, 5, 39, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/clients.html b/docs/teamspeak-sdk-3.5.2/doc/server/clients.html
deleted file mode 100644
index c9296c1..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/clients.html
+++ /dev/null
@@ -1,489 +0,0 @@
-
-
-
-
-
-
-
-
-
Managing clients — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Managing clients
-
-
-
-
-
-
-
-
-
-Managing clients
-While in a traditional TeamSpeak setup, clients are moving themselves by joining
-channels, and clients can request to move other clients, the server is also able
-to perform these actions using the functions described in this chapter.
-
-List clients
-A list of all clients currently online on the specified virtual server
-can be queried with
-
-
-unsigned int ts3server_getClientList ( uint64 serverID , anyID * * result )
-get a list of all clients connected to a server
-
-Parameters:
-
-serverID – specifies the server on which to get the list of clients
-result – address of a variable to receive the zero terminated list of clients, like {1, 2, 50, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To get a list of all clients currently in the specified channel
-
-
-unsigned int ts3server_getChannelClientList ( uint64 serverID , uint64 channelID , anyID * * result )
-get list of clients in a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the channel of which to get the list of clients
-result – address of a variable to receive a zero terminated array of client ids in the channel. Like {3, 5, 39, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Moving clients
-Clients can be moved server-side to another channel, in addition to the
-client-side functionality offered by the Client Lib. To move one or
-multiple clients to a new channel, call:
-
-
-unsigned int ts3server_clientMove ( uint64 serverID , uint64 newChannelID , const anyID * clientIDArray )
-Move one or more clients to a different channel.
-
-Parameters:
-
-serverID – specifies the server the client is connected to
-newChannelID – the id of the channel to move the client(s) to
-clientIDArray – zero terminated array of client ids to move. Like {4, 9, …, 0}
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Example
-Example to move a single client to another channel:
- 1 anyID clientIDArray [ 2 ]; /* One client plus terminating zero as end-marker */
- 2 uint64 newChannelID ;
- 3 unsigned int error ;
- 4
- 5 clientIDArray [ 0 ] = clientID ; /* Client to move */
- 6 clientIDArray [ 1 ] = 0 ; /* End marker */
- 7
- 8 if (( error = ts3server_clientMove ( serverID , newChannelID , channelIDArray )) != ERROR_ok ) {
- 9 /* Handle error */
-10 return ;
-11 }
-12
-13 /* Client moved successfully */
-
-
-
-
-
-Kicking Clients
-In additions to the client side feature, the server can also kick clients from the server
-itself using
-
-
-unsigned int ts3server_clientsKickFromServer ( uint64 serverID , const anyID * clientIDArray , const char * kickReason , int failOnClientError )
-kick one or more clients from the server, terminating their connection.
-
-Parameters:
-
-serverID – the server the client(s) are connected to
-clientIDArray – zero terminated array of client ids to kick. Like {4, 3, 12, …, 0}
-kickReason – utf8 encoded c string describing the reason for the kick. Pass an empty string if unused.
-failOnClientError – boolean flag. If 1 the function will fail if clients to be kicked are not on the server.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/disable-commands.html b/docs/teamspeak-sdk-3.5.2/doc/server/disable-commands.html
deleted file mode 100644
index 6be966e..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/disable-commands.html
+++ /dev/null
@@ -1,284 +0,0 @@
-
-
-
-
-
-
-
-
-
Disabling protocol commands — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Disabling protocol commands
-
-
-
-
-
-
-
-
-
-Disabling protocol commands
-SDK users can opt to disable specific protocol commands in a TeamSpeak
-server instance, so clients are unable to use these commands. The
-server can still issue disabled commands by calling the appropriate
-Server Lib functions.
-Commands that can be disabled are described in the ClientCommand enum.
-
-
Note
-
By default all commands are allowed, unless explicitly disabled.
-
-To disable protocol commands for all clients call
-
-
-unsigned int ts3server_disableClientCommand ( int clientCommand )
-Prevents clients from performing certain actions. SDK only.
-Use this to disable certain features for clients, e.g. deleting channels or moving clients so that the server has authority over these matters and is the only entity who can do so. To disable multiple commands, call this function once for each command you would like to disable for clients.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To disable multiple commands, call this function once per command to disable.
-
-
Warning
-
There is no way to enable commands again once disabled.
-
To enable all disabled commands again you will have to destroy
-and initialize the server lib again.
-
-
-Example
-For example, an SDK user may decide that clients should not be able to
-create channels on a TeamSpeak server and implement this action only on the
-Server side.
-Any client call to ts3client_flushChannelCreation() will be rejected by the server.
- 1 #include <teamspeak/clientlib.h>
- 2 #include <teamspeak/serverlib.h>
- 3 #include <teamspeak/public_definitions.h>
- 4 #include <teamspeak/public_errors.h>
- 5 #include <stdio.h> // printf
- 6 #include <string.h> // memset
- 7
- 8 void onConnect ( uint64 schid , int status , unsigned int error ) {
- 9 if ( status == STATUS_CONNECTION_ESTABLISHING ) {
-10 printf ( "Creating channel... \n " );
-11 unsigned int err ;
-12 if (( err = ts3client_setChannelVariableAsString ( schid , 0 , CHANNEL_NAME , "TestChannel" )) != ERROR_ok ) {
-13 printf ( "Failed to set channel variable: 0x%04X \n " , err );
-14 return ;
-15 }
-16 if (( err = ts3client_setChannelVariableAsInt ( schid , 0 , CHANNEL_FLAG_PERMANENT , 1 )) != ERROR_ok ) {
-17 printf ( "Failed to set channel variable: 0x%04X \n " , err );
-18 return ;
-19 }
-20 if (( err = ts3client_flushChannelCreation ( schid , 0 , "sdk-channel-create" )) != ERROR_ok ) {
-21 printf ( "Failed to set channel variable: 0x%04X \n " , err );
-22 return ;
-23 }
-24 }
-25 }
-26
-27 void onError ( uint64 schid , const char * message , unsigned int error , const char * returnCode , const char * extra ) {
-28 printf ( "Connection %llu has error 0x%04X" , schid , error );
-29 if ( returnCode ) {
-30 printf ( " for call %s" , returnCode );
-31 }
-32 printf ( " \n " );
-33 }
-34
-35 void onChannelCreated ( uint64 schid , uint64 channelId , uint64 parentId , anyID invokerId , const char * invokerName , const char * invokerUid ) {
-36 printf ( "Channel %llu created by %s as a child of %llu on connection %llu \n " , channelId , invokerName , parentId , schid );
-37 }
-38
-39 int main () {
-40 struct ServerLibFunctions sf ;
-41 memset ( & sf , 0 , sizeof sf );
-42 struct ClientUIFunctions cf ;
-43 memset ( & cf , 0 , sizeof cf );
-44 cf . onConnectStatusChangeEvent = onConnect ;
-45 cf . onServerErrorEvent = onError ;
-46 cf . onNewChannelCreatedEvent = onChannelCreated ;
-47 unsigned int err = ts3client_initClientLib ( & cf , NULL , LogType_NONE , "" , "" );
-48 if ( err != ERROR_ok ) {
-49 printf ( "Failed to init lib: 0x%04X \n " , err );
-50 return 1 ;
-51 }
-52 if (( err = ts3server_initServerLib ( & sf , LogType_NONE , "" )) != ERROR_ok ) {
-53 printf ( "Failed to init server lib: 0x%04X \n " , err );
-54 return 2 ;
-55 }
-56 ts3server_disableClientCommand ( CLIENT_COMMAND_flushChannelCreation );
-57 uint64 serverId = 0 ;
-58 if (( err = ts3server_createVirtualServer ( 9987 , "127.0.0.1" , "TestServer" , NULL , 4 , & serverId )) != ERROR_ok ) {
-59 printf ( "Failed to create server: 0x%04X \n " , err );
-60 return 2 ;
-61 }
-62
-63 uint64 clientTab = 0 ;
-64 ts3client_spawnNewServerConnectionHandler ( 0 , & clientTab );
-65
-66 char * ident = NULL ;
-67 ts3client_createIdentity ( & ident );
-68 if (( err = ts3client_startConnection ( clientTab , ident , "127.0.0.1" , 9987 , "TestUser" , NULL , "" , "" )) != ERROR_ok ) {
-69 printf ( "Failed to connect: 0x%04X \n " , err );
-70 return 1 ;
-71 }
-72
-73 printf ( "Press Enter to terminate \n " );
-74 getchar ();
-75
-76 printf ( "Terminating... \n " );
-77 ts3client_stopConnection ( clientTab , "bye" );
-78 ts3server_stopVirtualServer ( serverId );
-79 ts3client_destroyServerConnectionHandler ( clientTab );
-80 ts3client_destroyClientLib ();
-81 ts3server_destroyServerLib ();
-82
-83 return 0 ;
-84 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/encryption.html b/docs/teamspeak-sdk-3.5.2/doc/server/encryption.html
deleted file mode 100644
index 4162606..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/encryption.html
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
-
-
-
-
-
-
-
Custom encryption — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Custom encryption
-
-
-
-
-
-
-
-
-
-Custom encryption
-As an optional feature, the TeamSpeak 3 SDK allows users to implement
-custom encryption and decryption for all network traffic. Custom
-encryption replaces the default AES encryption implemented by the
-TeamSpeak 3 SDK. A possible reason to apply own encryption might be to
-make ones TeamSpeak 3 client/server incompatible to other SDK
-implementations.
-
-
Important
-
Custom encryption must be implemented the same way in both the client
-and server.
-
-
-
Note
-
If you do not want to use this feature, just don’t implement the two
-encryption callbacks.
-
-
-Encryption
-To encrypt outgoing data, implement the callback
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-void ( * onCustomPacketEncryptEvent ) ( char * * dataToSend , unsigned int * sizeOfData )
-called when a packet needs to be encrypted to be sent over the wire.
-Used to implement custom encryption of server communication. This needs to be implemented the same in the client and server, otherwise clients cannot communicate with the server. Only implement this callback when you need custom encryption.
-
-Param dataToSend:
-pointer to an array of bytes that need to be encrypted. Must not be freed. Encrypt the data in place in this array if the size of your encrypted data is smaller than indicated in the sizeOfData parameter. Otherwise allocate your own memory and replace the pointer to point to your own allocated memory. In this case you need to take care of freeing the memory.
-
-Param sizeOfData:
-size in byte of the dataToSend array.
-
-
-
-
-
-
-
-
-
Important
-
The original memory pointed to by dataToSend must not be freed regardless
-of whether or not you replace the pointer!
-
-
-
-Decryption
-To decrypt incoming data, implement the callback
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-void ( * onCustomPacketDecryptEvent ) ( char * * dataReceived , unsigned int * dataReceivedSize )
-called when a packet needs to be decrypted after it has been received.
-Used to implement custom encryption of server communication. This needs to be implemented the same in the client and server, otherwise clients cannot communicate with the server. Only implement this callback when you need custom encryption.
-
-Param dataReceived:
-pointer to an array of bytes that need to be decrypted. Must not be freed. Decrypt the data in place in this array if the size of your decrypted data is smaller than indicated by the dataReceivedSize parameter. Otherwise allocate your own memory and replace the pointer to point to your own allocated memory. In this case you need to take care of freeing the memory
-
-Param dataReceivedSize:
-size in byte of the dataReceived array.
-
-
-
-
-
-
-
-
-
Important
-
The original memory pointed to by dataReceived must not be freed regardless
-of whether or not you replace the pointer!
-
-
-
-Example
-Example code implementing a very simple XOR custom encryption and
-decryption (also see the SDK examples):
- 1 void onCustomPacketEncryptEvent ( char ** dataToSend , unsigned int * sizeOfData ) {
- 2 unsigned int i ;
- 3 for ( i = 0 ; i < * sizeOfData ; i ++ ) {
- 4 ( * dataToSend )[ i ] ^= CUSTOM_CRYPT_KEY ;
- 5 }
- 6 }
- 7
- 8 void onCustomPacketDecryptEvent ( char ** dataReceived , unsigned int * dataReceivedSize ) {
- 9 unsigned int i ;
-10 for ( i = 0 ; i < * dataReceivedSize ; i ++ ) {
-11 ( * dataReceived )[ i ] ^= CUSTOM_CRYPT_KEY ;
-12 }
-13 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/faq.html b/docs/teamspeak-sdk-3.5.2/doc/server/faq.html
deleted file mode 100644
index 75bde33..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/faq.html
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
-
-
-
-
-
-
-
FAQ — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-FAQ
-
-Unable to start multiple virtual servers / processes
-You don’t have a valid license key in the correct location. The file
-licensekey.dat needs to be placed in the same directory as the
-server executable.
-Without a license key or an expired / invalid one the following restrictions are
-in place:
-
-Please contact sales@ teamspeakusa. com for license key inquiries or to
-obtain a valid license.
-
-
-
-I get “Accounting | | sid=1 is running initializing shutdown” in the log
-This error happens because you are running more than one virtual server
-with the same server keypair.
-When creating a new virtual server, a keypair must be passed to
-ts3server_createVirtualServer() . It is important to store the used
-keypair and reuse it when restarting this virtual server later instead
-of creating a new key. See the server sample within the SDK for an example.
-However, this problem can happen if the virtual server is started with
-a stored keypair, then the entire folder including the stored keypair is
-copied to another PC and also started there with the same key. In this
-case the licensing server will notice the same key is used more than
-once and shutdown the most recently started server which tried to steal
-the identity of an already running server.
-The fix, in the server sample case, would be to delete the keypair_*.txt
-files from the copied directory before starting the second server, that
-way a new key would be generated and the licensing server would see the
-two servers as two valid different entities. The accounting server would
-now only complain if the number of simultaneously running servers
-exceeds your number of slots.
-
-
Important
-
Each key pair should only be used for the same virtual server.
-It must not be re-used for multiple virtual servers.
-
However it is also important to not generate a new key pair
-every time you start the virtual server again.
-
-
-
-Implementing a name/password authentication
-Although TeamSpeak 3 offers an authentication system based on
-public/private keys, an often made request is to use an additional
-username / password mechanism to authenticate clients with the TeamSpeak 3
-server. Here we will suggest a possibility to implement this
-authentication on top of the existing public / private key mechanism.
-When connecting to the TeamSpeak 3 server, a client might make use of
-the CLIENT_META_DATA property and fill this with a username / password
-combination, to let the server validate this this data in the servers
-ServerLibFunctions.onClientConnected callback.
-This callback allows to set an error value to block this clients connection.
-The client-side code:
-// In the client, set CLIENT_META_DATA before connecting
-if ( ts3client_setClientSelfVariableAsString ( scHandlerID , CLIENT_META_DATA , "NAME#PASSWORD" ) != ERROR_ok ) {
- printf ( "Failed setting client meta data \n " );
- return ;
-}
-
-// Call ts3client_startConnection
-
-
-In the server implement the onClientConnected callback, which validates
-the name/password meta data and refuses the connection if not validated:
- 1 void onClientConnected ( uint64 serverID , anyID clientID , uint64 channelID , unsigned int * removeClientError ) {
- 2 // Query CLIENT_META_DATA
- 3 char * metaData ;
- 4 if ( ts3server_getClientVariableAsString ( serverID , clientID , CLIENT_META_DATA , & metaData ) != ERROR_ok ) {
- 5 printf ( "Failed querying client meta data \n " );
- 6 * removeClientError = ERROR_client_not_logged_in ; // Block client
- 7 return ;
- 8 }
- 9
-10 // Validate name/password
-11 if ( ! validateNamePassword ( metaData )) {
-12 * removeClientError = ERROR_client_not_logged_in ; // Block client
-13 }
-14 // Client is allowed to connect if removeClientError is not changed (defaults is ERROR_ok)
-15 ts3server_freeMemory ( metaData ); // Release previously allocated memory
-16 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/filetransfer.html b/docs/teamspeak-sdk-3.5.2/doc/server/filetransfer.html
deleted file mode 100644
index b16d656..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/filetransfer.html
+++ /dev/null
@@ -1,498 +0,0 @@
-
-
-
-
-
-
-
-
-
Filetransfer — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Filetransfer
-The TeamSpeak SDK includes the ability to support filetransfer, like the
-regular TeamSpeak server and client offer. The server can function as a
-file storage, which can be accessed by clients who can up- and download
-files. Files are stored on the filesystem where the server is running.
-
-Enable file transfer
-The availability of filetransfer in the TeamSpeak server can be
-controlled by the following function, which should be called right after
-ts3server_initServerLib() to initialize filetransfer.
-
-
-unsigned int ts3server_enableFileManager ( const char * filebase , const char * * ips , int port , uint64 downloadBandwidth , uint64 uploadBandwidth )
-Initialize the file transfer subsystem. Allows clients to store files on the machine the server is running on and download them.
-If you want to support file transfer functionality, then call this function after calling ts3server_initServerLib If you don’t call this function file transfer features will not be available. The server library will create the directories necessary for storing files as needed, however directories will not be cleaned up by the server library. Instead it is the responsibility of the application to clean up these directories when they’re no longer needed (e.g. after a virtual server was deleted)
-
-Parameters:
-
-filebase – path to where the server library will create necessary directories and store files uploaded by clients.
-ips – zero terminated array of IP addresses to listen on for file transfer connections. IPv4 and IPv6 addresses are supported, do NOT pass host names. If set to 0, it will be treated as if you passed { “0.0.0.0”, “::”, 0 }
-port – the TCP port to listen on for file transfer connections.
-downloadBandwidth – limit in bytes per second which is available for downloading files from the server. Speed across all transfers will be limited to this number. Specify BANDWIDTH_LIMIT_UNLIMITED for no limit.
-uploadBandwidth – limit in bytes per second which is available for uploading files to the server. Speed across all transfers will be limited to this number. Specify BANDWIDTH_LIMIT_UNLIMITED for no limit.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-The filebase directory will be created by the server lib. The individual
-files will be in a sub directory of the filebase called ‘virtualserver_x’
-where x is the id of the virtual server. Individual channel files will be
-in a directory ‘channel_y’ within their respective server directory
-where y is the channel id of the channel.
-
-
Note
-
These directories will automatically be created by the server if
-they do not exist. It is the responsibility of the application
-(not serverlib) to delete these directories when they are no
-longer needed.
-
-
-
-Callbacks
-The server lib notifies about ongoing file transfers by optionally
-calling a defined callback, which is called everytime a file upload
-or download has finished.
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-void ( * onFileTransferEvent ) ( const struct FileTransferCallbackExport * data )
-called whenever a file transfer is done
-
-Param data:
-pointer to a structure describing the file transfer that completed. See FileTransferCallbackExport for details.
-
-
-
-
-
-
-
-
-
-struct FileTransferCallbackExport
-
-
Public Members
-
-
-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 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.
-
-
-
-
-
-
-
-Rewriting the path on the server
-The SDK allows users to control where files are stored on the server as well
-as the file name the files have on the server side file system.
-The intended file name and path is already set in the parameters of this
-callback when it is called.
-
-
Note
-
This feature is optional. If you don’t need to rewrite file system paths
-or file names, simply do not implement this callback.
-
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-unsigned int ( * onTransformFilePath ) ( uint64 serverID , anyID invokerClientID , const struct TransformFilePathExport * original , struct TransformFilePathExportReturns * result )
-Allows to rewrite the file path and name of the file to be transfered. Called when a transfer starts.
-If you don’t need to control server side file name and path then don’t implement this callback. The parameters are already filled with the default values intended by the client starting the transfer. These can be changed as required. When the callback exits with ERROR_ok the transfer is started with the values present in the result struct.
See the SDK documentation for further details.
-
-
-Param serverID:
-the server for which the callback was called
-
-Param invokerClientID:
-the client which started the file transfer
-
-Param original:
-the original file path and name desired by the client
-
-Param result:
-the values from this struct will be used by the server when the callback exits. Already filled with a copy of original. Change the values in this struct as needed.
-
-Return:
-a value from the Ts3ErrorType enum. Return ERROR_ok to start the transfer with the values in the result struct. When returning an error code the file transfer is not started.
-
-
-
-
-
-
-
-
-
-
-Permissions
-The callbacks should return ERROR_ok to allow the action or
-ERROR_permission to deny it.
-
-
Important
-
If a callback is not implemented, the action will be allowed by default.
-
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-unsigned int ( * permFileTransferInitUpload ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftinitupload * params )
-called when a file is to be uploaded. Allows you to deny a client from uploading files, files above a certain size, etc.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that attempts to upload the file.
-
-Param params:
-describes the file to be uploaded.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferInitDownload ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftinitdownload * params )
-called when a file is to be downloaded. Allows you to deny a client from downloading files, files above a certain size, etc.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that attempts to download the file
-
-Param params:
-describes the file to be downloaded.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferGetFileInfo ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftgetfileinfo * params )
-called when a client requests file information using ts3client_requestFileInfo . Allows to deny clients from getting file information.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to get information of the file.
-
-Param params:
-describes the file that information is requested for.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferGetFileList ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftgetfilelist * params )
-called when a client requests a directory listing using ts3client_requestFileList . Allows to deny listing files and directories in channels / directories.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferDeleteFile ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftdeletefile * params )
-called when a client attempts to delete one or more files using ts3client_requestDeleteFile . Allows denying clients deleting files.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to delete the file
-
-Param params:
-describes the file to be deleted
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferCreateDirectory ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftcreatedir * params )
-called when a directory is to be created using ts3client_requestCreateDirectory . Allows to deny creating certain directories.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to create the directory
-
-Param params:
-describes the directory to create.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferRenameFile ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftrenamefile * params )
-called when a file is to be renamed or moved using ts3client_requestRenameFile . Allows to deny moving files or even renaming files.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to rename or move the file.
-
-Param params:
-describes the file to be renamed or moved, and where the file should be moved to if it’s being moved.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/info-bandwidth.html b/docs/teamspeak-sdk-3.5.2/doc/server/info-bandwidth.html
deleted file mode 100644
index 6184b52..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/info-bandwidth.html
+++ /dev/null
@@ -1,216 +0,0 @@
-
-
-
-
-
-
-
-
-
Bandwidth and Traffic — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/info-channel.html b/docs/teamspeak-sdk-3.5.2/doc/server/info-channel.html
deleted file mode 100644
index b72d13b..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/info-channel.html
+++ /dev/null
@@ -1,348 +0,0 @@
-
-
-
-
-
-
-
-
-
Channel information — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/info-client.html b/docs/teamspeak-sdk-3.5.2/doc/server/info-client.html
deleted file mode 100644
index 5e494f0..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/info-client.html
+++ /dev/null
@@ -1,373 +0,0 @@
-
-
-
-
-
-
-
-
-
Client information — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/info-server.html b/docs/teamspeak-sdk-3.5.2/doc/server/info-server.html
deleted file mode 100644
index 650dd1e..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/info-server.html
+++ /dev/null
@@ -1,334 +0,0 @@
-
-
-
-
-
-
-
-
-
Server information — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/info.html b/docs/teamspeak-sdk-3.5.2/doc/server/info.html
deleted file mode 100644
index 33fae76..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/info.html
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
-
-
-
-
-
-
-
Retrieve and store information — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Retrieve and store information
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/intro.html b/docs/teamspeak-sdk-3.5.2/doc/server/intro.html
deleted file mode 100644
index c18aeb3..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/intro.html
+++ /dev/null
@@ -1,245 +0,0 @@
-
-
-
-
-
-
-
-
-
Introduction — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Introduction
-This document describes server-side programming with the TeamSpeak 3
-SDK. The SDK user will be able to create a custom TeamSpeak 3 server
-binary using the provided server API and library.
-
-System requirements
-For developing third-party servers with the TeamSpeak 3 Server Lib the
-following system requirements apply:
-
-
-
Important
-
The calling convention used in the functions exported by the shared
-TeamSpeak 3 SDK libaries is cdecl . You must not use another calling
-convention, like stdcall on Windows, when declaring function pointers
-to the TeamSpeak 3 SDK libraries. Otherwise stack corruption at
-runtime may occur.
-
-
-
-Usage
-All the required files are located in the bin directory of the
-TeamSpeak 3 SDK distribution.
-
-
Note
-
The license file licensekey.dat needs to be located in the same
-folder as your server executable.
-
-If no license key is present, the server will run with the following
-limitations:
-
-One server process per machine
-One virtual server per process
-Limited to 32 slots maximum
-
-For more detailed information about licensing of TeamSpeak 3 servers or
-to obtain a license, please contact sales@ teamspeakusa. com .
-
-
-Calling Server lib functions
-Server library functions follow a common pattern. They always return a value
-from the Ts3ErrorType enum, which indicates success (ERROR_ok ) or an error.
-If there is a result variable, it is always the last variable in the
-parameter list.
-ERROR ts3server_FUNCNAME ( arg1 , arg2 , ..., & result );
-
-
-Result variables should only be accessed if the function returned
-ERROR_ok . Otherwise the state of the result variable is undefined.
-In those cases where the result variable is a basic type (int, float
-etc.), the memory for the result variable has to be declared by the
-caller. Simply pass the address of the variable to the Server Lib
-function ts3server_freeMemory() .
-int result ;
-
-if ( ts3server_XXX ( arg1 , arg2 , ..., & result ) == ERROR_ok ) {
- /* Use result variable */
-} else {
- /* Handle error, result variable is undefined */
-}
-
-
-If the result variable is a pointer type (C strings, arrays etc.), the
-memory is allocated by the Server Lib function. In this case, the caller
-has to release the allocated memory later by using ts3server_freeMemory() except when stated otherwise.
-It is important to only access and release the memory if the function
-returned ERROR_ok . Should the function return an error, the result variable
-is uninitialized, so freeing or accessing it could crash the application.
-char * result ;
-
-if ( ts3server_XXX ( arg1 , arg2 , ..., & result ) == ERROR_ok ) {
- /* Use result variable */
- ts3server_freeMemory ( result ); /* Release result variable */
-} else {
- /* Handle error, result variable is undefined. Do not access or release it. */
-}
-
-
-
-
Note
-
Server Lib functions are thread-safe . It is possible to access the
-Server Lib from several threads at the same time.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/list-items.html b/docs/teamspeak-sdk-3.5.2/doc/server/list-items.html
deleted file mode 100644
index f489d1e..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/list-items.html
+++ /dev/null
@@ -1,318 +0,0 @@
-
-
-
-
-
-
-
-
-
List available clients, channels, servers — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- List available clients, channels, servers
-
-
-
-
-
-
-
-
-
-List available clients, channels, servers
-
-List servers
-A list of all virtual servers can be queried with
-
-
-unsigned int ts3server_getVirtualServerList ( uint64 * * result )
-get a list of virtual servers in this instance
-
-Parameters:
-
-result – address of a variable to receive a zero terminated array of virtual server ids. Like {4, 8, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-List clients
-A list of all clients currently online on the specified virtual server
-can be queried with
-
-
-unsigned int ts3server_getClientList ( uint64 serverID , anyID * * result )
-get a list of all clients connected to a server
-
-Parameters:
-
-serverID – specifies the server on which to get the list of clients
-result – address of a variable to receive the zero terminated list of clients, like {1, 2, 50, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To get a list of all clients currently in the specified channel
-
-
-unsigned int ts3server_getChannelClientList ( uint64 serverID , uint64 channelID , anyID * * result )
-get list of clients in a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the channel of which to get the list of clients
-result – address of a variable to receive a zero terminated array of client ids in the channel. Like {3, 5, 39, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-List channels
-A list of all channels currently available on the specified virtual
-server can be queried with
-
-
-unsigned int ts3server_getChannelList ( uint64 serverID , uint64 * * result )
-list all channels on the server
-
-Parameters:
-
-serverID – the server to get the list of channels on
-result – address of a variable to receive a zero terminted array of channel ids. Like {4, 65, 23, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-To query the current channel of a client use
-
-
-unsigned int ts3server_getChannelOfClient ( uint64 serverID , anyID clientID , uint64 * result )
-get the id of the clients current channel
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – the client to get the channel of
-result – address of a variable to receive the channel id
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-Get the parent channel of a given channel with
-
-
-unsigned int ts3server_getParentChannelOfChannel ( uint64 serverID , uint64 channelID , uint64 * result )
-get the parent channel of a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the channel of which to get the parent channel
-result – address of a variable to receive the parent channel id
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-Example
-Example to print a list of all channels on a virtual server:
-1 uint64 * channels ;
-2
-3 if ( ts3server_getChannelList ( serverID , & channels ) == ERROR_ok ) {
-4 for ( int i = 0 ; channels [ i ] != NULL ; i ++ ) {
-5 printf ( "Channel ID: %u \n " , channels [ i ]);
-6 }
-7 ts3server_freeMemory ( channels );
-8 }
-
-
-
-
-
-Examples
-Example to print all clients who are member of the channel with ID 123:
-1 uint64 channelID = 123 ; /* ID in our example */
-2 anyID * clients ;
-3
-4 if ( ts3server_getChannelClientList ( serverID , channelID , & clients ) == ERROR_ok ) {
-5 for ( int i = 0 ; clients [ i ] != NULL ; i ++ ) {
-6 printf ( "Client ID: %u \n " , clients [ i ]);
-7 }
-8 ts3server_freeMemory ( clients );
-9 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/passwords.html b/docs/teamspeak-sdk-3.5.2/doc/server/passwords.html
deleted file mode 100644
index 680ed81..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/passwords.html
+++ /dev/null
@@ -1,286 +0,0 @@
-
-
-
-
-
-
-
-
-
Custom passwords — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Custom passwords
-
-
-
-
-
-
-
-
-
-Custom passwords
-The TeamSpeak SDK optionally allows you to do custom password handling.
-This allows to check TeamSpeak server and channel passwords against an
-outside datasources, like LDAP or other databases.
-To implement custom passwords, both server and client need to add custom
-callbacks, which will be spontaneously called whenever a password check
-is done in TeamSpeak. The SDK developer can implement own checks to
-validate the password instead of using the TeamSpeak built-in mechanism.
-
-Password Encryption
-Both Server and Client Lib can implement the following callback to
-encrypt a user password. This function is called in the Server Lib when
-a virtual server or channel password is set.
-This can be used to hash the password in the same way it is hashed in
-the outside data store. Or just copy the password to send the clear text
-to the server.
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-void ( * onClientPasswordEncrypt ) ( uint64 serverID , const char * plaintext , char * encryptedText , int encryptedTextByteSize )
-called when a server or channel password is set.
-Used to hash the password or encrypt it for check with outside sources.
-
-Param serverID:
-the server for which the callback was called
-
-Param plaintext:
-the plaintext password to be encrypted.
-
-Param encryptedText:
-the encrypted/hashed password. Fill with your encrypted password. Must be an utf8 encoded c string not larger than specified by encryptedTextByteSize
-
-Param encryptedTextByteSize:
-the maximum number of bytes you may write to encryptedText
-
-
-
-
-
-
-
-
-
-Password validation
-
-Server password
-Implement this callback in the server to check the password provided
-when a client connects to this server against an outside database. The
-callback is called whenever a password check is performed, even if no
-password is set.
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-unsigned int ( * onCustomServerPasswordCheck ) ( uint64 serverID , const struct ClientMiniExport * client , const char * password )
-called when a client connects to the server. Used to verify the server password when using custom password encryption.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that connects to the server
-
-Param password:
-utf8 encoded c string containing the password provided by the client.
-
-Return:
-a value from the Ts3ErrorType enum. ERROR_ok if the password is valid, ERROR_server_invalid_password if the password is not valid, ERROR_parameter_invalid if the password is in invalid format.
-
-
-
-
-
-
-
-
-
-Channel password
-Implement this callback in the server to check the password provided
-when a client enters a password-protected channel against an outside
-database. The callback is called whenever a password check is performed,
-even if no password is set.
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-unsigned int ( * onCustomChannelPasswordCheck ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID , const char * password )
-called when a client attempts to enter a password protected channel. Used to verify the channel password when using custom password encryption.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that enters a channel
-
-Param channelID:
-the channel the client attempts to join
-
-Param password:
-utf8 encoded c string containing the password provided by the client.
-
-Return:
-a value from the Ts3ErrorType enum. ERROR_ok if the password is valid, ERROR_server_invalid_password if the password is not valid, ERROR_parameter_invalid if the password is in invalid format.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/permissions-filetransfer.html b/docs/teamspeak-sdk-3.5.2/doc/server/permissions-filetransfer.html
deleted file mode 100644
index 1fd6143..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/permissions-filetransfer.html
+++ /dev/null
@@ -1,296 +0,0 @@
-
-
-
-
-
-
-
-
-
<no title> — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-unsigned int ( * permFileTransferInitUpload ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftinitupload * params )
-called when a file is to be uploaded. Allows you to deny a client from uploading files, files above a certain size, etc.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that attempts to upload the file.
-
-Param params:
-describes the file to be uploaded.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferInitDownload ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftinitdownload * params )
-called when a file is to be downloaded. Allows you to deny a client from downloading files, files above a certain size, etc.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that attempts to download the file
-
-Param params:
-describes the file to be downloaded.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferGetFileInfo ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftgetfileinfo * params )
-called when a client requests file information using ts3client_requestFileInfo . Allows to deny clients from getting file information.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to get information of the file.
-
-Param params:
-describes the file that information is requested for.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferGetFileList ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftgetfilelist * params )
-called when a client requests a directory listing using ts3client_requestFileList . Allows to deny listing files and directories in channels / directories.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferDeleteFile ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftdeletefile * params )
-called when a client attempts to delete one or more files using ts3client_requestDeleteFile . Allows denying clients deleting files.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to delete the file
-
-Param params:
-describes the file to be deleted
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferCreateDirectory ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftcreatedir * params )
-called when a directory is to be created using ts3client_requestCreateDirectory . Allows to deny creating certain directories.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to create the directory
-
-Param params:
-describes the directory to create.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferRenameFile ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftrenamefile * params )
-called when a file is to be renamed or moved using ts3client_requestRenameFile . Allows to deny moving files or even renaming files.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to rename or move the file.
-
-Param params:
-describes the file to be renamed or moved, and where the file should be moved to if it’s being moved.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/permissions.html b/docs/teamspeak-sdk-3.5.2/doc/server/permissions.html
deleted file mode 100644
index 47e0e0a..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/permissions.html
+++ /dev/null
@@ -1,685 +0,0 @@
-
-
-
-
-
-
-
-
-
Permission checks — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Permission checks
-
-
-
-
-
-
-
-
-
-Permission checks
-The TeamSpeak SDK offers an optional custom permission system, allowing
-SDK users to gain more control over allowed user actions on a
-TeamSpeak server. The custom permissions system is implemented in the
-Server Lib by adding callback functions which will be called, if
-implemented, when a certain user action occurs. In this callback the
-developer can allow or deny the action.
-The callbacks should return ERROR_ok to allow the action or
-ERROR_permission to deny it.
-
-
Important
-
If a callback is not implemented, the action will be allowed by default.
-
-
-Available callbacks
-
-Standard Permission callbacks
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-unsigned int ( * permClientCanConnect ) ( uint64 serverID , const struct ClientMiniExport * client )
-called when a client is about to connect. Can be used to deny clients from connecting.
-Return ERROR_ok to allow the client on the server, or ERROR_permissions to reject the client.
-
-Param serverID:
-the server the client wants to connect to
-
-Param client:
-pointer to a ClientMiniExport describing the client trying to connect
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientCanGetChannelDescription ) ( uint64 serverID , const struct ClientMiniExport * client )
-called when a client requests channel description of a channel using ts3client_requestChannelDescription . Can be used to deny access to channel descriptions.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the request was received
-
-Param client:
-pointer to a ClientMiniExport describing the client requesting the channel description
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientUpdate ) ( uint64 serverID , anyID clientID , const struct VariablesExport * variables )
-called when a client wants to update a clients variables. Used to deny or allow updating certain client variables
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param clientID:
-the client for which the variables are attempted to be changed.
-
-Param variables:
-pointer to a VariablesExport containing the variables, new and old values of the client.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientKickFromChannel ) ( uint64 serverID , const struct ClientMiniExport * client , int toKickCount , const struct ClientMiniExport * toKickClients , const char * reasonText )
-called before a client is kicked from the channel. Allows you to control whether clients are allowed to kick another client
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-pointer to a ClientMiniExport describing the client attempting to kick another client.
-
-Param toKickCount:
-number of clients that are supposed to be kicked
-
-Param toKickClients:
-array of ClientMiniExport describing the clients to be kicked
-
-Param reasonText:
-utf8 encoded c string containing the reason for the kick provided.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientKickFromServer ) ( uint64 serverID , const struct ClientMiniExport * client , int toKickCount , const struct ClientMiniExport * toKickClients , const char * reasonText )
-called before a client is kicked from the server. Allows you to control whether clients are allowed to kick another client
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-pointer to a ClientMiniExport describing the client attempting to kick another client.
-
-Param toKickCount:
-number of clients that are supposed to be kicked
-
-Param toKickClients:
-array of ClientMiniExport describing the clients to be kicked
-
-Param reasonText:
-utf8 encoded c string containing the provided reason for the kick.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientMove ) ( uint64 serverID , const struct ClientMiniExport * client , int toMoveCount , const struct ClientMiniExport * toMoveClients , uint64 newChannel , const char * reasonText )
-called when a client requests to move one or more other clients. Allows you to control whether a client can move the clients.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the move is attempted.
-
-Param client:
-pointer to a ClientMiniExport describing the client attempting to move the client(s).
-
-Param toMoveCount:
-number of clients that are being moved.
-
-Param toMoveClients:
-array of ClientMiniExport describing which clients are being moved.
-
-Param newChannel:
-id of the channel the clients are to be moved in to.
-
-Param reasonText:
-utf8 encoded c string containing the reason provided for the move.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelMove ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID , uint64 newParentChannelID )
-called when a client attempts to move a channel. Allows you to control whether the client is allowed to move the channel.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-a ClientMiniExport describing the client attempting to move the channel.
-
-Param channelID:
-the channel to be moved.
-
-Param newParentChannelID:
-the new parent channel of the channel
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permSendTextMessage ) ( uint64 serverID , const struct ClientMiniExport * client , anyID targetMode , uint64 targetClientOrChannel , const char * textMessage )
-called when a client tries to send a message. Allows you to control whether the client is allowed to send the message.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-a ClientMiniExport describing the client attempting to send the message
-
-Param targetMode:
-describing the type of message attempting to be sent. One of the values from the TextMessageTargetMode enum
-
-Param targetClientOrChannel:
-id of the channel or client (depending of the targetMode) that the message is sent to.
-
-Param textMessage:
-utf8 encoded c string containing the message to be sent.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permServerRequestConnectionInfo ) ( uint64 serverID , const struct ClientMiniExport * client )
-called when server connection information is requested using ts3client_requestServerConnectionInfo . Can be used to deny access.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-a ClientMiniExport describing the client requesting the action
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permSendConnectionInfo ) ( uint64 serverID , const struct ClientMiniExport * client , int * mayViewIpPort , const struct ClientMiniExport * targetClient )
-called when a client attempts to request another clients connection variables using ts3client_requestConnectionInfo
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client requesting the other clients information
-
-Param mayViewIpPort:
-pointer to a variable that controls whether the IP and port of the target client may be seen by the client. Set to 1 to allow the requesting client to see the IP and port. Set to 0 to deny IP and port.
-
-Param targetClient:
-describes the client that the connection information is requested for.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelCreate ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 parentChannelID , const struct VariablesExport * variables )
-called when a client attempts to create a channel. Allows you to control whether or not the client may create the desired channel.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the client attempts to create the channel
-
-Param client:
-a ClientMiniExport describing the client trying to create a channel
-
-Param parentChannelID:
-the channel that is the parent channel of the channel to be created. 0 if the channel to be created will be a root channel.
-
-Param variables:
-a VariablesExport struct that describes the channel to be created.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelEdit ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID , const struct VariablesExport * variables )
-called when a channel is about to be edited by a client. Allows you to prevent channel edits.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-a ClientMiniExport describing the client trying to edit the channel
-
-Param parentChannelID:
-the channel that is to be edited.
-
-Param variables:
-a VariablesExport struct that describes the channel after the edit.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelDelete ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID )
-called before a channel is deleted by a client. Allows you to deny a client deleting channels.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the channel is to be deleted
-
-Param client:
-a ClientMiniExport describing the client trying to delete the channel
-
-Param channelID:
-the channel that is to be deleted
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelSubscribe ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID )
-called when a client requests to subscribe a channel. Allows you to deny subscribing to a channel.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the client attempts to subscribe to the channel.
-
-Param client:
-a ClientMiniExport describing the client trying to subscribe the channel
-
-Param channelID:
-the channel that is to be subscribed
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-
-
-
-FileTransfer permission callbacks
-
-
-struct ServerLibFunctions
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-unsigned int ( * permFileTransferInitUpload ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftinitupload * params )
-called when a file is to be uploaded. Allows you to deny a client from uploading files, files above a certain size, etc.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that attempts to upload the file.
-
-Param params:
-describes the file to be uploaded.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferInitDownload ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftinitdownload * params )
-called when a file is to be downloaded. Allows you to deny a client from downloading files, files above a certain size, etc.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that attempts to download the file
-
-Param params:
-describes the file to be downloaded.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferGetFileInfo ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftgetfileinfo * params )
-called when a client requests file information using ts3client_requestFileInfo . Allows to deny clients from getting file information.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to get information of the file.
-
-Param params:
-describes the file that information is requested for.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferGetFileList ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftgetfilelist * params )
-called when a client requests a directory listing using ts3client_requestFileList . Allows to deny listing files and directories in channels / directories.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferDeleteFile ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftdeletefile * params )
-called when a client attempts to delete one or more files using ts3client_requestDeleteFile . Allows denying clients deleting files.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to delete the file
-
-Param params:
-describes the file to be deleted
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferCreateDirectory ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftcreatedir * params )
-called when a directory is to be created using ts3client_requestCreateDirectory . Allows to deny creating certain directories.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to create the directory
-
-Param params:
-describes the directory to create.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferRenameFile ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftrenamefile * params )
-called when a file is to be renamed or moved using ts3client_requestRenameFile . Allows to deny moving files or even renaming files.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to rename or move the file.
-
-Param params:
-describes the file to be renamed or moved, and where the file should be moved to if it’s being moved.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-
-
-
-
-Example
-Example code to check if a client can connect to the server:
- 1 // Create the function pointer passed to ts3server_initServerLib
- 2 funcs . permClientCanConnect = onPermClientCanConnect ;
- 3
- 4 // Custom callback
- 5 unsigned int onPermClientCanConnect ( uint64 serverID , const struct ClientMiniExport * client ) {
- 6 // Forbid client with nickname "client" to connect
- 7 if ( strcmp ( client -> nickname , "client" ) == 0 ) {
- 8 return ERROR_permissions ; // Deny
- 9 }
-10 return ERROR_ok ; // Allow
-11 }
-
-
-Please see the server_permissions example for a demonstration of
-this mechanism.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/security-salt.html b/docs/teamspeak-sdk-3.5.2/doc/server/security-salt.html
deleted file mode 100644
index 6802772..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/security-salt.html
+++ /dev/null
@@ -1,218 +0,0 @@
-
-
-
-
-
-
-
-
-
Security salts and hashes — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Security salts and hashes
-
-
-
-
-
-
-
-
-
-Security salts and hashes
-As an optional security feature, the TeamSpeak SDK offers to restrict
-access of clients to specific channels by using a salt and hash
-mechanism. The motivation here is to enforce clients to use a specific
-identity, nickname and metadata when they connect to the TeamSpeak
-server.
-In the server, a security salt is created over a clients unique data by
-calling ts3server_createSecuritySalt() .
-This salt is then attached to a channel during channel creation or by editing existing
-channels by setting the channel variable CHANNEL_SECURITY_SALT .
-When a client attempts to enter such a channel, the clients CLIENT_SECURITY_HASH
-variable is checked against the clients data (unique id, optionally nickname and meta_data) using the salt.
-If the hash is not correct, the client is not allowed to enter the channel.
-The clients hash value is calculated by the server using ts3server_calculateSecurityHash() .
-This security hash has to be transmitted to the client by ways outside of the TeamSpeak SDK. The
-client will set the hash in its CLIENT_SECURITY_HASH variable.
-
-Creating a channel salt
-
-
-unsigned int ts3server_createSecuritySalt ( int options , void * salt , int saltByteSize , char * * securitySalt )
-Create a security salt to lock channel to identities. See the :ref:SDK Documentation<channel_security_salt > on the topic for more in depth explanation.
-
-Parameters:
-
-options – specifies which parameters to include in the security salt. A combination of values from the SecuritySaltOptions enum.
-salt – pointer to random data of cryptographic quality.
-saltByteSize – number of bytes of random data to use. Larger is better but slower.
-securitySalt – address of a variable to receive the security salt. Memory is allocated by the server library and needs to be freed by caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Creating a client hash
-
-
-unsigned int ts3server_calculateSecurityHash ( const char * securitySalt , const char * clientUniqueIdentifier , const char * clientNickName , const char * clientMetaData , char * * securityHash )
-create a hash for a specific client from a security salt to lock an identity to a channel. See the :ref:SDK Documentation<channel_security_salt > on the topic for more in depth explanation.
-
-Parameters:
-
-securitySalt – the security salt of a channel as generated by ts3server_createSecuritySalt
-clientUniqueIdentifier – public identity of a client to generate a security hash for
-clientNickName – nickname of the client to include in the hash if specified by the salt.
-clientMetaData – meta data of the client to include in the hash if specified by the salt.
-securityHash – address of a variable to receive the security hash. Memory is allocated by the server library and must be freed by caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/vserver-manage.html b/docs/teamspeak-sdk-3.5.2/doc/server/vserver-manage.html
deleted file mode 100644
index 83bc4a1..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/vserver-manage.html
+++ /dev/null
@@ -1,280 +0,0 @@
-
-
-
-
-
-
-
-
-
Create and stop virtual servers — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- Create and stop virtual servers
-
-
-
-
-
-
-
-
-
-Create and stop virtual servers
-A new virtual server can be created within the current server process by
-calling
-
-
-unsigned int ts3server_createVirtualServer ( unsigned int serverPort , const char * serverIp , const char * serverName , const char * serverKeyPair , unsigned int serverMaxClients , uint64 * result )
-create a new virtual server. The server is started automatically after being created.
-
-Parameters:
-
-serverPort – the UDP port to listen for client connections on
-serverIp – comma separated list of IP address(es) to listen for client connections on. IPv4 and IPv6 addresses are supported.
-serverName – display name of the server.
-serverKeyPair – Key pair for encryption. Must be unique for each virtual server. Pass an empty string when originally creating a new server, query the generated encryption key with ts3server_getVirtualServerKeyPair , store it and use it on subsequent start ups.
-serverMaxClients – maximum number of clients that can be connected simultaneously at any given time
-result – address of a variable that will receive the virtual server ID that can be used to specify this server in future calls to server library functions.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-The server name and server slots can later be modified using the
-ts3server_setServerVariableAsString() and ts3server_setServerVariableAsInt()
-function calls if need be, without having to recreate the server.
-On success, the created virtual server will be automatically started.
-
-
Important
-
You should not create a virtual server with an empty keypair except
-for the first time. If the server crashes, license problems
-might occur when using “throw-away” keypairs, as the license systems
-may deem you to be running more virtual servers than you actually are.
-
Instead query the keypair the first time the virtual server was
-started, save it to a file and reuse it when creating a new virtual
-server. This way licensing issues will not occur.
-
See the server sample which is included in the TeamSpeak 3 SDK for an
-example on how to save and restore keypairs.
-
-
-
Caution
-
When a virtual server is started, it will register itself at a
-TeamSpeak licensing server reporting the maximum client count to
-ensure the server is operating within the license limits. On
-shutdown, the virtual server will deregister with the licensing server.
-
This leads to two important things to keep in mind:
-
1) Don’t just kill your server with Ctrl-C, instead ensure it’s
-shutdown properly calling ts3server_stopVirtualServer() . If killed
-too often, the licensing server might reject this server instance
-because the license seems to be exceeded as client slots are only
-added but never removed.
-
2) Don’t start a virtual server too frequently. This may raise an
-error “virtualserver started too many times in a certain time
-period” . Contacting the licensing server will be prevented to
-protect our backend services from getting spammed with frequent
-server updates for the same server.
-
The trigger conditions for this error are very specific and are as
-follows:
-
-
After you triggered this error, you will be prevented from starting
-any server instance using the affected license for a period of 12
-minutes.
-
You should first investigate how you managed to trigger this error
-and change your scripts to avoid triggering the conditions above.
-Then you must not start any server instance for the 12 minute grace
-period mentioned above. After this wait, you should be able to start
-your instance normally.
-
-
-Query Keypair for future reuse
-To query the keypair of a virtual server, use
-
-
-unsigned int ts3server_getVirtualServerKeyPair ( uint64 serverID , char * * result )
-retrieve the encryption keys used by the virtual server.
-Store these and use them on subsequent process startup to recreate this server when calling ts3server_createVirtualServer
-
-Parameters:
-
-serverID – the server for which to get the key pair.
-result – address of a variable to receive a utf8 encoded c string containing the key pair. Memory is allocated by the server library and must be freed by caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-Stopping a virtual server
-A virtual server can be stopped with
-
-
-unsigned int ts3server_stopVirtualServer ( uint64 serverID )
-deletes a virtual server. All clients will be disconnected and no more connections are accepted. You need to recreate the server using ts3server_createVirtualServer or ts3server_createVirtualServer2 to make it available again.
-You may want to save the state of the virtual server if you need persistence.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
Warning
-
Nothing of the virtual server remains after it has stopped.
-You will need to recreate the virtual server afterwards.
-If you need to save state (e.g. channels on the server) you
-need to do so before stopping the virtual server.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server/whisper.html b/docs/teamspeak-sdk-3.5.2/doc/server/whisper.html
deleted file mode 100644
index 6b7fec1..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server/whisper.html
+++ /dev/null
@@ -1,184 +0,0 @@
-
-
-
-
-
-
-
-
-
Whisper lists — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
-
-
-Whisper lists
-A client with a whisper list set can talk to the specified clients and
-channels. Whisper lists can be defined for individual clients. A whisper
-list consists of an array of client IDs and/or an array of channel IDs.
-
-
Important
-
Setting a whisper list will stop regular voice transmission to the current channel
-of the client.
-
Clients that have a whisper list set will only be heard by the clients
-specified in the whisper list.
-
-
-
-unsigned int ts3server_setClientWhisperList ( uint64 serverID , anyID clID , const uint64 * channelID , const anyID * clientID )
-set a clients whisper list. Will stop transmitting that clients voice to their current channel.
-The client will still receive voice from their current channel, however their voice will not be transmitted to their current channel anymore. The voice data of the specified client will be transmitted to all specified channels and all the specified clients. Pass 0 to both channelID and clientID to restore default behavior of transmitting voice to current channel.
-
-Parameters:
-
-serverID – the server on which to set the whisper list
-clID – the client for which to set the whisper list
-channelID – zero terminated array of channel ids to add to the whisper list. Pass nullptr to reset. Like { 3, 94, 84, …, 0 }
-clientID – zero terminated array of client ids to add to the whisper list. Pass nullptr to reset. Like { 1, 4, …, 0 }
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/doc/server_api.html b/docs/teamspeak-sdk-3.5.2/doc/server_api.html
deleted file mode 100644
index 3df6cf1..0000000
--- a/docs/teamspeak-sdk-3.5.2/doc/server_api.html
+++ /dev/null
@@ -1,2356 +0,0 @@
-
-
-
-
-
-
-
-
-
TeamSpeak Server Functions — TeamSpeak SDK documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TeamSpeak SDK
-
-
-
-
-
-
-
- TeamSpeak Server Functions
-
-
-
-
-
-
-
-
-
-TeamSpeak Server Functions
-
-
Enums
-
-
-enum VirtualServerCreateFlags
-Values:
-
-
-enumerator VIRTUALSERVER_CREATE_FLAG_NONE
-Server password is stored plaintext and will be encrypted by the server library before stored.
-
-
-
-
-enumerator VIRTUALSERVER_CREATE_FLAG_PASSWORDS_ENCRYPTED
-Server password is already encrypted in the creation parameters. Will be stored as is.
-
-
-
-
-
-
-enum ChannelCreateFlags
-Values:
-
-
-enumerator CHANNEL_CREATE_FLAG_NONE
-Channel password is stored plaintext and will be encrypted by the server library before stored.
-
-
-
-
-enumerator CHANNEL_CREATE_FLAG_PASSWORDS_ENCRYPTED
-Channel passwords are already encrypted in the creation parameters. Will be stored as is.
-
-
-
-
-
-
-
Functions
-
-
-unsigned int ts3server_freeMemory ( void * pointer )
-Releases memory allocated by the server library.
-For every function that has output parameters which take pointers to memory (e.g. char**) the server library will allocate sufficient memory for you, however you need to take care of releasing the memory by passing the variable to this function.
-
-Parameters:
-
-
-
-
-
-
-
-unsigned int ts3server_initServerLib ( const struct ServerLibFunctions * functionPointers , int usedLogTypes , const char * logFileFolder , int argc , const char * const * argv )
-initializes the server library and defines callback functions
-This is the first function you need to call, before this all calls to the server library will fail. In this call you will also set the functions you would like to have called when certain changes or events happen. This function must not be called multiple times.
-
-Parameters:
-
-functionPointers – defines which functions in your code are to be called on specific events. Zero initialize it and assign the desired function to call to the respective members of the ServerLibFunctions struct
-usedLogTypes – a combination of values from the LogTypes enum. Specifies which type(s) of logging you would like to use.
-logFileFolder – path in which to create log files. Pass 0 to use the default of using a folder called logs in the working directory.
-argc – The number of arguments provided to the application in argv. Used to process command line arguments
-argv – The command line arguments provided to the application. These will be processed prior to server lib initialization.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_enableFileManager ( const char * filebase , const char * * ips , int port , uint64 downloadBandwidth , uint64 uploadBandwidth )
-Initialize the file transfer subsystem. Allows clients to store files on the machine the server is running on and download them.
-If you want to support file transfer functionality, then call this function after calling ts3server_initServerLib If you don’t call this function file transfer features will not be available. The server library will create the directories necessary for storing files as needed, however directories will not be cleaned up by the server library. Instead it is the responsibility of the application to clean up these directories when they’re no longer needed (e.g. after a virtual server was deleted)
-
-Parameters:
-
-filebase – path to where the server library will create necessary directories and store files uploaded by clients.
-ips – zero terminated array of IP addresses to listen on for file transfer connections. IPv4 and IPv6 addresses are supported, do NOT pass host names. If set to 0, it will be treated as if you passed { “0.0.0.0”, “::”, 0 }
-port – the TCP port to listen on for file transfer connections.
-downloadBandwidth – limit in bytes per second which is available for downloading files from the server. Speed across all transfers will be limited to this number. Specify BANDWIDTH_LIMIT_UNLIMITED for no limit.
-uploadBandwidth – limit in bytes per second which is available for uploading files to the server. Speed across all transfers will be limited to this number. Specify BANDWIDTH_LIMIT_UNLIMITED for no limit.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_destroyServerLib ( )
-Destroys the server lib. Must not be called from within a callback.
-All clients will lose connection and timeout, all servers will terminate. This is the last function to call. After this call you will no longer be able to use any server library functions.
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_disableClientCommand ( int clientCommand )
-Prevents clients from performing certain actions. SDK only.
-Use this to disable certain features for clients, e.g. deleting channels or moving clients so that the server has authority over these matters and is the only entity who can do so. To disable multiple commands, call this function once for each command you would like to disable for clients.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getServerLibVersion ( char * * result )
-Retrieve the server version string.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getServerLibVersionNumber ( uint64 * result )
-Retrieve the server version number.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setLogVerbosity ( enum LogLevel logVerbosity )
-Specify which log messages to send to the ServerLibFunctions::onUserLoggingMessageEvent callback.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getGlobalErrorMessage ( unsigned int globalErrorCode , char * * result )
-get a human readable error description string for an error code
-
-Parameters:
-
-globalErrorCode – the error code to retrieve the description for. One of the values from the Ts3ErrorType enum.
-result – address of a variable to receive the error description as a utf8 encoded c string. Memory is allocated by the server library and must be freed by caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getClientVariableAsInt ( uint64 serverID , anyID clientID , enum ClientProperties flag , int * result )
-get the value of a client variable as integer.
-Not all variables are available as integer, some are only available as string or unsigned 64 bit integer.
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – which client to query
-flag – specifies which variable to retrieve. One of the values from the ClientProperties enum.
-result – address of a variable to receive the value of the variable queried.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getClientVariableAsUInt64 ( uint64 serverID , anyID clientID , enum ClientProperties flag , uint64 * result )
-get the value of a client variable as unsigned 64 bit integer.
-Not all variables are available as unsigned 64 bit integer, some are only available as string or integer.
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – which client to query
-flag – specifies which variable to retrieve. One of the values from the ClientProperties enum.
-result – address of a variable to receive the value of the variable queried.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getClientVariableAsString ( uint64 serverID , anyID clientID , enum ClientProperties flag , char * * result )
-get the value of the client variable as string
-Not all variables are available as string, some are only available as unsigned 64 bit integer or integer.
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – which client to query
-flag – specifies which variable to retrieve. One of the values from the ClientProperties enum.
-result – address of a variable to receive the value of the variable queried.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setClientVariableAsInt ( uint64 serverID , anyID clientID , enum ClientProperties flag , int value )
-set the value of a client variable.
-Not all variables can be set as integer.
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – which client to query
-flag – specifies which variable to retrieve. One of the values from the ClientProperties enum.
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setClientVariableAsUInt64 ( uint64 serverID , anyID clientID , enum ClientProperties flag , uint64 value )
-set the value of a client variable.
-Not all variables can be set as unsigned 64 bit integer.
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – which client to query
-flag – specifies which variable to retrieve. One of the values from the ClientProperties enum.
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setClientVariableAsString ( uint64 serverID , anyID clientID , enum ClientProperties flag , const char * value )
-set the value of a client variable.
-Not all variables can be set as string.
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – which client to query
-flag – specifies which variable to retrieve. One of the values from the ClientProperties enum.
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_flushClientVariable ( uint64 serverID , anyID clientID )
-Apply and publish client changes after setting client variables.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setClientWhisperList ( uint64 serverID , anyID clID , const uint64 * channelID , const anyID * clientID )
-set a clients whisper list. Will stop transmitting that clients voice to their current channel.
-The client will still receive voice from their current channel, however their voice will not be transmitted to their current channel anymore. The voice data of the specified client will be transmitted to all specified channels and all the specified clients. Pass 0 to both channelID and clientID to restore default behavior of transmitting voice to current channel.
-
-Parameters:
-
-serverID – the server on which to set the whisper list
-clID – the client for which to set the whisper list
-channelID – zero terminated array of channel ids to add to the whisper list. Pass nullptr to reset. Like { 3, 94, 84, …, 0 }
-clientID – zero terminated array of client ids to add to the whisper list. Pass nullptr to reset. Like { 1, 4, …, 0 }
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getClientList ( uint64 serverID , anyID * * result )
-get a list of all clients connected to a server
-
-Parameters:
-
-serverID – specifies the server on which to get the list of clients
-result – address of a variable to receive the zero terminated list of clients, like {1, 2, 50, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getChannelOfClient ( uint64 serverID , anyID clientID , uint64 * result )
-get the id of the clients current channel
-
-Parameters:
-
-serverID – specifies the server the client is on
-clientID – the client to get the channel of
-result – address of a variable to receive the channel id
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_clientMove ( uint64 serverID , uint64 newChannelID , const anyID * clientIDArray )
-Move one or more clients to a different channel.
-
-Parameters:
-
-serverID – specifies the server the client is connected to
-newChannelID – the id of the channel to move the client(s) to
-clientIDArray – zero terminated array of client ids to move. Like {4, 9, …, 0}
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_clientsKickFromServer ( uint64 serverID , const anyID * clientIDArray , const char * kickReason , int failOnClientError )
-kick one or more clients from the server, terminating their connection.
-
-Parameters:
-
-serverID – the server the client(s) are connected to
-clientIDArray – zero terminated array of client ids to kick. Like {4, 3, 12, …, 0}
-kickReason – utf8 encoded c string describing the reason for the kick. Pass an empty string if unused.
-failOnClientError – boolean flag. If 1 the function will fail if clients to be kicked are not on the server.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getClientIDSfromUIDS ( uint64 serverID , const char * * clientUIDs , anyID * * result )
-get a list of clients that are using one of the specified public identities
-
-Parameters:
-
-serverID – the server to check for clients on
-clientUIDs – address of a zero terminated array containing the client unique identifiers to find client ids for. Like { “uid1”, “uid2”, …, ‘@0’ }
-result – address of a variable to receive the client ids using any of the supplied unique identifiers. Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getChannelVariableAsInt ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , int * result )
-get value of a channel variable as integer.
-Not all variables are available as integer, some are only available as string or unsigned 64 bit integer.
-
-Parameters:
-
-serverID – specifies the server the channel is located on
-channelID – the id of the channel to get the variable for
-flag – specifies which variable to retrieve. One of the values from the ChannelProperties enum
-result – address of a variable to receive the value of the queried variable.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getChannelVariableAsUInt64 ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , uint64 * result )
-get value of a channel variable as unsigned 64 bit integer.
-Not all variables are available as unsigned 64 bit integer, some are only available as string or integer.
-
-Parameters:
-
-serverID – specifies the server the channel is located on
-channelID – the id of the channel to get the variable for
-flag – specifies which variable to retrieve. One of the values from the ChannelProperties enum
-result – address of a variable to receive the value of the queried variable.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getChannelVariableAsString ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , char * * result )
-get value of a channel variable as string.
-Not all variables are available as string, some are only available as integer or unsigned 64 bit integer.
-
-Parameters:
-
-serverID – specifies the server the channel is located on
-channelID – the id of the channel to get the variable for
-flag – specifies which variable to retrieve. One of the values from the ChannelProperties enum
-result – address of a variable to receive the value of the queried variable. Memory is allocated by the server library and caller must free it using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setChannelVariableAsInt ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , int value )
-set the variable of a channel to a new value.
-Call ts3server_flushChannelVariable after having set all variables you need to change.
-
-Parameters:
-
-serverID – specifies the server the channel is located on
-channelID – specifies the channel on which to change the variable
-flag – specifies which variable to change. One of the values from the ChannelProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setChannelVariableAsUInt64 ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , uint64 value )
-set a channel variable
-Call ts3server_flushChannelVariable after having set all variables you need to change.
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the id of the channel to set the variable for
-flag – specifies which variable to set. One of the values from the ChannelProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setChannelVariableAsString ( uint64 serverID , uint64 channelID , enum ChannelProperties flag , const char * value )
-Call ts3server_flushChannelVariable after having set all variables you need to change.
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the id of the channel to set the variable for
-flag – specifies which variable to set. One of the values from the ChannelProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_flushChannelVariable ( uint64 serverID , uint64 channelID )
-After changing channel variables call this function to publish the changes to connected clients.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_flushChannelCreation ( uint64 serverID , uint64 channelParentID , uint64 * result )
-After setting the channel properties on a new channel, call this function to publish the channel to clients.
-
-Parameters:
-
-serverID – the server on which to create the channel
-channelParentID – the id of the parent channel for the new channel
-result – address of a variable to receive the channel id of the newly created channel
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_makeChannelCreationParams ( struct TS3ChannelCreationParams * * result )
-Create a structure that defines channel properties for use with ts3server_createChannel .
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setChannelCreationParams ( struct TS3ChannelCreationParams * channelCreationParams , uint64 channelParentID , uint64 channelID )
-Specify mandatory details of a channel to be created at server creation using ts3server_createVirtualServer2 .
-Must be called after ts3server_getVirtualServerCreationParamsChannelCreationParams to set basic properties of a channel. After this call you may set additional channel properties by calling ts3server_getChannelCreationParamsVariables and ts3server_setVariableAsInt , ts3server_setVariableAsUInt64 or ts3server_setVariableAsString
-
-Parameters:
-
-channelCreationParams – defines the channel for which we set basic properties. Obtained by calling ts3server_getVirtualServerCreationParamsChannelCreationParams
-channelParentID – the id of the channel that this channel is a sub channel of. Pass 0 to make this channel a root channel.
-channelID – the id this channel should have. Pass 0 to have the server lib assign a free ID. This is used to identify the channel in other calls to the client and server library. Must be unique across all virtual servers during the lifetime of the server library.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getChannelCreationParamsVariables ( struct TS3ChannelCreationParams * channelCreationParams , struct TS3Variables * * result )
-Allows settings optional channel properties for channels to be created either at server creation using ts3server_createVirtualServer2 or using ts3server_createChannel .
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_createChannel ( uint64 serverID , struct TS3ChannelCreationParams * channelCreationParams , enum ChannelCreateFlags flags , uint64 * result )
-create a new channel on an existing virtual server.
-
-Parameters:
-
-serverID – the server on which to create the channel.
-channelCreationParams – defines channel properties. Address of the structure obtained by calling ts3server_makeChannelCreationParams Must have been filled using ts3server_setChannelCreationParams before this call.
-flags – defines how certain information is presented in the channelCreationParams. Combination of the values from the ChannelCreateFlags enum
-result – address of a variable to receive the channel id of the newly created channel.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getChannelList ( uint64 serverID , uint64 * * result )
-list all channels on the server
-
-Parameters:
-
-serverID – the server to get the list of channels on
-result – address of a variable to receive a zero terminted array of channel ids. Like {4, 65, 23, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getChannelClientList ( uint64 serverID , uint64 channelID , anyID * * result )
-get list of clients in a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the channel of which to get the list of clients
-result – address of a variable to receive a zero terminated array of client ids in the channel. Like {3, 5, 39, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getParentChannelOfChannel ( uint64 serverID , uint64 channelID , uint64 * result )
-get the parent channel of a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the channel of which to get the parent channel
-result – address of a variable to receive the parent channel id
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_channelDelete ( uint64 serverID , uint64 channelID , int force )
-delete a channel
-
-Parameters:
-
-serverID – the server on which the channel is located
-channelID – the id of the channel to delete
-force – boolean flag, 1 = delete even if there are clients or sub channels in the channel. 0 = fail if there are sub channels or clients in the channel or sub channels.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_channelMove ( uint64 serverID , uint64 channelID , uint64 newChannelParentID , uint64 newOrder )
-move a channel within the tree, make it a sub channel or root channel.
-
-Parameters:
-
-serverID – the server on which to move a channel
-channelID – the channel to move
-newChannelParentID – id of the parent channel to move this channel into. Set to 0 to make this channel a root channel.
-newOrder – id of the channel below which this channel is to be sorted.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerVariableAsInt ( uint64 serverID , enum VirtualServerProperties flag , int * result )
-get the value of a server variable
-
-Parameters:
-
-serverID – the server of which to get a variable value
-flag – specifies for which variable to get the value. One of the values from the VirtualServerProperties enum
-result – address of a variable to receive the result
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerVariableAsUInt64 ( uint64 serverID , enum VirtualServerProperties flag , uint64 * result )
-get the value of a server variable
-
-Parameters:
-
-serverID – the server of which to get a variable value
-flag – specifies for which variable to get the value. One of the values from the VirtualServerProperties enum
-result – address of a variable to receive the result.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerVariableAsString ( uint64 serverID , enum VirtualServerProperties flag , char * * result )
-get the value of a server variable
-
-Parameters:
-
-serverID – the server of which to get a variable value
-flag – specifies for which variable to get the value. One of the values from the VirtualServerProperties enum
-result – address of a variable to receive a utf8 encoded c string containing the value. Memory is allocated by the server library and must be freed by the caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVirtualServerVariableAsInt ( uint64 serverID , enum VirtualServerProperties flag , int value )
-set a new value for a server variable
-After you’re done setting all the variables you need to change, a call to ts3server_flushVirtualServerVariable is necessary to publish the changes
-
-Parameters:
-
-serverID – specifies which server to set the variable on
-flag – specifies which server variable to set. One of the values from the VirtualServerProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVirtualServerVariableAsUInt64 ( uint64 serverID , enum VirtualServerProperties flag , uint64 value )
-set a new value for a server variable
-After you’re done setting all the variables you need to change, a call to ts3server_flushVirtualServerVariable is necessary to publish the changes
-
-Parameters:
-
-serverID – specifies which server to set the variable on
-flag – specifies which server variable to set. One of the values from the VirtualServerProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVirtualServerVariableAsString ( uint64 serverID , enum VirtualServerProperties flag , const char * value )
-set a new value for a server variable
-After you’re done setting all the variables you need to change, a call to ts3server_flushVirtualServerVariable is necessary to publish the changes
-
-Parameters:
-
-serverID – specifies which server to set the variable on
-flag – specifies which server variable to set. One of the values from the VirtualServerProperties enum
-value – the new value to set
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_flushVirtualServerVariable ( uint64 serverID )
-Publish server changes done through previous calls to ts3server_setVirtualServerVariableAsInt , ts3server_setVirtualServerVariableAsString , ts3server_setVirtualServerVariableAsUInt64 .
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_makeVirtualServerCreationParams ( struct TS3VirtualServerCreationParams * * result )
-Creates a structure to define an entire virtual server including the channel layout for server creation for use with ts3server_createVirtualServer2 .
-This is the first function to call when using the ts3server_createVirtualServer2 meachanism of creating virtual servers in one go, including all of their channels. After receiving the structure using this function, you need to call ts3server_setVirtualServerCreationParams to set basic configuration for this virtual server. Once that is done you can set additional parameters using ts3server_getVirtualServerCreationParamsVariables and ts3server_setVariableAsInt , ts3server_setVariableAsUInt64 or ts3server_setVariableAsString
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVirtualServerCreationParams ( struct TS3VirtualServerCreationParams * virtualServerCreationParams , unsigned int serverPort , const char * serverIp , const char * serverKeyPair , unsigned int serverMaxClients , unsigned int channelCount , uint64 serverID )
-Set mandatory server creation properties for server creation using ts3server_createVirtualServer2 .
-This call is mandatory after calling ts3server_makeVirtualServerCreationParams when using ts3server_createVirtualServer2 and sets the basic information to create a virtual server. After this call you can optionally set other variables by calling ts3server_getVirtualServerCreationParamsVariables after this.
-
-Parameters:
-
-virtualServerCreationParams – pointer to a struct of creation parameters obtained by calling ts3server_makeVirtualServerCreationParams
-serverPort – the UDP port to listen for client connections on
-serverIp – comma separated list of IP address(es) to listen for client connections on. IPv4 and IPv6 addresses are supported.
-serverKeyPair – unique key for encryption. Pass an empty string when originally creating a new server, query the generated encryption key with ts3server_getVirtualServerKeyPair , store it and use it on subsequent start ups.
-serverMaxClients – maximum number of clients that can be connected simultaneously at any given time
-channelCount – the amount of channels this server will have after creation. You must call ts3server_getVirtualServerCreationParamsChannelCreationParams with this virtualServerCreationParams exactly this many times.
-serverID – the id this virtual server will have when created. server id must be unique during life time of the server library.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerCreationParamsVariables ( struct TS3VirtualServerCreationParams * virtualServerCreationParams , struct TS3Variables * * result )
-create struct to define optional server settings for server creation with ts3server_createVirtualServer2
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerCreationParamsChannelCreationParams ( struct TS3VirtualServerCreationParams * virtualServerCreationParams , unsigned int channelIdx , struct TS3ChannelCreationParams * * result )
-Used to specify channels to create during advanced server creation using ts3server_createVirtualServer2 .
-Call this function exactly as often as you indicated channels to be created in the ts3server_setVirtualServerCreationParams call. Once you have received the struct you must set the details using ts3server_setChannelCreationParams and can optionally set additional parameters using ts3server_getChannelCreationParamsVariables to get a structure to fill using ts3server_setVariableAsInt , ts3server_setVariableAsString , ts3server_setVariableAsUInt64
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_createVirtualServer2 ( struct TS3VirtualServerCreationParams * virtualServerCreationParams , enum VirtualServerCreateFlags flags , uint64 * result )
-Create an entire server structure in a single call. Useful for restoring an entire virtual server including channels including their ids after storing them on shutdown. See the SDK documentation for more in depth information.
-This requires a few other calls to be made in advance. First you need to call ts3server_makeVirtualServerCreationParams to get a TS3VirtualServerCreationParams struct that then needs to be filled via ts3server_setVirtualServerCreationParams . You can then use ts3server_getVirtualServerCreationParamsVariables to set other server settings and use ts3server_getVirtualServerCreationParamsChannelCreationParams to specify channels to create using ts3server_setChannelCreationParams .
-
-Parameters:
-
-virtualServerCreationParams – pointer to the server parameters obtained by calling ts3server_makeVirtualServerCreationParams . These must have been filled using ts3server_setVirtualServerCreationParams before calling this function.
-flags – defines how certain information is present in the virtualServerCreationParams. Combination of the values from the VirtualServerCreateFlags enum
-result – address of a variable to receive the created servers id. This is used in other calls to the server library to identify this server.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerConnectionVariableAsUInt64 ( uint64 serverID , enum ConnectionProperties flag , uint64 * result )
-get value of server connection properties as unsigned integer.
-
-Parameters:
-
-serverID – which server to get connection properties of
-flag – specifies which property to get the value of. One of the values from the ConnectionProperties enum
-result – address of a variable to receive the value of the connection property
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerConnectionVariableAsDouble ( uint64 serverID , enum ConnectionProperties flag , double * result )
-get value of server connection properties as double
-
-Parameters:
-
-serverID – which server to get connection properties of
-flag – specifies which value to get. One of the values from the ConnectionProperties enum
-result – address of a variable to receive the value of the connection property.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerList ( uint64 * * result )
-get a list of virtual servers in this instance
-
-Parameters:
-
-result – address of a variable to receive a zero terminated array of virtual server ids. Like {4, 8, …, 0} Memory is allocated by the server library and caller must free the array using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_stopVirtualServer ( uint64 serverID )
-deletes a virtual server. All clients will be disconnected and no more connections are accepted. You need to recreate the server using ts3server_createVirtualServer or ts3server_createVirtualServer2 to make it available again.
-You may want to save the state of the virtual server if you need persistence.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_createVirtualServer ( unsigned int serverPort , const char * serverIp , const char * serverName , const char * serverKeyPair , unsigned int serverMaxClients , uint64 * result )
-create a new virtual server. The server is started automatically after being created.
-
-Parameters:
-
-serverPort – the UDP port to listen for client connections on
-serverIp – comma separated list of IP address(es) to listen for client connections on. IPv4 and IPv6 addresses are supported.
-serverName – display name of the server.
-serverKeyPair – Key pair for encryption. Must be unique for each virtual server. Pass an empty string when originally creating a new server, query the generated encryption key with ts3server_getVirtualServerKeyPair , store it and use it on subsequent start ups.
-serverMaxClients – maximum number of clients that can be connected simultaneously at any given time
-result – address of a variable that will receive the virtual server ID that can be used to specify this server in future calls to server library functions.
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVirtualServerKeyPair ( uint64 serverID , char * * result )
-retrieve the encryption keys used by the virtual server.
-Store these and use them on subsequent process startup to recreate this server when calling ts3server_createVirtualServer
-
-Parameters:
-
-serverID – the server for which to get the key pair.
-result – address of a variable to receive a utf8 encoded c string containing the key pair. Memory is allocated by the server library and must be freed by caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_createSecuritySalt ( int options , void * salt , int saltByteSize , char * * securitySalt )
-Create a security salt to lock channel to identities. See the :ref:SDK Documentation<channel_security_salt > on the topic for more in depth explanation.
-
-Parameters:
-
-options – specifies which parameters to include in the security salt. A combination of values from the SecuritySaltOptions enum.
-salt – pointer to random data of cryptographic quality.
-saltByteSize – number of bytes of random data to use. Larger is better but slower.
-securitySalt – address of a variable to receive the security salt. Memory is allocated by the server library and needs to be freed by caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_calculateSecurityHash ( const char * securitySalt , const char * clientUniqueIdentifier , const char * clientNickName , const char * clientMetaData , char * * securityHash )
-create a hash for a specific client from a security salt to lock an identity to a channel. See the :ref:SDK Documentation<channel_security_salt > on the topic for more in depth explanation.
-
-Parameters:
-
-securitySalt – the security salt of a channel as generated by ts3server_createSecuritySalt
-clientUniqueIdentifier – public identity of a client to generate a security hash for
-clientNickName – nickname of the client to include in the hash if specified by the salt.
-clientMetaData – meta data of the client to include in the hash if specified by the salt.
-securityHash – address of a variable to receive the security hash. Memory is allocated by the server library and must be freed by caller using ts3server_freeMemory
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVariableAsInt ( struct TS3Variables * var , int flag , int * result )
-get the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as integer. Some are only available as string or unsigned 64 bit integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVariableAsUInt64 ( struct TS3Variables * var , int flag , uint64 * result )
-get the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as unsigned 64 bit integer. Some are only available as string or integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_getVariableAsString ( struct TS3Variables * var , int flag , char * * result )
-get the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as string. Some are only available as unsigned 64 bit integer or integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVariableAsInt ( struct TS3Variables * var , int flag , int value )
-set the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as integer. Some are only available as string or unsigned 64 bit integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVariableAsUInt64 ( struct TS3Variables * var , int flag , uint64 value )
-set the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as unsigned 64 bit integer. Some are only available as string or integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-unsigned int ts3server_setVariableAsString ( struct TS3Variables * var , int flag , const char * value )
-set the value of a property of a server or channel when using ts3server_createVirtualServer2 or ts3server_createChannel
-Not all properties are available as string. Some are only available as unsigned 64 bit integer or integer.
-
-Parameters:
-
-
-Returns:
-An Error code from the Ts3ErrorType enum indicating either success or the failure reason
-
-
-
-
-
-
-
-struct ServerLibFunctions
-
-#include <serverlib.h>
-Server callbacks. Zero initialize and set members to functions that are to be called when the event in question happens. Every callback you use should exit quickly to avoid stalling the server. If you need any expensive activity upon receiving callbacks, consider starting the activity in a new thread and allow the callback to exit quickly.
-
-
Public Members
-
-
-void ( * onVoiceDataEvent ) ( uint64 serverID , anyID clientID , unsigned char * voiceData , unsigned int voiceDataSize , unsigned int frequency )
-called when audio data is received from any client. Allows access to audio data from any client.
-Can be used to implement server side voice recording. Do not implement if you don’t need server side recording. Callback will be called for every client sending audio data, even if nobody can hear said client (e.g. alone in a channel).
-
-Param serverID:
-the server for which the callback was called
-
-Param clientID:
-the client which is sending audio data
-
-Param voiceData:
-pointer to the voice buffer. Must not be invalidated or otherwise tampered with.
-
-Param voiceDataSize:
-number of audio frames available in the buffer
-
-Param frequency:
-audio data sample rate
-
-
-
-
-
-
-void ( * onClientStartTalkingEvent ) ( uint64 serverID , anyID clientID )
-called when a client starts talking
-
-Param serverID:
-the server for which the callback was called
-
-Param clientID:
-the client that started talking
-
-
-
-
-
-
-void ( * onClientStopTalkingEvent ) ( uint64 serverID , anyID clientID )
-called when a client stops talking
-
-Param serverID:
-the server for which the callback was called
-
-Param clientID:
-the client that stopped talking
-
-
-
-
-
-
-void ( * onClientConnected ) ( uint64 serverID , anyID clientID , uint64 channelID , unsigned int * removeClientError )
-called when a client connects
-
-Param serverID:
-the server for which the callback was called
-
-Param clientID:
-the client that connected
-
-Param channelID:
-the channel that the client connected to
-
-Param removeClientError:
-whether to allow the client on the server. Set the value to one of the values from the Ts3ErrorType enum if you want to reject the client.
-
-
-
-
-
-
-void ( * onClientDisconnected ) ( uint64 serverID , anyID clientID , uint64 channelID )
-called when a client disconnects
-
-Param serverID:
-the server for which the callback was called
-
-Param clientID:
-the client that disconnected. The client is already gone by the time this callback is called. The client id cannot be used to query information.
-
-Param channelID:
-the channel that the client was in before disconnecting.
-
-
-
-
-
-
-void ( * onClientMoved ) ( uint64 serverID , anyID clientID , uint64 oldChannelID , uint64 newChannelID )
-called when a client changed to a different channel by any means, including switching the channel themselves.
-
-Param serverID:
-the server for which the callback was called
-
-Param clientID:
-the client that switched to a different channel.
-
-Param oldChannelID:
-the previous channel the client was in.
-
-Param newChannelID:
-the current channel the client is in now.
-
-
-
-
-
-
-void ( * onChannelCreated ) ( uint64 serverID , anyID invokerClientID , uint64 channelID )
-called when a channel has been created
-
-Param serverID:
-the server for which the callback was called
-
-Param invokerClientID:
-the id of the client that created the channel. 0 if the server created the channel.
-
-Param channelID:
-the id of the newly created channel.
-
-
-
-
-
-
-void ( * onChannelEdited ) ( uint64 serverID , anyID invokerClientID , uint64 channelID )
-called when a channel has been edited
-
-Param serverID:
-the server for which the callback was called
-
-Param invokerClientID:
-the client that edited the channel. 0 if the server edited the channel.
-
-Param channelID:
-the channel that was edited
-
-
-
-
-
-
-void ( * onChannelDeleted ) ( uint64 serverID , anyID invokerClientID , uint64 channelID )
-called when a channel was deleted
-
-Param serverID:
-the server for which the callback was called
-
-Param invokerClientID:
-client that deleted the channel. 0 if the server deleted the channel
-
-Param channelID:
-the id of the channel that was deleted. The channel is gone already by the time this callback is called and information about the channel is no longer available
-
-
-
-
-
-
-void ( * onServerTextMessageEvent ) ( uint64 serverID , anyID invokerClientID , const char * textMessage )
-called when a server wide text message was sent
-
-Param serverID:
-the server for which the callback was called
-
-Param invokerClientID:
-the client that is sending the message
-
-Param textMessage:
-utf8 encoded c string containing the text of the message sent
-
-
-
-
-
-
-void ( * onChannelTextMessageEvent ) ( uint64 serverID , anyID invokerClientID , uint64 targetChannelID , const char * textMessage )
-called when a channel text message was sent
-
-Param serverID:
-the server for which the callback was called
-
-Param invokerClientID:
-the client that is sending the message
-
-Param targetChannelID:
-the channel in which the message is sent
-
-Param textMessage:
-utf8 encoded c string containing the message sent
-
-
-
-
-
-
-void ( * onUserLoggingMessageEvent ) ( const char * logmessage , int logLevel , const char * logChannel , uint64 logID , const char * logTime , const char * completeLogString )
-when user logging was enabled when calling ts3server_initServerLib this callback is called whenever a message with at least the severity specified through ts3server_setLogVerbosity is supposed to be logged. Allows to customize logging and handle errors or critical log events.
-
-Param logmessage:
-utf8 encoded c string containing the message to be logged
-
-Param logLevel:
-the severity of the message that the callback is called for. One of the values from the LogLevel enum
-
-Param logChannel:
-utf8 encoded c string containing the arbitrary text used for grouping messages.
-
-Param logID:
-the server on which the message was logged
-
-Param logTime:
-utf8 encoded c string containing the time and date in system format the message was logged
-
-Param completeLogString:
-utf8 encoded c string containing all the previous parameters in a complete text string ready for logging.
-
-
-
-
-
-
-void ( * onAccountingErrorEvent ) ( uint64 serverID , unsigned int errorCode )
-called when an error occurs with license checking.
-Allows you to gracefully handle errors like a missing or expired license for example, while keeping the rest of your application running.
-
-Param serverID:
-the server on which the error occured. This server has been shut down automatically, other servers keep running. If this is 0 then all servers are affected by the error and have been shut down. In this case you may want to call ts3server_destroyServerLib to clean up resources.
-
-Param errorCode:
-the error that appeared. One of the values from the Ts3ErrorType enum. You can use ts3server_getGlobalErrorMessage to get a string representation for the error code.
-
-
-
-
-
-
-void ( * onCustomPacketEncryptEvent ) ( char * * dataToSend , unsigned int * sizeOfData )
-called when a packet needs to be encrypted to be sent over the wire.
-Used to implement custom encryption of server communication. This needs to be implemented the same in the client and server, otherwise clients cannot communicate with the server. Only implement this callback when you need custom encryption.
-
-Param dataToSend:
-pointer to an array of bytes that need to be encrypted. Must not be freed. Encrypt the data in place in this array if the size of your encrypted data is smaller than indicated in the sizeOfData parameter. Otherwise allocate your own memory and replace the pointer to point to your own allocated memory. In this case you need to take care of freeing the memory.
-
-Param sizeOfData:
-size in byte of the dataToSend array.
-
-
-
-
-
-
-void ( * onCustomPacketDecryptEvent ) ( char * * dataReceived , unsigned int * dataReceivedSize )
-called when a packet needs to be decrypted after it has been received.
-Used to implement custom encryption of server communication. This needs to be implemented the same in the client and server, otherwise clients cannot communicate with the server. Only implement this callback when you need custom encryption.
-
-Param dataReceived:
-pointer to an array of bytes that need to be decrypted. Must not be freed. Decrypt the data in place in this array if the size of your decrypted data is smaller than indicated by the dataReceivedSize parameter. Otherwise allocate your own memory and replace the pointer to point to your own allocated memory. In this case you need to take care of freeing the memory
-
-Param dataReceivedSize:
-size in byte of the dataReceived array.
-
-
-
-
-
-
-void ( * onFileTransferEvent ) ( const struct FileTransferCallbackExport * data )
-called whenever a file transfer is done
-
-Param data:
-pointer to a structure describing the file transfer that completed. See FileTransferCallbackExport for details.
-
-
-
-
-
-
-unsigned int ( * permClientCanConnect ) ( uint64 serverID , const struct ClientMiniExport * client )
-called when a client is about to connect. Can be used to deny clients from connecting.
-Return ERROR_ok to allow the client on the server, or ERROR_permissions to reject the client.
-
-Param serverID:
-the server the client wants to connect to
-
-Param client:
-pointer to a ClientMiniExport describing the client trying to connect
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientCanGetChannelDescription ) ( uint64 serverID , const struct ClientMiniExport * client )
-called when a client requests channel description of a channel using ts3client_requestChannelDescription . Can be used to deny access to channel descriptions.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the request was received
-
-Param client:
-pointer to a ClientMiniExport describing the client requesting the channel description
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientUpdate ) ( uint64 serverID , anyID clientID , const struct VariablesExport * variables )
-called when a client wants to update a clients variables. Used to deny or allow updating certain client variables
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param clientID:
-the client for which the variables are attempted to be changed.
-
-Param variables:
-pointer to a VariablesExport containing the variables, new and old values of the client.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientKickFromChannel ) ( uint64 serverID , const struct ClientMiniExport * client , int toKickCount , const struct ClientMiniExport * toKickClients , const char * reasonText )
-called before a client is kicked from the channel. Allows you to control whether clients are allowed to kick another client
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-pointer to a ClientMiniExport describing the client attempting to kick another client.
-
-Param toKickCount:
-number of clients that are supposed to be kicked
-
-Param toKickClients:
-array of ClientMiniExport describing the clients to be kicked
-
-Param reasonText:
-utf8 encoded c string containing the reason for the kick provided.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientKickFromServer ) ( uint64 serverID , const struct ClientMiniExport * client , int toKickCount , const struct ClientMiniExport * toKickClients , const char * reasonText )
-called before a client is kicked from the server. Allows you to control whether clients are allowed to kick another client
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-pointer to a ClientMiniExport describing the client attempting to kick another client.
-
-Param toKickCount:
-number of clients that are supposed to be kicked
-
-Param toKickClients:
-array of ClientMiniExport describing the clients to be kicked
-
-Param reasonText:
-utf8 encoded c string containing the provided reason for the kick.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permClientMove ) ( uint64 serverID , const struct ClientMiniExport * client , int toMoveCount , const struct ClientMiniExport * toMoveClients , uint64 newChannel , const char * reasonText )
-called when a client requests to move one or more other clients. Allows you to control whether a client can move the clients.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the move is attempted.
-
-Param client:
-pointer to a ClientMiniExport describing the client attempting to move the client(s).
-
-Param toMoveCount:
-number of clients that are being moved.
-
-Param toMoveClients:
-array of ClientMiniExport describing which clients are being moved.
-
-Param newChannel:
-id of the channel the clients are to be moved in to.
-
-Param reasonText:
-utf8 encoded c string containing the reason provided for the move.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelMove ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID , uint64 newParentChannelID )
-called when a client attempts to move a channel. Allows you to control whether the client is allowed to move the channel.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-a ClientMiniExport describing the client attempting to move the channel.
-
-Param channelID:
-the channel to be moved.
-
-Param newParentChannelID:
-the new parent channel of the channel
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permSendTextMessage ) ( uint64 serverID , const struct ClientMiniExport * client , anyID targetMode , uint64 targetClientOrChannel , const char * textMessage )
-called when a client tries to send a message. Allows you to control whether the client is allowed to send the message.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-a ClientMiniExport describing the client attempting to send the message
-
-Param targetMode:
-describing the type of message attempting to be sent. One of the values from the TextMessageTargetMode enum
-
-Param targetClientOrChannel:
-id of the channel or client (depending of the targetMode) that the message is sent to.
-
-Param textMessage:
-utf8 encoded c string containing the message to be sent.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permServerRequestConnectionInfo ) ( uint64 serverID , const struct ClientMiniExport * client )
-called when server connection information is requested using ts3client_requestServerConnectionInfo . Can be used to deny access.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-a ClientMiniExport describing the client requesting the action
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permSendConnectionInfo ) ( uint64 serverID , const struct ClientMiniExport * client , int * mayViewIpPort , const struct ClientMiniExport * targetClient )
-called when a client attempts to request another clients connection variables using ts3client_requestConnectionInfo
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client requesting the other clients information
-
-Param mayViewIpPort:
-pointer to a variable that controls whether the IP and port of the target client may be seen by the client. Set to 1 to allow the requesting client to see the IP and port. Set to 0 to deny IP and port.
-
-Param targetClient:
-describes the client that the connection information is requested for.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelCreate ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 parentChannelID , const struct VariablesExport * variables )
-called when a client attempts to create a channel. Allows you to control whether or not the client may create the desired channel.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the client attempts to create the channel
-
-Param client:
-a ClientMiniExport describing the client trying to create a channel
-
-Param parentChannelID:
-the channel that is the parent channel of the channel to be created. 0 if the channel to be created will be a root channel.
-
-Param variables:
-a VariablesExport struct that describes the channel to be created.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelEdit ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID , const struct VariablesExport * variables )
-called when a channel is about to be edited by a client. Allows you to prevent channel edits.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-a ClientMiniExport describing the client trying to edit the channel
-
-Param parentChannelID:
-the channel that is to be edited.
-
-Param variables:
-a VariablesExport struct that describes the channel after the edit.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelDelete ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID )
-called before a channel is deleted by a client. Allows you to deny a client deleting channels.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the channel is to be deleted
-
-Param client:
-a ClientMiniExport describing the client trying to delete the channel
-
-Param channelID:
-the channel that is to be deleted
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permChannelSubscribe ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID )
-called when a client requests to subscribe a channel. Allows you to deny subscribing to a channel.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server on which the client attempts to subscribe to the channel.
-
-Param client:
-a ClientMiniExport describing the client trying to subscribe the channel
-
-Param channelID:
-the channel that is to be subscribed
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferInitUpload ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftinitupload * params )
-called when a file is to be uploaded. Allows you to deny a client from uploading files, files above a certain size, etc.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that attempts to upload the file.
-
-Param params:
-describes the file to be uploaded.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferInitDownload ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftinitdownload * params )
-called when a file is to be downloaded. Allows you to deny a client from downloading files, files above a certain size, etc.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that attempts to download the file
-
-Param params:
-describes the file to be downloaded.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferGetFileInfo ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftgetfileinfo * params )
-called when a client requests file information using ts3client_requestFileInfo . Allows to deny clients from getting file information.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to get information of the file.
-
-Param params:
-describes the file that information is requested for.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferGetFileList ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftgetfilelist * params )
-called when a client requests a directory listing using ts3client_requestFileList . Allows to deny listing files and directories in channels / directories.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferDeleteFile ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftdeletefile * params )
-called when a client attempts to delete one or more files using ts3client_requestDeleteFile . Allows denying clients deleting files.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to delete the file
-
-Param params:
-describes the file to be deleted
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferCreateDirectory ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftcreatedir * params )
-called when a directory is to be created using ts3client_requestCreateDirectory . Allows to deny creating certain directories.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to create the directory
-
-Param params:
-describes the directory to create.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-unsigned int ( * permFileTransferRenameFile ) ( uint64 serverID , const struct ClientMiniExport * client , const struct ts3sc_ftrenamefile * params )
-called when a file is to be renamed or moved using ts3client_requestRenameFile . Allows to deny moving files or even renaming files.
-Return ERROR_ok to allow the action, or ERROR_permissions to reject it.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client attempting to rename or move the file.
-
-Param params:
-describes the file to be renamed or moved, and where the file should be moved to if it’s being moved.
-
-Return:
-ERROR_ok to allow, ERROR_permissions to deny
-
-
-
-
-
-
-void ( * onClientPasswordEncrypt ) ( uint64 serverID , const char * plaintext , char * encryptedText , int encryptedTextByteSize )
-called when a server or channel password is set.
-Used to hash the password or encrypt it for check with outside sources.
-
-Param serverID:
-the server for which the callback was called
-
-Param plaintext:
-the plaintext password to be encrypted.
-
-Param encryptedText:
-the encrypted/hashed password. Fill with your encrypted password. Must be an utf8 encoded c string not larger than specified by encryptedTextByteSize
-
-Param encryptedTextByteSize:
-the maximum number of bytes you may write to encryptedText
-
-
-
-
-
-
-unsigned int ( * onTransformFilePath ) ( uint64 serverID , anyID invokerClientID , const struct TransformFilePathExport * original , struct TransformFilePathExportReturns * result )
-Allows to rewrite the file path and name of the file to be transfered. Called when a transfer starts.
-If you don’t need to control server side file name and path then don’t implement this callback. The parameters are already filled with the default values intended by the client starting the transfer. These can be changed as required. When the callback exits with ERROR_ok the transfer is started with the values present in the result struct.
See the SDK documentation for further details.
-
-
-Param serverID:
-the server for which the callback was called
-
-Param invokerClientID:
-the client which started the file transfer
-
-Param original:
-the original file path and name desired by the client
-
-Param result:
-the values from this struct will be used by the server when the callback exits. Already filled with a copy of original. Change the values in this struct as needed.
-
-Return:
-a value from the Ts3ErrorType enum. Return ERROR_ok to start the transfer with the values in the result struct. When returning an error code the file transfer is not started.
-
-
-
-
-
-
-unsigned int ( * onCustomServerPasswordCheck ) ( uint64 serverID , const struct ClientMiniExport * client , const char * password )
-called when a client connects to the server. Used to verify the server password when using custom password encryption.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that connects to the server
-
-Param password:
-utf8 encoded c string containing the password provided by the client.
-
-Return:
-a value from the Ts3ErrorType enum. ERROR_ok if the password is valid, ERROR_server_invalid_password if the password is not valid, ERROR_parameter_invalid if the password is in invalid format.
-
-
-
-
-
-
-unsigned int ( * onCustomChannelPasswordCheck ) ( uint64 serverID , const struct ClientMiniExport * client , uint64 channelID , const char * password )
-called when a client attempts to enter a password protected channel. Used to verify the channel password when using custom password encryption.
-
-Param serverID:
-the server for which the callback was called
-
-Param client:
-describes the client that enters a channel
-
-Param channelID:
-the channel the client attempts to join
-
-Param password:
-utf8 encoded c string containing the password provided by the client.
-
-Return:
-a value from the Ts3ErrorType enum. ERROR_ok if the password is valid, ERROR_server_invalid_password if the password is not valid, ERROR_parameter_invalid if the password is in invalid format.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client
deleted file mode 100644
index 355e99c..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_cpp_repeater b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_cpp_repeater
deleted file mode 100644
index a54184f..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_cpp_repeater and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_customdevice b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_customdevice
deleted file mode 100644
index e725fcf..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_customdevice and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_minimal b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_minimal
deleted file mode 100644
index dca78bd..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_minimal and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_minimal_filetransfer b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_minimal_filetransfer
deleted file mode 100644
index 1b94b8e..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_minimal_filetransfer and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_multi b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_multi
deleted file mode 100644
index efb3595..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_client_multi and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server
deleted file mode 100644
index 5e42334..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_creation_params b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_creation_params
deleted file mode 100644
index 74c8ae6..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_creation_params and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_filetransfer b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_filetransfer
deleted file mode 100644
index 4148f7f..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_filetransfer and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_minimal b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_minimal
deleted file mode 100644
index 53af9f2..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_minimal and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_permissions b/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_permissions
deleted file mode 100644
index cb243ed..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/linux-x86_64/ts_server_permissions and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client
deleted file mode 100644
index 98b09c2..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_cpp_repeater b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_cpp_repeater
deleted file mode 100644
index 7b15b20..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_cpp_repeater and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_customdevice b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_customdevice
deleted file mode 100644
index b93e8b6..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_customdevice and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_minimal b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_minimal
deleted file mode 100644
index 6a4d372..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_minimal and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_minimal_filetransfer b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_minimal_filetransfer
deleted file mode 100644
index 519ae84..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_minimal_filetransfer and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_multi b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_multi
deleted file mode 100644
index 5d3ad54..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_client_multi and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server
deleted file mode 100644
index 3a4ff56..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_creation_params b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_creation_params
deleted file mode 100644
index a95bb65..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_creation_params and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_filetransfer b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_filetransfer
deleted file mode 100644
index 9658088..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_filetransfer and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_minimal b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_minimal
deleted file mode 100644
index 706262d..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_minimal and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_permissions b/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_permissions
deleted file mode 100644
index c2fad0a..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/macos-armv8/ts_server_permissions and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/CMakeLists.txt b/docs/teamspeak-sdk-3.5.2/samples/source/CMakeLists.txt
deleted file mode 100644
index 29e14d2..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/CMakeLists.txt
+++ /dev/null
@@ -1,121 +0,0 @@
-cmake_minimum_required(VERSION 3.21)
-
-project("TeamSpeak SDK Samples" LANGUAGES C CXX)
-
-set(CMAKE_SKIP_BUILD_RPATH FALSE)
-set(CMAKE_MACOSX_RPATH TRUE)
-set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
-if (APPLE)
- set(CMAKE_INSTALL_RPATH "@executable_path")
-else()
- set(CMAKE_INSTALL_RPATH "\$ORIGIN")
-endif()
-set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
-set(BUILD_RPATH_USE_ORIGIN TRUE)
-
-find_package(team_client CONFIG)
-find_package(team_server CONFIG)
-
-if(NOT team_client_FOUND AND NOT team_server_FOUND)
- message(FATAL_ERROR
- "Neither team_client nor team_server SDK found via CMAKE_PREFIX_PATH. "
- "Pass -DCMAKE_PREFIX_PATH=... pointing at a stage directory.")
-endif()
-
-set(TS_SAMPLES
- client
- client_customdevice
- client_minimal
- client_minimal_filetransfer
- client_multi
- client_cpp_repeater
- server
- server_creation_params
- server_filetransfer
- server_minimal
- server_permissions
-)
-set_property(GLOBAL PROPERTY USE_FOLDERS ON)
-
-# A sample's SDK flavor is given by its folder-name prefix: client* links the client SDK, server*
-# the server SDK.
-foreach(sample_folder IN LISTS TS_SAMPLES)
- if(sample_folder MATCHES "^client")
- set(sample_type client)
- elseif(sample_folder MATCHES "^server")
- set(sample_type server)
- else()
- message(FATAL_ERROR "Cannot infer SDK type from sample folder '${sample_folder}' (expected client*/server*)")
- endif()
- if("${sample_type}" STREQUAL "client" AND NOT team_client_FOUND)
- continue()
- endif()
- if("${sample_type}" STREQUAL "server" AND NOT team_server_FOUND)
- continue()
- endif()
- if("${sample_type}" STREQUAL "server"
- AND CMAKE_SYSTEM_NAME STREQUAL "Linux"
- AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86")
- continue()
- endif()
-
- set(ts_sample_bin "ts_${sample_folder}")
- include("${CMAKE_CURRENT_LIST_DIR}/${sample_folder}/sources.cmake")
-
- add_executable(${ts_sample_bin} ${TS_SAMPLE_SRC})
- set_target_properties(${ts_sample_bin} PROPERTIES CXX_STANDARD 17)
- source_group("" FILES ${TS_SAMPLE_SRC})
-
- include("${CMAKE_CURRENT_LIST_DIR}/cmake/ide.cmake")
- if(TS_SDK_IDE_FILES)
- target_sources(${ts_sample_bin} PRIVATE ${TS_SDK_IDE_FILES})
- source_group("teamspeak" FILES ${TS_SDK_IDE_FILES})
- endif()
-
- if("${sample_type}" STREQUAL "client")
- target_link_libraries(${ts_sample_bin} PRIVATE teamspeak::client)
- if(APPLE)
- set_target_properties(${ts_sample_bin} PROPERTIES
- INSTALL_RPATH "@executable_path"
- )
- endif()
- find_package(Threads REQUIRED)
- target_link_libraries(${ts_sample_bin} PRIVATE Threads::Threads)
- set(ts_sdk_target teamspeak::client)
- elseif("${sample_type}" STREQUAL "server")
- target_link_libraries(${ts_sample_bin} PRIVATE teamspeak::server)
- if(APPLE)
- set_target_properties(${ts_sample_bin} PROPERTIES
- INSTALL_RPATH "@executable_path"
- )
- endif()
- set(ts_sdk_target teamspeak::server)
- endif()
-
- if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- target_link_libraries(${ts_sample_bin} PRIVATE dl)
- endif()
-
- # Copy the SDK shared library next to the sample so it runs from the build tree.
- add_custom_command(TARGET ${ts_sample_bin} POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
- "$
"
- "$"
- )
-
- install(TARGETS ${ts_sample_bin} RUNTIME DESTINATION bin)
-endforeach()
-
-set(_ts_imported_libs "")
-if(team_client_FOUND)
- list(APPEND _ts_imported_libs teamspeak::client)
-endif()
-if(team_server_FOUND)
- list(APPEND _ts_imported_libs teamspeak::server)
-endif()
-if(_ts_imported_libs)
- install(IMPORTED_RUNTIME_ARTIFACTS ${_ts_imported_libs}
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION bin
- )
-endif()
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/client/main.c
deleted file mode 100644
index 2ca2501..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client/main.c
+++ /dev/null
@@ -1,1624 +0,0 @@
-/*
- * TeamSpeak SDK client sample
- *
- * Copyright (c) TeamSpeak Systems GmbH
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#pragma warning(disable : 4996)
-#include
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#define DEFAULT_VIRTUAL_SERVER 1
-#define NAME_BUFSIZE 1024
-#define CHANNEL_PASSWORD_BUFSIZE 1024
-
-#define CHECK_ERROR(x) if((error = x) != ERROR_ok) { goto on_error; }
-#define IDENTITY_BUFSIZE 1024
-
-#ifdef _WIN32
-#define snprintf sprintf_s
-#define SLEEP(x) Sleep(x)
-#else
-#define SLEEP(x) usleep(x*1000)
-#endif
-
-/* This is a global variable to indicate if sound needs to be recorded.
- Normally one would have thread synchronization with locks etc. for
- thread safety. In the intterest of simplicity, this sample uses the
- most simple way to safely record, using this variable
-*/
-int recordSound = 0;
-
-/* For voice activation detection demo */
-uint64 vadTestscHandlerID;
-int vadTestTalkStatus = 0;
-
-/* Enable to use custom encryption */
-/* #define USE_CUSTOM_ENCRYPTION
-#define CUSTOM_CRYPT_KEY 123 */
-
-/* Uncomment "#define CUSTOM_PASSWORDS" to try custom passwords.
- * Please note that you have to do the same on the server demo too */
-/* #define CUSTOM_PASSWORDS */
-
-/* a struct used for sound recording */
-struct WaveHeader {
- /* Riff chunk */
- char riffId[4];
- unsigned int len;
- char riffType[4];
-
- /* Format chunk */
- char fmtId[4]; // 'fmt '
- unsigned int fmtLen;
- unsigned short formatTag;
- unsigned short channels;
- unsigned int samplesPerSec;
- unsigned int avgBytesPerSec;
- unsigned short blockAlign;
- unsigned short bitsPerSample;
-
- /* Data chunk */
- char dataId[4]; // 'data'
- unsigned int dataLen;
-};
-
-/*
- * Callback for connection status change.
- * Connection status switches through the states STATUS_DISCONNECTED, STATUS_CONNECTING, STATUS_CONNECTED and STATUS_CONNECTION_ESTABLISHED.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * newStatus - New connection status, see the enum ConnectStatus in clientlib_publicdefinitions.h
- * errorNumber - Error code. Should be zero when connecting or actively disconnection.
- * Contains error state when losing connection.
- */
-void onConnectStatusChangeEvent(uint64 serverConnectionHandlerID, int newStatus, unsigned int errorNumber) {
- printf("Connect status changed: %llu %d %d\n", (unsigned long long)serverConnectionHandlerID, newStatus, errorNumber);
- /* Failed to connect ? */
- if(newStatus == STATUS_DISCONNECTED && errorNumber == ERROR_failed_connection_initialisation) {
- printf("Looks like there is no server running.\n");
- }
-}
-
-/*
- * Callback for current channels being announced to the client after connecting to a server.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the announced channel
- * channelParentID - ID of the parent channel
- */
-void onNewChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 channelParentID) {
- /* Query channel name from channel ID */
- char* name;
- unsigned int error;
-
- printf("onNewChannelEvent: %llu %llu %llu\n", (unsigned long long)serverConnectionHandlerID, (unsigned long long)channelID, (unsigned long long)channelParentID);
- if((error = ts3client_getChannelVariableAsString(serverConnectionHandlerID, channelID, CHANNEL_NAME, &name)) == ERROR_ok) {
- printf("New channel: %llu %s \n", (unsigned long long)channelID, name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
- } else {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error getting channel name in onNewChannelEvent: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- }
-}
-
-/*
- * Callback for just created channels.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the announced channel
- * channelParentID - ID of the parent channel
- * invokerID - ID of the client who created the channel
- * invokerName - Name of the client who created the channel
- */
-void onNewChannelCreatedEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 channelParentID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier) {
- char* name;
-
- /* Query channel name from channel ID */
- if(ts3client_getChannelVariableAsString(serverConnectionHandlerID, channelID, CHANNEL_NAME, &name) != ERROR_ok)
- return;
- printf("New channel created: %s \n", name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-/*
- * Callback when a channel was deleted.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the deleted channel
- * invokerID - ID of the client who deleted the channel
- * invokerName - Name of the client who deleted the channel
- */
-void onDelChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier) {
- printf("Channel ID %llu deleted by %s (%u)\n", (unsigned long long)channelID, invokerName, invokerID);
-}
-
-/*
- * Called when a client joins, leaves or moves to another channel.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the moved client
- * oldChannelID - ID of the old channel left by the client
- * newChannelID - ID of the new channel joined by the client
- * visibility - Visibility of the moved client. See the enum Visibility in clientlib_publicdefinitions.h
- * Values: ENTER_VISIBILITY, RETAIN_VISIBILITY, LEAVE_VISIBILITY
- */
-void onClientMoveEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* moveMessage) {
- printf("ClientID %u moves from channel %llu to %llu with message %s\n", clientID, (unsigned long long)oldChannelID, (unsigned long long)newChannelID, moveMessage);
-}
-
-/*
- * Callback for other clients in current and subscribed channels being announced to the client.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the announced client
- * oldChannelID - ID of the subscribed channel where the client left visibility
- * newChannelID - ID of the subscribed channel where the client entered visibility
- * visibility - Visibility of the announced client. See the enum Visibility in clientlib_publicdefinitions.h
- * Values: ENTER_VISIBILITY, RETAIN_VISIBILITY, LEAVE_VISIBILITY
- */
-void onClientMoveSubscriptionEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility) {
- char* name;
-
- /* Query client nickname from ID */
- if(ts3client_getClientVariableAsString(serverConnectionHandlerID, clientID, CLIENT_NICKNAME, &name) != ERROR_ok)
- return;
- printf("New client: %s \n", name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-/*
- * Called when a client drops his connection.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the moved client
- * oldChannelID - ID of the channel the leaving client was previously member of
- * newChannelID - 0, as client is leaving
- * visibility - Always LEAVE_VISIBILITY
- * timeoutMessage - Optional message giving the reason for the timeout
- */
-void onClientMoveTimeoutEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* timeoutMessage) {
- printf("ClientID %u timeouts with message %s\n", clientID, timeoutMessage);
-}
-
-/*
- * This event is called when a client starts or stops talking.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * status - 1 if client starts talking, 0 if client stops talking
- * isReceivedWhisper - 1 if this event was caused by whispering, 0 if caused by normal talking
- * clientID - ID of the client who announced the talk status change
- */
-void onTalkStatusChangeEvent(uint64 serverConnectionHandlerID, int status, int isReceivedWhisper, anyID clientID) {
- char* name;
-
- /* If we are currently in configure-microphone mode, remember the status and use it later in the loop in configureMicrophone() */
- if(serverConnectionHandlerID == vadTestscHandlerID) {
- vadTestTalkStatus = status;
- return;
- }
-
- /* Query client nickname from ID */
- if (ts3client_getClientVariableAsString(serverConnectionHandlerID, clientID, CLIENT_NICKNAME, &name) != ERROR_ok)
- {
- if (status == STATUS_TALKING) {
- printf("Client \"%u\" starts talking.\n", clientID);
- }
- else {
- printf("Client \"%u\" stops talking.\n", clientID);
- }
- return;
- }
- if(status == STATUS_TALKING) {
- printf("Client \"%s\" starts talking.\n", name);
- } else {
- printf("Client \"%s\" stops talking.\n", name);
- }
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-/*
- * This event is called when another client starts whispering to own client. Own client can decide to accept or deny
- * receiving the whisper by adding the sending client to the whisper allow list. If not added, whispering is blocked.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the whispering client
- */
-void onIgnoredWhisperEvent(uint64 serverConnectionHandlerID, anyID clientID) {
- unsigned int error;
-
- /* Add sending client to whisper allow list so own client will hear the voice data.
- * It is sufficient to add a clientID only once, not everytime this event is called. However it won't
- * hurt to add the same clientID to the allow list repeatedly, but is is not necessary. */
- if((error = ts3client_allowWhispersFrom(serverConnectionHandlerID, clientID)) != ERROR_ok) {
- printf("Error setting client on whisper allow list: %u\n", error);
- }
- printf("Added client %d to whisper allow list\n", clientID);
-}
-
-void onServerErrorEvent(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, const char* extraMessage) {
- printf("Error for server %llu: %s (%u) %s\n", (unsigned long long)serverConnectionHandlerID, errorMessage, error, extraMessage);
-}
-
-/*
- * Callback for user-defined logging.
- *
- * Parameter:
- * logMessage - Log message text
- * logLevel - Severity of log message
- * logChannel - Custom text to categorize the message channel
- * logID - Virtual server ID giving the virtual server source of the log event
- * logTime - String with the date and time the log entry occured
- * completeLogString - Verbose log message including all previous parameters for convinience
- */
-void onUserLoggingMessageEvent(const char* logMessage, int logLevel, const char* logChannel, uint64 logID, const char* logTime, const char* completeLogString) {
- /* Your custom error display here... */
- /* printf("LOG: %s\n", completeLogString); */
- if(logLevel == LogLevel_CRITICAL) {
- exit(1); /* Your custom handling of critical errors */
- }
-}
-
-/*
- * Callback allowing to apply custom encryption to outgoing packets.
- * Using this function is optional. Do not implement if you want to handle the TeamSpeak SDK encryption.
- *
- * Parameters:
- * dataToSend - Pointer to an array with the outgoing data to be encrypted
- * sizeOfData - Pointer to an integer value containing the size of the data array
- *
- * Apply your custom encryption to the data array. If the encrypted data is smaller than sizeOfData, write
- * your encrypted data into the existing memory of dataToSend. If your encrypted data is larger, you need
- * to allocate memory and redirect the pointer dataToSend. You need to take care of freeing your own allocated
- * memory yourself. The memory allocated by the SDK, to which dataToSend is originally pointing to, must not
- * be freed.
- *
- */
-void onCustomPacketEncryptEvent(char** dataToSend, unsigned int* sizeOfData) {
-#ifdef USE_CUSTOM_ENCRYPTION
- unsigned int i;
- for(i = 0; i < *sizeOfData; i++) {
- (*dataToSend)[i] ^= CUSTOM_CRYPT_KEY;
- }
-#endif
-}
-
-/*
- * Callback allowing to apply custom encryption to incoming packets
- * Using this function is optional. Do not implement if you want to handle the TeamSpeak SDK encryption.
- *
- * Parameters:
- * dataToSend - Pointer to an array with the received data to be decrypted
- * sizeOfData - Pointer to an integer value containing the size of the data array
- *
- * Apply your custom decryption to the data array. If the decrypted data is smaller than dataReceivedSize, write
- * your decrypted data into the existing memory of dataReceived. If your decrypted data is larger, you need
- * to allocate memory and redirect the pointer dataReceived. You need to take care of freeing your own allocated
- * memory yourself. The memory allocated by the SDK, to which dataReceived is originally pointing to, must not
- * be freed.
- */
-void onCustomPacketDecryptEvent(char** dataReceived, unsigned int* dataReceivedSize) {
-#ifdef USE_CUSTOM_ENCRYPTION
- unsigned int i;
- for(i = 0; i < *dataReceivedSize; i++) {
- (*dataReceived)[i] ^= CUSTOM_CRYPT_KEY;
- }
-#endif
-}
-
-/*
- * Callback allowing access to voice data after it has been mixed by TeamSpeak
- * This event can be used to alter/add to the voice data being played by TeamSpeak.
- * But here we use it to record the voice data to a wave file.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * samples - Pointer to a buffer containg 16 bit voice data samples at 48000 Hz. Channels are interleaved.
- * sampleCount - The number of samples 1 channel of sample data contains.
- * channels - The number of channels the sample data contains.
- * channelSpeakerArray - A bitmask of the speakers for each channel.
- * channelFillMask - A bitmask of channels that actually have valid data.
- *
- * -The size of the data "samples" points to is: sizeof(short)*sampleCount*channels
- * -channelSpeakerArray uses SPEAKER_ defined in public_definitions.h
- * -In the interrest of optimizations, a channel only contains data, if there is sound data for it. For example:
- * in 5.1 or 7.1 we (almost) never have data for the subwoofer. Teamspeak then leaves the data in this channel
- * undefined. This is more efficient for mixing.
- * This implementation will record sound to a 2 channel (stereo) wave file. This sample assumes there is only
- * 1 connection to a server
- * Hint: Normally you would want to defer the writing to an other thread because this callback is very time sensitive
- */
-void onEditMixedPlaybackVoiceDataEvent(uint64 serverConnectionHandlerID, short* samples, int sampleCount, int channels, const unsigned int* channelSpeakerArray, unsigned int* channelFillMask){
- #define OUTPUTCHANNELS 2
- static FILE *pfile = NULL;
- static struct WaveHeader header = { {'R','I','F','F'}, 0, {'W','A','V','E'}, {'f','m','t',' '}, 16, 1, 2, 48000, 48000*(16/2)*2, (16/2)*2, 16, {'d','a','t','a'}, 0 };
-
- int currentSampleMix[OUTPUTCHANNELS]; /*a per channel/sample mix buffer*/
- int channelCount[OUTPUTCHANNELS] = {0,0}; /*how many input channels does the output channel contain */
-
- int currentInChannel;
- int currentOutChannel;
- int currentSample;
-
- /*for clipping*/
- short shortval;
- int intval;
-
- short* outputBuffer;
-
- int leftChannelMask = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_LEFT | SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_BACK_CENTER | SPEAKER_SIDE_LEFT | SPEAKER_TOP_CENTER | SPEAKER_TOP_FRONT_LEFT | SPEAKER_TOP_FRONT_CENTER | SPEAKER_TOP_BACK_LEFT | SPEAKER_TOP_BACK_CENTER;
- int rightChannelMask = SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_RIGHT | SPEAKER_FRONT_RIGHT_OF_CENTER | SPEAKER_BACK_CENTER | SPEAKER_SIDE_RIGHT | SPEAKER_TOP_CENTER | SPEAKER_TOP_FRONT_RIGHT | SPEAKER_TOP_FRONT_CENTER | SPEAKER_TOP_BACK_RIGHT | SPEAKER_TOP_BACK_CENTER;
-
- /*detect state changes*/
- if (recordSound && (pfile == NULL)){
- /*start recording*/
- header.len = 0;
- header.dataLen = 0;
- if((pfile = fopen("recordedvoices.wav", "wb")) == NULL) return;
- fwrite(&header, sizeof(struct WaveHeader), 1, pfile);
- } else if (!recordSound && (pfile != NULL)){
- /*stop recording*/
- header.len = sizeof(struct WaveHeader)+header.dataLen - 8;
- fseek (pfile, 0, SEEK_SET);
- fwrite(&header, sizeof(struct WaveHeader), 1, pfile);
- fclose(pfile);
- pfile = NULL;
- }
-
- /*if there is nothing to do, quit*/
- if (pfile == NULL || sampleCount == 0 || channels == 0) return;
-
- /* initialize channel mixing */
- currentInChannel = 0;
- /*loop over all possible speakers*/
- for (currentInChannel=0; currentInChannel < channels; ++currentInChannel) {
- /*if the speaker has actual data*/
- if ((*channelFillMask & (1<= SHRT_MAX) shortval = SHRT_MAX;
- else if (intval <= SHRT_MIN) shortval = SHRT_MIN;
- else shortval = (short) intval;
- /*store*/
- outputBuffer[ (currentSample*OUTPUTCHANNELS) + currentOutChannel] = shortval;
- }
- }
- }
-
- /*write data & update header */
- fwrite(outputBuffer, sampleCount*sizeof(short)*OUTPUTCHANNELS, 1, pfile);
- header.dataLen += sampleCount*sizeof(short)*OUTPUTCHANNELS;
-
- /*free buffer*/
- free(outputBuffer);
-}
-
-#ifdef CUSTOM_PASSWORDS
-/*
- * Called to encrypt channel and server passwords
- *
- * In this example, we do not do any encryption. That way we have clear
- * text passwords on the server.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID.
- * plaintext - the clear text password
- * encryptedText - pointer to a buffer to store the encrypted password
- * encryptedTextByteSize - the size of the encryptedText buffer
- */
-void onClientPasswordEncrypt(uint64 serverConnectionHandlerID, const char* plaintext, char* encryptedText, int encryptedTextByteSize){
- int pt_len;
-
- printf("onClientPasswordEncrypt called\n");
-
- pt_len = strlen(plaintext);
- if (encryptedTextByteSize < pt_len-1) pt_len = encryptedTextByteSize-1;
-
- memcpy(encryptedText, plaintext, pt_len);
- encryptedText[pt_len]=0;
-}
-#endif
-
-/*
- * Optional event to further adjust 3D sound. Usually this is not needed, setting 3D position of own and other clients as shown
- * setClient3DPosition is sufficient to configure 3D sound.
- */
-void onCustom3dRolloffCalculationClientEvent(uint64 serverConnectionHandlerID, anyID clientID, float distance, float* volume)
-{
- printf("onCustom3dRolloffCalculationClientEvent: clientID=%hu distance=%f volume=%f\n", clientID, distance, *volume);
-
- /* Volume can now be modified further to overwrite the value calculated by the SDK */
- /* *volume *= 10.0f; */
-}
-
-/*
- * Print all channels of the given virtual server
- */
-void showChannels(uint64 serverConnectionHandlerID) {
- uint64 *ids;
- int i;
- unsigned int error;
-
- printf("\nList of channels on virtual server %llu:\n", (unsigned long long)serverConnectionHandlerID);
- if((error = ts3client_getChannelList(serverConnectionHandlerID, &ids)) != ERROR_ok) { /* Get array of channel IDs */
- printf("Error getting channel list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No channels\n\n");
- ts3client_freeMemory(ids);
- return;
- }
- for(i=0; ids[i]; i++) {
- char* name;
- if((error = ts3client_getChannelVariableAsString(serverConnectionHandlerID, ids[i], CHANNEL_NAME, &name)) != ERROR_ok) { /* Query channel name */
- printf("Error getting channel name: %d\n", error);
- break;
- }
- printf("%llu - %s\n", (unsigned long long)ids[i], name);
- ts3client_freeMemory(name);
- }
- printf("\n");
-
- ts3client_freeMemory(ids); /* Release array */
-}
-
-/*
- * Print all clients on the given virtual server in the specified channel
- */
-void showChannelClients(uint64 serverConnectionHandlerID, uint64 channelID) {
- anyID* ids;
- anyID ownClientID;
- int i;
- unsigned int error;
-
- printf("\nList of clients in channel %llu on virtual server %llu:\n", (unsigned long long)channelID, (unsigned long long)serverConnectionHandlerID);
- if((error = ts3client_getChannelClientList(serverConnectionHandlerID, channelID, &ids)) != ERROR_ok) { /* Get array of client IDs */
- printf("Error getting client list for channel %llu: %d\n", (unsigned long long)channelID, error);
- return;
- }
- if(!ids[0]) {
- printf("No clients\n\n");
- ts3client_freeMemory(ids);
- return;
- }
-
- /* Get own clientID as we need to call CLIENT_FLAG_TALKING with getClientSelfVariable for own client */
- if((error = ts3client_getClientID(serverConnectionHandlerID, &ownClientID)) != ERROR_ok) {
- printf("Error querying own client ID: %d\n", error);
- return;
- }
-
- for(i=0; ids[i]; i++) {
- char* name;
- int talkStatus;
-
- if((error = ts3client_getClientVariableAsString(serverConnectionHandlerID, ids[i], CLIENT_NICKNAME, &name)) != ERROR_ok) { /* Query client nickname... */
- printf("Error querying client nickname: %d\n", error);
- break;
- }
-
- if(ids[i] == ownClientID) { /* CLIENT_FLAG_TALKING must be queried with getClientSelfVariable for own client */
- if((error = ts3client_getClientSelfVariableAsInt(serverConnectionHandlerID, CLIENT_FLAG_TALKING, &talkStatus)) != ERROR_ok) {
- printf("Error querying own client talk status: %d\n", error);
- break;
- }
- } else {
- if((error = ts3client_getClientVariableAsInt(serverConnectionHandlerID, ids[i], CLIENT_FLAG_TALKING, &talkStatus)) != ERROR_ok) {
- printf("Error querying client talk status: %d\n", error);
- break;
- }
- }
-
- printf("%u - %s (%stalking)\n", ids[i], name, (talkStatus == STATUS_TALKING ? "" : "not "));
- ts3client_freeMemory(name);
- }
- printf("\n");
-
- ts3client_freeMemory(ids); /* Release array */
-}
-
-/*
- * Print all visible clients on the given virtual server
- */
-void showClients(uint64 serverConnectionHandlerID) {
- anyID *ids;
- anyID ownClientID;
- int i;
- unsigned int error;
-
- printf("\nList of all visible clients on virtual server %llu:\n", (unsigned long long)serverConnectionHandlerID);
- if((error = ts3client_getClientList(serverConnectionHandlerID, &ids)) != ERROR_ok) { /* Get array of client IDs */
- printf("Error getting client list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No clients\n\n");
- ts3client_freeMemory(ids);
- return;
- }
-
- /* Get own clientID as we need to call CLIENT_FLAG_TALKING with getClientSelfVariable for own client */
- if((error = ts3client_getClientID(serverConnectionHandlerID, &ownClientID)) != ERROR_ok) {
- printf("Error querying own client ID: %d\n", error);
- return;
- }
-
- for(i=0; ids[i]; i++) {
- char* name;
- int talkStatus;
-
- if((error = ts3client_getClientVariableAsString(serverConnectionHandlerID, ids[i], CLIENT_NICKNAME, &name)) != ERROR_ok) { /* Query client nickname... */
- printf("Error querying client nickname: %d\n", error);
- break;
- }
-
- if(ids[i] == ownClientID) { /* CLIENT_FLAG_TALKING must be queried with getClientSelfVariable for own client */
- if((error = ts3client_getClientSelfVariableAsInt(serverConnectionHandlerID, CLIENT_FLAG_TALKING, &talkStatus)) != ERROR_ok) {
- printf("Error querying own client talk status: %d\n", error);
- break;
- }
- } else {
- if((error = ts3client_getClientVariableAsInt(serverConnectionHandlerID, ids[i], CLIENT_FLAG_TALKING, &talkStatus)) != ERROR_ok) {
- printf("Error querying client talk status: %d\n", error);
- break;
- }
- }
-
- printf("%u - %s (%stalking)\n", ids[i], name, (talkStatus == STATUS_TALKING ? "" : "not "));
- ts3client_freeMemory(name);
- }
- printf("\n");
-
- ts3client_freeMemory(ids); /* Release array */
-}
-
-void emptyInputBuffer() {
- int c;
- while((c = getchar()) != '\n' && c != EOF);
-}
-
-uint64 enterChannelID() {
- uint64 channelID;
- int n;
-
- printf("\nEnter channel ID: ");
- n = scanf("%llu", (unsigned long long*)&channelID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return 0;
- }
- return channelID;
-}
-
-void createDefaultChannelName(char *name) {
- static int i = 1;
- sprintf(name, "Channel_%d", i++);
-}
-
-void enterName(char *name) {
- char *s;
- printf("\nEnter name: ");
- fgets(name, NAME_BUFSIZE, stdin);
- s = strrchr(name, '\n');
- if(s) {
- *s = '\0';
- }
-}
-
-void enterPassword(char *password) {
- char *s;
- printf("\nEnter password: ");
- fgets(password, CHANNEL_PASSWORD_BUFSIZE, stdin);
- s = strrchr(password, '\n');
- if(s) {
- *s = '\0';
- }
-}
-
-void createChannel(uint64 serverConnectionHandlerID, const char *name, const char* password) {
- unsigned int error;
-
- /* Set data of new channel. Use channelID of 0 for creating channels. */
- CHECK_ERROR(ts3client_setChannelVariableAsString(serverConnectionHandlerID, 0, CHANNEL_NAME, name));
- CHECK_ERROR(ts3client_setChannelVariableAsString(serverConnectionHandlerID, 0, CHANNEL_TOPIC, "Test channel topic"));
- CHECK_ERROR(ts3client_setChannelVariableAsString(serverConnectionHandlerID, 0, CHANNEL_DESCRIPTION, "Test channel description"));
- CHECK_ERROR(ts3client_setChannelVariableAsInt (serverConnectionHandlerID, 0, CHANNEL_FLAG_PERMANENT, 1));
- CHECK_ERROR(ts3client_setChannelVariableAsInt (serverConnectionHandlerID, 0, CHANNEL_FLAG_SEMI_PERMANENT, 0));
- CHECK_ERROR(ts3client_setChannelVariableAsInt (serverConnectionHandlerID, 0, CHANNEL_CODEC_QUALITY, 10));
-
- if(password && *password){
- CHECK_ERROR(ts3client_setChannelVariableAsString(serverConnectionHandlerID, 0, CHANNEL_PASSWORD, password));
- }
-
- /* Flush changes to server */
- CHECK_ERROR(ts3client_flushChannelCreation(serverConnectionHandlerID, 0, NULL));
-
- printf("\nCreated channel\n\n");
- return;
-
-on_error:
- printf("\nError creating channel: %d\n\n", error);
-}
-
-void deleteChannel(uint64 serverConnectionHandlerID) {
- uint64 channelID;
- unsigned int error;
-
- /* Query channel ID from user */
- channelID = enterChannelID();
-
- /* Delete channel */
- if((error = ts3client_requestChannelDelete(serverConnectionHandlerID, channelID, 0, NULL)) == ERROR_ok) {
- printf("Deleted channel %llu\n\n", (unsigned long long)channelID);
- } else {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error requesting channel delete: %s (%d)\n\n", errormsg, error);
- ts3client_freeMemory(errormsg);
- }
- }
-}
-
-void renameChannel(uint64 serverConnectionHandlerID) {
- uint64 channelID;
- unsigned int error;
- char name[NAME_BUFSIZE];
-
- /* Query channel ID from user */
- channelID = enterChannelID();
-
- /* Query new channel name from user */
- enterName(name);
-
- /* Change channel name and flush changes */
- CHECK_ERROR(ts3client_setChannelVariableAsString(serverConnectionHandlerID, channelID, CHANNEL_NAME, name));
- CHECK_ERROR(ts3client_flushChannelUpdates(serverConnectionHandlerID, channelID, NULL));
-
- printf("Renamed channel %llu\n\n", (unsigned long long)channelID);
- return;
-
-on_error:
- printf("Error renaming channel: %d\n\n", error);
-}
-
-void switchChannel(uint64 serverConnectionHandlerID) {
- unsigned int error;
- char password[CHANNEL_PASSWORD_BUFSIZE];
-#ifndef CUSTOM_PASSWORDS
- int hasPassword;
-#endif
-
- /* Query channel ID from user */
- uint64 channelID = enterChannelID();
-
- /* Query own client ID */
- anyID clientID;
- if((error = ts3client_getClientID(serverConnectionHandlerID, &clientID)) != ERROR_ok) {
- printf("Error querying own client ID: %d\n", error);
- return;
- }
-
-#ifndef CUSTOM_PASSWORDS
- /* Using standard password mechanism */
-
- /* Check if channel has a password set */
- if((error = ts3client_getChannelVariableAsInt(serverConnectionHandlerID, channelID, CHANNEL_FLAG_PASSWORD, &hasPassword)) != ERROR_ok) {
- printf("Failed to get password flag: %d\n", error);
- return;
- }
-
- /* Get channel password if channel is password protected */
- if(hasPassword) {
- enterPassword(password);
- } else {
- password[0] = '\0';
- }
-#else
- /* Using custom password mechanism, always ask user for password */
- enterPassword(password);
-#endif
-
- /* Request moving own client into given channel */
- anyID ids_to_move[2];
- ids_to_move[0] = clientID;
- ids_to_move[1] = 0;
- if((error = ts3client_requestClientMove(serverConnectionHandlerID, ids_to_move, channelID, password, NULL)) != ERROR_ok) {
- printf("Error moving client into channel channel: %d\n", error);
- return;
- }
- printf("Switching into channel %llu\n\n", (unsigned long long)channelID);
-}
-
-void setVadMode(uint64 serverConnectionHandlerID)
-{
- int vad_mode, n;
- unsigned int error;
- char s[100];
- printf("Vad Mode:\n");
- printf("0 - likelihood based (default)\n");
- printf("1 - power based\n");
- printf("2 - likelihood and power based\n\n");
- printf("The Vad Level is tied to modes 2 and 3 - the modes using power.\n");
- printf("\nEnter VAD mode: ");
- n = scanf("%d", &vad_mode);
- emptyInputBuffer();
- if (n == 0) {
- printf("Invalid input. Please enter a number in the range 0 - 2.\n\n");
- return;
- }
-
- /* Adjust "vad_mode" preprocessor value */
- snprintf(s, 100, "%d", vad_mode);
- if ((error = ts3client_setPreProcessorConfigValue(serverConnectionHandlerID, "vad_mode", s)) != ERROR_ok) {
- printf("Error setting VAD mode: %d\n", error);
- return;
- }
- printf("\nSet VAD mode to %s.\n\n", s);
-}
-
-void toggleVAD(uint64 serverConnectionHandlerID) {
- static short b = 0;
- unsigned int error;
-
- /* Adjust "vad" preprocessor value */
- if((error = ts3client_setPreProcessorConfigValue(serverConnectionHandlerID, "vad", b ? "false" : "true")) != ERROR_ok) {
- printf("Error toggling VAD: %d\n", error);
- return;
- }
- b = !b;
- printf("\nToggled VAD %s.\n\n", b ? "on" : "off");
-}
-
-void setVadLevel(uint64 serverConnectionHandlerID) {
- int vad, n;
- unsigned int error;
- char s[100];
-
- printf("\nEnter VAD level: ");
- n = scanf("%d", &vad);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Adjust "voiceactivation_level" preprocessor value */
- snprintf(s, 100, "%d", vad);
- if((error = ts3client_setPreProcessorConfigValue(serverConnectionHandlerID, "voiceactivation_level", s)) != ERROR_ok) {
- printf("Error setting VAD level: %d\n", error);
- return;
- }
- printf("\nSet VAD level to %s.\n\n", s);
-}
-
-void toggleDenoise(uint64 serverConnectionHandlerID) {
- static short b = 1;
- unsigned int error;
-
- /* Adjust "vad" preprocessor value */
- if ((error = ts3client_setPreProcessorConfigValue(serverConnectionHandlerID, "denoise", b ? "false" : "true")) != ERROR_ok) {
- printf("Error toggling Denoiser: %d\n", error);
- return;
- }
- b = !b;
- printf("\nToggled Denoiser %s.\n\n", b ? "on" : "off");
-}
-
-void setDenoiserLevel(uint64 serverConnectionHandlerID) {
- int denoiser_level, n;
- unsigned int error;
- char s[100];
-
- printf("\nEnter Denoiser level: ");
- n = scanf("%d", &denoiser_level);
- emptyInputBuffer();
- if (n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Adjust "voiceactivation_level" preprocessor value */
- snprintf(s, 100, "%d", denoiser_level);
- if ((error = ts3client_setPreProcessorConfigValue(serverConnectionHandlerID, "denoiser_level", s)) != ERROR_ok) {
- printf("Error setting Denoiser level: %d\n", error);
- return;
- }
- printf("\nSet Denoiser level to %s.\n\n", s);
-}
-
-void toggleTypingSuppression(uint64 serverConnectionHandlerID) {
- static short b = 0;
- unsigned int error;
-
- /* Adjust "vad" preprocessor value */
- if ((error = ts3client_setPreProcessorConfigValue(serverConnectionHandlerID, "typing_suppression", b ? "false" : "true")) != ERROR_ok) {
- printf("Error toggling typing suppression: %d\n", error);
- return;
- }
- b = !b;
- printf("\nToggled typing suppression %s.\n\n", b ? "on" : "off");
-}
-
-void toggleAec(uint64 serverConnectionHandlerID)
-{
- static short b = 0;
- unsigned int error;
-
- /* Adjust "aec" preprocessor value */
- if ((error = ts3client_setPreProcessorConfigValue(serverConnectionHandlerID, "aec", b ? "false" : "true")) != ERROR_ok) {
- printf("Error toggling echo cancellation: %d\n", error);
- return;
- }
- b = !b;
- printf("\nToggled echo cancellation %s.\n\n", b ? "on" : "off");
-}
-
-void toggleAgc(uint64 serverConnectionHandlerID) {
- static short b = 1;
- unsigned int error;
-
- /* Adjust "agc" preprocessor value */
- if ((error = ts3client_setPlaybackConfigValue(serverConnectionHandlerID, "agc", b ? "false" : "true")) != ERROR_ok) {
- printf("Error toggling Automatic Gain Control (AGC): %d\n", error);
- return;
- }
- b = !b;
- printf("\nToggled Automatic Gain Control (AGC) %s.\n\n", b ? "on" : "off");
-}
-
-void toggleEchoReductionDucking(uint64 serverConnectionHandlerID) {
- int vad, n;
- unsigned int error;
- char s[100];
-
- printf("\nEnter Ducking level (dB): ");
- n = scanf("%d", &vad);
- emptyInputBuffer();
- if (n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Adjust "echo_reduction_ducking" preprocessor value */
- snprintf(s, 100, "%d", vad);
- if ((error = ts3client_setPlaybackConfigValue(serverConnectionHandlerID, "echo_reduction_ducking", s)) != ERROR_ok) {
- printf("Error setting echo_reduction_ducking level: %d\n", error);
- return;
- }
- printf("\nSet echo_reduction_ducking level to %s.\n\n", s);
-}
-
-void requestWhisperList(uint64 serverConnectionHandlerID) {
- int n;
- anyID clientID;
- uint64 targetID;
- unsigned int error;
- uint64 targetChannels[2];
-
- printf("\nEnter ID of the client whose whisper list should be modified (0 for own client): ");
- n = scanf("%hu", &clientID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- printf("\nEnter target channel ID: ");
- n = scanf("%llu", (unsigned long long*)&targetID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- targetChannels[0] = targetID;
- targetChannels[1] = 0;
-
- if((error = ts3client_requestClientSetWhisperList(serverConnectionHandlerID, clientID, targetChannels, NULL, NULL)) != ERROR_ok) {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error requesting whisperlist: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- return;
- }
- printf("Whisper list requested for client %d in channel %llu\n", clientID, (unsigned long long)targetID);
-}
-
-void requestClearWhisperList(uint64 serverConnectionHandlerID) {
- int n;
- anyID clientID;
- unsigned int error;
-
- printf("\nEnter ID of the client whose whisper list should be cleared (0 for own client): ");
- n = scanf("%hu", &clientID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- if((error = ts3client_requestClientSetWhisperList(serverConnectionHandlerID, clientID, NULL, NULL, NULL)) != ERROR_ok) {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error clearing whisperlist: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- return;
- }
- printf("Whisper list cleared for client %u\n", clientID);
-}
-
-void setClient3DPosition(uint64 serverConnectionHandlerID)
-{
- int i, n;
- anyID clientID;
- float pos[3];
- TS3_VECTOR position = { 0 };
- char* txt[] = { "x", "y", "z" };
-
- /* Query ID of client whose 3D position we want to change */
- printf("\nEnter ID of the client whose 3D position should be changed (0 for own client): ");
- n = scanf("%hu", &clientID);
- emptyInputBuffer();
- if(n == 0)
- {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Query 3D position */
- for(i = 0; i < 3; ++i)
- {
- printf("Enter %s coordinate: ", txt[i]);
- n = scanf("%f", &pos[i]);
- emptyInputBuffer();
- if(n == 0)
- {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
- }
- position.x = pos[0];
- position.y = pos[1];
- position.z = pos[2];
-
- if(clientID == 0)
- {
- /* Own client */
- TS3_VECTOR zero = { 0 };
- unsigned int error = ts3client_systemset3DListenerAttributes(serverConnectionHandlerID, &position, &zero, &zero);
- if(error != ERROR_ok)
- {
- printf("Failed to set 3D position for own client: %d\n", error);
- return;
- }
- printf("Set 3D position for own client to %f, %f, %f\n", position.x, position.y, position.z);
- }
- else
- {
- /* Other client */
- unsigned int error = ts3client_channelset3DAttributes(serverConnectionHandlerID, clientID, &position);
- if(error != ERROR_ok)
- {
- printf("Failed to set 3D position for other client: %d\n", error);
- return;
- }
- printf("Set 3D position for client %hu to %f, %f, %f\n", clientID, position.x, position.y, position.z);
- }
-}
-
-int initLocalTestMode() {
- unsigned int error;
-
- /* spawn a new server connection handler used as local loopback device */
- if((error = ts3client_spawnNewServerConnectionHandler(0, &vadTestscHandlerID)) != ERROR_ok) {
- printf("Error spawning server connection handler: %d\n", error);
- vadTestscHandlerID = 0;
- return 1;
- }
-
- /* Open default capture device for the new server connection handler */
- if((error = ts3client_openCaptureDevice(vadTestscHandlerID, "", "")) != ERROR_ok) {
- printf("Error opening capture device: %d\n", error);
- return 1;
- }
-
- /* Open default playback device for the new server connection handler */
- if((error = ts3client_openPlaybackDevice(vadTestscHandlerID, "", "")) != ERROR_ok) {
- printf("Error opening playback device: %d\n", error);
- return 1;
- }
-
- /* Set the server connection handler as a local loopback device, so we can hear our own voice without connecting to a server. */
- /* The original capture device for the current server is automatically deactivated. */
- if((error = ts3client_setLocalTestMode(vadTestscHandlerID, 1)) != ERROR_ok){
- printf("Error setting local test mode\n");
- return 1;
- }
-
- return 0;
-}
-
-void destroyLocalTestMode(uint64 scHandlerID){
- unsigned int error;
-
- /* Close playback device */
- if((ts3client_closePlaybackDevice(scHandlerID)) != ERROR_ok){
- printf("Unable to close playback device\n");
- }
- /* Close capture device */
- if((ts3client_closeCaptureDevice(scHandlerID)) != ERROR_ok) {
- printf("Unable to close capture device\n");
- }
- /* Unset local test mode */
- if((error = ts3client_setLocalTestMode(scHandlerID, 0)) != ERROR_ok) {
- printf("Unable to stop local test mode\n");
- }
- /* Destroy schandlerid */
- if((error = ts3client_destroyServerConnectionHandler(scHandlerID)) != ERROR_ok){
- printf("Unable to destroy scHandler\n");
- }
-
- /* After closing the local loopback device, reactivate the microphone on our current server connection. */
- if((error = ts3client_activateCaptureDevice(DEFAULT_VIRTUAL_SERVER)) != ERROR_ok){
- printf("unable to reactivate capture device\n");
- }
-}
-
-void printVadLevel() {
- unsigned int error;
- float result;
-
- if((error = ts3client_getPreProcessorInfoValueFloat(vadTestscHandlerID, "decibel_last_period", &result)) != ERROR_ok) {
- printf("Error getting vad level\n");
- }
- printf("%.2f - %s", result, (vadTestTalkStatus == STATUS_TALKING ? "talking" : "not talking"));
- printf("\n");
-}
-
-/* Set the microphone voice activation detection level */
-void configureMicrophone() {
- unsigned int error;
- int counter = 0;
-
- /* Enable local loopback device */
- if(initLocalTestMode() != 0) {
- return;
- }
-
- /* Local loopback device is setup, now enter loop where the user can change the voice activation level while once per second the
- * current volume level is printed. */
- printf("\n**********************************\n");
- printf("Entering configure microphone mode\n");
- printf("[v] - set VAD level\n");
- printf("[q] - quit microphone configuration\n\n");
-
- for(;;) {
-#ifdef _WIN32
- if(_kbhit()) {
- int c = _getche();
-#else
- { int c = getc(stdin); // No kbhit on posix
-#endif
- switch(c) {
- case 'v': {
- int n;
- float inputVadLevel;
- char vad[128];
-
- printf("Insert value to change voice activations level\n");
- n = scanf("%f", &inputVadLevel);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- continue;
- }
- sprintf(vad, "%f", inputVadLevel);
-
- if((error = ts3client_setPreProcessorConfigValue(vadTestscHandlerID, "voiceactivation_level", vad)) != ERROR_ok) {
- printf("unable to set vad value\n");
- continue;
- }
- printf("new vad level: %s\n", vad);
- continue;
- }
- case 'q':
- destroyLocalTestMode(vadTestscHandlerID);
- printf("\n**********************************\n");
- printf("Left configure microphone mode\n\n");
- vadTestscHandlerID = 0;
- return;
- }
- }
-
-#ifdef _WIN32 /* On Windows we print this once per second, on Unix only on each Return keyboard input due to lack of easy kbhit replacement on Unix */
- if(++counter > 9)
-#endif
- {
- printVadLevel();
- counter = 0;
- }
-
- SLEEP(100);
- }
-}
-
-void toggleRecordSound(uint64 serverConnectionHandlerID){
- unsigned int error;
-
- if (!recordSound){
- recordSound = 1;
- if((error = ts3client_startVoiceRecording(serverConnectionHandlerID)) != ERROR_ok){
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error notifying server of startVoiceRecording: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- return;
- }
- }
- printf("Started recording sound to wav\n");
- } else {
- recordSound = 0;
- if((error = ts3client_stopVoiceRecording(serverConnectionHandlerID)) != ERROR_ok){
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error notifying server of stopVoiceRecording: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- return;
- }
- }
- printf("Stopped recording sound to wav\n");
- }
-}
-
-unsigned int printMyConnectionInfo(uint64 serverConnectionHandlerID) {
- anyID my_id;
- unsigned int error = ts3client_getClientID(serverConnectionHandlerID, &my_id);
- if (error != ERROR_ok) {
- return error;
- }
-
- double pingResult;
- if ((error = ts3client_getConnectionVariableAsDouble(serverConnectionHandlerID, my_id, CONNECTION_PING, &pingResult)) == ERROR_ok) {
- double deviationResult;
- if ((error = ts3client_getConnectionVariableAsDouble(serverConnectionHandlerID, my_id, CONNECTION_PING_DEVIATION, &deviationResult)) == ERROR_ok) {
- printf("Ping: %f ms +/- %f\n", pingResult, deviationResult);
- }
- }
-
- double loss;
- if ((error = ts3client_getConnectionVariableAsDouble(serverConnectionHandlerID, my_id, CONNECTION_SERVER2CLIENT_PACKETLOSS_TOTAL, &loss)) == ERROR_ok) {
- printf("Server to client packet loss (total): %f\n", loss);
- }
-
- return error;
-}
-
-int readIdentity(char* identity) {
- FILE *file;
-
- if((file = fopen("identity.txt", "r")) == NULL) {
- printf("Could not open file 'identity.txt' for reading.\n");
- return -1;
- }
-
- fgets(identity, IDENTITY_BUFSIZE, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error reading identity from file 'identity.txt'.\n");
- return -1;
- }
- fclose (file);
- return 0;
-}
-
-int writeIdentity(const char* identity) {
- FILE *file;
-
- if((file = fopen("identity.txt", "w")) == NULL) {
- printf("Could not open file 'identity.txt' for writing.\n");
- return -1;
- }
-
- fputs(identity, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error writing identity to file 'identity.txt'.\n");
- return -1;
- }
- fclose (file);
- return 0;
-}
-
-void showHelp() {
- printf("\n[q] - Disconnect from server\n[h] - Show this help\n[c] - Show channels\n[s] - Switch to specified channel\n");
- printf("[l] - Show all visible clients\n[L] - Show all clients in specific channel\n[n] - Create new channel with generated name\n[N] - Create new channel with custom name\n");
- printf("[d] - Delete channel\n[r] - Rename channel\n[R] - Record sound to wav\n[v] - Toggle Voice Activity Detection / Continuous transmission \n[M] - Set Voice Activity Detection Mode\n[V] - Set Voice Activity Detection level\n");
- printf("[b] - Toggle Denoiser\n[B] - Set Denoiser Level\n[t] - Toggle Typing Suppression\n[e] - Toggle Echo Reduction\n[a] - Toggle Echo Cancellation\n[A] - Toggle AGC\n");
- printf("[w] - Set whisper list\n[W] - Clear whisper list\n[m] - Configure microphone\n[3] - Set 3D position of client\n[i] - Connection info\n\n");
-}
-
-char* programPath(char* programInvocation){
- char* path;
- char* end;
- int length;
- char pathsep;
-
- if (programInvocation == NULL) return strdup("");
-
-#ifdef _WIN32
- pathsep = '\\';
-#else
- pathsep = '/';
-#endif
-
- end = strrchr(programInvocation, pathsep);
- if (!end) return strdup("");
-
- length = (end - programInvocation) + 2;
- path = (char*)malloc(length);
- strncpy(path, programInvocation, length - 1);
- path[length - 1] = '\0';
-
- return path;
-}
-
-struct ConnectInfo {
- char* ip;
- unsigned short port;
-};
-
-int main(int argc, char* argv[]) {
- uint64 scHandlerID;
- unsigned int error;
- char* mode;
- char** device;
- char *version;
- char identity[IDENTITY_BUFSIZE];
- short abort = 0;
- char* path;
-
- /* Check for commandline parameters */
- struct ConnectInfo connect_info;
- if (argc == 3) {
- size_t sz = strlen(argv[1]) + 1;
- connect_info.ip = (char*)malloc(sz * sizeof(char));
- strcpy(connect_info.ip, argv[1]);
- connect_info.ip[sz - 1] = '\0';
- connect_info.port = atoi(argv[2]);
- } else {
- /* No commandline parameters given, use default ip "localhost" and port 9987 */
- const char* default_ip = "localhost";
- size_t sz = strlen(default_ip) + 1;
- connect_info.ip = (char*)malloc(sz * sizeof(char));
- strcpy(connect_info.ip, default_ip);
- connect_info.port = 9987;
- }
-
- /* Create struct for callback function pointers */
- struct ClientUIFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ClientUIFunctions));
-
- /* Callback function pointers */
- /* It is sufficient to only assign those callback functions you are using. When adding more callbacks, add those function pointers here. */
- funcs.onConnectStatusChangeEvent = onConnectStatusChangeEvent;
- funcs.onNewChannelEvent = onNewChannelEvent;
- funcs.onNewChannelCreatedEvent = onNewChannelCreatedEvent;
- funcs.onDelChannelEvent = onDelChannelEvent;
- funcs.onClientMoveEvent = onClientMoveEvent;
- funcs.onClientMoveSubscriptionEvent = onClientMoveSubscriptionEvent;
- funcs.onClientMoveTimeoutEvent = onClientMoveTimeoutEvent;
- funcs.onTalkStatusChangeEvent = onTalkStatusChangeEvent;
- funcs.onIgnoredWhisperEvent = onIgnoredWhisperEvent;
- funcs.onServerErrorEvent = onServerErrorEvent;
- funcs.onUserLoggingMessageEvent = onUserLoggingMessageEvent;
- funcs.onCustomPacketEncryptEvent = onCustomPacketEncryptEvent;
- funcs.onCustomPacketDecryptEvent = onCustomPacketDecryptEvent;
- funcs.onEditMixedPlaybackVoiceDataEvent = onEditMixedPlaybackVoiceDataEvent;
-#ifdef CUSTOM_PASSWORDS
- funcs.onClientPasswordEncrypt = onClientPasswordEncrypt;
-#endif
- funcs.onCustom3dRolloffCalculationClientEvent = onCustom3dRolloffCalculationClientEvent;
-
- /* Initialize client lib with callbacks */
- /* Resource path points to the SDK\bin directory to locate the soundbackends folder when running from Visual Studio. */
- /* If you want to run directly from the SDK\bin directory, use an empty string instead to locate the soundbackends folder in the current directory. */
- path = programPath(argv[0]);
- error = ts3client_initClientLib(&funcs, NULL, LogType_FILE | LogType_CONSOLE | LogType_USERLOGGING, NULL, path);
- free(path);
- path = NULL;
- if (error != ERROR_ok) {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initializing clientlib: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* Spawn a new server connection handler using the default port and store the server ID */
- if((error = ts3client_spawnNewServerConnectionHandler(0, &scHandlerID)) != ERROR_ok) {
- printf("Error spawning server connection handler: %d\n", error);
- return 1;
- }
-
- /* Get default capture mode */
- if((error = ts3client_getDefaultCaptureMode(&mode)) != ERROR_ok) {
- printf("Error getting default capture mode: %d\n", error);
- return 1;
- }
- printf("Default capture mode: %s\n", mode);
-
- /* Get default capture device */
- if((error = ts3client_getDefaultCaptureDevice(mode, &device)) != ERROR_ok) {
- printf("Error getting default capture device: %d\n", error);
- return 1;
- }
- printf("Default capture device: %s %s\n", device[0], device[1]);
-
- /* Open default capture device */
- /* Instead of passing mode and device[1], it would also be possible to pass empty strings to open the default device */
- if((error = ts3client_openCaptureDevice(scHandlerID, mode, device[1])) != ERROR_ok) {
- printf("Error opening capture device: %d\n", error);
- }
-
- /* Adjust "vad" preprocessor value to use vad by default */
- if ((error = ts3client_setPreProcessorConfigValue(scHandlerID, "vad", "true")) != ERROR_ok) {
- printf("Error toggling VAD: %d\n", error);
- return 1;
- }
-
- /* Adjust "vad_mode" value to use hybrid by default */
- if ((error = ts3client_setPreProcessorConfigValue(scHandlerID, "vad_mode", "2")) != ERROR_ok) {
- printf("Error setting vad_mode value to hybrid: %d\n", error);
- return 1;
- }
-
- /* Adjust "voiceactivation_level" value */
- if ((error = ts3client_setPreProcessorConfigValue(scHandlerID, "voiceactivation_level", "-20")) != ERROR_ok) {
- printf("Error setting voiceactivation_level: %d\n", error);
- return 1;
- }
-
- /* Get default playback mode */
- if((error = ts3client_getDefaultPlayBackMode(&mode)) != ERROR_ok) {
- printf("Error getting default playback mode: %d\n", error);
- return 1;
- }
- printf("Default playback mode: %s\n", mode);
-
- /* Get default playback device */
- if((error = ts3client_getDefaultPlaybackDevice(mode, &device)) != ERROR_ok) {
- printf("Error getting default playback device: %d\n", error);
- return 1;
- }
- printf("Default playback device: %s %s\n", device[0], device[1]);
-
- /* Open default playback device */
- /* Instead of passing mode and device[1], it would also be possible to pass empty strings to open the default device */
- if((error = ts3client_openPlaybackDevice(scHandlerID, mode, device[1])) != ERROR_ok) {
- printf("Error opening playback device: %d\n", error);
- }
-
- /* Try reading identity from file, otherwise create new identity */
- if(readIdentity(identity) != 0) {
- char* id;
- if((error = ts3client_createIdentity(&id)) != ERROR_ok) {
- printf("Error creating identity: %d\n", error);
- return 0;
- }
- if(strlen(id) >= IDENTITY_BUFSIZE) {
- printf("Not enough bufsize for identity string\n");
- return 0;
- }
- strcpy(identity, id);
- ts3client_freeMemory(id);
- writeIdentity(identity);
- }
- printf("Using identity: %s\n", identity);
-
- printf("Connecting to %s:%d\n", connect_info.ip, connect_info.port);
- /* Connect to server on localhost:9987 with nickname "client", no default channel, no default channel password and server password "secret" */
- error = ts3client_startConnection(scHandlerID, identity, connect_info.ip, connect_info.port, "client", NULL, "", "secret");
- free(connect_info.ip);
- connect_info.ip = NULL;
- if (error != ERROR_ok) {
- printf("Error connecting to server: %d\n", error);
- return 1;
- }
-
- printf("Client lib initialized and running\n");
-
- /* Query and print client lib version */
- if((error = ts3client_getClientLibVersion(&version)) != ERROR_ok) {
- printf("Failed to get clientlib version: %d\n", error);
- return 1;
- }
- printf("Client lib version: %s\n", version);
- ts3client_freeMemory(version); /* Release dynamically allocated memory */
- version = NULL;
-
- SLEEP(300);
-
- /* Simple commandline interface */
- printf("\nTeamSpeak 3 client commandline interface\n");
- showHelp();
-
- while(!abort) {
- int c = getc(stdin);
- switch(c) {
- case 'q':
- printf("\nDisconnecting from server...\n");
- abort = 1;
- break;
- case 'h':
- showHelp();
- break;
- case 'c':
- showChannels(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'l':
- showClients(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'L':
- {
- uint64 channelID = enterChannelID();
- if(channelID > 0)
- showChannelClients(DEFAULT_VIRTUAL_SERVER, channelID);
- break;
- }
- case 'n':
- {
- char name[NAME_BUFSIZE];
- createDefaultChannelName(name);
- createChannel(DEFAULT_VIRTUAL_SERVER, name, NULL);
- break;
- }
- case 'N':
- {
- char name[NAME_BUFSIZE];
- char password[CHANNEL_PASSWORD_BUFSIZE];
- emptyInputBuffer();
- enterName(name);
- enterPassword(password);
- createChannel(DEFAULT_VIRTUAL_SERVER, name, password);
- break;
- }
- case 'd':
- deleteChannel(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'r':
- renameChannel(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'R':
- toggleRecordSound(DEFAULT_VIRTUAL_SERVER);
- break;
- case 's':
- switchChannel(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'v':
- toggleVAD(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'V':
- setVadLevel(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'M':
- setVadMode(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'b':
- toggleDenoise(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'B':
- setDenoiserLevel(DEFAULT_VIRTUAL_SERVER);
- break;
- case 't':
- toggleTypingSuppression(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'e':
- toggleEchoReductionDucking(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'a':
- toggleAec(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'A':
- toggleAgc(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'w':
- requestWhisperList(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'W':
- requestClearWhisperList(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'm':
- configureMicrophone();
- showHelp(); /* Display main menu after leaving configure microphone mode */
- break;
- case '3':
- setClient3DPosition(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'i':
- printMyConnectionInfo(scHandlerID);
- break;
- }
-
- SLEEP(50);
- }
-
- /* Disconnect from server. ERROR_not_connected just means the peer is already
- gone (e.g. the server was shut down) - nothing to do, so move on. */
- if((error = ts3client_stopConnection(scHandlerID, "leaving")) != ERROR_ok && error != ERROR_not_connected)
- printf("Error stopping connection: %d\n", error);
-
- SLEEP(200);
-
- /* Destroy server connection handler */
- if((error = ts3client_destroyServerConnectionHandler(scHandlerID)) != ERROR_ok)
- printf("Error destroying server connection handler: %d\n", error);
-
- /* Shutdown client lib */
- if((error = ts3client_destroyClientLib()) != ERROR_ok)
- printf("Failed to destroy clientlib: %d\n", error);
-
- /* This is a small hack, to close an open recording sound file */
- recordSound = 0;
- onEditMixedPlaybackVoiceDataEvent(DEFAULT_VIRTUAL_SERVER, NULL, 0, 0, NULL, NULL);
-
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/client/sources.cmake
deleted file mode 100644
index 68c919e..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client/sources.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/connection_handler.cpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/connection_handler.cpp
deleted file mode 100644
index 1c8dde8..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/connection_handler.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-#include "connection_handler.hpp"
-
-#include "ts_client.hpp"
-
-namespace com::teamspeak
-{
- /* We'll be using the create() function instead */
- Connection_Handler::Connection_Handler(uint64_t connection_id)
- : _connection_id(connection_id)
- {}
-
- Connection_Handler::~Connection_Handler()
- {
- if (auto error = ts3client_destroyServerConnectionHandler(_connection_id); error != ERROR_ok)
- print_error(error, "Error destroying connection", _connection_id);
- }
-
- /*static*/ std::unique_ptr Connection_Handler::create()
- {
- auto connection_id = uint64_t{ 0 };
- if (auto error = ts3client_spawnNewServerConnectionHandler(0, &connection_id); error != ERROR_ok)
- {
- print_error(error, "Error spawning server connection handler", 0);
- return {};
- }
- return std::make_unique(connection_id);
- }
-
- uint32_t Connection_Handler::connect()
- {
- /* Connect to server on localhost:9987 with nickname "client", no default channel, no default channel password and server password "secret" */
- if (auto error = ts3client_startConnection(
- _connection_id,
- _connection_data.identity.c_str(),
- _connection_data.address.c_str(),
- _connection_data.port,
- _connection_data.nick.c_str(),
- nullptr,
- "",
- _connection_data.pw.c_str());
- error != ERROR_ok)
- {
- print_error(error, "Error connecting to server", _connection_id);
- return error;
- }
- return ERROR_ok;
- }
-
- uint32_t Connection_Handler::disconnect(std::string_view reason)
- {
- if (auto error = ts3client_stopConnection(_connection_id, reason.data()); error != ERROR_ok)
- {
- printf("Error stopping connection: %d\n", error);
- return error;
- }
- return ERROR_ok;
- }
-
- void Connection_Handler::on_connect_status_change(ConnectStatus status, uint32_t error)
- {
- if (TS_Client::_do_autoreconnect && ConnectStatus::STATUS_DISCONNECTED == status)
- {
- // TODO: maybe should be timer-delayed?
- connect();
- }
- }
-
- uint32_t Connection_Handler::open_audio(Audio_IO audio_io, std::string_view mode, std::string_view device_id)
- {
- if (Audio_IO::Capture == audio_io)
- {
- if (auto error = ts3client_openPlaybackDevice(_connection_id, mode.data(), device_id.data()); error != ERROR_ok)
- {
- print_error(error, "Error opening playback device.", _connection_id);
- return error;
- }
- }
- else if (Audio_IO::Playback == audio_io)
- {
- if (auto error = ts3client_openCaptureDevice(_connection_id, mode.data(), device_id.data()); error != ERROR_ok)
- {
- print_error(error, "Error opening capture device.", _connection_id);
- return error;
- }
-
- // Turn off any DSP, except a very low power based Voice Activity Detection
-
- /* Adjust "vad_mode" value to use power */
- print_error(
- ts3client_setPreProcessorConfigValue(_connection_id, "vad_mode", "1"),
- "Error setting vad_mode value to hybrid.", _connection_id);
-
- /* Adjust "voiceactivation_level" value */
- print_error(
- ts3client_setPreProcessorConfigValue(_connection_id, "voiceactivation_level", "-50"),
- "Error setting voiceactivation_level.", _connection_id);
-
- /* turn on vad */
- print_error(
- ts3client_setPreProcessorConfigValue(_connection_id, "vad", "true"),
- "Couldn't turn on VAD.", _connection_id);
-
- // TODO: Turn off denoiser etc. no matter the default value
- }
- return ERROR_ok;
- }
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/connection_handler.hpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/connection_handler.hpp
deleted file mode 100644
index 1bb8a62..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/connection_handler.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-#pragma once
-
-#include "helpers.hpp"
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-namespace com::teamspeak
-{
-class Connection_Handler
-{
-public:
- /* We'll be using the create() function instead */
- Connection_Handler(uint64_t connection_id);
- Connection_Handler() = delete;
- ~Connection_Handler();
-
- static std::unique_ptr create();
-
- uint32_t connect();
- uint32_t disconnect(std::string_view reason = "leaving");
-
- uint32_t open_audio(Audio_IO audio_io, std::string_view mode, std::string_view device_id);
-
- void on_connect_status_change(ConnectStatus status, uint32_t error);
-
- struct Connection_Data
- {
- std::string address = "";
- uint16_t port = 9987;
- std::string nick = "";
- std::string identity = "";
- std::string pw = "";
- };
- Connection_Data _connection_data;
- const uint64_t _connection_id;
-};
-
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/custom_device.cpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/custom_device.cpp
deleted file mode 100644
index 6b2a703..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/custom_device.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "custom_device.hpp"
-
-#include "helpers.hpp"
-
-#include
-#include
-
-namespace com::teamspeak
-{
- Custom_Device::Custom_Device(uint32_t& error)
- {
- error = ts3client_registerCustomDevice(custom_device, custom_device, 48000, 1, 48000, 1);
- if (error != ERROR_ok)
- {
- print_error(error, "Error creating custom device.", 0);
- }
- }
-
- Custom_Device::~Custom_Device()
- {
- /* Unregister the custom device. This automatically closes the device.*/
- if (auto error = ts3client_unregisterCustomDevice(custom_device); error != ERROR_ok)
- {
- printf("Error unregistering custom device: %d\n", error);
- }
- }
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/custom_device.hpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/custom_device.hpp
deleted file mode 100644
index a541717..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/custom_device.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#pragma once
-
-#include
-
-namespace com::teamspeak
-{
- class Custom_Device
- {
- public:
- Custom_Device(uint32_t& error);
- ~Custom_Device();
-
- static constexpr const char* custom_mode = "custom";
- static constexpr const char* custom_device = "loopback";
- };
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/helpers.cpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/helpers.cpp
deleted file mode 100644
index a1b07b0..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/helpers.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "helpers.hpp"
-
-#include
-#include
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-
-namespace com::teamspeak {
- void print_error(uint32_t error, const std::string& msg, uint64_t connection_id)
- {
- if (error == ERROR_ok)
- return;
-
- char* errormsg = nullptr;
- if (ts3client_getErrorMessage(error, &errormsg) == ERROR_ok)
- {
- auto error_msg = msg + " " + std::string(errormsg);
- ts3client_freeMemory(errormsg);
- ts3client_logMessage(error_msg.c_str(), LogLevel_ERROR, "", connection_id);
- return;
- }
- ts3client_logMessage(msg.c_str(), LogLevel_ERROR, "", connection_id);
- }
-
- auto create_identity() -> std::string
- {
- /* Create a new client identity */
- /* In your real application you should do this only once, store the assigned identity locally and then reuse it. */
- auto result = std::string();
- char* identity = nullptr;
- if (auto error = ts3client_createIdentity(&identity); error != ERROR_ok)
- {
- print_error(error, "Error creating identity", 0);
- }
- else
- {
- result = std::string(identity);
- ts3client_freeMemory(identity); /* Release dynamically allocated memory */
- identity = nullptr;
- }
- return result;
- }
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/helpers.hpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/helpers.hpp
deleted file mode 100644
index f18d87c..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/helpers.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#include
-#include
-
-namespace com::teamspeak {
-
-enum Audio_IO : uint8_t
-{
- Playback = 0,
- Capture
-};
-
-void print_error(uint32_t error, const std::string& msg, uint64_t connection_id = 0);
-auto create_identity()->std::string;
-
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/main.cpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/main.cpp
deleted file mode 100644
index e868f85..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/main.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * TeamSpeak SDK client repeater sample
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-
-#include "custom_device.hpp"
-#include "helpers.hpp"
-#include "ts_client.hpp"
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-#ifdef _WIN32
-#define SLEEP(x) Sleep(x)
-#define strdup(x) _strdup(x)
-#else
-#define SLEEP(x) usleep(x*1000)
-#endif
-
-struct Opts {
- std::string from_ip = "";
- uint16_t from_port = 0;
- std::string to_ip = "";
- uint16_t to_port = 0;
-};
-
-namespace {
- char* programPath(char* programInvocation)
- {
- char* path;
- char* end;
- int length;
- char pathsep;
-
- if (programInvocation == NULL) return strdup("");
-
-#ifdef _WIN32
- pathsep = '\\';
-#else
- pathsep = '/';
-#endif
-
- end = strrchr(programInvocation, pathsep);
- if (!end) return strdup("");
-
- length = (end - programInvocation) + 2;
- path = (char*)malloc(length);
- strncpy(path, programInvocation, length - 1);
- path[length - 1] = 0;
-
- return path;
- }
-
- void print_usage()
- {
- std::cout << "usage: from_id from_port to_id to_port" << std::endl;
- }
-}
-
-int main(int argc, char** argv)
-{
- // TODO: Decide on a proper header only options parser
- auto opts = Opts();
- if (argc != 5)
- {
- print_usage();
- return -1;
- }
- for (auto i = decltype(argc){1}; i < argc; ++i)
- {
- switch (i)
- {
- case 1:
- opts.from_ip = std::string(argv[i]);
- break;
- case 2:
- try
- {
- opts.from_port = std::stoul(argv[i]);
- }
- catch (std::exception& e)
- {
- print_usage();
- return -1;
- }
- break;
- case 3:
- opts.to_ip = std::string(argv[i]);
- break;
- case 4:
- try
- {
- opts.to_port = std::stoul(argv[i]);
- }
- catch (std::exception& e)
- {
- print_usage();
- return -1;
- }
- break;
- }
- }
- std::cout << "listening to " << opts.from_ip.c_str() << ":" << opts.from_port << ", sending to " << opts.to_ip.c_str() << ":" << opts.to_port << std::endl;
-
- using namespace com::teamspeak;
-
- {
- auto* path = programPath(argv[0]);
- auto success = TS_Client::create(path);
- free(path);
- if (!success)
- return 1;
- }
- auto&& ts_client = TS_Client::ts_client;
- {
- auto identity = create_identity();
- if (identity.empty())
- return 1;
-
- ts_client->_identity = identity;
- }
-
- // We'll recycle them in case of disconnect, hence spawn these only once
- {
- auto connection = Connection_Handler::create();
- if (!connection)
- return 1;
-
- ts_client->_connections[Audio_IO::Playback].swap(connection);
- }
-
- {
- auto connection = Connection_Handler::create();
- if (!connection)
- return 1;
-
- ts_client->_connections[Audio_IO::Capture].swap(connection);
- }
-
-
- auto&& connection_listen = ts_client->_connections[Audio_IO::Playback];
- auto&& connection_broadcast = ts_client->_connections[Audio_IO::Capture];
-
- connection_listen->open_audio(Audio_IO::Playback, Custom_Device::custom_mode, Custom_Device::custom_device);
- connection_broadcast->open_audio(Audio_IO::Capture, Custom_Device::custom_mode, Custom_Device::custom_device);
-
- connection_listen->_connection_data = Connection_Handler::Connection_Data{
- opts.from_ip,
- opts.from_port,
- "repeater-listener",
- ts_client->_identity
- };
- connection_listen->connect();
- connection_broadcast->_connection_data = Connection_Handler::Connection_Data{
- opts.to_ip,
- opts.to_port,
- "repeater-broadcaster",
- ts_client->_identity
- };
- connection_broadcast->connect();
-
- // 48000 kHz, 1ch, 20ms -> 960 samples
- auto playback_buffer = std::array();
- auto custom_audio_thread = std::thread([&playback_buffer]()
- {
- while (!TS_Client::ts_client->_shutting_down)
- {
- for (;;)
- {
- /* Get playback data from the client lib */
- if (auto error_playback = ts3client_acquireCustomPlaybackData(Custom_Device::custom_device, playback_buffer.data(), playback_buffer.size()); error_playback != ERROR_ok)
- {
- if (ERROR_sound_no_data == error_playback)
- {
- /* Not an error. The client lib has no playback data available.
- Depending on your custom sound API, either pause playback for
- performance optimization or send a buffer of zeros. */
-
- // we're doing a no-op here
- }
- else
- {
- /* Error occured */
- print_error(error_playback, "Failed to get playback data", 0);
- }
- break; // break draining (inner loop)
- }
- else
- {
- // we got playback data, loop it back to capture
- /* Stream your capture data to the client lib */
- if (auto error_capture = ts3client_processCustomCaptureData(Custom_Device::custom_device, playback_buffer.data(), playback_buffer.size()); ERROR_ok != error_capture)
- {
- print_error(error_capture, "Failed to process capture data", 0);
- break; // break draining (inner loop)
- }
- }
- }
- using namespace std::chrono_literals;
- std::this_thread::sleep_for(0.02s); // audio buffer size in our opus is 20ms
- }
- });
-
- SLEEP(500);
-
- /* Wait for user input */
- printf("\n--- Press Return to disconnect from server and exit ---\n");
- getchar();
-
- /* Disconnect from servers */
- ts_client->_shutting_down = true;
- custom_audio_thread.join();
- connection_listen->disconnect();
- connection_broadcast->disconnect();
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/sources.cmake
deleted file mode 100644
index 45e3de1..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/sources.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.cpp"
- "${CMAKE_CURRENT_LIST_DIR}/ts_client.hpp"
- "${CMAKE_CURRENT_LIST_DIR}/ts_client.cpp"
- "${CMAKE_CURRENT_LIST_DIR}/connection_handler.hpp"
- "${CMAKE_CURRENT_LIST_DIR}/connection_handler.cpp"
- "${CMAKE_CURRENT_LIST_DIR}/helpers.hpp"
- "${CMAKE_CURRENT_LIST_DIR}/helpers.cpp"
- "${CMAKE_CURRENT_LIST_DIR}/custom_device.hpp"
- "${CMAKE_CURRENT_LIST_DIR}/custom_device.cpp"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/ts_client.cpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/ts_client.cpp
deleted file mode 100644
index 37d7266..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/ts_client.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-#include "ts_client.hpp"
-
-#include "helpers.hpp"
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-namespace com::teamspeak
-{
- /*static*/ std::unique_ptr TS_Client::ts_client;
-
- TS_Client::TS_Client(std::string_view path, bool& success)
- {
- success = true;
- /* Create struct for callback function pointers */
- struct ClientUIFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ClientUIFunctions));
-
- /* Callback function pointers */
- /* It is sufficient to only assign those callback functions you are using. When adding more callbacks, add those function pointers here. */
-
- /*
- * Callback for connection status change.
- * Connection status switches through the states STATUS_DISCONNECTED, STATUS_CONNECTING, STATUS_CONNECTED and STATUS_CONNECTION_ESTABLISHED.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * newStatus - New connection status, see the enum ConnectStatus in public_definitions.h
- * errorNumber - Error code. Should be zero when connecting or actively disconnection.
- * Contains error state when losing connection.
- */
- funcs.onConnectStatusChangeEvent = [](uint64_t connection_id, int32_t status, uint32_t error)
- {
- if (TS_Client::ts_client)
- TS_Client::ts_client->on_connect_status_change(connection_id, static_cast(status), error);
- };
- funcs.onClientMoveEvent = [](uint64 connection_id, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* /*msg*/)
- {
- if (TS_Client::ts_client)
- TS_Client::ts_client->on_client_move_common(connection_id, clientID, oldChannelID, newChannelID, static_cast(visibility));
- };
- funcs.onClientMoveSubscriptionEvent = [](uint64 connection_id, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility)
- {
- if (TS_Client::ts_client)
- TS_Client::ts_client->on_client_move_common(connection_id, clientID, oldChannelID, newChannelID, static_cast(visibility));
- };
- funcs.onClientMoveTimeoutEvent = [](uint64 connection_id, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* /*msg*/)
- {
- if (TS_Client::ts_client)
- TS_Client::ts_client->on_client_move_common(connection_id, clientID, oldChannelID, newChannelID, static_cast(visibility));
- };
- funcs.onClientMoveMovedEvent = [](uint64 connection_id, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, anyID /*moverID*/, const char* /*moverName*/, const char* /*moverUniqueIdentifier*/, const char* /*msg*/)
- {
- if (TS_Client::ts_client)
- TS_Client::ts_client->on_client_move_common(connection_id, clientID, oldChannelID, newChannelID, static_cast(visibility));
- };
- funcs.onClientKickFromChannelEvent = [](uint64 connection_id, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, anyID /*kickerID*/, const char* /*kickerName*/, const char* /*kickerUniqueIdentifier*/, const char* /*msg*/)
- {
- if (TS_Client::ts_client)
- TS_Client::ts_client->on_client_move_common(connection_id, clientID, oldChannelID, newChannelID, static_cast(visibility));
- };
- funcs.onClientKickFromServerEvent = [](uint64 connection_id, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, anyID /*kickerID */, const char* /*kickerName*/, const char* /*kickerUniqueIdentifier*/, const char* /*msg*/)
- {
- if (TS_Client::ts_client)
- TS_Client::ts_client->on_client_move_common(connection_id, clientID, oldChannelID, newChannelID, static_cast(visibility));
- };
- /*
- * This event is called when a client starts or stops talking.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * status - 1 if client starts talking, 0 if client stops talking
- * isReceivedWhisper - 1 if this event was caused by whispering, 0 if caused by normal talking
- * clientID - ID of the client who announced the talk status change
- */
- funcs.onTalkStatusChangeEvent = [](uint64 serverConnectionHandlerID, int status, int isReceivedWhisper, anyID clientID)
- {
- char* name = nullptr;
- /* Query client nickname from ID */
- if (ts3client_getClientVariableAsString(serverConnectionHandlerID, clientID, CLIENT_NICKNAME, &name) != ERROR_ok)
- return;
-
- auto status_str = std::string();
- switch (status)
- {
- case TalkStatus::STATUS_TALKING:
- status_str = "starts";
- break;
- case TalkStatus::STATUS_NOT_TALKING:
- status_str = "stops";
- break;
- case TalkStatus::STATUS_TALKING_WHILE_DISABLED:
- status_str = "starts (while disabled)";
- break;
- default:
- break;
- }
- std::cout << "Client " << name << " " << status_str << " talking." << std::endl;
- /* Release dynamically allocated memory only if function succeeded */
- ts3client_freeMemory(name);
- };
- funcs.onServerErrorEvent = [](uint64 connection_id, const char* error_msg, uint32_t error, const char* /*return_code*/, const char* extra_msg)
- {
- auto msg = std::string("onServerError: ");
- if (error_msg)
- msg += error_msg;
-
- if (extra_msg)
- {
- auto extra = std::string(extra_msg);
- if (!extra.empty())
- msg += " Extra Msg: " + extra;
- }
- if (error == ERROR_ok)
- ts3client_logMessage(msg.c_str(), LogLevel::LogLevel_DEBUG, "", connection_id);
- else
- print_error(error, msg, connection_id);
- };
- funcs.onIgnoredWhisperEvent = [](uint64 connection_id, anyID client_id)
- {
- print_error(ts3client_allowWhispersFrom(connection_id, client_id), "Error allowing whisper", connection_id);
- };
-
- if (auto error = ts3client_initClientLib(&funcs, nullptr, LogType_FILE | LogType_CONSOLE | LogType_USERLOGGING, nullptr, path.data()); error != ERROR_ok)
- {
- print_error(error, "Error initialzing clientlib", 0);
- success = false;
- }
- _funcs = funcs;
-
- if (success)
- {
- auto error = uint32_t{ ERROR_ok };
- _custom_device = std::make_unique(error);
- if (ERROR_ok != error)
- _custom_device = {};
-
- success = ERROR_ok == error;
- }
- }
-
- TS_Client::~TS_Client()
- {
- if (auto error = ts3client_destroyClientLib(); error != ERROR_ok)
- {
- print_error(error, "Failed to destroy clientlib", 0);
- }
- }
-
- /*static*/ bool TS_Client::create(std::string_view path)
- {
- if (TS_Client::ts_client)
- return false;
-
- auto success = false;
- auto result = std::make_unique(path, success);
- if (!success)
- return false;
-
- success = result->log_clientlib_version();
- if (!success)
- return false;
-
- TS_Client::ts_client.swap(result);
- return true;
- }
-
- bool TS_Client::log_clientlib_version()
- {
- char* version = nullptr;
- if (auto error = ts3client_getClientLibVersion(&version); error != ERROR_ok)
- {
- print_error(error, "Failed to get clientlib version", 0);
- return false;
- }
- auto msg = "Client lib version: " + std::string(version);
- ts3client_freeMemory(version); /* Release dynamically allocated memory */
- version = nullptr;
- ts3client_logMessage(msg.c_str(), LogLevel_INFO, "", 0);
- return true;
- }
-
- void TS_Client::on_client_move_common(uint64_t connection_id, uint16_t client_id, uint64_t oldChannelID, uint64_t newChannelID, Visibility visibility)
- {
- }
-
- void TS_Client::on_connect_status_change(uint64_t connection_id, ConnectStatus status, uint32_t error)
- {
- {
- auto msg = std::string("Connect status changed: ") + std::to_string(connection_id) + " " + std::to_string(status);
- ts3client_logMessage(msg.c_str(), LogLevel_INFO, "", connection_id);
- }
- /* Failed to connect ? */
- if (status == STATUS_DISCONNECTED && error == ERROR_failed_connection_initialisation)
- {
- ts3client_logMessage("Looks like there is no server running.\n", LogLevel_INFO, "", connection_id);
- }
- print_error(error, "onConnectStatusChange", connection_id);
-
- if (_shutting_down)
- return;
-
- /* pass the event on to the connection instance */
- if (auto it = std::find_if(std::begin(_connections), std::end(_connections), [connection_id](auto&& connection)
- {
- return connection && connection_id == connection->_connection_id;
- }); it != std::end(_connections))
- {
- auto&& connection = *it;
- connection->on_connect_status_change(status, error);
- }
- }
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/ts_client.hpp b/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/ts_client.hpp
deleted file mode 100644
index edda6ec..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_cpp_repeater/ts_client.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#include "connection_handler.hpp"
-#include "custom_device.hpp"
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-namespace com::teamspeak
-{
- class TS_Client
- {
- public:
- TS_Client(std::string_view path, bool& success);
- ~TS_Client();
-
- static bool create(std::string_view path);
-
- bool log_clientlib_version();
-
- void on_client_move_common(uint64_t connection_id, uint16_t client_id, uint64_t old_channel_id, uint64_t new_channel_id, Visibility visibility);
- void on_connect_status_change(uint64_t connection_id, ConnectStatus status, uint32_t error);
-
- ClientUIFunctions _funcs;
- std::string _identity = "";
- std::array, 2> _connections;
- bool _shutting_down = false;
- static constexpr bool _do_autoreconnect{ true };
- private:
- std::unique_ptr _custom_device;
- public:
- static std::unique_ptr ts_client;
- };
-}
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/main.c
deleted file mode 100644
index 2cf61f4..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/main.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * TeamSpeak SDK client minimal sample with custom
- * capture and record
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-/* This example connects to a server and plays a wave file, while
- recording incomming sound to output.wav */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#pragma warning(disable : 4996)
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-
-#include
-#include
-#include
-
-#ifdef _WIN32
-#define SLEEP(x) Sleep(x)
-#else
-#define SLEEP(x) usleep(x*1000)
-#endif
-
-#include "wave.h"
-
-/*The client lib works at 48Khz internally.
- It is therefore advisable to use the same for your project */
-#define PLAYBACK_FREQUENCY 48000
-#define PLAYBACK_CHANNELS 2
-
-#define AUDIO_PROCESS_SECONDS 500
-
-/*
- * Callback for connection status change.
- * Connection status switches through the states STATUS_DISCONNECTED, STATUS_CONNECTING, STATUS_CONNECTED and STATUS_CONNECTION_ESTABLISHED.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * newStatus - New connection status, see the enum ConnectStatus in clientlib_publicdefinitions.h
- * errorNumber - Error code. Should be zero when connecting or actively disconnection.
- * Contains error state when losing connection.
- */
-void onConnectStatusChangeEvent(uint64 serverConnectionHandlerID, int newStatus, unsigned int errorNumber) {
- printf("Connect status changed: %llu %d %u\n", (unsigned long long)serverConnectionHandlerID, newStatus, errorNumber);
- /* Failed to connect ? */
- if(newStatus == STATUS_DISCONNECTED && errorNumber == ERROR_failed_connection_initialisation) {
- printf("Looks like there is no server running!\n");
- }
-}
-
-/*
- * Callback for current channels being announced to the client after connecting to a server.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the announced channel
- * channelParentID - ID of the parent channel
- */
-void onNewChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 channelParentID) {
- /* Query channel name from channel ID */
- char* name;
- unsigned int error;
-
- printf("onNewChannelEvent: %llu %llu %llu\n", (unsigned long long)serverConnectionHandlerID, (unsigned long long)channelID, (unsigned long long)channelParentID);
- if((error = ts3client_getChannelVariableAsString(serverConnectionHandlerID, channelID, CHANNEL_NAME, &name)) == ERROR_ok) {
- printf("New channel: %llu %s \n", (unsigned long long)channelID, name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
- } else {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error getting channel name in onNewChannelEvent: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- }
-}
-
-/*
- * Callback for just created channels.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the announced channel
- * channelParentID - ID of the parent channel
- * invokerID - ID of the client who created the channel
- * invokerName - Name of the client who created the channel
- */
-void onNewChannelCreatedEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 channelParentID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier) {
- char* name;
-
- /* Query channel name from channel ID */
- if(ts3client_getChannelVariableAsString(serverConnectionHandlerID, channelID, CHANNEL_NAME, &name) != ERROR_ok)
- return;
- printf("New channel created: %s\n", name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-/*
- * Callback when a channel was deleted.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the deleted channel
- * invokerID - ID of the client who deleted the channel
- * invokerName - Name of the client who deleted the channel
- */
-void onDelChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier) {
- printf("Channel ID %llu deleted by %s (%u)\n", (unsigned long long)channelID, invokerName, invokerID);
-}
-
-/*
- * Called when a client joins, leaves or moves to another channel.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the moved client
- * oldChannelID - ID of the old channel left by the client
- * newChannelID - ID of the new channel joined by the client
- * visibility - Visibility of the moved client. See the enum Visibility in clientlib_publicdefinitions.h
- * Values: ENTER_VISIBILITY, RETAIN_VISIBILITY, LEAVE_VISIBILITY
- */
-void onClientMoveEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* moveMessage) {
- printf("ClientID %u moves from channel %llu to %llu with message %s\n", clientID, (unsigned long long)oldChannelID, (unsigned long long)newChannelID, moveMessage);
-}
-
-/*
- * Callback for other clients in current and subscribed channels being announced to the client.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the announced client
- * oldChannelID - ID of the subscribed channel where the client left visibility
- * newChannelID - ID of the subscribed channel where the client entered visibility
- * visibility - Visibility of the announced client. See the enum Visibility in clientlib_publicdefinitions.h
- * Values: ENTER_VISIBILITY, RETAIN_VISIBILITY, LEAVE_VISIBILITY
- */
-void onClientMoveSubscriptionEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility) {
- char* name;
-
- /* Query client nickname from ID */
- if(ts3client_getClientVariableAsString(serverConnectionHandlerID, clientID, CLIENT_NICKNAME, &name) != ERROR_ok)
- return;
- printf("New client: %s\n", name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-/*
- * Called when a client drops his connection.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the moved client
- * oldChannelID - ID of the channel the leaving client was previously member of
- * newChannelID - 0, as client is leaving
- * visibility - Always LEAVE_VISIBILITY
- * timeoutMessage - Optional message giving the reason for the timeout
- */
-void onClientMoveTimeoutEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* timeoutMessage) {
- printf("ClientID %u timeouts with message %s\n",clientID, timeoutMessage);
-}
-
-/*
- * This event is called when a client starts or stops talking.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * status - 1 if client starts talking, 0 if client stops talking
- * isReceivedWhisper - 1 if this event was caused by whispering, 0 if caused by normal talking
- * clientID - ID of the client who announced the talk status change
- */
-void onTalkStatusChangeEvent(uint64 serverConnectionHandlerID, int status, int isReceivedWhisper, anyID clientID) {
- char* name;
-
- /* Query client nickname from ID */
- if(ts3client_getClientVariableAsString(serverConnectionHandlerID, clientID, CLIENT_NICKNAME, &name) != ERROR_ok)
- return;
- if(status == STATUS_TALKING) {
- printf("Client \"%s\" starts talking.\n", name);
- } else {
- printf("Client \"%s\" stops talking.\n", name);
- }
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-void onServerErrorEvent(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, const char* extraMessage) {
- printf("Error for server %llu: %s %s\n", (unsigned long long)serverConnectionHandlerID, errorMessage, extraMessage);
-}
-
-char* programPath(char* programInvocation){
- char* path;
- char* end;
- int length;
- char pathsep;
-
- if (programInvocation == NULL) return strdup("");
-
-#ifdef _WIN32
- pathsep = '\\';
-#else
- pathsep = '/';
-#endif
-
- end = strrchr(programInvocation, pathsep);
- if (!end) return strdup("");
-
- length = (end - programInvocation) + 2;
- path = (char*)malloc(length);
- strncpy(path, programInvocation, length - 1);
- path[length - 1] = 0;
-
- return path;
-}
-
-int main(int argc, char** argv) {
- uint64 scHandlerID;
- unsigned int error;
- char *version;
- char *identity;
-
- int captureFrequency;
- int captureChannels;
- short* captureBuffer;
- int captureBufferSamples;
-
- int audioPeriodCounter;
- int captureAudioOffset;
- int capturePeriodSize;
-
- short* playbackBuffer;
- int playbackAudioOffset;
- int playbackPeriodSize;
-
- char* path;
-
- /* Create struct for callback function pointers */
- struct ClientUIFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ClientUIFunctions));
-
- /* Now assign the used callback function pointers */
- funcs.onConnectStatusChangeEvent = onConnectStatusChangeEvent;
- funcs.onNewChannelEvent = onNewChannelEvent;
- funcs.onNewChannelCreatedEvent = onNewChannelCreatedEvent;
- funcs.onDelChannelEvent = onDelChannelEvent;
- funcs.onClientMoveEvent = onClientMoveEvent;
- funcs.onClientMoveSubscriptionEvent = onClientMoveSubscriptionEvent;
- funcs.onClientMoveTimeoutEvent = onClientMoveTimeoutEvent;
- funcs.onTalkStatusChangeEvent = onTalkStatusChangeEvent;
- funcs.onServerErrorEvent = onServerErrorEvent;
-
- /* Read in the wave we are going to stream to the server */
- if (!readWave("welcome_to_teamspeak.wav", &captureFrequency, &captureChannels, &captureBuffer, &captureBufferSamples))
- return 1;
-
- /* allocate AUDIO_PROCESS_SECONDS seconds worth of PLAYBACK_FREQUENCY 16bit PLAYBACK_CHANNELS channels */
- playbackBuffer = (short*) malloc(AUDIO_PROCESS_SECONDS * PLAYBACK_FREQUENCY * sizeof(short) * PLAYBACK_CHANNELS);
- if (!playbackBuffer){
- printf("error: could not allocate memory for output wave\n");
- return 1;
- }
-
- /* Initialize client lib with callbacks */
- path = programPath(argv[0]);
- if((error = ts3client_initClientLib(&funcs, NULL, LogType_FILE | LogType_CONSOLE, NULL, path)) != ERROR_ok) {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initialzing serverlib: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* register a new custom sound device, that captures at read wave freq+channels and plays PLAYBACK_CHANNELS channels at PLAYBACK_FREQUENCY */
- if ((error = ts3client_registerCustomDevice("customWaveDeviceId", "Nice displayable wave device name", captureFrequency, captureChannels, PLAYBACK_FREQUENCY, PLAYBACK_CHANNELS)) != ERROR_ok) {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error registering custom sound device: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- }
-
- /* Spawn a new server connection handler using the default port and store the server ID */
- if((error = ts3client_spawnNewServerConnectionHandler(0, &scHandlerID)) != ERROR_ok) {
- printf("Error spawning server connection handler: %d\n", error);
- return 1;
- }
-
- /* Open capture device we created earlier */
- if((error = ts3client_openCaptureDevice(scHandlerID, "custom", "customWaveDeviceId")) != ERROR_ok) {
- printf("Error opening capture device: %d\n", error);
- }
-
- /* Open playback device we created earlier */
- if((error = ts3client_openPlaybackDevice(scHandlerID, "custom", "customWaveDeviceId")) != ERROR_ok) {
- printf("Error opening playback device: %d\n", error);
- }
-
- /* Create a new client identity */
- /* In your real application you should do this only once, store the assigned identity locally and then reuse it. */
- if((error = ts3client_createIdentity(&identity)) != ERROR_ok) {
- printf("Error creating identity: %d\n", error);
- return 1;
- }
-
- /* Connect to server on localhost:9987 with nickname "client", no default channel, no default channel password and server password "secret" */
- if((error = ts3client_startConnection(scHandlerID, identity, "localhost", 9987, "client", NULL, "", "secret")) != ERROR_ok) {
- printf("Error connecting to server: %d\n", error);
- return 1;
- }
-
- ts3client_freeMemory(identity); /* Release dynamically allocated memory */
- identity = NULL;
-
- printf("Client lib initialized and running\n");
-
- /* Query and print client lib version */
- if((error = ts3client_getClientLibVersion(&version)) != ERROR_ok) {
- printf("Failed to get clientlib version: %d\n", error);
- return 1;
- }
- printf("Client lib version: %s\n", version);
- ts3client_freeMemory(version); /* Release dynamically allocated memory */
- version = NULL;
-
- SLEEP(500);
-
- printf("\n--- processing audio for %d seconds ---\n", AUDIO_PROCESS_SECONDS);
-
- /*the clientlib works with 20ms packets internaly.
- So the best is to feed is 20ms worth of sound at a time */
- capturePeriodSize = (captureFrequency*20)/1000;
- playbackPeriodSize = (PLAYBACK_FREQUENCY*20)/1000;
-
- captureAudioOffset = 0;
- playbackAudioOffset = 0;
- for(audioPeriodCounter = 0; audioPeriodCounter < 50*AUDIO_PROCESS_SECONDS; ++audioPeriodCounter){ /*50*20=1000*/
- /* wait 20 ms */
- SLEEP(20);
-
- /* make sure we dont stream past the end of our wave sample */
- if (captureAudioOffset + capturePeriodSize > captureBufferSamples)
- captureAudioOffset = 0;
-
- /* stream capture data to the client lib */
- if((error = ts3client_processCustomCaptureData("customWaveDeviceId", captureBuffer + captureAudioOffset*captureChannels, capturePeriodSize)) != ERROR_ok){
- printf("Failed to get stream capture data: %d\n", error);
- return 1;
- }
-
- /* get playback data from the client lib */
- if((error = ts3client_acquireCustomPlaybackData("customWaveDeviceId", playbackBuffer + playbackAudioOffset*PLAYBACK_CHANNELS, playbackPeriodSize))!= ERROR_ok){
- if(error != ERROR_sound_no_data) { //this error signals us to play silence
- printf("Failed to get acquire playback data: %d\n", error);
- return 1;
- }
- memset(playbackBuffer + playbackAudioOffset * PLAYBACK_CHANNELS, 0, playbackPeriodSize * PLAYBACK_CHANNELS * sizeof(short));
- }
-
- /*update buffer offsets */
- captureAudioOffset += capturePeriodSize;
- playbackAudioOffset += playbackPeriodSize;
- }
-
- /* Disconnect from server. ERROR_not_connected just means the peer is already
- gone (e.g. the server was shut down) - nothing to do, so move on. */
- if((error = ts3client_stopConnection(scHandlerID, "leaving")) != ERROR_ok && error != ERROR_not_connected)
- printf("Error stopping connection: %d\n", error);
-
- /* Destroy server connection handler */
- if((error = ts3client_destroyServerConnectionHandler(scHandlerID)) != ERROR_ok)
- printf("Error destroying ServerConnectionHandler: %d\n", error);
-
- /* unregister the custom sound device */
- if ((error = ts3client_unregisterCustomDevice("customWaveDeviceId")) != ERROR_ok)
- printf("Error unregisterring custom sound device: %d\n", error);
-
- /* Shutdown client lib */
- if((error = ts3client_destroyClientLib()) != ERROR_ok)
- printf("Failed to destroy clientlib: %d\n", error);
-
- /* save the playback data */
- writeWave("output.wav", PLAYBACK_FREQUENCY, PLAYBACK_CHANNELS, playbackBuffer, PLAYBACK_FREQUENCY*AUDIO_PROCESS_SECONDS);
-
- /* release allocated memory */
- free(captureBuffer);
- free(playbackBuffer);
-
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/sources.cmake
deleted file mode 100644
index 304c75d..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/sources.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
- "${CMAKE_CURRENT_LIST_DIR}/wave.c"
- "${CMAKE_CURRENT_LIST_DIR}/wave.h"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/wave.c b/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/wave.c
deleted file mode 100644
index 5419449..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/wave.c
+++ /dev/null
@@ -1,111 +0,0 @@
-#define _CRT_SECURE_NO_WARNINGS
-
-#include "wave.h"
-
-#include
-#include
-#include
-
-char riff[4] = { 'R', 'I', 'F', 'F' };
-char wave[4] = { 'W', 'A', 'V', 'E' };
-char fmt[4] = { 'f', 'm', 't', ' ' };
-char dat[4] = { 'd', 'a', 't', 'a' };
-
-void writeWave(const char* filename, int freq, int channels, short* buffer, int samples) {
- struct WaveHeader wh;
- int i;
- int elemWritten;
- FILE *f;
-
- for(i=0; i<4; i++) {
- wh.riffId[i] = riff[i];
- wh.riffType[i] = wave[i];
- wh.fmtId[i] = fmt[i];
- wh.dataId[i] = dat[i];
- }
-
- /* Format chunk */
- wh.fmtLen = 16;
- wh.formatTag = 1; /* PCM */
- wh.channels = channels;
- wh.samplesPerSec = freq;
- wh.avgBytesPerSec = freq * channels * sizeof(short);
- wh.blockAlign = channels * sizeof(short);
- wh.bitsPerSample = sizeof(short)*8;
- wh.dataLen = samples * channels * sizeof(short);
- wh.len = 36 + wh.dataLen;
-
- f = fopen(filename,"wb");
- if (!f) {
- printf("error: could not write wave\n");
- return;
- }
-
- elemWritten = fwrite(&wh, sizeof(wh), 1, f);
- if (elemWritten) elemWritten = fwrite(buffer, wh.dataLen, 1, f);
- fclose(f);
-
- if (!elemWritten){
- printf("error: could not write wave\n");
- }
-}
-
-int readWave(const char* filename, int* freq, int* channels, short** buffer, int* samples) {
- struct WaveHeader wh;
- FILE *f;
- int i;
- int elemsRead;
-
- memset(&wh, 0, sizeof(wh));
-
- f = fopen(filename,"rb");
- if (!f) {
- printf("error: could not open wave %s\n",filename);
- return 0;
- }
-
- fread(&wh, sizeof(wh), 1, f);
-
- for(i=0; i<4; i++) {
- if ((wh.riffId[i] != riff[i]) ||
- (wh.riffType[i] != wave[i]) ||
- (wh.fmtId[i] != fmt[i]) ||
- (wh.dataId[i] != dat[i])){
- goto closeError;
- }
- }
- // Format chunk
- if (wh.fmtLen != 16) goto closeError;
- if (wh.formatTag != 1) goto closeError;
- *channels = wh.channels;
- if (*channels <1 || *channels >2) goto closeError;
- *freq = wh.samplesPerSec;
- if (wh.blockAlign != *channels * sizeof(short)) goto closeError;
- *samples = wh.dataLen / (*channels * sizeof(short));
-
- if (*samples < *freq) {
- fclose(f);
- printf("error: wave file is too short\n");
- return 0;
- }
-
- (*buffer) = (short*) malloc(wh.dataLen);
- if (!*buffer){
- printf("error: could not allocate memory for wave\n");
- return 0;
- }
-
- elemsRead = fread(*buffer, wh.dataLen, 1, f);
- fclose(f);
- if (elemsRead != 1){
- printf("error: reading wave file\n");
- return 0;
- }
-
- return 1;
-
-closeError:
- fclose(f);
- printf("error: invalid wave file %s\n",filename);
- return 0;
-}
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/wave.h b/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/wave.h
deleted file mode 100644
index 3816c0e..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/wave.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef WAVE_H
-#define WAVE_H
-
-struct WaveHeader {
- // Riff chunk
- char riffId[4]; // 'RIFF'
- unsigned int len;
- char riffType[4]; // 'WAVE'
-
- // Format chunk
- char fmtId[4]; // 'fmt '
- unsigned int fmtLen;
- unsigned short formatTag;
- unsigned short channels;
- unsigned int samplesPerSec;
- unsigned int avgBytesPerSec;
- unsigned short blockAlign;
- unsigned short bitsPerSample;
-
- // Data chunk
- char dataId[4]; // 'data'
- unsigned int dataLen;
-};
-#endif //WAVE_H
-
-void writeWave(const char* filename, int freq, int channels, short* buffer, int samples);
-
-//this reads a 16 bit 1 or 2 channel wave file. returns 0 on error, 1 on success
-int readWave(const char* filename, int* freq, int* channels, short** buffer, int* samples);
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/welcome_to_teamspeak.wav b/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/welcome_to_teamspeak.wav
deleted file mode 100644
index 3cce6f7..0000000
Binary files a/docs/teamspeak-sdk-3.5.2/samples/source/client_customdevice/welcome_to_teamspeak.wav and /dev/null differ
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal/main.c
deleted file mode 100644
index 5c3624d..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal/main.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- * TeamSpeak SDK client minimal sample
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-
-#include
-#include
-#include
-
-#ifdef _WIN32
-#define SLEEP(x) Sleep(x)
-#define strdup(x) _strdup(x)
-#else
-#define SLEEP(x) usleep(x*1000)
-#endif
-
-/*
- * Callback for connection status change.
- * Connection status switches through the states STATUS_DISCONNECTED, STATUS_CONNECTING, STATUS_CONNECTED and STATUS_CONNECTION_ESTABLISHED.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * newStatus - New connection status, see the enum ConnectStatus in clientlib_publicdefinitions.h
- * errorNumber - Error code. Should be zero when connecting or actively disconnection.
- * Contains error state when losing connection.
- */
-void onConnectStatusChangeEvent(uint64 serverConnectionHandlerID, int newStatus, unsigned int errorNumber) {
- printf("Connect status changed: %llu %d %u\n", (unsigned long long)serverConnectionHandlerID, newStatus, errorNumber);
- /* Failed to connect ? */
- if(newStatus == STATUS_DISCONNECTED && errorNumber == ERROR_failed_connection_initialisation) {
- printf("Looks like there is no server running.\n");
- }
-}
-
-/*
- * Callback for current channels being announced to the client after connecting to a server.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the announced channel
- * channelParentID - ID of the parent channel
- */
-void onNewChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 channelParentID) {
- /* Query channel name from channel ID */
- char* name;
- unsigned int error;
-
- printf("onNewChannelEvent: %llu %llu %llu\n", (unsigned long long)serverConnectionHandlerID, (unsigned long long)channelID, (unsigned long long)channelParentID);
- if((error = ts3client_getChannelVariableAsString(serverConnectionHandlerID, channelID, CHANNEL_NAME, &name)) == ERROR_ok) {
- printf("New channel: %llu %s \n", (unsigned long long)channelID, name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
- } else {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error getting channel name in onNewChannelEvent: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- }
-}
-
-/*
- * Callback for just created channels.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the announced channel
- * channelParentID - ID of the parent channel
- * invokerID - ID of the client who created the channel
- * invokerName - Name of the client who created the channel
- */
-void onNewChannelCreatedEvent(uint64 serverConnectionHandlerID, uint64 channelID, uint64 channelParentID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier) {
- char* name;
-
- /* Query channel name from channel ID */
- if(ts3client_getChannelVariableAsString(serverConnectionHandlerID, channelID, CHANNEL_NAME, &name) != ERROR_ok)
- return;
- printf("New channel created: %s\n", name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-/*
- * Callback when a channel was deleted.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - ID of the deleted channel
- * invokerID - ID of the client who deleted the channel
- * invokerName - Name of the client who deleted the channel
- */
-void onDelChannelEvent(uint64 serverConnectionHandlerID, uint64 channelID, anyID invokerID, const char* invokerName, const char* invokerUniqueIdentifier) {
- printf("Channel ID %llu deleted by %s (%u)\n", (unsigned long long)channelID, invokerName, invokerID);
-}
-
-/*
- * Called when a client joins, leaves or moves to another channel.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the moved client
- * oldChannelID - ID of the old channel left by the client
- * newChannelID - ID of the new channel joined by the client
- * visibility - Visibility of the moved client. See the enum Visibility in clientlib_publicdefinitions.h
- * Values: ENTER_VISIBILITY, RETAIN_VISIBILITY, LEAVE_VISIBILITY
- */
-void onClientMoveEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* moveMessage) {
- printf("ClientID %u moves from channel %llu to %llu with message %s\n", clientID, (unsigned long long)oldChannelID, (unsigned long long)newChannelID, moveMessage);
-}
-
-/*
- * Callback for other clients in current and subscribed channels being announced to the client.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the announced client
- * oldChannelID - ID of the subscribed channel where the client left visibility
- * newChannelID - ID of the subscribed channel where the client entered visibility
- * visibility - Visibility of the announced client. See the enum Visibility in clientlib_publicdefinitions.h
- * Values: ENTER_VISIBILITY, RETAIN_VISIBILITY, LEAVE_VISIBILITY
- */
-void onClientMoveSubscriptionEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility) {
- char* name;
-
- /* Query client nickname from ID */
- if(ts3client_getClientVariableAsString(serverConnectionHandlerID, clientID, CLIENT_NICKNAME, &name) != ERROR_ok)
- return;
- printf("New client: %s\n", name);
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-/*
- * Called when a client drops his connection.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the moved client
- * oldChannelID - ID of the channel the leaving client was previously member of
- * newChannelID - 0, as client is leaving
- * visibility - Always LEAVE_VISIBILITY
- * timeoutMessage - Optional message giving the reason for the timeout
- */
-void onClientMoveTimeoutEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* timeoutMessage) {
- printf("ClientID %u timeouts with message %s\n",clientID, timeoutMessage);
-}
-
-/*
- * This event is called when a client starts or stops talking.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * status - 1 if client starts talking, 0 if client stops talking
- * isReceivedWhisper - 1 if this event was caused by whispering, 0 if caused by normal talking
- * clientID - ID of the client who announced the talk status change
- */
-void onTalkStatusChangeEvent(uint64 serverConnectionHandlerID, int status, int isReceivedWhisper, anyID clientID) {
- char* name;
-
- /* Query client nickname from ID */
- if(ts3client_getClientVariableAsString(serverConnectionHandlerID, clientID, CLIENT_NICKNAME, &name) != ERROR_ok)
- return;
- if(status == STATUS_TALKING) {
- printf("Client \"%s\" starts talking.\n", name);
- } else {
- printf("Client \"%s\" stops talking.\n", name);
- }
- ts3client_freeMemory(name); /* Release dynamically allocated memory only if function succeeded */
-}
-
-/*
- * This event is called when another client starts whispering to own client. Own client can decide to accept or deny
- * receiving the whisper by adding the sending client to the whisper allow list. If not added, whispering is blocked.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the whispering client
- */
-void onIgnoredWhisperEvent(uint64 serverConnectionHandlerID, anyID clientID) {
- unsigned int error;
-
- /* Add sending client to whisper allow list so own client will hear the voice data.
- * It is sufficient to add a clientID only once, not everytime this event is called. However it won't
- * hurt to add the same clientID to the allow list repeatedly, but is is not necessary. */
- if((error = ts3client_allowWhispersFrom(serverConnectionHandlerID, clientID)) != ERROR_ok) {
- printf("Error setting client on whisper allow list: %u\n", error);
- } else {
- printf("Added client %d to whisper allow list\n", clientID);
- }
-}
-
-void onServerErrorEvent(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, const char* extraMessage) {
- printf("Error for server %llu: %s %s\n", (unsigned long long)serverConnectionHandlerID, errorMessage, extraMessage);
-}
-
-char* programPath(char* programInvocation){
- char* path;
- char* end;
- int length;
- char pathsep;
-
- if (programInvocation == NULL) return strdup("");
-
-#ifdef _WIN32
- pathsep = '\\';
-#else
- pathsep = '/';
-#endif
-
- end = strrchr(programInvocation, pathsep);
- if (!end) return strdup("");
-
- length = (end - programInvocation)+2;
- path = (char*) malloc(length);
- strncpy(path, programInvocation, length-1);
- path[length-1] = 0;
-
- return path;
-}
-
-int main(int argc, char **argv) {
- uint64 scHandlerID;
- unsigned int error;
- char *version;
- char *identity;
- char * path;
-
- /* Create struct for callback function pointers */
- struct ClientUIFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ClientUIFunctions));
-
- /* Callback function pointers */
- /* It is sufficient to only assign those callback functions you are using. When adding more callbacks, add those function pointers here. */
- funcs.onConnectStatusChangeEvent = onConnectStatusChangeEvent;
- funcs.onNewChannelEvent = onNewChannelEvent;
- funcs.onNewChannelCreatedEvent = onNewChannelCreatedEvent;
- funcs.onDelChannelEvent = onDelChannelEvent;
- funcs.onClientMoveEvent = onClientMoveEvent;
- funcs.onClientMoveSubscriptionEvent = onClientMoveSubscriptionEvent;
- funcs.onClientMoveTimeoutEvent = onClientMoveTimeoutEvent;
- funcs.onTalkStatusChangeEvent = onTalkStatusChangeEvent;
- funcs.onServerErrorEvent = onServerErrorEvent;
- funcs.onIgnoredWhisperEvent = onIgnoredWhisperEvent;
-
- /* Initialize client lib with callbacks */
- /* Resource path points to the SDK\bin directory to locate the soundbackends*/
- path = programPath(argv[0]);
- error = ts3client_initClientLib(&funcs, NULL, LogType_FILE | LogType_CONSOLE, NULL, path);
- free(path);
-
- if(error != ERROR_ok) {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initializing serverlib: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* Spawn a new server connection handler using the default port and store the server ID */
- if((error = ts3client_spawnNewServerConnectionHandler(0, &scHandlerID)) != ERROR_ok) {
- printf("Error spawning server connection handler: %d\n", error);
- return 1;
- }
-
- /* Open default capture device */
- /* Passing empty string for mode and NULL or empty string for device will open the default device */
- if((error = ts3client_openCaptureDevice(scHandlerID, "", NULL)) != ERROR_ok) {
- printf("Error opening capture device: %d\n", error);
- }
-
- /* Adjust "vad" preprocessor value to use vad by default */
- if ((error = ts3client_setPreProcessorConfigValue(scHandlerID, "vad", "true")) != ERROR_ok) {
- printf("Error toggling VAD: %d\n", error);
- return 1;
- }
-
- /* Adjust "vad_mode" value to use hybrid by default */
- if ((error = ts3client_setPreProcessorConfigValue(scHandlerID, "vad_mode", "2")) != ERROR_ok) {
- printf("Error setting vad_mode value to hybrid: %d\n", error);
- return 1;
- }
-
- /* Adjust "voiceactivation_level" value */
- if ((error = ts3client_setPreProcessorConfigValue(scHandlerID, "voiceactivation_level", "-20")) != ERROR_ok) {
- printf("Error setting voiceactivation_level: %d\n", error);
- return 1;
- }
-
- /* Open default playback device */
- /* Passing empty string for mode and NULL or empty string for device will open the default device */
- if((error = ts3client_openPlaybackDevice(scHandlerID, "", NULL)) != ERROR_ok) {
- printf("Error opening playback device: %d\n", error);
- }
-
- /* Create a new client identity */
- /* In your real application you should do this only once, store the assigned identity locally and then reuse it. */
- if((error = ts3client_createIdentity(&identity)) != ERROR_ok) {
- printf("Error creating identity: %d\n", error);
- return 1;
- }
-
- /* Connect to server on localhost:9987 with nickname "client", no default channel, no default channel password and server password "secret" */
- if((error = ts3client_startConnection(scHandlerID, identity, "localhost", 9987, "client", NULL, "", "secret")) != ERROR_ok) {
- printf("Error connecting to server: %d\n", error);
- return 1;
- }
-
- ts3client_freeMemory(identity); /* Release dynamically allocated memory */
- identity = NULL;
-
- printf("Client lib initialized and running\n");
-
- /* Query and print client lib version */
- if((error = ts3client_getClientLibVersion(&version)) != ERROR_ok) {
- printf("Failed to get clientlib version: %d\n", error);
- return 1;
- }
- printf("Client lib version: %s\n", version);
- ts3client_freeMemory(version); /* Release dynamically allocated memory */
- version = NULL;
-
- SLEEP(500);
-
- /* Wait for user input */
- printf("\n--- Press Return to disconnect from server and exit ---\n");
- getchar();
-
- /* Disconnect from server. ERROR_not_connected just means the peer is already
- gone (e.g. the server was shut down) - nothing to do, so move on. */
- if((error = ts3client_stopConnection(scHandlerID, "leaving")) != ERROR_ok && error != ERROR_not_connected)
- printf("Error stopping connection: %d\n", error);
-
- SLEEP(200);
-
- /* Destroy server connection handler */
- if((error = ts3client_destroyServerConnectionHandler(scHandlerID)) != ERROR_ok)
- printf("Error destroying server connection handler: %d\n", error);
-
- /* Shutdown client lib */
- if((error = ts3client_destroyClientLib()) != ERROR_ok)
- printf("Failed to destroy clientlib: %d\n", error);
-
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal/sources.cmake
deleted file mode 100644
index 68c919e..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal/sources.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal_filetransfer/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal_filetransfer/main.c
deleted file mode 100644
index a73a677..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal_filetransfer/main.c
+++ /dev/null
@@ -1,629 +0,0 @@
-/*
- * TeamSpeak SDK client minimal sample for filetransfer
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-
-#include
-#include
-#include
-
-#define DEFAULT_VIRTUAL_SERVER 1
-#define NAME_BUFSIZE 1024
-#define CHANNEL_PASSWORD_BUFSIZE 1024
-
-#ifdef _WIN32
-#define SLEEP(x) Sleep(x)
-#define strdup(x) _strdup(x)
-#else
-#define SLEEP(x) usleep(x*1000)
-#endif
-
-char* gProgramPath;
-
-void emptyInputBuffer() {
- int c;
- while((c = getchar()) != '\n' && c != EOF);
-}
-
-uint64 enterChannelID() {
- uint64 channelID;
- int n;
-
- printf("\nEnter channel ID: ");
- n = scanf("%llu", (unsigned long long*)&channelID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return 0;
- }
- return channelID;
-}
-
-anyID enterTransferID() {
- anyID transferID;
- int n;
-
- printf("\nEnter transferID: ");
- n = scanf("%hu", (anyID*)&transferID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return 0;
- }
- return transferID;
-}
-
-uint64 enterBWLimit(const char* section) {
- uint64 limit;
- int n;
-
- printf("Enter bandwidth limit for %s (or u for unlimited): ", section);
- n = scanf("%llu", (unsigned long long*)&limit);
- emptyInputBuffer();
- if(n == 0) {
- return BANDWIDTH_LIMIT_UNLIMITED;
- }
- return limit;
-}
-
-void enterName(const char* text, char *name) {
- char *s;
- printf("\n%s: ", text);
- fgets(name, NAME_BUFSIZE, stdin);
- s = strrchr(name, '\n');
- if(s) {
- *s = '\0';
- }
-}
-
-void enterPassword(char *password) {
- char *s;
- printf("\nEnter password: ");
- fgets(password, CHANNEL_PASSWORD_BUFSIZE, stdin);
- s = strrchr(password, '\n');
- if(s) {
- *s = '\0';
- }
-}
-
-char* programPath(char* programInvocation){
- char* path;
- char* end;
- int length;
- char pathsep;
-
- if(programInvocation == NULL) return strdup("");
-
-#ifdef _WIN32
- pathsep = '\\';
-#else
- pathsep = '/';
-#endif
-
- end = strrchr(programInvocation, pathsep);
- if(!end) return strdup("");
-
- length = (end - programInvocation)+2;
- path = (char*) malloc(length);
- strncpy(path, programInvocation, length-1);
- path[length-1] = 0;
-
- return path;
-}
-
-/*
- * Callback for connection status change.
- * Connection status switches through the states STATUS_DISCONNECTED, STATUS_CONNECTING, STATUS_CONNECTED and STATUS_CONNECTION_ESTABLISHED.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * newStatus - New connection status, see the enum ConnectStatus in clientlib_publicdefinitions.h
- * errorNumber - Error code. Should be zero when connecting or actively disconnection.
- * Contains error state when losing connection.
- */
-void onConnectStatusChangeEvent(uint64 serverConnectionHandlerID, int newStatus, unsigned int errorNumber) {
- printf("Connect status changed: %llu %d %u\n", (unsigned long long)serverConnectionHandlerID, newStatus, errorNumber);
- /* Failed to connect ? */
- if(newStatus == STATUS_DISCONNECTED && errorNumber == ERROR_failed_connection_initialisation) {
- printf("Looks like there is no server running, terminate!\n");
- }
-}
-
-/*
- * This event is called when another client starts whispering to own client. Own client can decide to accept or deny
- * receiving the whisper by adding the sending client to the whisper allow list. If not added, whispering is blocked.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * clientID - ID of the whispering client
- */
-void onIgnoredWhisperEvent(uint64 serverConnectionHandlerID, anyID clientID) {
- unsigned int error;
-
- /* Add sending client to whisper allow list so own client will hear the voice data.
- * It is sufficient to add a clientID only once, not everytime this event is called. However it won't
- * hurt to add the same clientID to the allow list repeatedly, but is is not necessary. */
- if((error = ts3client_allowWhispersFrom(serverConnectionHandlerID, clientID)) != ERROR_ok) {
- printf("Error setting client on whisper allow list: %u\n", error);
- } else {
- printf("Added client %d to whisper allow list\n", clientID);
- }
-}
-
-/*
- * This event is called when the server determines an error.
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * errorMessage - String containing a verbose error message
- * error - Error code as explained on public_errors.h
- * returnCode - Return code if it has been set by the Client Lib function call which caused this error event
- * extraMessage - Can contain additional information about the occurred error, otherwise it is an empty string
- */
-
-void onServerErrorEvent(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, const char* extraMessage) {
- printf("Error for server %llu: %s %s\n", (unsigned long long)serverConnectionHandlerID, errorMessage, extraMessage ? extraMessage : "");
-}
-
-/*
- * This event is periodically called when a filetransfer is active
- *
- * Parameters:
- * transferID - Transfer ID for which filetransfer this event was called
- * status - Filetransfer status code as explained on public_errors.h
- * statusMessage - String containing a verbose status message
- * remotefileSize - Size in bytes of the remote file
- * scHandlerID - Server connection handler ID
- */
-
-void onFileTransferStatusEvent(anyID transferID, unsigned int status, const char* statusMessage, uint64 remotefileSize, uint64 scHandlerID) {
- printf("onFileTransferStatusEvent transferID: %d status: %d statusMessage: %s\n", transferID, status, statusMessage);
-}
-
-/*
- * This event is called when the fileList was requested (ts3client_requestFileList)
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - To which channel ID the remote file contains
- * path - Path of the remote file or directory
- * name - Name of the remote file or directory
- * size - Size in bytes of the remote file. If it is a directory this value is 0
- * datetime - Timestamp of the remote file or directory
- * type - Type of the remote item (0 is a folder or 1 is a file)
- * incompleteSize - If the file is not completely uploaded yet, this value contains the current available size
- * returnCode - Return code if it has been set by the Client Lib function call which caused this error event
- */
-
-void onFileListEvent(uint64 serverConnectionHandlerID, uint64 channelID, const char* path, const char* name, uint64 size, uint64 datetime, int type, uint64 incompletesize, const char* returnCode) {
- printf("onFileListEvent channelID: %llu path: %s filename: %s type:%s\n", channelID, path, name, type == 1 ? "file" : "dir");
-}
-
-/*
- * This event is called when the fileList request is finished
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - Server has finished sending events regarding this channel ID
- * path - Path of the remote directory
- */
-
-void onFileListFinishedEvent(uint64 serverConnectionHandlerID, uint64 channelID, const char* path) {
- printf("onFileListFinishedEvent: %llu\n", (unsigned long long)channelID);
-}
-
-/*
- * This event is called when a requestFileInfo call was completed on the server
- *
- * Parameters:
- * serverConnectionHandlerID - Server connection handler ID
- * channelID - Server has finished sending events regarding this channel ID
- * name - name of the file
- * size - size in bytes of the file
- * datetime - file date/time in unix time
- */
-
-void onFileInfoEvent(uint64 serverConnectionHandlerID, uint64 channelID, const char* name, uint64 size, uint64 datetime){
- printf("onFileInfoEvent channelID: %llu filename: %s size:%llu date:%llu\n", channelID, name, size, datetime);
-}
-
-/*
- * Print all channels of the given virtual server
- */
-void showChannels(uint64 serverConnectionHandlerID) {
- uint64 *ids;
- int i;
- unsigned int error;
-
- printf("\nList of channels on virtual server %llu:\n", (unsigned long long)serverConnectionHandlerID);
- if((error = ts3client_getChannelList(serverConnectionHandlerID, &ids)) != ERROR_ok) { /* Get array of channel IDs */
- printf("Error getting channel list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No channels\n\n");
- ts3client_freeMemory(ids);
- return;
- }
- for(i=0; ids[i]; i++) {
- char* name;
- if((error = ts3client_getChannelVariableAsString(serverConnectionHandlerID, ids[i], CHANNEL_NAME, &name)) != ERROR_ok) { /* Query channel name */
- printf("Error getting channel name: %d\n", error);
- break;
- }
- printf("%llu - %s\n", (unsigned long long)ids[i], name);
- ts3client_freeMemory(name);
- }
- printf("\n");
-
- ts3client_freeMemory(ids); /* Release array */
-}
-
-void showChannelDir(uint64 serverConnectionHandlerID) {
- unsigned int error;
- uint64 channelID = enterChannelID();
- if(channelID) {
- if((error = ts3client_requestFileList(serverConnectionHandlerID, channelID, "", "/", "")) != ERROR_ok) { /* Requesting the root directory of this channel ID */
- printf("Error getting channel dir: %d\n", error);
- }
- }
-}
-
-void uploadFile(uint64 serverConnectionHandlerID) {
- anyID transferID;
- int overwrite = 1;
- int resume = 0;
- char filename[NAME_BUFSIZE];
- uint64 channelID = enterChannelID();
- printf("Uploading from predefined path: %s\n", gProgramPath);
- enterName("Enter filename to upload ( like /testfile.txt)", filename);
- if(channelID) {
- if(ts3client_sendFile(serverConnectionHandlerID, channelID, "", filename, overwrite, resume, gProgramPath, &transferID, NULL) == ERROR_ok) {
- printf("Sending file with transferID: %d\n", transferID);
- }
- }
-}
-
-void downloadFile(uint64 serverConnectionHandlerID) {
- anyID transferID;
- int overwrite = 1;
- int resume = 0;
- uint64 channelID;
- char filename[NAME_BUFSIZE];
- channelID = enterChannelID();
- printf("Downloading in predefined path: %s\n", gProgramPath);
- enterName("Enter filename to download ( like /testfile.txt)", filename);
-
- if(ts3client_requestFile(serverConnectionHandlerID, channelID, "", filename, overwrite, resume, gProgramPath, &transferID, NULL) == ERROR_ok) {
- printf("Recieving file with transferID: %d\n", transferID);
- }
-}
-
-void deleteFile(uint64 serverConnectionHandlerID) {
- unsigned int error;
- uint64 channelID;
- char* files[2];
- char filename[NAME_BUFSIZE];
- channelID = enterChannelID();
- enterName("Enter filename to delete ( like /testfile.txt)", filename);
-
- files[0] = filename;
- files[1] = 0;
-
- if(channelID) {
- if((error = ts3client_requestDeleteFile(serverConnectionHandlerID, channelID, "", (const char**)files, NULL)) != ERROR_ok) {
- printf("Error deleting file: %d\n", error);
- }
- }
-}
-
-void renameFile(uint64 serverConnectionHandlerID) {
- unsigned int error;
- uint64 channelID;
- char oldName[NAME_BUFSIZE];
- char newName[NAME_BUFSIZE];
-
- channelID = enterChannelID();
- enterName("Enter old name ( like /testfile.txt)", oldName);
- enterName("Enter new name ( like /new_testfile.txt)", newName);
-
- if(channelID) {
- if((error = ts3client_requestRenameFile(serverConnectionHandlerID, channelID, "", channelID, "", oldName, newName, NULL)) != ERROR_ok) {
- printf("Error renaming file: %d\n", error);
- }
- }
-}
-
-void createDirectory(uint64 serverConnectionHandlerID) {
- unsigned int error;
- uint64 channelID;
- char dirName[NAME_BUFSIZE];
-
- channelID = enterChannelID();
- enterName("Enter new directory name ( like /subdir)", dirName);
-
- if(channelID) {
- if((error = ts3client_requestCreateDirectory(serverConnectionHandlerID, channelID, "", dirName, NULL)) != ERROR_ok) {
- printf("Error renaming file: %d\n", error);
- }
- }
-}
-
-void fileInfo(uint64 serverConnectionHandlerID) {
- uint64 channelID;
- char filename[NAME_BUFSIZE];
- unsigned int error;
-
- channelID = enterChannelID();
- enterName("Enter filename to get info on ( like /testfile.txt)", filename);
-
- if((error=ts3client_requestFileInfo(serverConnectionHandlerID, channelID, "", filename, NULL)) != ERROR_ok) {
- printf("error getting file info: %d\n", error);
- }
-}
-
-void bandwidth(uint64 serverConnectionHandlerID) {
- unsigned int error;
- uint64 instanceUpLimit;
- uint64 instanceDownLimit;
- uint64 schUpLimit;
- uint64 schDownLimit;
-
- if((error=ts3client_getInstanceSpeedLimitUp(&instanceUpLimit)) != ERROR_ok){
- printf("error during ts3client_getInstanceSpeedLimitUp: %d\n", error);
- instanceUpLimit=0;
- }
-
- if((error=ts3client_getInstanceSpeedLimitDown(&instanceDownLimit)) != ERROR_ok){
- printf("error during ts3client_getInstanceSpeedLimitDown: %d\n", error);
- instanceDownLimit=0;
- }
-
- if((error=ts3client_getServerConnectionHandlerSpeedLimitUp(serverConnectionHandlerID, &schUpLimit)) != ERROR_ok){
- printf("error during ts3client_getServerConnectionHandlerSpeedLimitUp: %d\n", error);
- schUpLimit=0;
- }
-
- if((error=ts3client_getServerConnectionHandlerSpeedLimitDown(serverConnectionHandlerID, &schDownLimit)) != ERROR_ok){
- printf("error during ts3client_getServerConnectionHandlerSpeedLimitDown: %d\n", error);
- schDownLimit=0;
- }
-
- printf("current limits: instanceUp: %llu instanceDown: %llu schUp: %llu schDown: %llu\n", instanceUpLimit, instanceDownLimit, schUpLimit, schDownLimit);
-
- instanceUpLimit = enterBWLimit("instanceUp");
- if((error=ts3client_setInstanceSpeedLimitUp(instanceUpLimit)) != ERROR_ok){
- printf("error during ts3client_setInstanceSpeedLimitUp: %d\n", error);
- }
-
- instanceDownLimit = enterBWLimit("instanceDown");
- if((error=ts3client_setInstanceSpeedLimitDown(instanceDownLimit)) != ERROR_ok){
- printf("error during ts3client_setInstanceSpeedLimitDown: %d\n", error);
- }
-
- schUpLimit = enterBWLimit("schUp");
- if((error=ts3client_setServerConnectionHandlerSpeedLimitUp(serverConnectionHandlerID, schUpLimit)) != ERROR_ok){
- printf("error during ts3client_setServerConnectionHandlerSpeedLimitUp: %d\n", error);
- }
-
- schDownLimit = enterBWLimit("schDown");
- if((error=ts3client_setServerConnectionHandlerSpeedLimitDown(serverConnectionHandlerID, schDownLimit)) != ERROR_ok){
- printf("error during ts3client_setServerConnectionHandlerSpeedLimitDown: %d\n", error);
- }
-}
-
-void cancelTransfer(uint64 serverConnectionHandlerID){
- anyID transferID;
- unsigned int error;
-
- transferID = enterTransferID();
-
- if(transferID){
- if((error=ts3client_haltTransfer(serverConnectionHandlerID, transferID, 1, NULL))!=ERROR_ok){
- printf("error during ts3client_haltTransfer: %d\n", error);
- }
- }
-}
-
-void transferStats(uint64 serverConnectionHandlerID){
- unsigned int error;
- uint64 bytesRecievedBandwidth;
- uint64 bytesSentBandwidth;
- uint64 bytesRecieved;
- uint64 bytesSent;
-
- if((error=ts3client_getConnectionVariableAsUInt64(serverConnectionHandlerID, 0, CONNECTION_FILETRANSFER_BANDWIDTH_RECEIVED, &bytesRecievedBandwidth))!=ERROR_ok){
- printf("error getting bytesRecievedBandwidth: %d\n", error);
- bytesRecievedBandwidth=0;
- }
-
- if((error=ts3client_getConnectionVariableAsUInt64(serverConnectionHandlerID, 0, CONNECTION_FILETRANSFER_BANDWIDTH_SENT, &bytesSentBandwidth))!=ERROR_ok){
- printf("error getting bytesSentBandwidth: %d\n", error);
- bytesSentBandwidth=0;
- }
-
- if((error=ts3client_getConnectionVariableAsUInt64(serverConnectionHandlerID, 0, CONNECTION_FILETRANSFER_BYTES_RECEIVED_TOTAL, &bytesRecieved))!=ERROR_ok){
- printf("error getting bytesRecieved: %d\n", error);
- bytesRecieved=0;
- }
-
- if((error=ts3client_getConnectionVariableAsUInt64(serverConnectionHandlerID, 0, CONNECTION_FILETRANSFER_BYTES_SENT_TOTAL, &bytesSent))!=ERROR_ok){
- printf("error getting bytesSent: %d\n", error);
- bytesSent=0;
- }
-
- printf("Transfer statistics: BW recv: %llu BW send %llu bytes recv: %llu bytes sent: %llu\n", bytesRecievedBandwidth, bytesSentBandwidth, bytesRecieved, bytesSent);
-}
-
-void showHelp() {
- printf("\n");
- printf("[q] - Disconnect from server\n");
- printf("[h] - Show this help\n");
- printf("[c] - Show channels\n");
- printf("[s] - Show directory of a channel\n");
- printf("[u] - Upload file\n");
- printf("[d] - Download file\n");
- printf("[x] - Delete file\n");
- printf("[r] - Rename file\n");
- printf("[f] - create directory file\n");
- printf("[i] - get file information\n");
- printf("[k] - cancel transfer\n");
- printf("[l] - edit transfer bandwidth limits\n");
- printf("[j] - get connection transfer stats\n");
-}
-
-int main(int argc, char **argv) {
- uint64 scHandlerID;
- unsigned int error;
- char *version;
- char *identity;
- short abort = 0;
-
- /* Create struct for callback function pointers */
- struct ClientUIFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ClientUIFunctions));
-
- /* Callback function pointers */
- /* It is sufficient to only assign those callback functions you are using. When adding more callbacks, add those function pointers here. */
- funcs.onConnectStatusChangeEvent = onConnectStatusChangeEvent;
- funcs.onServerErrorEvent = onServerErrorEvent;
- funcs.onFileListEvent = onFileListEvent;
- funcs.onFileListFinishedEvent = onFileListFinishedEvent;
- funcs.onFileTransferStatusEvent = onFileTransferStatusEvent; // crash when not defined!!!
- funcs.onFileInfoEvent = onFileInfoEvent;
- funcs.onIgnoredWhisperEvent = onIgnoredWhisperEvent;
-
- /* Initialize client lib with callbacks */
- /* Resource path points to the SDK\bin directory to locate the soundbackends*/
- gProgramPath = programPath(argv[0]);
- error = ts3client_initClientLib(&funcs, NULL, LogType_FILE | LogType_CONSOLE | LogType_USERLOGGING, NULL, gProgramPath);
-
- if(error != ERROR_ok) {
- char* errormsg;
- if(ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initialzing serverlib: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* Spawn a new server connection handler using the default port and store the server ID */
- if((error = ts3client_spawnNewServerConnectionHandler(0, &scHandlerID)) != ERROR_ok) {
- printf("Error spawning server connection handler: %d\n", error);
- return 1;
- }
-
- /* Create a new client identity */
- /* In your real application you should do this only once, store the assigned identity locally and then reuse it. */
- if((error = ts3client_createIdentity(&identity)) != ERROR_ok) {
- printf("Error creating identity: %d\n", error);
- return 1;
- }
-
-
- /* Connect to server on localhost:9987 with nickname "client", no default channel, no default channel password and server password "secret" */
- if((error = ts3client_startConnection(scHandlerID, identity, "localhost", 9987, "client", NULL, "", "secret")) != ERROR_ok) {
- printf("Error connecting to server: %d\n", error);
- return 1;
- }
-
- ts3client_freeMemory(identity); /* Release dynamically allocated memory */
- identity = NULL;
-
- printf("Client lib initialized and running\n");
-
- /* Query and print client lib version */
- if((error = ts3client_getClientLibVersion(&version)) != ERROR_ok) {
- printf("Failed to get clientlib version: %d\n", error);
- return 1;
- }
- printf("Client lib version: %s\n", version);
- ts3client_freeMemory(version); /* Release dynamically allocated memory */
- version = NULL;
-
- SLEEP(500);
-
- /* Simple commandline interface */
- printf("\nTeamSpeak 3 client commandline interface\n");
- showHelp();
-
- /* Wait for user input */
- while(!abort) {
- int c = getc(stdin);
- switch(c) {
- case 'q':
- printf("\nDisconnecting from server...\n");
- abort = 1;
- break;
- case 'h':
- showHelp();
- break;
- case 'c':
- showChannels(DEFAULT_VIRTUAL_SERVER);
- break;
- case 's':
- showChannelDir(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'u':
- uploadFile(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'x':
- deleteFile(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'r':
- renameFile(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'd':
- downloadFile(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'f':
- createDirectory(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'i':
- fileInfo(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'k':
- cancelTransfer(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'l':
- bandwidth(DEFAULT_VIRTUAL_SERVER);
- break;
- case 'j':
- transferStats(DEFAULT_VIRTUAL_SERVER);
- break;
- }
-
- SLEEP(50);
- }
-
- /* Disconnect from server. ERROR_not_connected just means the peer is already
- gone (e.g. the server was shut down) - nothing to do, so move on. */
- if((error = ts3client_stopConnection(scHandlerID, "leaving")) != ERROR_ok && error != ERROR_not_connected)
- printf("Error stopping connection: %d\n", error);
-
- SLEEP(200);
-
- /* Destroy server connection handler */
- if((error = ts3client_destroyServerConnectionHandler(scHandlerID)) != ERROR_ok)
- printf("Error destroying server connection handler: %d\n", error);
-
- /* Shutdown client lib */
- if((error = ts3client_destroyClientLib()) != ERROR_ok)
- printf("Failed to destroy clientlib: %d\n", error);
-
- free(gProgramPath);
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal_filetransfer/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal_filetransfer/sources.cmake
deleted file mode 100644
index 68c919e..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_minimal_filetransfer/sources.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_multi/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/client_multi/main.c
deleted file mode 100644
index 3501044..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_multi/main.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * TeamSpeak SDK client multi-connection sample
- *
- * Spawns multiple simultaneous server connection handlers from a single
- * client application, all connecting to the same server. Intended to
- * reproduce/diagnose the issue where secondary sessions are dropped after
- * ~10 seconds with "10 resends of COMMAND packet" / ping timeout errors.
- *
- * Usage:
- * ts_client_multi [host] [port] [serverPassword] [numConnections] [runSeconds] [staggerMs] [shareIdentity] [localPort]
- *
- * Defaults: localhost 9987 "secret" 3 60 0 0 0
- *
- * localPort: local UDP port passed to spawnNewServerConnectionHandler.
- * 0 = ephemeral (a fresh port per connection handler). A fixed
- * value makes all connection handlers request the SAME local port,
- * mimicking applications that pin their source port.
- *
- * staggerMs: delay between issuing each connection (0 = all simultaneous).
- * Use a value larger than the handshake time (e.g. 2000) to start
- * each secondary session only after the previous one is fully
- * established, matching the reported "secondary sessions initiated
- * afterwards" scenario.
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-#ifdef _WIN32
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-#include
-
-#include
-#include
-#include
-
-#ifdef _WIN32
-#define SLEEP(x) Sleep(x)
-#define strdup(x) _strdup(x)
-#else
-#define SLEEP(x) usleep((x)*1000)
-#endif
-
-#define MAX_CONNECTIONS 32
-
-/* Track the connection handlers we created so the status callback can label them. */
-static uint64 g_handlers[MAX_CONNECTIONS];
-static int g_numHandlers = 0;
-static time_t g_startTime;
-
-static int handlerIndex(uint64 scHandlerID) {
- for (int i = 0; i < g_numHandlers; ++i) {
- if (g_handlers[i] == scHandlerID) return i;
- }
- return -1;
-}
-
-static double elapsed(void) {
- return difftime(time(NULL), g_startTime);
-}
-
-static const char* statusName(int status) {
- switch (status) {
- case STATUS_DISCONNECTED: return "DISCONNECTED";
- case STATUS_CONNECTING: return "CONNECTING";
- case STATUS_CONNECTED: return "CONNECTED";
- case STATUS_CONNECTION_ESTABLISHING:return "CONNECTION_ESTABLISHING";
- case STATUS_CONNECTION_ESTABLISHED: return "CONNECTION_ESTABLISHED";
- default: return "UNKNOWN";
- }
-}
-
-/*
- * Connection status change. This is where we expect to observe the secondary
- * connections dropping back to DISCONNECTED with a non-zero error after ~10s.
- */
-void onConnectStatusChangeEvent(uint64 serverConnectionHandlerID, int newStatus, unsigned int errorNumber) {
- int idx = handlerIndex(serverConnectionHandlerID);
- char* errormsg = NULL;
- const char* errstr = "";
- if (errorNumber != ERROR_ok && ts3client_getErrorMessage(errorNumber, &errormsg) == ERROR_ok)
- errstr = errormsg;
-
- printf("[%6.1fs] conn#%d (sch=%llu): %s (err=%u %s)\n",
- elapsed(), idx, (unsigned long long)serverConnectionHandlerID,
- statusName(newStatus), errorNumber, errstr);
- fflush(stdout);
-
- if (errormsg) ts3client_freeMemory(errormsg);
-}
-
-void onClientMoveTimeoutEvent(uint64 serverConnectionHandlerID, anyID clientID, uint64 oldChannelID, uint64 newChannelID, int visibility, const char* timeoutMessage) {
- int idx = handlerIndex(serverConnectionHandlerID);
- printf("[%6.1fs] conn#%d: clientID %u timed out: %s\n", elapsed(), idx, clientID, timeoutMessage ? timeoutMessage : "");
- fflush(stdout);
-}
-
-void onServerErrorEvent(uint64 serverConnectionHandlerID, const char* errorMessage, unsigned int error, const char* returnCode, const char* extraMessage) {
- int idx = handlerIndex(serverConnectionHandlerID);
- printf("[%6.1fs] conn#%d: server error: %s %s\n", elapsed(), idx, errorMessage ? errorMessage : "", extraMessage ? extraMessage : "");
- fflush(stdout);
-}
-
-char* programPath(char* programInvocation) {
- char* path;
- char* end;
- int length;
- char pathsep;
-
- if (programInvocation == NULL) return strdup("");
-
-#ifdef _WIN32
- pathsep = '\\';
-#else
- pathsep = '/';
-#endif
-
- end = strrchr(programInvocation, pathsep);
- if (!end) return strdup("");
-
- length = (end - programInvocation) + 2;
- path = (char*)malloc(length);
- strncpy(path, programInvocation, length - 1);
- path[length - 1] = 0;
-
- return path;
-}
-
-int main(int argc, char** argv) {
- unsigned int error;
- char* version;
- char* path;
-
- /* --- arguments --- */
- const char* host = (argc > 1) ? argv[1] : "localhost";
- unsigned int port = (argc > 2) ? (unsigned int)atoi(argv[2]) : 9987;
- const char* serverPassword = (argc > 3) ? argv[3] : "secret";
- int numConnections = (argc > 4) ? atoi(argv[4]) : 3;
- int runSeconds = (argc > 5) ? atoi(argv[5]) : 60;
- int staggerMs = (argc > 6) ? atoi(argv[6]) : 0;
- int shareIdentity = (argc > 7) ? atoi(argv[7]) : 0;
- int localPort = (argc > 8) ? atoi(argv[8]) : 0;
-
- if (numConnections < 1) numConnections = 1;
- if (numConnections > MAX_CONNECTIONS) numConnections = MAX_CONNECTIONS;
-
- printf("Multi-connection test: host=%s port=%u connections=%d runSeconds=%d staggerMs=%d shareIdentity=%d localPort=%d\n",
- host, port, numConnections, runSeconds, staggerMs, shareIdentity, localPort);
-
- /* Create struct for callback function pointers */
- struct ClientUIFunctions funcs;
- memset(&funcs, 0, sizeof(struct ClientUIFunctions));
- funcs.onConnectStatusChangeEvent = onConnectStatusChangeEvent;
- funcs.onClientMoveTimeoutEvent = onClientMoveTimeoutEvent;
- funcs.onServerErrorEvent = onServerErrorEvent;
-
- /* Initialize client lib with callbacks. Resource path points to the dir
- * containing the soundbackends (next to the executable). */
- path = programPath(argv[0]);
- error = ts3client_initClientLib(&funcs, NULL, LogType_FILE | LogType_CONSOLE, NULL, path);
- free(path);
-
- if (error != ERROR_ok) {
- char* errormsg;
- if (ts3client_getErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initializing clientlib: %s\n", errormsg);
- ts3client_freeMemory(errormsg);
- }
- return 1;
- }
-
- if ((error = ts3client_getClientLibVersion(&version)) == ERROR_ok) {
- printf("Client lib version: %s\n", version);
- ts3client_freeMemory(version);
- }
-
- g_startTime = time(NULL);
-
- /* When shareIdentity is set, all connections reuse a single identity (as a
- * real application that stores and reuses one identity would). This mirrors
- * "multiple sessions from the same client" and is a prime suspect for the
- * handshake hardening rejecting secondary sessions from the same uid. */
- char* sharedIdentity = NULL;
- if (shareIdentity) {
- if ((error = ts3client_createIdentity(&sharedIdentity)) != ERROR_ok) {
- printf("Error creating shared identity: %u\n", error);
- return 1;
- }
- }
-
- /* Spawn N connection handlers and connect each to the same server.
- * No audio devices are opened: this keeps the test focused on the
- * network/command layer and avoids capture-device contention. */
- for (int i = 0; i < numConnections; ++i) {
- uint64 scHandlerID;
- char* identity = NULL;
- char nickname[64];
-
- if ((error = ts3client_spawnNewServerConnectionHandler(localPort, &scHandlerID)) != ERROR_ok) {
- printf("Error spawning server connection handler #%d: %u\n", i, error);
- continue;
- }
- g_handlers[g_numHandlers++] = scHandlerID;
-
- if (shareIdentity) {
- identity = sharedIdentity;
- } else if ((error = ts3client_createIdentity(&identity)) != ERROR_ok) {
- printf("Error creating identity #%d: %u\n", i, error);
- continue;
- }
-
- snprintf(nickname, sizeof(nickname), "multi_%d", i);
-
- if ((error = ts3client_startConnection(scHandlerID, identity, host, port, nickname, NULL, "", serverPassword)) != ERROR_ok) {
- printf("Error connecting conn#%d to server: %u\n", i, error);
- } else {
- printf("[%6.1fs] conn#%d (sch=%llu): startConnection issued as \"%s\"%s\n",
- elapsed(), i, (unsigned long long)scHandlerID, nickname,
- shareIdentity ? " [shared identity]" : "");
- }
- if (!shareIdentity && identity)
- ts3client_freeMemory(identity);
-
- /* Optionally wait before starting the next connection, so secondary
- * sessions are initiated only after the previous one is up. */
- if (staggerMs > 0 && i + 1 < numConnections) {
- SLEEP(staggerMs);
- }
- }
-
- if (sharedIdentity) ts3client_freeMemory(sharedIdentity);
-
- printf("\n--- %d connection(s) started. Observing for %d seconds. ---\n", g_numHandlers, runSeconds);
- printf("--- Watch for secondary connections dropping (resend/ping timeout). ---\n\n");
- fflush(stdout);
-
- /* Idle loop, printing a periodic status snapshot so drops are easy to spot. */
- for (int t = 0; t < runSeconds; ++t) {
- SLEEP(1000);
- if ((t + 1) % 5 == 0) {
- printf("[%6.1fs] status snapshot:\n", elapsed());
- for (int i = 0; i < g_numHandlers; ++i) {
- int status = 0;
- ts3client_getConnectionStatus(g_handlers[i], &status);
- printf(" conn#%d (sch=%llu): %s\n", i, (unsigned long long)g_handlers[i], statusName(status));
- }
- fflush(stdout);
- }
- }
-
- /* Disconnect and clean up all connection handlers. */
- printf("\nDisconnecting all connections...\n");
- for (int i = 0; i < g_numHandlers; ++i) {
- ts3client_stopConnection(g_handlers[i], "leaving");
- }
- SLEEP(500);
- for (int i = 0; i < g_numHandlers; ++i) {
- ts3client_destroyServerConnectionHandler(g_handlers[i]);
- }
-
- if ((error = ts3client_destroyClientLib()) != ERROR_ok) {
- printf("Failed to destroy clientlib: %u\n", error);
- return 1;
- }
-
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/client_multi/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/client_multi/sources.cmake
deleted file mode 100644
index 68c919e..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/client_multi/sources.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/cmake/ide.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/cmake/ide.cmake
deleted file mode 100644
index 05cc28f..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/cmake/ide.cmake
+++ /dev/null
@@ -1,29 +0,0 @@
-# Collect a small set of SDK headers to show in the IDE solution.
-# Depends on find_package(team_client|team_server) having run.
-
-if("${sample_type}" STREQUAL "client")
- get_target_property(_ts_sdk_inc_dir teamspeak::client INTERFACE_INCLUDE_DIRECTORIES)
-elseif("${sample_type}" STREQUAL "server")
- get_target_property(_ts_sdk_inc_dir teamspeak::server INTERFACE_INCLUDE_DIRECTORIES)
-else()
- set(_ts_sdk_inc_dir "")
-endif()
-
-set(TS_SDK_IDE_FILES "")
-if(_ts_sdk_inc_dir)
- file(GLOB _ts_log_headers "${_ts_sdk_inc_dir}/teamlog/*.h")
- list(APPEND TS_SDK_IDE_FILES
- ${_ts_log_headers}
- "${_ts_sdk_inc_dir}/teamspeak/public_definitions.h"
- "${_ts_sdk_inc_dir}/teamspeak/public_errors.h"
- )
- if("${sample_type}" STREQUAL "client")
- list(APPEND TS_SDK_IDE_FILES "${_ts_sdk_inc_dir}/teamspeak/clientlib.h")
- elseif("${sample_type}" STREQUAL "server")
- list(APPEND TS_SDK_IDE_FILES
- "${_ts_sdk_inc_dir}/teamspeak/server_commands_file_transfer.h"
- "${_ts_sdk_inc_dir}/teamspeak/serverlib.h"
- "${_ts_sdk_inc_dir}/teamspeak/serverlib_publicdefinitions.h"
- )
- endif()
-endif()
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/cmake/linux_armv8_toolchain.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/cmake/linux_armv8_toolchain.cmake
deleted file mode 100644
index 886f8ac..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/cmake/linux_armv8_toolchain.cmake
+++ /dev/null
@@ -1,10 +0,0 @@
-set(CMAKE_SYSTEM_NAME Linux)
-set(CMAKE_SYSTEM_PROCESSOR aarch64)
-set(triple aarch64-linux-gnueabi)
-set(CMAKE_C_COMPILER clang)
-set(CMAKE_C_COMPILER_TARGET ${triple})
-set(CMAKE_CXX_COMPILER clang++)
-set(CMAKE_CXX_COMPILER_TARGET ${triple})
-set(CMAKE_SYSROOT /usr/aarch64-linux-gnu)
-set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=/usr/aarch64-linux-gnu/bin/ld" CACHE FILEPATH "" FORCE)
-set(CMAKE_AR /usr/aarch64-linux-gnu/bin/ar CACHE FILEPATH "" FORCE)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/generate_vs_2022.bat b/docs/teamspeak-sdk-3.5.2/samples/source/generate_vs_2022.bat
deleted file mode 100644
index 0a359cc..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/generate_vs_2022.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-pushd build
-pushd win_x64
-cmake -G "Visual Studio 17 2022" -A x64 ../..
-popd
-popd
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/linux_x64.sh b/docs/teamspeak-sdk-3.5.2/samples/source/linux_x64.sh
deleted file mode 100644
index f5149b1..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/linux_x64.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-pushd build
-rm -rf linux_x64
-mkdir linux_x64
-pushd linux_x64
-cmake -G Ninja ../..
-ninja
-popd
-popd
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/mac.sh b/docs/teamspeak-sdk-3.5.2/samples/source/mac.sh
deleted file mode 100644
index 5557e67..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/mac.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-pushd build
-rm -rf mac
-mkdir mac
-pushd mac
-cmake -G Ninja ../..
-ninja
-popd
-popd
\ No newline at end of file
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server/id_io.c b/docs/teamspeak-sdk-3.5.2/samples/source/server/id_io.c
deleted file mode 100644
index 684f77f..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server/id_io.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#define _CRT_SECURE_NO_WARNINGS
-
-#include
-#include "id_io.h"
-
-int readKeyPairFromFile(const char *fileName, char *keyPair) {
- FILE *file;
-
- file = fopen(fileName, "r");
- if(file == NULL) {
- printf("Could not open file '%s' for reading keypair\n", fileName);
- return -1;
- }
-
- fgets(keyPair, BUFSIZ, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error reading keypair from file '%s'.\n", fileName);
- return -1;
- }
- fclose (file);
-
- printf("Read keypair '%s' from file '%s'.\n", keyPair, fileName);
- return 0;
-}
-
-int writeKeyPairToFile(const char *fileName, const char* keyPair) {
- FILE *file;
-
- file = fopen(fileName, "w");
- if(file == NULL) {
- printf("Could not open file '%s' for writing keypair\n", fileName);
- return -1;
- }
-
- fputs(keyPair, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error writing keypair to file '%s'.\n", fileName);
- return -1;
- }
- fclose (file);
-
- printf("Wrote keypair '%s' to file '%s'.\n", keyPair, fileName);
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server/id_io.h b/docs/teamspeak-sdk-3.5.2/samples/source/server/id_io.h
deleted file mode 100644
index cb0d461..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server/id_io.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef ID_IO_H
-#define ID_IO_H
-
-int readKeyPairFromFile(const char *fileName, char *keyPair);
-int writeKeyPairToFile(const char *fileName, const char* keyPair);
-
-#endif
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/server/main.c
deleted file mode 100644
index 0cbf935..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server/main.c
+++ /dev/null
@@ -1,996 +0,0 @@
-/*
- * TeamSpeak SDK server sample
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-#ifdef _WINDOWS
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-
-#include
-#include
-#include
-#include
-#include "id_io.h"
-
-#define DEFAULT_VIRTUAL_SERVER_ID 1
-
-/* Maximum number of clients allowed per virtual server */
-#define MAX_CLIENTS 8
-
-#ifdef _WINDOWS
-#define SLEEP(x) Sleep(x)
-#else
-#define SLEEP(x) usleep(x*1000)
-#endif
-
-/* Enable to use server-side voice recording */
-/* #define USE_VOICEDATAEVENT */
-
-/* Enable to use custom encryption */
-/* #define USE_CUSTOM_ENCRYPTION
-#define CUSTOM_CRYPT_KEY 123 */
-
-/* Uncomment "#define CUSTOM_PASSWORDS" to try custom passwords.
- * Please note that you have to do the same on the client demo too */
-/* #define CUSTOM_PASSWORDS */
-
-#ifdef USE_VOICEDATAEVENT
-#ifdef _WINDOWS
-#include
-#else /* Unix compatibility */
-#include
-#define _open open
-#define _write write
-#define _close close
-#define _O_CREAT O_CREAT
-#define _O_WRONLY O_WRONLY
-#define _S_IREAD S_IREAD
-#define _S_IWRITE S_IWRITE
-#define _O_APPEND O_APPEND
-#define _O_BINARY 0
-#endif
-#include
-#include
-#endif
-
-#define CHECK_ERROR(x) if((error = x) != ERROR_ok) { goto on_error; }
-
-/*
- * Callback when client has connected.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of connected client
- * channelID - ID of channel the client joined
- */
-void onClientConnected(uint64 serverID, anyID clientID, uint64 channelID, unsigned int* removeClientError) {
- char* clientName;
- unsigned int error;
-
- /* Query client nickname */
- if((error = ts3server_getClientVariableAsString(serverID, clientID, CLIENT_NICKNAME, &clientName)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error querying client nickname: %s\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return;
- }
-
- printf("Client '%s' joined channel %llu on virtual server %llu\n", clientName, (unsigned long long) channelID, (unsigned long long)serverID);
-
- /* Example: Kick clients with nickname "BlockMe from server */
- if(!strcmp(clientName, "BlockMe")) {
- printf("Blocking bad client!\n");
- *removeClientError = ERROR_client_not_logged_in; /* Give a reason */
- }
-}
-
-/*
- * Callback when client has disconnected.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of disconnected client
- * channelID - ID of channel the client left
- */
-void onClientDisconnected(uint64 serverID, anyID clientID, uint64 channelID) {
- printf("Client %u left channel %llu on virtual server %llu\n", clientID, (unsigned long long)channelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when client has moved.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of moved client
- * oldChannelID - ID of old channel the client left
- * newChannelID - ID of new channel the client joined
- */
-void onClientMoved(uint64 serverID, anyID clientID, uint64 oldChannelID, uint64 newChannelID) {
- printf("Client %u moved from channel %llu to channel %llu on virtual server %llu\n", clientID, (unsigned long long)oldChannelID, (unsigned long long)newChannelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been created.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who created the channel
- * channelID - ID of the created channel
- */
-void onChannelCreated(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu created by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been edited.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who edited the channel
- * channelID - ID of the edited channel
- */
-void onChannelEdited(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu edited by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been deleted.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who deleted the channel
- * channelID - ID of the deleted channel
- */
-void onChannelDeleted(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu deleted by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when a server text message has been received.
- * Note that only server and channel chats are received, private client messages are not caught due to privacy reasons.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who sent the text message
- * textMessage - Message text
- */
-void onServerTextMessageEvent(uint64 serverID, anyID invokerClientID, const char* textMessage) {
- char* invokerNickname;
- unsigned int error;
-
- /* Get invoker nickname */
- if((error = ts3server_getClientVariableAsString(serverID, invokerClientID, CLIENT_NICKNAME, &invokerNickname)) != ERROR_ok) {
- printf("Error getting client nickname: %d\n", error);
- return;
- }
-
- printf("Text message in server chat by %s: %s\n", invokerNickname, textMessage);
-
- ts3server_freeMemory(invokerNickname); /* Release previously allocated memory */
-}
-
-/*
- * Callback when a channel text message has been received.
- * Note that only server and channel chats are received, private client messages are not caught due to privacy reasons.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who sent the text message
- * targetChannelID - ID of the channel in which the chat was sent
- * textMessage - Message text
- */
-void onChannelTextMessageEvent(uint64 serverID, anyID invokerClientID, uint64 targetChannelID, const char* textMessage) {
- char* invokerNickname;
- char* channelName;
- unsigned int error;
-
- /* Get invoker nickname */
- if((error = ts3server_getClientVariableAsString(serverID, invokerClientID, CLIENT_NICKNAME, &invokerNickname)) != ERROR_ok) {
- printf("Error getting client nickname: %d\n", error);
- return;
- }
-
- /* Get channel name */
- if((error = ts3server_getChannelVariableAsString(serverID, targetChannelID, CHANNEL_NAME, &channelName)) != ERROR_ok) {
- printf("Error getting channel name: %d\n", error);
- ts3server_freeMemory(invokerNickname);
- return;
- }
-
- printf("Text message in channel '%s' by %s: %s\n", channelName, invokerNickname, textMessage);
-
- ts3server_freeMemory(invokerNickname);
- ts3server_freeMemory(channelName);
-}
-
-/*
- * Callback for user-defined logging.
- *
- * Parameter:
- * logMessage - Log message text
- * logLevel - Severity of log message
- * logChannel - Custom text to categorize the message channel
- * logID - Virtual server ID giving the virtual server source of the log event
- * logTime - String with the date and time the log entry occured
- * completeLogString - Verbose log message including all previous parameters for convinience
- */
-void onUserLoggingMessageEvent(const char* logMessage, int logLevel, const char* logChannel, uint64 logID, const char* logTime, const char* completeLogString) {
- /* Your custom error display here... */
- /* printf("LOG: %s\n", completeLogString); */
- if(logLevel == LogLevel_CRITICAL) {
- exit(1); /* Your custom handling of critical errors */
- }
-}
-
-#ifdef USE_VOICEDATAEVENT
-/*
- * Callback triggered by the specified client sending voice data.
- *
- * Parameters:
- * serverID - ID of the server sending the callback
- * clientID - ID of the client sending the voice data
- * voiceData - Voice data buffer. Format is 16 bit mono. Do not free this buffer.
- * voiceDataSize - Size of the voiceData buffer
- * frequency - Voice frequency
- */
-void onVoiceDataEvent(uint64 serverID, anyID clientID, unsigned char* voiceData, unsigned int voiceDataSize, unsigned int frequency) {
- int fd;
- unsigned int error;
- char* name;
-
- /* Query client nickname as string */
- if((error = ts3server_getClientVariableAsString(serverID, clientID, CLIENT_NICKNAME, &name)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error querying client nickname: %s\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return;
- }
-
- /* Open file with client nickname as filename and write voice data */
- fd =_open(name, _O_CREAT | _O_APPEND | _O_BINARY | _O_WRONLY , _S_IREAD | _S_IWRITE);
- if(fd == -1) {
- printf("failed to open file\n");
- ts3server_freeMemory(name);
- exit(-1);
- }
- _write(fd, voiceData, voiceDataSize);
- _close(fd);
-
- /* Release string dynamically allocated in getClientVariableAsString */
- ts3server_freeMemory(name);
-}
-#endif
-
-#ifdef CUSTOM_PASSWORDS
-/*
- * Called to encrypt channel and server passwords
- *
- * In this example, we do not do any encryption. That way we have clear
- * text passwords on the server.
- *
- * Parameters:
- * serverID - Server ID
- * plaintext - the clear text password
- * encryptedText - pointer to a buffer to store the encrypted password
- * encryptedTextByteSize - the size of the encryptedText buffer
- */
-void onClientPasswordEncrypt(uint64 serverID, const char* plaintext, char* encryptedText, int encryptedTextByteSize){
- int pt_len;
-
- printf("onClientPasswordEncrypt called\n");
-
- pt_len = strlen(plaintext);
- if (encryptedTextByteSize < pt_len-1) pt_len = encryptedTextByteSize-1;
-
- memcpy(encryptedText, plaintext, pt_len);
- encryptedText[pt_len]=0;
-}
-
-/*
- * Callback triggered for server password.
- *
- * Parameters:
- * serverID - ID of the virtual server to which the client is connecting.
- * client - Struct of client parameters like ident, nickname etc. who is connecting to the server. Please view public_definitions.h.
- * password - Password provided by the client.
- *
- * Return ERROR_ok to indicate the password is correct. Return ERROR_server_invalid_password for incorrect.
- */
-unsigned int onCustomServerPasswordCheck(uint64 serverID, const struct ClientMiniExport* client, const char* password){
- if (strcmp(password, "secret") == 0) return ERROR_ok;
- return ERROR_server_invalid_password;
-}
-
-/*
- * Callback triggered for channel password.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is moving itself or other clients to a new channel.
- * client - Struct of client parameters like ident, nickname etc. who is moving itself or other clients to the channel. Please view public_definitions.h.
- * channelID - Channel ID of the channel being switched/moved to
- * password - Password provided by client.
- *
- * Return ERROR_ok to indicate the password is correct. Return ERROR_channel_invalid_password for incorrect.
- */
-unsigned int onCustomChannelPasswordCheck(uint64 serverID, const struct ClientMiniExport* client, uint64 channelID, const char* password){
- if (strcmp(password, "channelpw") == 0) return ERROR_ok;
- return ERROR_channel_invalid_password;
-}
-#endif
-
-/*
- * Callback triggered when the specified client starts talking.
- *
- * Parameters:
- * serverID - ID of the server sending the callback
- * clientID - ID of the client which started talking
- */
-void onClientStartTalkingEvent(uint64 serverID, anyID clientID) {
- printf("onClientStartTalkingEvent serverID=%llu, clientID=%u\n", (unsigned long long)serverID, clientID);
-}
-
-/*
- * Callback triggered when the specified client stops talking.
- *
- * Parameters:
- * serverID - ID of the server sending the callback
- * clientID - ID of the client which stopped talking
- */
-void onClientStopTalkingEvent(uint64 serverID, anyID clientID) {
- printf("onClientStopTalkingEvent serverID=%llu, clientID=%u\n", (unsigned long long)serverID, clientID);
-}
-
-/*
- * Callback triggered when a license error occurs.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the license error occured. This virtual server will be automatically
- * shutdown. If the parameter is zero, all virtual servers are affected and have been shutdown.
- * errorCode - Code of the occured error. Use ts3server_getGlobalErrorMessage() to convert to a message string
- */
-void onAccountingErrorEvent(uint64 serverID, unsigned int errorCode) {
- char* errorMessage;
- if(ts3server_getGlobalErrorMessage(errorCode, &errorMessage) == ERROR_ok) {
- printf("onAccountingErrorEvent serverID=%llu, errorCode=%u: %s\n", (unsigned long long)serverID, errorCode, errorMessage);
- ts3server_freeMemory(errorMessage);
- }
-
- /* Your custom handling here. In a real application, you wouldn't stop the whole process because the TS3 server part went down.
- * The whole idea of this callback is to let you gracefully handle the TS3 server failing to start and to continue your application. */
- exit(1);
-}
-
-/*
- * Callback allowing to apply custom encryption to outgoing packets.
- * Using this function is optional. Do not implement if you want to handle the TeamSpeak SDK encryption.
- *
- * Parameters:
- * dataToSend - Pointer to an array with the outgoing data to be encrypted
- * sizeOfData - Pointer to an integer value containing the size of the data array
- *
- * Apply your custom encryption to the data array. If the encrypted data is smaller than sizeOfData, write
- * your encrypted data into the existing memory of dataToSend. If your encrypted data is larger, you need
- * to allocate memory and redirect the pointer dataToSend. You need to take care of freeing your own allocated
- * memory yourself. The memory allocated by the SDK, to which dataToSend is originally pointing to, must not
- * be freed.
- *
- */
-void onCustomPacketEncryptEvent(char** dataToSend, unsigned int* sizeOfData) {
-#ifdef USE_CUSTOM_ENCRYPTION
- unsigned int i;
- for(i = 0; i < *sizeOfData; i++) {
- (*dataToSend)[i] ^= CUSTOM_CRYPT_KEY;
- }
-#endif
-}
-
-/*
- * Callback allowing to apply custom encryption to incoming packets
- * Using this function is optional. Do not implement if you want to handle the TeamSpeak SDK encryption.
- *
- * Parameters:
- * dataToSend - Pointer to an array with the received data to be decrypted
- * sizeOfData - Pointer to an integer value containing the size of the data array
- *
- * Apply your custom decryption to the data array. If the decrypted data is smaller than dataReceivedSize, write
- * your decrypted data into the existing memory of dataReceived. If your decrypted data is larger, you need
- * to allocate memory and redirect the pointer dataReceived. You need to take care of freeing your own allocated
- * memory yourself. The memory allocated by the SDK, to which dataReceived is originally pointing to, must not
- * be freed.
- */
-void onCustomPacketDecryptEvent(char** dataReceived, unsigned int* dataReceivedSize) {
-#ifdef USE_CUSTOM_ENCRYPTION
- unsigned int i;
- for(i = 0; i < *dataReceivedSize; i++) {
- (*dataReceived)[i] ^= CUSTOM_CRYPT_KEY;
- }
-#endif
-}
-
-void showHelp() {
- printf("\n[q] - Quit\n[h] - Show this help\n[v] - List virtual servers\n[c] - Show channels of virtual server %d\n", DEFAULT_VIRTUAL_SERVER_ID);
- printf("[l] - Show clients of virtual server %d\n[n] - Create new channel on virtual server %d with generated name\n[N] - Create new channel on virtual server %d with custom name\n", DEFAULT_VIRTUAL_SERVER_ID, DEFAULT_VIRTUAL_SERVER_ID, DEFAULT_VIRTUAL_SERVER_ID);
- printf("[d] - Delete channel on virtual server %d\n[r] - Rename channel on virtual server %d\n[m] - Move client on virtual server %d\n", DEFAULT_VIRTUAL_SERVER_ID, DEFAULT_VIRTUAL_SERVER_ID, DEFAULT_VIRTUAL_SERVER_ID);
- printf("[C] - Create new virtual server\n[E] - Edit virtual server\n[S] - Stop virtual server\n\n");
-}
-
-void emptyInputBuffer() {
- int c;
- while((c = getchar()) != '\n' && c != EOF);
-}
-
-void showVirtualServers() {
- uint64* ids;
- int i;
- unsigned int error;
-
- printf("\nList of virtual servers:\n");
- if((error = ts3server_getVirtualServerList(&ids)) != ERROR_ok) { /* Get array of virtual server IDs */
- printf("Error getting virtual server list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No virtual servers\n\n");
- ts3server_freeMemory(ids);
- return;
- }
- for(i=0; ids[i]; i++) {
- char* name;
- int slotCount;
- char* virtualServerUniqueIdentifier;
- if((error = ts3server_getVirtualServerVariableAsString(ids[i], VIRTUALSERVER_NAME, &name)) != ERROR_ok) { /* Query server name */
- printf("Error getting virtual server nickname: %d\n", error);
- break;
- }
- if((error = ts3server_getVirtualServerVariableAsInt(ids[i], VIRTUALSERVER_MAXCLIENTS, &slotCount)) != ERROR_ok) {
- printf("Error getting virtual server slot count: %d\n", error);
- break;
- }
- if((error = ts3server_getVirtualServerVariableAsString(ids[i], VIRTUALSERVER_UNIQUE_IDENTIFIER, &virtualServerUniqueIdentifier)) != ERROR_ok) {
- printf("Error getting virtual server unique identifier: %d\n", error);
- break;
- }
- printf("ID=%llu NAME=\"%s\" CAPACITY=%d Unique Identifier=\"%s\"\n", (unsigned long long)ids[i], name, slotCount, virtualServerUniqueIdentifier);
- ts3server_freeMemory(name); /* Do not free memory if above function returned an error */
- ts3server_freeMemory(virtualServerUniqueIdentifier);
- }
- printf("\n");
-
- ts3server_freeMemory(ids); /* Release array */
-}
-
-void showChannels(uint64 serverID) {
- uint64* ids;
- int i;
- unsigned int error;
-
- printf("\nList of channels on virtual server %llu:\n", (unsigned long long)serverID);
- if((error = ts3server_getChannelList(serverID, &ids)) != ERROR_ok) { /* Get array of channel IDs */
- printf("Error getting channel list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No channels\n\n");
- ts3server_freeMemory(ids);
- return;
- }
- for(i=0; ids[i]; i++) {
- char* name;
- if((error = ts3server_getChannelVariableAsString(serverID, ids[i], CHANNEL_NAME, &name)) != ERROR_ok) { /* Query channel name */
- printf("Error querying channel name: %d\n", error);
- break;
- }
- printf("%llu - %s\n", (unsigned long long)ids[i], name);
- ts3server_freeMemory(name); /* Do not free memory if above function returned an error */
- }
- printf("\n");
-
- ts3server_freeMemory(ids); /* Release array */
-}
-
-void showClients(uint64 serverID) {
- anyID* ids;
- int i;
- unsigned int error;
-
- printf("\nList of clients on virtual server %llu:\n", (unsigned long long)serverID);
- if((error = ts3server_getClientList(serverID, &ids)) != ERROR_ok) { /* Get array of client IDs */
- printf("Error getting client list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No clients\n\n");
- ts3server_freeMemory(ids);
- return;
- }
- for(i=0; ids[i]; i++) {
- char* name;
- if((error = ts3server_getClientVariableAsString(serverID, ids[i], CLIENT_NICKNAME, &name)) != ERROR_ok) { /* Query client nickname */
- printf("Error querying client nickname: %d\n", error);
- break;
- }
- printf("%u - %s\n", ids[i], name);
- ts3server_freeMemory(name); /* Do not free memory if above function returned an error */
- }
- printf("\n");
-
- ts3server_freeMemory(ids); /* Release array */
-}
-
-void createDefaultChannelName(char *name) {
- static int i = 1;
- sprintf(name, "Channel_%d", i++);
-}
-
-void enterName(char *name) {
- char *s;
- printf("\nEnter name: ");
- fgets(name, BUFSIZ, stdin);
- s = strrchr(name, '\n');
- if(s) {
- *s = '\0';
- }
-}
-
-void createChannel(uint64 serverID, const char *name) {
- unsigned int error;
- uint64 newChannelID;
-
- /* Set data of new channel. Use channelID of 0 for creating channels. */
- CHECK_ERROR(ts3server_setChannelVariableAsString(serverID, 0, CHANNEL_NAME, name));
- CHECK_ERROR(ts3server_setChannelVariableAsString(serverID, 0, CHANNEL_TOPIC, "Test channel topic"));
- CHECK_ERROR(ts3server_setChannelVariableAsString(serverID, 0, CHANNEL_DESCRIPTION, "Test channel description"));
- CHECK_ERROR(ts3server_setChannelVariableAsInt (serverID, 0, CHANNEL_FLAG_PERMANENT, 1));
- CHECK_ERROR(ts3server_setChannelVariableAsInt (serverID, 0, CHANNEL_FLAG_SEMI_PERMANENT, 0));
- CHECK_ERROR(ts3server_setChannelVariableAsInt (serverID, 0, CHANNEL_CODEC_QUALITY, 10));
-
- /* Flush changes to server */
- CHECK_ERROR(ts3server_flushChannelCreation(serverID, 0, &newChannelID)); /* Create as top-level channel */
-
- printf("\nCreated channel: %llu\n\n", (unsigned long long)newChannelID);
- return;
-
-on_error:
- printf("Error creating channel: %d\n", error);
-}
-
-void deleteChannel(uint64 serverID) {
- uint64 channelID;
- int n;
- unsigned int error;
-
- /* Query channel ID from user */
- printf("\nEnter ID of channel to delete: ");
- n = scanf("%llu", (unsigned long long*)&channelID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Delete channel */
- if((error = ts3server_channelDelete(serverID, channelID, 0)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error deleting channel: %s\n\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- }
-}
-
-void renameChannel(uint64 serverID) {
- uint64 channelID;
- int n;
- unsigned int error;
- char name[BUFSIZ];
-
- /* Query channel ID from user */
- printf("\nEnter ID of channel to rename: ");
- n = scanf("%llu", (unsigned long long*)&channelID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Query new channel name from user */
- enterName(name);
-
- /* Change channel name and flush changes */
- CHECK_ERROR(ts3server_setChannelVariableAsString(serverID, channelID, CHANNEL_NAME, name));
- CHECK_ERROR(ts3server_flushChannelVariable(serverID, channelID));
-
- printf("Renamed channel %llu\n\n", (unsigned long long)channelID);
- return;
-
-on_error:
- printf("Error renaming channel: %d\n\n", error);
-}
-
-void moveClient(uint64 serverID) {
- anyID clientIDArray[2]; /* We only want to move one client plus terminating null end-marker */
- uint64 newChannelID; /* ID of channel to move the client into */
- unsigned int error;
- int n;
-
- /* Query client ID from user */
- printf("\nEnter ID of client to move: ");
- n = scanf("%hu", &clientIDArray[0]);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- clientIDArray[1] = 0; /* Add end-marker */
-
- /* Query channel ID from user */
- printf("\nEnter ID of channel to move client into: ");
- n = scanf("%llu", (unsigned long long*)&newChannelID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Move client and check for error */
- if((error = ts3server_clientMove(serverID, newChannelID, clientIDArray)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error moving client: %s\n\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return;
- }
-
- printf("Client %d moved to channel %llu\n", clientIDArray[0], (unsigned long long)newChannelID);
-}
-
-uint64 createVirtualServer(const char* name, int port, unsigned int maxClients) {
- char buffer[BUFSIZ] = { 0 };
- char filename[BUFSIZ];
- char port_str[20];
- char *keyPair;
- uint64 serverID;
- unsigned int error;
-
- /* Assemble filename: keypair_.txt */
- strcpy(filename, "keypair_");
- sprintf(port_str, "%d", port);
- strcat(filename, port_str);
- strcat(filename, ".txt");
-
- /* Try reading keyPair from file */
- if(readKeyPairFromFile(filename, buffer) == 0) {
- keyPair = buffer; /* Id read from file */
- } else {
- keyPair = ""; /* No Id saved, start virtual server with empty keyPair string */
- }
-
- /* Create the virtual server with specified port, name, keyPair and max clients */
- printf("Create virtual server using keypair '%s'\n", keyPair);
- printf("Create virtual server with %d slots\n", maxClients);
- //listen on any address on ipv4 and ipv6 (it is also possible to enter multiple ipv4 and ipv6 addresses here)
- if((error = ts3server_createVirtualServer(port, "0.0.0.0, ::", name, keyPair, maxClients, &serverID)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error creating virtual server: %s (%d)\n", errormsg, error);
- ts3server_freeMemory(errormsg);
- }
- return 0;
- }
-
- /* If we didn't load the keyPair before, query it from virtual server and save to file */
- if(!*buffer) {
- if((error = ts3server_getVirtualServerKeyPair(serverID, &keyPair)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error querying keyPair: %s\n\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return 0;
- }
-
- /* Save keyPair to file "keypair_.txt"*/
- if(writeKeyPairToFile(filename, keyPair) != 0) {
- ts3server_freeMemory(keyPair);
- return 0;
- }
- ts3server_freeMemory(keyPair);
- }
-
- return serverID;
-}
-
-uint64 startVirtualServer() {
- int n;
- int port;
- unsigned int maxClients;
- char name[BUFSIZ];
-
- /* Ask user for server port */
- printf("\nEnter server port (default 9987): ");
- n = scanf("%d", &port);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return 0;
- }
-
- printf("\nEnter server capacity (default %d): ", MAX_CLIENTS);
- n = scanf("%d", &maxClients);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return 0;
- }
-
- /* Ask user for server name */
- enterName(name);
-
- return createVirtualServer(name, port, maxClients);
-}
-
-void editVirtualServer() {
- int n;
- uint64 serverID;
- int currentSlotCount, newSlotCount;
- unsigned int error;
-
- printf("\nEnter ID of virtual server to edit: ");
- n = scanf("%llu", (unsigned long long*)&serverID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
- if((error = ts3server_getVirtualServerVariableAsInt(serverID, VIRTUALSERVER_MAXCLIENTS, ¤tSlotCount)) != ERROR_ok) {
- printf("Error getting the current capcity of virtual server: %d\n\n", error);
- return;
- }
- printf("\nEnter new capacity of virtual server (currently %d): ", currentSlotCount);
- n = scanf("%d", &newSlotCount);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
- if((error = ts3server_setVirtualServerVariableAsInt(serverID, VIRTUALSERVER_MAXCLIENTS, newSlotCount)) != ERROR_ok) {
- printf("Error setting the new capacity: %d\n\n", error);
- return;
- }
- if((error = ts3server_flushVirtualServerVariable(serverID)) != ERROR_ok) {
- printf("Error flushing server variable updates %d\n\n", error);
- return;
- }
-}
-
-void stopVirtualServer() {
- int n;
- uint64 serverID;
- unsigned int error;
-
- printf("\nEnter ID of virtual server to stop: ");
- n = scanf("%llu", (unsigned long long*)&serverID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- if((error = ts3server_stopVirtualServer(serverID)) != ERROR_ok) {
- printf("Error stopping virtual server: %d\n\n", error);
- }
-}
-
-int main(int argc, char **argv) {
- char *version;
- short abort = 0;
- uint64 serverID;
- unsigned int error;
- int unknownInput = 0;
- uint64* ids;
- int i;
-
- /* Create struct for callback function pointers */
- struct ServerLibFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ServerLibFunctions));
-
- /* Now assign the used callback function pointers */
- funcs.onClientConnected = onClientConnected;
- funcs.onClientDisconnected = onClientDisconnected;
- funcs.onClientMoved = onClientMoved;
- funcs.onChannelCreated = onChannelCreated;
- funcs.onChannelEdited = onChannelEdited;
- funcs.onChannelDeleted = onChannelDeleted;
- funcs.onServerTextMessageEvent = onServerTextMessageEvent;
- funcs.onChannelTextMessageEvent = onChannelTextMessageEvent;
- funcs.onUserLoggingMessageEvent = onUserLoggingMessageEvent;
- funcs.onClientStartTalkingEvent = onClientStartTalkingEvent;
- funcs.onClientStopTalkingEvent = onClientStopTalkingEvent;
- funcs.onAccountingErrorEvent = onAccountingErrorEvent;
- funcs.onCustomPacketEncryptEvent = onCustomPacketEncryptEvent;
- funcs.onCustomPacketDecryptEvent = onCustomPacketDecryptEvent;
-#ifdef USE_VOICEDATAEVENT
- funcs.onVoiceDataEvent = onVoiceDataEvent;
-#endif
-
-#ifdef CUSTOM_PASSWORDS
- funcs.onClientPasswordEncrypt = onClientPasswordEncrypt;
- funcs.onCustomServerPasswordCheck = onCustomServerPasswordCheck;
- funcs.onCustomChannelPasswordCheck = onCustomChannelPasswordCheck;
-#endif
-
- /* Initialize server lib with callbacks */
- if((error = ts3server_initServerLib(&funcs, LogType_FILE | LogType_CONSOLE | LogType_USERLOGGING, NULL, argc, (const char* const *)argv)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initialzing serverlib: %s\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return 1;
- }
-
- printf("Server running\n");
-
- /* Query and print server lib version */
- if((error = ts3server_getServerLibVersion(&version)) != ERROR_ok) {
- printf("Error querying server lib version: %d\n", error);
- return 1;
- }
- printf("Server lib version: %s\n", version);
- ts3server_freeMemory(version); /* Release dynamically allocated memory */
-
- /* Create a virtual server on localhost using default port 9987 with max 10 slots */
- serverID = createVirtualServer("TS3 SDK Test Server", 9987, MAX_CLIENTS);
- printf("Created virtual server\n");
-
- /* Set welcome message */
- if((error = ts3server_setVirtualServerVariableAsString(serverID, VIRTUALSERVER_WELCOMEMESSAGE, "Hello TeamSpeak")) != ERROR_ok) {
- printf("Error setting server welcomemessage: %d\n", error);
- return 1;
- }
- printf("Welcome message set.\n");
-
- /* Set server password */
- if((error = ts3server_setVirtualServerVariableAsString(serverID, VIRTUALSERVER_PASSWORD, "secret")) != ERROR_ok) {
- printf("Error setting server password: %d\n", error);
- return 1;
- }
- printf("Password set.\n");
-
- /* Flush above two changes to server */
- if((error = ts3server_flushVirtualServerVariable(serverID)) != ERROR_ok) {
- printf("Error flushing server variables: %d\n", error);
- return 1;
- }
- printf("Variables flushed.\n");
-
- /* Set codec quality of channel(s) */
- uint64* channelList = NULL;
- if ((error = ts3server_getChannelList(serverID, &channelList)) != ERROR_ok) {
- printf("Couldn't get channel list: %d\n", error);
- return 1;
- }
- printf("Received channel list.\n");
-
- uint64* channelIDPtr = NULL;
- for (channelIDPtr = channelList; *channelIDPtr != (uint64)NULL; ++channelIDPtr) {
- if ((error = ts3server_setChannelVariableAsInt(serverID, *channelIDPtr, CHANNEL_CODEC_QUALITY, 10)) != ERROR_ok) {
- printf("Couldn't set channel codec quality: %d\n", error);
- ts3server_freeMemory(channelList);
- return 1;
- }
- if ((error = ts3server_flushChannelVariable(serverID, *channelIDPtr)) != ERROR_ok) {
- if (error != ERROR_ok_no_update) {
- printf("Error flushing channel variables: %d\n", error);
- ts3server_freeMemory(channelList);
- return 1;
- }
- }
- }
- ts3server_freeMemory(channelList);
-
- /* Simple commandline interface */
- printf("\nTeamSpeak 3 server commandline interface\n");
- showHelp();
-
- while(!abort) {
- int c;
- if(unknownInput == 0) {
- printf("\nEnter Command (h for help)> ");
- }
- unknownInput = 0;
- c = getchar();
- switch(c) {
- case 'q':
- printf("\nShutting down server...\n");
- abort = 1;
- break;
- case 'h':
- showHelp();
- break;
- case 'v':
- showVirtualServers();
- break;
- case 'c':
- showChannels(serverID);
- break;
- case 'l':
- showClients(serverID);
- break;
- case 'n':
- {
- char name[BUFSIZ];
- createDefaultChannelName(name);
- createChannel(serverID, name);
- break;
- }
- case 'N':
- {
- char name[BUFSIZ];
- emptyInputBuffer();
- enterName(name);
- createChannel(serverID, name);
- break;
- }
- case 'd':
- deleteChannel(serverID);
- break;
- case 'r':
- renameChannel(serverID);
- break;
- case 'm':
- moveClient(serverID);
- break;
- case 'C':
- startVirtualServer();
- break;
- case 'E':
- editVirtualServer();
- break;
- case 'S':
- stopVirtualServer();
- break;
- default:
- unknownInput = 1;
- }
-
- SLEEP(50);
- }
-
- /* Stop virtual servers to make sure connected clients are notified instead of dropped */
- if((error = ts3server_getVirtualServerList(&ids)) != ERROR_ok) { /* Get array of virtual server IDs */
- printf("Error getting virtual server list: %d\n", error);
- } else {
- for(i=0; ids[i]; i++) {
- if((error = ts3server_stopVirtualServer(ids[i])) != ERROR_ok) {
- printf("Error stopping virtual server: %d\n", error);
- break;
- }
- }
- ts3server_freeMemory(ids);
- }
-
- /* Shutdown server lib */
- if((error = ts3server_destroyServerLib()) != ERROR_ok) {
- printf("Error destroying server lib: %d\n", error);
- return 1;
- }
-
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/server/sources.cmake
deleted file mode 100644
index 1115486..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server/sources.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
- "${CMAKE_CURRENT_LIST_DIR}/id_io.h"
- "${CMAKE_CURRENT_LIST_DIR}/id_io.c"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/id_io.c b/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/id_io.c
deleted file mode 100644
index 684f77f..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/id_io.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#define _CRT_SECURE_NO_WARNINGS
-
-#include
-#include "id_io.h"
-
-int readKeyPairFromFile(const char *fileName, char *keyPair) {
- FILE *file;
-
- file = fopen(fileName, "r");
- if(file == NULL) {
- printf("Could not open file '%s' for reading keypair\n", fileName);
- return -1;
- }
-
- fgets(keyPair, BUFSIZ, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error reading keypair from file '%s'.\n", fileName);
- return -1;
- }
- fclose (file);
-
- printf("Read keypair '%s' from file '%s'.\n", keyPair, fileName);
- return 0;
-}
-
-int writeKeyPairToFile(const char *fileName, const char* keyPair) {
- FILE *file;
-
- file = fopen(fileName, "w");
- if(file == NULL) {
- printf("Could not open file '%s' for writing keypair\n", fileName);
- return -1;
- }
-
- fputs(keyPair, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error writing keypair to file '%s'.\n", fileName);
- return -1;
- }
- fclose (file);
-
- printf("Wrote keypair '%s' to file '%s'.\n", keyPair, fileName);
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/id_io.h b/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/id_io.h
deleted file mode 100644
index cb0d461..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/id_io.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef ID_IO_H
-#define ID_IO_H
-
-int readKeyPairFromFile(const char *fileName, char *keyPair);
-int writeKeyPairToFile(const char *fileName, const char* keyPair);
-
-#endif
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/main.c
deleted file mode 100644
index a017696..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/main.c
+++ /dev/null
@@ -1,778 +0,0 @@
-/*
- * TeamSpeak SDK server creation params sample
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-#ifdef _WINDOWS
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-
-#include
-#include
-#include
-#include
-#include "id_io.h"
-
-#define DEFAULT_VIRTUAL_SERVER_ID 1
-
-/* Maximum number of clients allowed per virtual server */
-#define MAX_CLIENTS 8
-
-#ifdef _WINDOWS
-#define SLEEP(x) Sleep(x)
-#else
-#define SLEEP(x) usleep(x*1000)
-#endif
-
-#define CHECK_ERROR(x) if((error = x) != ERROR_ok) { goto on_error; }
-
-/*
- * Callback when client has connected.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of connected client
- * channelID - ID of channel the client joined
- */
-void onClientConnected(uint64 serverID, anyID clientID, uint64 channelID, unsigned int* removeClientError) {
- char* clientName;
- unsigned int error;
-
- /* Query client nickname */
- if((error = ts3server_getClientVariableAsString(serverID, clientID, CLIENT_NICKNAME, &clientName)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error querying client nickname: %s\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return;
- }
-
- printf("Client '%s' joined channel %llu on virtual server %llu\n", clientName, (unsigned long long) channelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when client has disconnected.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of disconnected client
- * channelID - ID of channel the client left
- */
-void onClientDisconnected(uint64 serverID, anyID clientID, uint64 channelID) {
- printf("Client %u left channel %llu on virtual server %llu\n", clientID, (unsigned long long)channelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when client has moved.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of moved client
- * oldChannelID - ID of old channel the client left
- * newChannelID - ID of new channel the client joined
- */
-void onClientMoved(uint64 serverID, anyID clientID, uint64 oldChannelID, uint64 newChannelID) {
- printf("Client %u moved from channel %llu to channel %llu on virtual server %llu\n", clientID, (unsigned long long)oldChannelID, (unsigned long long)newChannelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been created.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who created the channel
- * channelID - ID of the created channel
- */
-void onChannelCreated(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu created by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been edited.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who edited the channel
- * channelID - ID of the edited channel
- */
-void onChannelEdited(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu edited by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been deleted.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who deleted the channel
- * channelID - ID of the deleted channel
- */
-void onChannelDeleted(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu deleted by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-void showHelp() {
- printf("\n[q] - Quit\n[h] - Show this help\n[v] - List virtual servers\n[c] - Show channels of virtual server %d\n", DEFAULT_VIRTUAL_SERVER_ID);
- printf("[l] - Show clients of virtual server %d\n[n] - Create new channel on virtual server %d with generated name\n[N] - Create new channel on virtual server %d with custom name\n", DEFAULT_VIRTUAL_SERVER_ID, DEFAULT_VIRTUAL_SERVER_ID, DEFAULT_VIRTUAL_SERVER_ID);
- printf("[d] - Delete channel on virtual server %d\n\n", DEFAULT_VIRTUAL_SERVER_ID);
- printf("[C] - Create new virtual server\n[E] - Edit virtual server\n[S] - Stop virtual server\n\n");
-}
-
-void emptyInputBuffer() {
- int c;
- while((c = getchar()) != '\n' && c != EOF);
-}
-
-void showVirtualServers() {
- uint64* ids;
- int i;
- unsigned int error;
-
- printf("\nList of virtual servers:\n");
- if((error = ts3server_getVirtualServerList(&ids)) != ERROR_ok) { /* Get array of virtual server IDs */
- printf("Error getting virtual server list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No virtual servers\n\n");
- ts3server_freeMemory(ids);
- return;
- }
- for(i=0; ids[i]; i++) {
- char* name;
- int slotCount;
- char* virtualServerUniqueIdentifier;
- if((error = ts3server_getVirtualServerVariableAsString(ids[i], VIRTUALSERVER_NAME, &name)) != ERROR_ok) { /* Query server name */
- printf("Error getting virtual server nickname: %d\n", error);
- break;
- }
- if((error = ts3server_getVirtualServerVariableAsInt(ids[i], VIRTUALSERVER_MAXCLIENTS, &slotCount)) != ERROR_ok) {
- printf("Error getting virtual server slot count: %d\n", error);
- break;
- }
- if((error = ts3server_getVirtualServerVariableAsString(ids[i], VIRTUALSERVER_UNIQUE_IDENTIFIER, &virtualServerUniqueIdentifier)) != ERROR_ok) {
- printf("Error getting virtual server unique identifier: %d\n", error);
- break;
- }
- printf("ID=%llu NAME=\"%s\" CAPACITY=%d Unique Identifier=\"%s\"\n", (unsigned long long)ids[i], name, slotCount, virtualServerUniqueIdentifier);
- ts3server_freeMemory(name); /* Do not free memory if above function returned an error */
- ts3server_freeMemory(virtualServerUniqueIdentifier);
- }
- printf("\n");
-
- ts3server_freeMemory(ids); /* Release array */
-}
-
-void showChannels(uint64 serverID) {
- uint64* ids;
- int i;
- unsigned int error;
-
- printf("\nList of channels on virtual server %llu:\n", (unsigned long long)serverID);
- if((error = ts3server_getChannelList(serverID, &ids)) != ERROR_ok) { /* Get array of channel IDs */
- printf("Error getting channel list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No channels\n\n");
- ts3server_freeMemory(ids);
- return;
- }
- for(i=0; ids[i]; i++) {
- char* name;
- if((error = ts3server_getChannelVariableAsString(serverID, ids[i], CHANNEL_NAME, &name)) != ERROR_ok) { /* Query channel name */
- printf("Error querying channel name: %d\n", error);
- break;
- }
- printf("%llu - %s\n", (unsigned long long)ids[i], name);
- ts3server_freeMemory(name); /* Do not free memory if above function returned an error */
- }
- printf("\n");
-
- ts3server_freeMemory(ids); /* Release array */
-}
-
-void showClients(uint64 serverID) {
- anyID* ids;
- int i;
- unsigned int error;
-
- printf("\nList of clients on virtual server %llu:\n", (unsigned long long)serverID);
- if((error = ts3server_getClientList(serverID, &ids)) != ERROR_ok) { /* Get array of client IDs */
- printf("Error getting client list: %d\n", error);
- return;
- }
- if(!ids[0]) {
- printf("No clients\n\n");
- ts3server_freeMemory(ids);
- return;
- }
- for(i=0; ids[i]; i++) {
- char* name;
- if((error = ts3server_getClientVariableAsString(serverID, ids[i], CLIENT_NICKNAME, &name)) != ERROR_ok) { /* Query client nickname */
- printf("Error querying client nickname: %d\n", error);
- break;
- }
- printf("%u - %s\n", ids[i], name);
- ts3server_freeMemory(name); /* Do not free memory if above function returned an error */
- }
- printf("\n");
-
- ts3server_freeMemory(ids); /* Release array */
-}
-
-void createDefaultChannelName(char *name) {
- static int i = 11; /* We already have 10 channels in this example */
- sprintf(name, "Channel_%d", i++);
-}
-
-void enterName(char *name) {
- char *s;
- printf("\nEnter name: ");
- fgets(name, BUFSIZ, stdin);
- s = strrchr(name, '\n');
- if(s) {
- *s = '\0';
- }
-}
-
-void createChannel(uint64 serverID, const char *name) {
- /* This code demonstrates how to use the new createChannel API. */
-
- unsigned int error;
- uint64 newChannelID;
- struct TS3ChannelCreationParams* ccp;
- struct TS3Variables* vars;
-
- /* Create a new struct channel parameters struct. Memory is allocated in the clientlib,
- * so the struct needs to be freed using ts3server_freeMemory when done */
- error = ts3server_makeChannelCreationParams(&ccp);
- if(error != ERROR_ok) {
- printf("Failed to make channel creation params: %d\n", error);
- goto leave;
- }
-
- /* Set essential channel paramters:
- * parentID 0 -> create as top-level channel
- * channelID 0 -> server will automatically assign a new channel ID. An existing channel ID would be an error */
- error = ts3server_setChannelCreationParams(ccp, 0, 0);
- if(error != ERROR_ok) {
- printf("Failed to set channel creation params: %d\n", error);
- goto leave;
- }
-
- /* Query a struct TS3Variables, used to set additional parameters below */
- error = ts3server_getChannelCreationParamsVariables(ccp, &vars);
- if(error != ERROR_ok) {
- printf("Failed to get variables from channel creation params: %d\n", error);
- goto leave;
- }
-
- /* Use above queried struct TS3Variables to set additional channel parameters */
-
- /* Set codec quality */
- error = ts3server_setVariableAsInt(vars, CHANNEL_CODEC_QUALITY, 10);
- if (error != ERROR_ok) {
- printf("Error setting channel quality: %d", error);
- goto leave;
- }
-
- /* Set channel name */
- error = ts3server_setVariableAsString(vars, CHANNEL_NAME, name);
- if(error != ERROR_ok) {
- printf("Failed to set channel name: %d\n", error);
- goto leave;
- }
-
- /* Make channel permanent (important, otherwise the empty channel would be immediately deleted after creation) */
- error = ts3server_setVariableAsInt(vars, CHANNEL_FLAG_PERMANENT, 1);
- if(error != ERROR_ok) {
- printf("Failed to set channel name: %d\n", error);
- goto leave;
- }
-
- /* Set channel topic */
- error = ts3server_setVariableAsString(vars, CHANNEL_TOPIC, "My topic");
- if(error != ERROR_ok) {
- printf("Failed to set channel topic: %d\n", error);
- goto leave;
- }
-
- /* Finally create the channel. Write the ID of the created channel into newChannelID */
- error = ts3server_createChannel(serverID, ccp, CHANNEL_CREATE_FLAG_NONE, &newChannelID);
- if(error != ERROR_ok) {
- printf("Failed to create channel: %d\n", error);
- goto leave;
- }
-
- printf("\nCreated channel: %llu\n\n", (unsigned long long)newChannelID);
-
-leave:
- /* Cleanup struct TS3ChannelCreationParams */
- ts3server_freeMemory(ccp);
-}
-
-void deleteChannel(uint64 serverID) {
- uint64 channelID;
- int n;
- unsigned int error;
-
- /* Query channel ID from user */
- printf("\nEnter ID of channel to delete: ");
- n = scanf("%llu", (unsigned long long*)&channelID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Delete channel */
- if((error = ts3server_channelDelete(serverID, channelID, 0)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error deleting channel: %s\n\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- }
-}
-
-void renameChannel(uint64 serverID) {
- uint64 channelID;
- int n;
- unsigned int error;
- char name[BUFSIZ];
-
- /* Query channel ID from user */
- printf("\nEnter ID of channel to rename: ");
- n = scanf("%llu", (unsigned long long*)&channelID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Query new channel name from user */
- enterName(name);
-
- /* Change channel name and flush changes */
- CHECK_ERROR(ts3server_setChannelVariableAsString(serverID, channelID, CHANNEL_NAME, name));
- CHECK_ERROR(ts3server_flushChannelVariable(serverID, channelID));
-
- printf("Renamed channel %llu\n\n", (unsigned long long)channelID);
- return;
-
-on_error:
- printf("Error renaming channel: %d\n\n", error);
-}
-
-void moveClient(uint64 serverID) {
- anyID clientIDArray[2]; /* We only want to move one client plus terminating null end-marker */
- uint64 newChannelID; /* ID of channel to move the client into */
- unsigned int error;
- int n;
-
- /* Query client ID from user */
- printf("\nEnter ID of client to move: ");
- n = scanf("%hu", &clientIDArray[0]);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- clientIDArray[1] = 0; /* Add end-marker */
-
- /* Query channel ID from user */
- printf("\nEnter ID of channel to move client into: ");
- n = scanf("%llu", (unsigned long long*)&newChannelID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- /* Move client and check for error */
- if((error = ts3server_clientMove(serverID, newChannelID, clientIDArray)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error moving client: %s\n\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return;
- }
-
- printf("Client %d moved to channel %llu\n", clientIDArray[0], (unsigned long long)newChannelID);
-}
-
-/* Shows how to use the new server params method to create a virtual server */
-uint64 createVirtualServer2(const char* name, int port, unsigned int maxClients) {
- char buffer[BUFSIZ] = { 0 };
- char filename[BUFSIZ];
- char port_str[20];
- char* keyPair;
- unsigned int error;
- int i;
- struct TS3VirtualServerCreationParams* vscp;
- struct TS3ChannelCreationParams* ccp;
- struct TS3Variables* vars;
- uint64 serverID = 0;
-
- /* Assemble filename: keypair_.txt */
- strcpy(filename, "keypair_");
- sprintf(port_str, "%d", port);
- strcat(filename, port_str);
- strcat(filename, ".txt");
-
- /* Try reading keyPair from file */
- if(readKeyPairFromFile(filename, buffer) == 0) {
- keyPair = buffer; /* Id read from file */
- } else {
- keyPair = ""; /* No Id saved, start virtual server with empty keyPair string */
- }
-
- /* Create server creation params, write result into empty struct TS3VirtualServerCreationParams */
- error = ts3server_makeVirtualServerCreationParams(&vscp);
- if(error != ERROR_ok) {
- printf("Error during makeVirtualServerCreationParams: %d\n", error);
- return 0;
- }
-
- /* Set essential connection data to server creation params:
- * port 9987, ip NULL (localhost), server keypair, max clients, channel count, virtual server ID */
- error = ts3server_setVirtualServerCreationParams(vscp, port, NULL, keyPair, maxClients, 10, 1);
- if(error != ERROR_ok) {
- printf("Error during setVirtualServerCreationParams: %d\n", error);
- goto leave;
- }
-
- /* Query the struct TS3Variables from the server creation params, to set some additional parameters */
- error = ts3server_getVirtualServerCreationParamsVariables(vscp, &vars);
- if(error != ERROR_ok) {
- printf("Error during getVirtualServerCreationParamsVariables: %d\n", error);
- goto leave;
- }
-
- /* Below we write some additional server parameters into the struct TS3Variables.
- * These parameters are not part of the essential parameters, which we defined earlier
- * in ts3server_setVirtualServerCreationParams */
-
- /* Set virtual server name */
- error = ts3server_setVariableAsString(vars, VIRTUALSERVER_NAME, "TeamSpeak3 SDK Server");
- if(error != ERROR_ok) {
- printf("Error setting server name: %d\n", error);
- goto leave;
- }
-
- /* Set virtual server password */
- error = ts3server_setVariableAsString(vars, VIRTUALSERVER_PASSWORD, "secret");
- if(error != ERROR_ok) {
- printf("Error setting server password: %d\n", error);
- goto leave;
- }
-
- /* Create 10 channels, write them into the struct channel params, which we queried earlier */
- for(i = 0; i < 10; ++i) {
- /* Get the channel creation param for the channel index. This channel param structs are subobjects
- * created inside the server creation params.
- * The number of available channel params depends on the number of channels set above in
- * ts3server_setVirtualServerCreationParams (10 in this sample)
- * Write result into the reused struct TS3ChannelCreationParams. */
- error = ts3server_getVirtualServerCreationParamsChannelCreationParams(vscp, i, &ccp);
- if(error != ERROR_ok) {
- printf("Error during getVirtualServerCreationParamsChannelCreationParams: %d\n", error);
- goto leave;
- }
-
- /* Now fill the struct channel creation params with some channel data */
-
- /* Set essential data: channel parent ID and channel ID.
- * The idea here is to be able to restore a previously saved channel structure keeping the
- * same channel ID over server restarts. If we would create channels the old way, it would not
- * be possible to guarantee the channelID, as it would be assigned automatically by the server.
- * Basically this allows to recreate snapshots of the channel tree. */
- error = ts3server_setChannelCreationParams(ccp, 0, i + 1);
- if(error != ERROR_ok) {
- printf("Error during setChannelCreationParams: %d\n", error);
- goto leave;
- }
-
- /* As above with the server, query a TS3Variables (reused) for this channel, which we
- * can fill with some additional parameters that are not part of the essentials */
- error = ts3server_getChannelCreationParamsVariables(ccp, &vars);
- if(error != ERROR_ok) {
- printf("Error during getChannelCreationParamsVariables: %d\n", error);
- goto leave;
- }
-
- /* Now fill the queried struct TS3Variables with additional parameters */
-
- /* Make first channel default */
- if(i == 0) {
- error = ts3server_setVariableAsInt(vars, CHANNEL_FLAG_DEFAULT, 1);
- if(error != ERROR_ok) {
- printf("Error setting channel %d default: %d", (i + 1), error);
- goto leave;
- }
- }
-
- /* Set codec quality */
- error = ts3server_setVariableAsInt(vars, CHANNEL_CODEC_QUALITY, 10);
- if (error != ERROR_ok) {
- printf("Error setting channel quality: %d", error);
- goto leave;
- }
-
- /* Set channel name as "channel #" */
- sprintf(buffer, "channel %d", (i + 1));
- error = ts3server_setVariableAsString(vars, CHANNEL_NAME, buffer);
- if(error != ERROR_ok) {
- printf("Error setting channel %d name: %d", (i + 1), error);
- goto leave;
- }
-
- /* Make channel permanent */
- error = ts3server_setVariableAsInt(vars, CHANNEL_FLAG_PERMANENT, 1);
- if(error != ERROR_ok) {
- printf("Error setting channel %d permanent: %d", (i + 1), error);
- goto leave;
- }
- }
-
- /* Finally create the virtual server, using the server parameters we setup earlier.
- * In addition automatically create all channels we set in the channel parameters, which is
- * included as part of the server parameters.
- * The function writes the virtual server ID into serverID variable */
- error = ts3server_createVirtualServer2(vscp, VIRTUALSERVER_CREATE_FLAG_NONE, &serverID);
- if(error != ERROR_ok) {
- printf("Error during createVirtualServer2: %d\n", error);
- goto leave;
- }
-
-leave:
- /* Cleanup struct virtual server param. The included struct channel param will be automatically
- * freed when the virtual server param is freed, so you do not need to call freeMemory on
- * the channel params, too. */
- ts3server_freeMemory(vscp);
-
- /* Finally return the virtual server ID of our just created virtual server */
- return serverID;
-}
-
-uint64 startVirtualServer() {
- int n;
- int port;
- unsigned int maxClients;
- char name[BUFSIZ];
-
- /* Ask user for server port */
- printf("\nEnter server port (default 9987): ");
- n = scanf("%d", &port);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return 0;
- }
-
- printf("\nEnter server capacity (default %d): ", MAX_CLIENTS);
- n = scanf("%d", &maxClients);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return 0;
- }
-
- /* Ask user for server name */
- enterName(name);
-
- return createVirtualServer2(name, port, maxClients);
-}
-
-void editVirtualServer() {
- int n;
- uint64 serverID;
- int currentSlotCount, newSlotCount;
- unsigned int error;
-
- printf("\nEnter ID of virtual server to edit: ");
- n = scanf("%llu", (unsigned long long*)&serverID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
- if((error = ts3server_getVirtualServerVariableAsInt(serverID, VIRTUALSERVER_MAXCLIENTS, ¤tSlotCount)) != ERROR_ok) {
- printf("Error getting the current capcity of virtual server: %d\n\n", error);
- return;
- }
- printf("\nEnter new capacity of virtual server (currently %d): ", currentSlotCount);
- n = scanf("%d", &newSlotCount);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
- if((error = ts3server_setVirtualServerVariableAsInt(serverID, VIRTUALSERVER_MAXCLIENTS, newSlotCount)) != ERROR_ok) {
- printf("Error setting the new capacity: %d\n\n", error);
- return;
- }
- if((error = ts3server_flushVirtualServerVariable(serverID)) != ERROR_ok) {
- printf("Error flushing server variable updates %d\n\n", error);
- return;
- }
-}
-
-void stopVirtualServer() {
- int n;
- uint64 serverID;
- unsigned int error;
-
- printf("\nEnter ID of virtual server to stop: ");
- n = scanf("%llu", (unsigned long long*)&serverID);
- emptyInputBuffer();
- if(n == 0) {
- printf("Invalid input. Please enter a number.\n\n");
- return;
- }
-
- if((error = ts3server_stopVirtualServer(serverID)) != ERROR_ok) {
- printf("Error stopping virtual server: %d\n\n", error);
- }
-}
-
-int main(int argc, char **argv) {
- char *version;
- short abort = 0;
- uint64 serverID;
- unsigned int error;
- int unknownInput = 0;
- uint64* ids;
- int i;
-
- /* Create struct for callback function pointers */
- struct ServerLibFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ServerLibFunctions));
-
- /* Now assign the used callback function pointers */
- funcs.onClientConnected = onClientConnected;
- funcs.onClientDisconnected = onClientDisconnected;
- funcs.onClientMoved = onClientMoved;
- funcs.onChannelCreated = onChannelCreated;
- funcs.onChannelEdited = onChannelEdited;
- funcs.onChannelDeleted = onChannelDeleted;
-
- /* Initialize server lib with callbacks */
- if((error = ts3server_initServerLib(&funcs, LogType_FILE | LogType_CONSOLE | LogType_USERLOGGING, NULL, argc, (const char* const *)argv)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initialzing serverlib: %s\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return 1;
- }
-
- printf("Server running\n");
-
- /* Query and print server lib version */
- if((error = ts3server_getServerLibVersion(&version)) != ERROR_ok) {
- printf("Error querying server lib version: %d\n", error);
- return 1;
- }
- printf("Server lib version: %s\n", version);
- ts3server_freeMemory(version); /* Release dynamically allocated memory */
-
- /* Create a virtual server with the new server params method */
- serverID = createVirtualServer2("TS3 SDK Test Server", 9987, MAX_CLIENTS);
-
- /* Simple commandline interface */
- printf("\nTeamSpeak 3 server commandline interface\n");
- showHelp();
-
- while(!abort) {
- int c;
- if(unknownInput == 0) {
- printf("\nEnter Command (h for help)> ");
- }
- unknownInput = 0;
- c = getchar();
- switch(c) {
- case 'q':
- printf("\nShutting down server...\n");
- abort = 1;
- break;
- case 'h':
- showHelp();
- break;
- case 'v':
- showVirtualServers();
- break;
- case 'c':
- showChannels(serverID);
- break;
- case 'l':
- showClients(serverID);
- break;
- case 'n':
- {
- char name[BUFSIZ];
- createDefaultChannelName(name);
- createChannel(serverID, name);
- break;
- }
- case 'N':
- {
- char name[BUFSIZ];
- emptyInputBuffer();
- enterName(name);
- createChannel(serverID, name);
- break;
- }
- case 'd':
- deleteChannel(serverID);
- break;
- case 'C':
- startVirtualServer();
- break;
- case 'E':
- editVirtualServer();
- break;
- case 'S':
- stopVirtualServer();
- break;
- default:
- unknownInput = 1;
- }
-
- SLEEP(50);
- }
-
- /* Stop virtual servers to make sure connected clients are notified instead of dropped */
- if((error = ts3server_getVirtualServerList(&ids)) != ERROR_ok) { /* Get array of virtual server IDs */
- printf("Error getting virtual server list: %d\n", error);
- } else {
- for(i=0; ids[i]; i++) {
- if((error = ts3server_stopVirtualServer(ids[i])) != ERROR_ok) {
- printf("Error stopping virtual server: %d\n", error);
- break;
- }
- }
- ts3server_freeMemory(ids);
- }
-
- /* Shutdown server lib */
- if((error = ts3server_destroyServerLib()) != ERROR_ok) {
- printf("Error destroying server lib: %d\n", error);
- return 1;
- }
-
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/sources.cmake
deleted file mode 100644
index 1115486..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_creation_params/sources.cmake
+++ /dev/null
@@ -1,7 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
- "${CMAKE_CURRENT_LIST_DIR}/id_io.h"
- "${CMAKE_CURRENT_LIST_DIR}/id_io.c"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_filetransfer/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/server_filetransfer/main.c
deleted file mode 100644
index 0ea10d6..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_filetransfer/main.c
+++ /dev/null
@@ -1,564 +0,0 @@
-/*
- * TeamSpeak SDK server sample
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-//#define MINIMAL_EXAMPLE
-
-#ifdef _WINDOWS
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-
-#include
-#include
-#include
-#include
-
-#ifndef MINIMAL_EXAMPLE
-
-char FILE_BASE[] = "sdk_files";
-
-/* Small helper function to compare string endings */
-int endsWith(const char *str, const char *suffix)
-{
- size_t lenstr;
- size_t lensuffix;
-
- if (!str || !suffix) return 0;
- lenstr = strlen(str);
- lensuffix = strlen(suffix);
- if (lensuffix > lenstr) return 0;
- return strncmp(str + lenstr - lensuffix, suffix, lensuffix) == 0;
-}
-
-
- /*
- * Callback triggered when a file transfer status changes
- *
- * Parameters:
- * data - The paramaters of the file transfer
- */
-
-void onFileTransferEvent(const struct FileTransferCallbackExport* data){
-
- printf("onFileTransferEvent clientID: %hu, transferID: %hu, remoteTransferID: %hu, status: %u, msg: %s, remoteFileSize: %llu, bytes: %llu, isSender: %i\n",
- data->clientID, data->transferID, data->remoteTransferID, data->status, data->statusMessage, data->remotefileSize, data->bytes, data->isSender);
-
-}
-
- /*
- * Callback triggered before a client tries to upload a file
- *
- * Parameters:
- * serverID - ID of the virtual server on which upload is requested.
- * client - Struct of client parameters like ident, nickname etc. who is uploading the file. See public_definitions.h.
- * params - The paramaters of the file upload. See server_commands_file_transfer.h
- *
- * Note: You can deny the upload by returning ERROR_permissions
- */
-unsigned int permFileTransferInitUpload(uint64 serverID, const struct ClientMiniExport* client, const struct ts3sc_ftinitupload* params){
-
- /*log to screen*/
- printf("permFileTransferInitUpload filename: %s, size: %llu, channel: %llu, overwrite: %d, resume: %d\n", params->d.fileName, params->d.fileSize, params->d.channelID, params->d.overwrite, params->d.resume);
-
- /*just for fun, lets not permit uploading of .txt files*/
- if (endsWith(params->d.fileName, ".txt")){
- return ERROR_permissions;
- }
-
- /*note we also have the client parameter, so we could deny based on who is uploading*/
-
- return ERROR_ok;
-}
-
- /*
- * Callback triggered before a client tries to upload a file
- *
- * Parameters:
- * serverID - ID of the virtual server on which upload is requested.
- * client - Struct of client parameters like ident, nickname etc. who is uploading the file. See public_definitions.h.
- * params - The paramaters of the file download. See server_commands_file_transfer.h
- *
- * Note: You can deny the download by returning ERROR_permissions
- */
-unsigned int permFileTransferInitDownload(uint64 serverID, const struct ClientMiniExport* client, const struct ts3sc_ftinitdownload* params){
- /*log to screen*/
- printf("permFileTransferInitDownload filename: %s, channel: %llu\n", params->d.fileName, params->d.channelID);
-
- /*just for fun, lets not permit downloading of .txt files*/
- if (endsWith(params->d.fileName, ".txt")){
- return ERROR_permissions;
- }
-
- return ERROR_ok;
-}
-
- /*
- * Callback triggered before a client tries to get file information
- *
- * Parameters:
- * serverID - ID of the virtual server on which upload is requested.
- * client - Struct of client parameters like ident, nickname etc. who is uploading the file. See public_definitions.h.
- * params - The paramaters of the information request. See server_commands_file_transfer.h
- *
- * Note: You can deny the whole request returning ERROR_permissions
- */
-unsigned int permFileTransferGetFileInfo(uint64 serverID, const struct ClientMiniExport* client, const struct ts3sc_ftgetfileinfo* params){
- int idx;
-
- /*log to screen*/
- printf("permFileTransferGetFileInfo \n");
- for (idx= 0; idx < params->r_size; ++idx){
- printf(" channel: %llu name:%s\n", params->r[idx].channelID, params->r[idx].fileName);
- }
- printf("\n");
-
- return ERROR_ok;
-}
-
- /*
- * Callback triggered before a client tries to get a directory listing
- *
- * Parameters:
- * serverID - ID of the virtual server on which upload is requested.
- * client - Struct of client parameters like ident, nickname etc. who is uploading the file. See public_definitions.h.
- * params - The paramaters of the information request. See server_commands_file_transfer.h
- *
- * Note: You can deny the whole request returning ERROR_permissions
- */
-unsigned int permFileTransferGetFileList(uint64 serverID, const struct ClientMiniExport* client, const struct ts3sc_ftgetfilelist* params){
- /*log to screen*/
- printf("permFileTransferGetFileList path: %s, channel: %llu\n", params->d.path, params->d.channelID);
-
- return ERROR_ok;
-}
-
- /*
- * Callback triggered before a client tries to delete files
- *
- * Parameters:
- * serverID - ID of the virtual server on which upload is requested.
- * client - Struct of client parameters like ident, nickname etc. who is uploading the file. See public_definitions.h.
- * params - The paramaters of the delete request. See server_commands_file_transfer.h
- *
- * Note: You can deny the whole request returning ERROR_permissions
- */
-unsigned int permFileTransferDeleteFile(uint64 serverID, const struct ClientMiniExport* client, const struct ts3sc_ftdeletefile* params){
- int idx;
-
- /*log to screen*/
- printf("permFileTransferDeleteFile channel: %llu\n", params->d.channelID);
- for (idx= 0; idx < params->r_size; ++idx){
- printf(" name:%s\n", params->r[idx].fileName);
-
- /*just for fun, lets not permit deleting of .txt files*/
- if (endsWith(params->r[idx].fileName, ".txt")){
- return ERROR_permissions;
- }
- }
- printf("\n");
-
- return ERROR_ok;
-}
-
- /*
- * Callback triggered before a client tries to create a sub directory
- *
- * Parameters:
- * serverID - ID of the virtual server on which upload is requested.
- * client - Struct of client parameters like ident, nickname etc. who is uploading the file. See public_definitions.h.
- * params - The paramaters of the request. See server_commands_file_transfer.h
- *
- * Note: You can deny the whole request returning ERROR_permissions
- */
-unsigned int permFileTransferCreateDirectory(uint64 serverID, const struct ClientMiniExport* client, const struct ts3sc_ftcreatedir* params){
- /*log to screen*/
- printf("permFileTransferCreateDirectory dirname: %s, channel: %llu\n", params->d.dirname, params->d.channelID);
-
- /*just for fun, lets not permit creation of .txt dirs*/
- if (endsWith(params->d.dirname, ".txt")){
- return ERROR_permissions;
- }
-
- return ERROR_ok;
-}
-
- /*
- * Callback triggered before a client tries to rename a file
- *
- * Parameters:
- * serverID - ID of the virtual server on which upload is requested.
- * client - Struct of client parameters like ident, nickname etc. who is uploading the file. See public_definitions.h.
- * params - The paramaters of the rename request. See server_commands_file_transfer.h
- *
- * Note: You can deny the whole request returning ERROR_permissions
- */
-unsigned int permFileTransferRenameFile(uint64 serverID, const struct ClientMiniExport* client, const struct ts3sc_ftrenamefile* params){
- /*log to screen*/
- if (params->m.has_toChannelID){
- printf("permFileTransferRenameFile oldname: %s, old channel: %llu new name: %s, new channel: %llu\n", params->d.oldFileName, params->d.fromChannelID, params->d.newFileName, params->d.toChannelID);
- } else {
- printf("permFileTransferRenameFile oldname: %s, old channel: %llu new name: %s\n", params->d.oldFileName, params->d.fromChannelID, params->d.newFileName);
- }
-
- return ERROR_ok;
-}
-
- /*
- * Callback triggered after most file transfer request permissions have passed. It exists to let the server change the file
- * name and/or directory of the request for special purposes.
- *
- * Parameters:
- * serverID - ID of the virtual server on which upload is requested.
- * invokerClientID - id of the client that is doing the request
- * original - Struct of the request params like original file name, what kind of action is taken and . See public_definitions.h.
- * result - Struct with the transformed parameters. See public_definitions.h.
- */
-unsigned int onTransformFilePath(uint64 serverID, anyID invokerClientID, const struct TransformFilePathExport* original, struct TransformFilePathExportReturns* result){
-
- const char* action;
- size_t filenamelen;
- size_t appendlen = strlen(".example");
-
- switch(original->action){
- case(FT_INIT_SERVER):
- action = "FT_INIT_SERVER";
- break;
- case(FT_INIT_CHANNEL):
- action = "FT_INIT_CHANNEL";
- break;
- case(FT_UPLOAD):
- action = "FT_UPLOAD";
- break;
- case(FT_DOWNLOAD):
- action = "FT_DOWNLOAD";
- break;
- case(FT_DELETE):
- action = "FT_DELETE";
- break;
- case(FT_CREATEDIR):
- action = "FT_CREATEDIR";
- break;
- case(FT_RENAME):
- action = "FT_RENAME";
- break;
- case(FT_FILELIST):
- action = "FT_FILELIST";
- break;
- case(FT_FILEINFO):
- action = "FT_FILELIST";
- break;
- default:
- action = "unknown action";
- }
-
- printf("onTransformFilePath filename: %s, action: %s\n", original->filename, action);
-
- /*for FT_INIT_SERVER and FT_INIT_CHANNEL we use our own directory naming for the server/channel*/
- if (original->action == FT_INIT_SERVER){
- sprintf(result->channelPath, "%s/myvs_%llu", FILE_BASE, (unsigned long long)serverID);
- return ERROR_ok;
- }
- if (original->action == FT_INIT_CHANNEL){
- sprintf(result->channelPath, "%s/myvs_%llu/mychan_%llu", FILE_BASE, serverID, original->channel);
- return ERROR_ok;
- }
-
- /* Here we can alter the filename and file path to the data on the server. The default values are already filled in in the result variable.
- *
- * For this example we will append ".example" to .doc files
- */
-
- if (endsWith(original->filename, ".doc")){
- filenamelen = strlen(original->filename);
- if ((int)(filenamelen+appendlen) >= original->transformedFileNameMaxSize) {
- /* the filename we want to return is larger than allowed. We return an error*/
- return ERROR_parameter_invalid_size;
- }
- sprintf(result->transformedFileName, "%s.example", original->filename);
- }
-
- return ERROR_ok;
-}
-
-
-#endif
-/*
- * Callback for user-defined logging.
- *
- * Parameter:
- * logMessage - Log message text
- * logLevel - Severity of log message
- * logChannel - Custom text to categorize the message channel
- * logID - Virtual server ID giving the virtual server source of the log event
- * logTime - String with the date and time the log entry occured
- * completeLogString - Verbose log message including all previous parameters for convinience
- */
-void onUserLoggingMessageEvent(const char* logMessage, int logLevel, const char* logChannel, uint64 logID, const char* logTime, const char* completeLogString) {
- /* Your custom error display here... */
- /* printf("LOG: %s\n", completeLogString); */
- if(logLevel == LogLevel_CRITICAL) {
- exit(1); /* Your custom handling of critical errors */
- }
-}
-
-/*
- * Callback triggered when a license error occurs.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the license error occured. This virtual server will be automatically
- * shutdown. If the parameter is zero, all virtual servers are affected and have been shutdown.
- * errorCode - Code of the occured error. Use ts3server_getGlobalErrorMessage() to convert to a message string
- */
-void onAccountingErrorEvent(uint64 serverID, unsigned int errorCode) {
- char* errorMessage;
- if(ts3server_getGlobalErrorMessage(errorCode, &errorMessage) == ERROR_ok) {
- printf("onAccountingErrorEvent serverID=%llu, errorCode=%u: %s\n", (unsigned long long)serverID, errorCode, errorMessage);
- ts3server_freeMemory(errorMessage);
- }
-
- /* Your custom handling here. In a real application, you wouldn't stop the whole process because the TS3 server part went down.
- * The whole idea of this callback is to let you gracefully handle the TS3 server failing to start and to continue your application. */
- exit(1);
-}
-
-/*
- * Read server key from file
- */
-int readKeyPairFromFile(const char *fileName, char *keyPair) {
- FILE *file;
-
- file = fopen(fileName, "r");
- if(file == NULL) {
- printf("Could not open file '%s' for reading keypair\n", fileName);
- return -1;
- }
-
- fgets(keyPair, BUFSIZ, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error reading keypair from file '%s'.\n", fileName);
- return -1;
- }
- fclose (file);
-
- printf("Read keypair '%s' from file '%s'.\n", keyPair, fileName);
- return 0;
-}
-
-/*
- * Write server key to file
- */
-int writeKeyPairToFile(const char *fileName, const char* keyPair) {
- FILE *file;
-
- file = fopen(fileName, "w");
- if(file == NULL) {
- printf("Could not open file '%s' for writing keypair\n", fileName);
- return -1;
- }
-
- fputs(keyPair, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error writing keypair to file '%s'.\n", fileName);
- return -1;
- }
- fclose (file);
-
- printf("Wrote keypair '%s' to file '%s'.\n", keyPair, fileName);
- return 0;
-}
-
-int main(int argc, char **argv) {
- char *version;
- uint64 serverID;
- unsigned int error;
- char buffer[BUFSIZ] = { 0 };
- char filename[BUFSIZ];
- char port_str[20];
- char *keyPair;
-
- /* Create struct for callback function pointers */
- struct ServerLibFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ServerLibFunctions));
-
- /* Now assign the used callback function pointers */
- funcs.onUserLoggingMessageEvent = onUserLoggingMessageEvent;
- funcs.onAccountingErrorEvent = onAccountingErrorEvent;
-#ifndef MINIMAL_EXAMPLE
- funcs.permFileTransferInitUpload = permFileTransferInitUpload;
- funcs.permFileTransferInitDownload = permFileTransferInitDownload;
- funcs.permFileTransferGetFileInfo = permFileTransferGetFileInfo;
- funcs.permFileTransferGetFileList = permFileTransferGetFileList;
- funcs.permFileTransferDeleteFile = permFileTransferDeleteFile;
- funcs.permFileTransferCreateDirectory = permFileTransferCreateDirectory;
- funcs.permFileTransferRenameFile = permFileTransferRenameFile;
- funcs.onFileTransferEvent = onFileTransferEvent;
- funcs.onTransformFilePath = onTransformFilePath;
-#endif
-
- /* Initialize server lib with callbacks */
- if((error = ts3server_initServerLib(&funcs, LogType_FILE | LogType_CONSOLE | LogType_USERLOGGING, NULL, argc, (const char* const *)argv)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initialzing serverlib: %s\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* The call below is the only call that needs to be made to enable file transfers on the server.
- There are how ever a lot of callbacks that can be hooked in to (above) to change
- permissions or change file names */
-
- /* Here we initialize file transfers to store everything on disk in a tree starting at "sdk_files".
- All files for virtual server with id 1 will be in "sdk_files/virtualserver_1"
- Files in channel 1 in virtual server 1 will be in "sdk_files/virtualserver_1/channel_1"
- These directories will automatically be created by the server if they do not exist. It is the
- responsibility of the application (not serverlib) to delete these directories when you are done
- with them.
-
- We supply NULL to the ips param. This is equivalent to:
- char* ips[2]= {"0.0.0.0", NULL};
- If the system is ipv6 capable it is equivalent to:
- char* ips[3]= {"0.0.0.0", "::", NULL};
-
- The port is free to choose. TeamSpeak defaults to 30033. Feel free to listen on an other port.
-
- Finally we set no limits for the download and upload bandwidth.
- */
-
- /* Initialize server file transfers */
- if ((error=ts3server_enableFileManager(FILE_BASE, NULL, 30033, BANDWIDTH_LIMIT_UNLIMITED, BANDWIDTH_LIMIT_UNLIMITED)) != ERROR_ok){
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initialzing filemanager: %s\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* Query and print server lib version */
- if((error = ts3server_getServerLibVersion(&version)) != ERROR_ok) {
- printf("Error querying server lib version: %d\n", error);
- return 1;
- }
- printf("Server lib version: %s\n", version);
- ts3server_freeMemory(version); /* Release dynamically allocated memory */
-
- /* Attempt to load keypair from file */
- /* Assemble filename: keypair_.txt */
- strcpy(filename, "keypair_");
- sprintf(port_str, "%d", 9987); // Default port
- strcat(filename, port_str);
- strcat(filename, ".txt");
-
- /* Try reading keyPair from file */
- if(readKeyPairFromFile(filename, buffer) == 0) {
- keyPair = buffer; /* Id read from file */
- } else {
- keyPair = ""; /* No Id saved, start virtual server with empty keyPair string */
- }
-
- /* Create virtual server using default port 9987 with max 10 slots */
-
- /* Create the virtual server with specified port, name, keyPair and max clients */
- printf("Create virtual server using keypair '%s'\n", keyPair);
- //listen on any address on ipv4 and ipv6 (it is also possible to enter multiple ipv4 and ipv6 addresses here)
- if((error = ts3server_createVirtualServer(9987, "0.0.0.0, ::", "TeamSpeak SDK Testserver", keyPair, 8, &serverID)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error creating virtual server: %s (%d)\n", errormsg, error);
- ts3server_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* If we didn't load the keyPair before, query it from virtual server and save to file */
- if(!*buffer) {
- if((error = ts3server_getVirtualServerKeyPair(serverID, &keyPair)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error querying keyPair: %s\n\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return 0;
- }
-
- /* Save keyPair to file "keypair_.txt"*/
- if(writeKeyPairToFile(filename, keyPair) != 0) {
- ts3server_freeMemory(keyPair);
- return 0;
- }
- ts3server_freeMemory(keyPair);
- }
-
- /* Set welcome message */
- if((error = ts3server_setVirtualServerVariableAsString(serverID, VIRTUALSERVER_WELCOMEMESSAGE, "Hello TeamSpeak")) != ERROR_ok) {
- printf("Error setting server welcome message: %d\n", error);
- return 1;
- }
-
- /* Set server password */
- if((error = ts3server_setVirtualServerVariableAsString(serverID, VIRTUALSERVER_PASSWORD, "secret")) != ERROR_ok) {
- printf("Error setting server password: %d\n", error);
- return 1;
- }
-
- /* Flush above two changes to server */
- if((error = ts3server_flushVirtualServerVariable(serverID)) != ERROR_ok) {
- printf("Error flushing server variables: %d\n", error);
- return 1;
- }
-
- /* Set codec quality of channel(s) */
- uint64* channelList = NULL;
- if ((error = ts3server_getChannelList(serverID, &channelList)) != ERROR_ok) {
- printf("Couldn't get channel list: %d\n", error);
- return 1;
- }
- uint64* channelIDPtr = NULL;
- for (channelIDPtr = channelList; *channelIDPtr != (uint64)NULL; ++channelIDPtr) {
- if ((error = ts3server_setChannelVariableAsInt(serverID, *channelIDPtr, CHANNEL_CODEC_QUALITY, 10)) != ERROR_ok) {
- printf("Couldn't set channel codec quality: %d\n", error);
- ts3server_freeMemory(channelList);
- return 1;
- }
- if ((error = ts3server_flushChannelVariable(serverID, *channelIDPtr)) != ERROR_ok) {
- if (error != ERROR_ok_no_update) {
- printf("Error flushing channel variables: %d\n", error);
- ts3server_freeMemory(channelList);
- return 1;
- }
- }
- }
- ts3server_freeMemory(channelList);
-
- /* Wait for user input */
- printf("\n--- Press Return to shutdown server and exit ---\n");
- getchar();
-
- /* Stop virtual server */
- if((error = ts3server_stopVirtualServer(serverID)) != ERROR_ok) {
- printf("Error stopping virtual server: %d\n", error);
- return 1;
- }
-
- /* Shutdown server lib */
- if((error = ts3server_destroyServerLib()) != ERROR_ok) {
- printf("Error destroying server lib: %d\n", error);
- return 1;
- }
-
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_filetransfer/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/server_filetransfer/sources.cmake
deleted file mode 100644
index 68c919e..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_filetransfer/sources.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_minimal/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/server_minimal/main.c
deleted file mode 100644
index e5b3fd1..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_minimal/main.c
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
- * TeamSpeak SDK server sample
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-#ifdef _WINDOWS
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-#include
-
-#include
-#include
-#include
-#include
-
-/*
- * Callback when client has connected.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of connected client
- * channelID - ID of channel the client joined
- */
-void onClientConnected(uint64 serverID, anyID clientID, uint64 channelID, unsigned int* removeClientError) {
- printf("Client %u joined channel %llu on virtual server %llu\n", clientID, (unsigned long long)channelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when client has disconnected.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of disconnected client
- * channelID - ID of channel the client left
- */
-void onClientDisconnected(uint64 serverID, anyID clientID, uint64 channelID) {
- printf("Client %u left channel %llu on virtual server %llu\n", clientID, (unsigned long long)channelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when client has moved.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of moved client
- * oldChannelID - ID of old channel the client left
- * newChannelID - ID of new channel the client joined
- */
-void onClientMoved(uint64 serverID, anyID clientID, uint64 oldChannelID, uint64 newChannelID) {
- printf("Client %u moved from channel %llu to channel %llu on virtual server %llu\n", clientID, (unsigned long long)oldChannelID, (unsigned long long)newChannelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been created.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who created the channel
- * channelID - ID of the created channel
- */
-void onChannelCreated(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu created by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been edited.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who edited the channel
- * channelID - ID of the edited channel
- */
-void onChannelEdited(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu edited by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been deleted.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who deleted the channel
- * channelID - ID of the deleted channel
- */
-void onChannelDeleted(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu deleted by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback for user-defined logging.
- *
- * Parameter:
- * logMessage - Log message text
- * logLevel - Severity of log message
- * logChannel - Custom text to categorize the message channel
- * logID - Virtual server ID giving the virtual server source of the log event
- * logTime - String with the date and time the log entry occured
- * completeLogString - Verbose log message including all previous parameters for convinience
- */
-void onUserLoggingMessageEvent(const char* logMessage, int logLevel, const char* logChannel, uint64 logID, const char* logTime, const char* completeLogString) {
- /* Your custom error display here... */
- /* printf("LOG: %s\n", completeLogString); */
- if(logLevel == LogLevel_CRITICAL) {
- exit(1); /* Your custom handling of critical errors */
- }
-}
-
-/*
- * Callback triggered when the specified client starts talking.
- *
- * Parameters:
- * serverID - ID of the virtual server sending the callback
- * clientID - ID of the client which started talking
- */
-void onClientStartTalkingEvent(uint64 serverID, anyID clientID) {
- printf("onClientStartTalkingEvent serverID=%llu, clientID=%u\n", (unsigned long long)serverID, clientID);
-}
-
-/*
- * Callback triggered when the specified client stops talking.
- *
- * Parameters:
- * serverID - ID of the virtual server sending the callback
- * clientID - ID of the client which stopped talking
- */
-void onClientStopTalkingEvent(uint64 serverID, anyID clientID) {
- printf("onClientStopTalkingEvent serverID=%llu, clientID=%u\n", (unsigned long long)serverID, clientID);
-}
-
-/*
- * Callback triggered when a license error occurs.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the license error occured. This virtual server will be automatically
- * shutdown. If the parameter is zero, all virtual servers are affected and have been shutdown.
- * errorCode - Code of the occured error. Use ts3server_getGlobalErrorMessage() to convert to a message string
- */
-void onAccountingErrorEvent(uint64 serverID, unsigned int errorCode) {
- char* errorMessage;
- if(ts3server_getGlobalErrorMessage(errorCode, &errorMessage) == ERROR_ok) {
- printf("onAccountingErrorEvent serverID=%llu, errorCode=%u: %s\n", (unsigned long long)serverID, errorCode, errorMessage);
- ts3server_freeMemory(errorMessage);
- }
-
- /* Your custom handling here. In a real application, you wouldn't stop the whole process because the TS3 server part went down.
- * The whole idea of this callback is to let you gracefully handle the TS3 server failing to start and to continue your application. */
- exit(1);
-}
-
-/*
- * Read server key from file
- */
-int readKeyPairFromFile(const char *fileName, char *keyPair) {
- FILE *file;
-
- file = fopen(fileName, "r");
- if(file == NULL) {
- printf("Could not open file '%s' for reading keypair\n", fileName);
- return -1;
- }
-
- fgets(keyPair, BUFSIZ, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error reading keypair from file '%s'.\n", fileName);
- return -1;
- }
- fclose (file);
-
- printf("Read keypair '%s' from file '%s'.\n", keyPair, fileName);
- return 0;
-}
-
-/*
- * Write server key to file
- */
-int writeKeyPairToFile(const char *fileName, const char* keyPair) {
- FILE *file;
-
- file = fopen(fileName, "w");
- if(file == NULL) {
- printf("Could not open file '%s' for writing keypair\n", fileName);
- return -1;
- }
-
- fputs(keyPair, file);
- if(ferror(file) != 0) {
- fclose (file);
- printf("Error writing keypair to file '%s'.\n", fileName);
- return -1;
- }
- fclose (file);
-
- printf("Wrote keypair '%s' to file '%s'.\n", keyPair, fileName);
- return 0;
-}
-
-int main(int argc, char **argv) {
- char *version;
- uint64 serverID;
- unsigned int error;
- char buffer[BUFSIZ] = { 0 };
- char filename[BUFSIZ];
- char port_str[20];
- char *keyPair;
-
- /* Create struct for callback function pointers */
- struct ServerLibFunctions funcs;
-
- /* Initialize all callbacks with NULL */
- memset(&funcs, 0, sizeof(struct ServerLibFunctions));
-
- /* Now assign the used callback function pointers */
- funcs.onClientConnected = onClientConnected;
- funcs.onClientDisconnected = onClientDisconnected;
- funcs.onClientMoved = onClientMoved;
- funcs.onChannelCreated = onChannelCreated;
- funcs.onChannelEdited = onChannelEdited;
- funcs.onChannelDeleted = onChannelDeleted;
- funcs.onUserLoggingMessageEvent = onUserLoggingMessageEvent;
- funcs.onClientStartTalkingEvent = onClientStartTalkingEvent;
- funcs.onClientStopTalkingEvent = onClientStopTalkingEvent;
- funcs.onAccountingErrorEvent = onAccountingErrorEvent;
-
- /* Initialize server lib with callbacks */
- if((error = ts3server_initServerLib(&funcs, LogType_FILE | LogType_CONSOLE | LogType_USERLOGGING, NULL, argc, (const char* const *)argv)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error initialzing serverlib: %s\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* Query and print server lib version */
- if((error = ts3server_getServerLibVersion(&version)) != ERROR_ok) {
- printf("Error querying server lib version: %d\n", error);
- return 1;
- }
- printf("Server lib version: %s\n", version);
- ts3server_freeMemory(version); /* Release dynamically allocated memory */
-
- /* Attempt to load keypair from file */
- /* Assemble filename: keypair_.txt */
- strcpy(filename, "keypair_");
- sprintf(port_str, "%d", 9987); // Default port
- strcat(filename, port_str);
- strcat(filename, ".txt");
-
- /* Try reading keyPair from file */
- if(readKeyPairFromFile(filename, buffer) == 0) {
- keyPair = buffer; /* Id read from file */
- } else {
- keyPair = ""; /* No Id saved, start virtual server with empty keyPair string */
- }
-
- /* Create virtual server using default port 9987 with max 10 slots */
-
- /* Create the virtual server with specified port, name, keyPair and max clients */
- printf("Create virtual server using keypair '%s'\n", keyPair);
- //listen on any address on ipv4 and ipv6 (it is also possible to enter multiple ipv4 and ipv6 addresses here)
- if((error = ts3server_createVirtualServer(9987, "0.0.0.0, ::", "TeamSpeak SDK Testserver", keyPair, 8, &serverID)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error creating virtual server: %s (%d)\n", errormsg, error);
- ts3server_freeMemory(errormsg);
- }
- return 1;
- }
-
- /* If we didn't load the keyPair before, query it from virtual server and save to file */
- if(!*buffer) {
- if((error = ts3server_getVirtualServerKeyPair(serverID, &keyPair)) != ERROR_ok) {
- char* errormsg;
- if(ts3server_getGlobalErrorMessage(error, &errormsg) == ERROR_ok) {
- printf("Error querying keyPair: %s\n\n", errormsg);
- ts3server_freeMemory(errormsg);
- }
- return 0;
- }
-
- /* Save keyPair to file "keypair_.txt"*/
- if(writeKeyPairToFile(filename, keyPair) != 0) {
- ts3server_freeMemory(keyPair);
- return 0;
- }
- ts3server_freeMemory(keyPair);
- }
-
- /* Set welcome message */
- if((error = ts3server_setVirtualServerVariableAsString(serverID, VIRTUALSERVER_WELCOMEMESSAGE, "Hello TeamSpeak")) != ERROR_ok) {
- printf("Error setting server welcomemessage: %d\n", error);
- return 1;
- }
-
- /* Set server password */
- if((error = ts3server_setVirtualServerVariableAsString(serverID, VIRTUALSERVER_PASSWORD, "secret")) != ERROR_ok) {
- printf("Error setting server password: %d\n", error);
- return 1;
- }
-
- /* Flush above two changes to server */
- if((error = ts3server_flushVirtualServerVariable(serverID)) != ERROR_ok) {
- printf("Error flushing server variables: %d\n", error);
- return 1;
- }
-
- /* Set codec quality of channel(s) */
- uint64* channelList = NULL;
- if ((error = ts3server_getChannelList(serverID, &channelList)) != ERROR_ok) {
- printf("Couldn't get channel list: %d\n", error);
- return 1;
- }
- uint64* channelIDPtr = NULL;
- for (channelIDPtr = channelList; *channelIDPtr != (uint64)NULL; ++channelIDPtr) {
- if ((error = ts3server_setChannelVariableAsInt(serverID, *channelIDPtr, CHANNEL_CODEC_QUALITY, 10)) != ERROR_ok) {
- printf("Couldn't set channel codec quality: %d\n", error);
- ts3server_freeMemory(channelList);
- return 1;
- }
- if ((error = ts3server_flushChannelVariable(serverID, *channelIDPtr)) != ERROR_ok) {
- if (error != ERROR_ok_no_update) {
- printf("Error flushing channel variables: %d\n", error);
- ts3server_freeMemory(channelList);
- return 1;
- }
- }
- }
- ts3server_freeMemory(channelList);
-
- /* Wait for user input */
- printf("\n--- Press Return to shutdown server and exit ---\n");
- getchar();
-
- /* Stop virtual server */
- if((error = ts3server_stopVirtualServer(serverID)) != ERROR_ok) {
- printf("Error stopping virtual server: %d\n", error);
- return 1;
- }
-
- /* Shutdown server lib */
- if((error = ts3server_destroyServerLib()) != ERROR_ok) {
- printf("Error destroying server lib: %d\n", error);
- return 1;
- }
-
- return 0;
-}
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_minimal/sources.cmake b/docs/teamspeak-sdk-3.5.2/samples/source/server_minimal/sources.cmake
deleted file mode 100644
index 68c919e..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_minimal/sources.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-message("generating TeamSpeak SDK sample ${TS_SDK_SAMPLE}")
-
-set (TS_SAMPLE_SRC
- "${CMAKE_CURRENT_LIST_DIR}/main.c"
-)
diff --git a/docs/teamspeak-sdk-3.5.2/samples/source/server_permissions/main.c b/docs/teamspeak-sdk-3.5.2/samples/source/server_permissions/main.c
deleted file mode 100644
index 682ff2c..0000000
--- a/docs/teamspeak-sdk-3.5.2/samples/source/server_permissions/main.c
+++ /dev/null
@@ -1,725 +0,0 @@
-/*
- * TeamSpeak SDK server permission sample
- *
- * Copyright (c) TeamSpeak-Systems
- */
-
-#ifdef _WINDOWS
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#else
-#include
-#include
-#include
-#endif
-
-#include
-
-#include
-#include
-#include
-#include
-
-/*
- * Callback when client has connected.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of connected client
- * channelID - ID of channel the client joined
- */
-void onClientConnected(uint64 serverID, anyID clientID, uint64 channelID, unsigned int* removeClientError) {
- printf("Client %u joined channel %llu on virtual server %llu\n", clientID, (unsigned long long)channelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when client has disconnected.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of disconnected client
- * channelID - ID of channel the client left
- */
-void onClientDisconnected(uint64 serverID, anyID clientID, uint64 channelID) {
- printf("Client %u left channel %llu on virtual server %llu\n", clientID, (unsigned long long)channelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when client has moved.
- *
- * Parameter:
- * serverID - Virtual server ID
- * clientID - ID of moved client
- * oldChannelID - ID of old channel the client left
- * newChannelID - ID of new channel the client joined
- */
-void onClientMoved(uint64 serverID, anyID clientID, uint64 oldChannelID, uint64 newChannelID) {
- printf("Client %u moved from channel %llu to channel %llu on virtual server %llu\n", clientID, (unsigned long long)oldChannelID, (unsigned long long)newChannelID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been created.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who created the channel
- * channelID - ID of the created channel
- */
-void onChannelCreated(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu created by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been edited.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who edited the channel
- * channelID - ID of the edited channel
- */
-void onChannelEdited(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu edited by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback when channel has been deleted.
- *
- * Parameter:
- * serverID - Virtual server ID
- * invokerClientID - ID of the client who deleted the channel
- * channelID - ID of the deleted channel
- */
-void onChannelDeleted(uint64 serverID, anyID invokerClientID, uint64 channelID) {
- printf("Channel %llu deleted by %u on virtual server %llu\n", (unsigned long long)channelID, invokerClientID, (unsigned long long)serverID);
-}
-
-/*
- * Callback for user-defined logging.
- *
- * Parameter:
- * logMessage - Log message text
- * logLevel - Severity of log message
- * logChannel - Custom text to categorize the message channel
- * logID - Virtual server ID giving the virtual server source of the log event
- * logTime - String with the date and time the log entry occured
- * completeLogString - Verbose log message including all previous parameters for convinience
- */
-void onUserLoggingMessageEvent(const char* logMessage, int logLevel, const char* logChannel, uint64 logID, const char* logTime, const char* completeLogString) {
- /* Your custom error display here... */
- /* printf("LOG: %s\n", completeLogString); */
- if(logLevel == LogLevel_CRITICAL) {
- exit(1); /* Your custom handling of critical errors */
- }
-}
-
-/*
- * Callback triggered when the specified client starts talking.
- *
- * Parameters:
- * serverID - ID of the virtual server sending the callback
- * clientID - ID of the client which started talking
- */
-void onClientStartTalkingEvent(uint64 serverID, anyID clientID) {
- printf("onClientStartTalkingEvent serverID=%llu, clientID=%u\n", (unsigned long long)serverID, clientID);
-}
-
-/*
- * Callback triggered when the specified client stops talking.
- *
- * Parameters:
- * serverID - ID of the virtual server sending the callback
- * clientID - ID of the client which stopped talking
- */
-void onClientStopTalkingEvent(uint64 serverID, anyID clientID) {
- printf("onClientStopTalkingEvent serverID=%llu, clientID=%u\n", (unsigned long long)serverID, clientID);
-}
-
-/*
- * Callback triggered when a license error occurs.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the license error occured. This virtual server will be automatically
- * shutdown. If the parameter is zero, all virtual servers are affected and have been shutdown.
- * errorCode - Code of the occured error. Use ts3server_getGlobalErrorMessage() to convert to a message string
- */
-void onAccountingErrorEvent(uint64 serverID, unsigned int errorCode) {
- char* errorMessage;
- if(ts3server_getGlobalErrorMessage(errorCode, &errorMessage) == ERROR_ok) {
- printf("onAccountingErrorEvent serverID=%llu, errorCode=%u: %s\n", (unsigned long long)serverID, errorCode, errorMessage);
- ts3server_freeMemory(errorMessage);
- }
-
- /* Your custom handling here. In a real application, you wouldn't stop the whole process because the TS3 server part went down.
- * The whole idea of this callback is to let you gracefully handle the TS3 server failing to start and to continue your application. */
- exit(1);
-}
-
-/*
- * Callback triggered before a client connects.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is connecting.
- * client - Struct of client parameters like ident, nickname etc. Please view public_definitions.h.
- *
- * Note: You can deny the permission for special nicknames or identities here so the client connect is not allowed.
- */
-unsigned int onPermClientCanConnect(uint64 serverID, const struct ClientMiniExport* client) {
- printf("onPermClientCanConnect\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname);
-
- // nickname of sdk client ist "client" so check it for a test
- if (strcmp(client->nickname, "client") == 0) {
- //return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before a channel will be created.
- *
- * Parameters:
- * serverID - ID of the virtual server where the client is requesting a channel creation.
- * client - Struct of client parameters like ident, nickname etc. Please view public_definitions.h.
- * parentChannelID - Parent ID of the channel which is going to be created.
- * variables - Array of channel properties for the new channel.
- *
- * Note: You can deny the permission so creating the channel is not allowed.
- */
-unsigned int onPermChannelCreate(uint64 serverID, const struct ClientMiniExport* client, uint64 parentChannelID, const struct VariablesExport* variables) {
- int i=0;
-
- printf("onPermChannelCreate\n\tserverID=%llu\n\tparentChannelID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n",
- (unsigned long long)serverID, (unsigned long long)parentChannelID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname);
-
- // e.g. check nickname for admin and deny creation
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
-
- for(; iitems[i];
- if (item.itemIsValid) {
- printf("\titem=%i itemIsValid=%i current=%s\n", i, item.itemIsValid, item.current);
- if (item.proposedIsSet) {
- printf("\titem=%i proposedIsSet=%i proposed=%s\n", i, item.proposedIsSet, item.proposed);
- }
- }
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before a channel description will be sent.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting the channel description.
- * client - Struct of client parameters like ident, nickname etc. Please view public_definitions.h.
- *
- * Note: You can deny the permission so getting the channel descritpion is not allowed.
- */
-unsigned int onPermClientCanGetChannelDescription(uint64 serverID, const struct ClientMiniExport* client) {
- printf("onPermClientCanGetChannelDescription\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname);
- // check nickname for admin and deny
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before a client update
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting an udpate.
- * clientID - ID of the client which triggered an update.
- * variables - Array of client properties.
- *
- * Note: You can deny the permission so updating a client variable is not allowed.
- */
-unsigned int onPermClientUpdate(uint64 serverID, anyID clientID, const struct VariablesExport* variables) {
- int i=0;
-
- printf("onPermClientUpdate\n\tserverID=%llu\n\tclientID=%u\n", (unsigned long long)serverID, clientID);
-
- for(; iitems[i];
- if (item.itemIsValid) {
- printf("\titem=%i itemIsValid=%i current=%s\n", i, item.itemIsValid, item.current);
- if (item.proposedIsSet) {
- printf("\titem=%i proposedIsSet=%i proposed=%s\n", i, item.proposedIsSet, item.proposed);
- // e.g. check nickname for Admin and deny
- if (i == CLIENT_NICKNAME && strcmp(item.proposed, "Admin") == 0) {
- return ERROR_permissions;
- }
- }
- }
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before one or more clients will be kicked from channel.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting the kick.
- * client - Struct of client parameters like ident, nickname etc. who is causing the kick. Please view public_definitions.h.
- * toKickCount - The number of clients to be kicked.
- * toKickClients - Array of structs which clients are going to be kicked.
- * reasonText - Optional reason text why the kick was initiated.
- *
- * Note: You can deny the permission so kicking is not allowed.
- */
-unsigned int onPermClientKickFromChannel(uint64 serverID, const struct ClientMiniExport* client, int toKickCount, const struct ClientMiniExport* toKickClients, const char* reasonText) {
- printf("onPermClientKickFromChannel\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n"
- "\ttoKickCount=%i\n"
- "\ttoKickClientsChannel=%llu\n\ttoKickClientsClientID=%u\n\ttoKickClientsIdent=%s\n\ttoKickClientsNickname=%s\n"
- "\treasonText=%s\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname, toKickCount, (unsigned long long)toKickClients->channel, toKickClients->ID, toKickClients->ident, toKickClients->nickname, reasonText);
- // e.g. check nickname for admin and deny
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before one or more clients will be kicked from server.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting the kick.
- * client - Struct of client parameters like ident, nickname etc. who is causing the kick. Please view public_definitions.h.
- * toKickCount - The number of clients to be kicked.
- * toKickClients - Array of structs which clients are going to be kicked.
- * reasonText - Optional reason text why the kick was initiated.
- *
- * Note: You can deny the permission so kicking is not allowed.
- */
-unsigned int onPermClientKickFromServer(uint64 serverID, const struct ClientMiniExport* client, int toKickCount, const struct ClientMiniExport* toKickClients, const char* reasonText) {
- printf("onPermClientKickFromServer\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n"
- "\ttoKickCount=%i\n"
- "\ttoKickClientsChannel=%llu\n\ttoKickClientsClientID=%u\n\ttoKickClientsIdent=%s\n\ttoKickClientsNickname=%s\n"
- "\treasonText=%s\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname, toKickCount, (unsigned long long)toKickClients->channel, toKickClients->ID, toKickClients->ident, toKickClients->nickname, reasonText);
- // check nickname for admin and deny
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before one or more clients will be moved.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting the client move.
- * client - Struct of client parameters like ident, nickname etc. who is causing the move. Please view public_definitions.h.
- * toMoveCount - The number of clients to be moved.
- * toMoveClients - Array of structs which clients are going to be moved.
- * newChannel - ID of the new channel.
- * reasonText - The reason why the move was initiated.
- *
- * Note: You can deny the permission so moving is not allowed.
- */
-unsigned int onPermClientMove(uint64 serverID, const struct ClientMiniExport* client, int toMoveCount, const struct ClientMiniExport* toMoveClients, uint64 newChannel, const char* reasonText) {
- printf("onPermClientMove\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n"
- "\ttoMoveCount=%i\n"
- "\ttoMoveClientsChannel=%llu\n\ttoMoveClientsClientID=%u\n\ttoMoveClientsIdent=%s\n\ttoMoveClientsNickname=%s\n"
- "\tnewChannel=%llu\n\treasonText=%s\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname, toMoveCount, (unsigned long long)toMoveClients->channel, toMoveClients->ID, toMoveClients->ident, toMoveClients->nickname,(unsigned long long)newChannel, reasonText);
- // check nickname for admin and deny
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before a channel will be moved.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting the channel move.
- * client - Struct of client parameters like ident, nickname etc. who is causing the move. Please view public_definitions.h.
- * channelID - ID of the current channel.
- * newParentChannelID - ID to which parent channel the current channel is going to be moved.
- *
- * Note: You can deny the permission so moving is not allowed.
- */
-unsigned int onPermChannelMove(uint64 serverID, const struct ClientMiniExport* client, uint64 channelID, uint64 newParentChannelID) {
- printf("onPermChannelMove\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n"
- "\tchannelID=%llu\n\tnewParentChannelID=%llu\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname,(unsigned long long)channelID, (unsigned long long)newParentChannelID);
- // check nickname for admin and deny
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before message will be sent.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting to sent a textmessage.
- * client - Struct of client parameters like ident, nickname etc. who is sending the textmessage. Please view public_definitions.h.
- * targetMode - The text message target mode if it is a server, channel or client message.
- * targetClientOrChannel - ID of the target client or the target channel.
- * textMessage - The sent text message.
- *
- * Note: You can deny the permission so sending a text message is not allowed.
- */
-unsigned int onPermSendTextMessage(uint64 serverID, const struct ClientMiniExport* client, anyID targetMode, uint64 targetClientOrChannel, const char* textMessage) {
- printf("onPermSendTextMessage\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n"
- "\ttargetMode=%u\n\ttargetClientOrChannel=%llu\n"
- "\ttextMessage=%s\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname, targetMode, (unsigned long long)targetClientOrChannel, textMessage);
- // check nickname for admin and deny
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before server connection info will be sent.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting to sent a textmessage.
- * client - Struct of client parameters like ident, nickname etc. who is requesting the connection info. Please view public_definitions.h.
- *
- * Note: You can deny the permission so requesting the connection info is not allowed.
- */
-unsigned int onPermServerRequestConnectionInfo(uint64 serverID, const struct ClientMiniExport* client) {
- printf("onPermServerRequestConnectionInfo\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname);
- // check nickname for admin and deny
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before client connection info will be sent.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting to sent a textmessage.
- * client - Struct of client parameters like ident, nickname etc. who is requesting the connection info. Please view public_definitions.h.
- * mayViewIpPort - Change it to 0 for decline and 1 to allow viewing ip and port. Default is allow. Also, this param is ignored if client==targetClient
- * targetClient - Struct of target client parameters like ident, nickname etc. Please view public_definitions.h.
- *
- * Note: You can deny the permission so requesting the connection info is not allowed.
- */
-unsigned int onPermSendConnectionInfo(uint64 serverID, const struct ClientMiniExport* client, int* mayViewIpPort, const struct ClientMiniExport* targetClient) {
- *mayViewIpPort = 1;
- printf("onPermSendConnectionInfo\n\tserverID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n"
- "\ttargetClientChannel=%llu\n\ttargetClientClientID=%u\n\ttargetClientIdent=%s\n\ttargetClientNickname=%s\n",
- (unsigned long long)serverID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname, (unsigned long long)targetClient->channel, targetClient->ID, targetClient->ident, targetClient->nickname);
- // check nickname for admin and deny
- if (strcmp(client->nickname, "admin") == 0) {
- return ERROR_permissions;
- }
- return ERROR_ok;
-}
-
-/*
- * Callback triggered before channel will be edited.
- *
- * Parameters:
- * serverID - ID of the virtual server on which the client is requesting to sent a textmessage.
- * client - Struct of client parameters like ident, nickname etc. who is requesting the channel edit. Please view public_definitions.h.
- * channelID - ID of the channel which is going to be edited.
- * variables - Array of channel properties.
- *
- * Note: You can deny the permission so editing the channel is not allowed.
- */
-unsigned int onPermChannelEdit(uint64 serverID, const struct ClientMiniExport* client, uint64 channelID, const struct VariablesExport* variables) {
- int i=0;
- printf("onPermChannelEdit\n\tserverID=%llu\n\tchannelID=%llu\n"
- "\tclientChannel=%llu\n\tclientClientID=%u\n\tclientIdent=%s\n\tclientNickname=%s\n",
- (unsigned long long)serverID, (unsigned long long)channelID, (unsigned long long)client->channel, client->ID, client->ident, client->nickname);
-
- for(; i