diff --git a/github b/github index 8710e4f..d12f51d 160000 --- a/github +++ b/github @@ -1 +1 @@ -Subproject commit 8710e4f32d9d486f7a0f0945879cb745af82fc05 +Subproject commit d12f51da4fc49f99d57c6525b47e949e692e6696 diff --git a/modules/renderer/imports/.copy_imports_shared.d.ts b/modules/renderer/imports/.copy_imports_shared.d.ts index 00b95ed..71fe6e9 100644 --- a/modules/renderer/imports/.copy_imports_shared.d.ts +++ b/modules/renderer/imports/.copy_imports_shared.d.ts @@ -1,5 +1,5 @@ -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\audio\audio.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/audio/audio.ts */ declare namespace audio { export namespace player { export interface Device { @@ -10,7 +10,7 @@ declare namespace audio { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\bookmarks.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/bookmarks.ts */ declare namespace bookmarks { export const boorkmak_connect; export interface ServerProperties { @@ -56,7 +56,7 @@ declare namespace bookmarks { export function add_current_server(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\BrowserIPC.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/BrowserIPC.ts */ declare interface Window { BroadcastChannel: BroadcastChannel; } @@ -70,8 +70,8 @@ declare namespace bipc { } export interface ChannelMessage { channel_id: string; - key: string; - message: any; + type: string; + data: any; } export interface ProcessQueryResponse { request_timestamp: number; @@ -113,8 +113,8 @@ declare namespace bipc { export interface Channel { readonly channel_id: string; target_id?: string; - message_handler: (remote_id: string, message: ChannelMessage) => any; - send_message(key: string, message: any); + message_handler: (remote_id: string, broadcast: boolean, message: ChannelMessage) => any; + send_message(type: string, message: any, target?: string); } export class BroadcastChannelIPC extends BasicIPCHandler { private static readonly CHANNEL_NAME; @@ -125,61 +125,122 @@ declare namespace bipc { private on_error(event: MessageEvent); send_message(type: string, data: any, target?: string); } - export interface MethodProxyInvokeData { - method_name: string; - arguments: any[]; - promise_id: string; - } - export interface MethodProxyResultData { - promise_id: string; - result: any; - success: boolean; - } - export interface MethodProxyCallback { - promise: Promise; - promise_id: string; - resolve: (object: any) => any; - reject: (object: any) => any; - } - export type MethodProxyConnectParameters = { - channel_id: string; - client_id: string; - }; - export abstract class MethodProxy { - readonly ipc_handler: BasicIPCHandler; - private _ipc_channel: Channel; - private _ipc_parameters: MethodProxyConnectParameters; - private readonly _local: boolean; - private readonly _slave: boolean; - private _connected: boolean; - private _proxied_methods: { - [key: string]: () => Promise; + export namespace connect { + export type ConnectRequestData = { + address: string; + profile?: string; + username?: string; + password?: { + value: string; + hashed: boolean; + }; }; - private _proxied_callbacks: { - [key: string]: MethodProxyCallback; + export interface ConnectOffer { + request_id: string; + data: ConnectRequestData; + } + export interface ConnectOfferAnswer { + request_id: string; + accepted: boolean; + } + export interface ConnectExecute { + request_id: string; + } + export interface ConnectExecuted { + request_id: string; + succeeded: boolean; + message?: string; + } + /* The connect process: + * 1. Broadcast an offer + * 2. Wait 50ms for all offer responses or until the first one respond with "ok" + * 3. Select (if possible) on accepted offer and execute the connect + */ + export class ConnectHandler { + private static readonly CHANNEL_NAME; + readonly ipc_handler: BasicIPCHandler; + private ipc_channel: Channel; + public callback_available: (data: ConnectRequestData) => boolean; + public callback_execute: (data: ConnectRequestData) => boolean | string; + private _pending_connect_offers: { + id: string; + data: ConnectRequestData; + timeout: number; + remote_handler: string; + }[]; + private _pending_connects_requests: { + id: string; + data: ConnectRequestData; + timeout: number; + callback_success: () => any; + callback_failed: (message: string) => any; + callback_avail: () => Promise; + remote_handler?: string; + }[]; + constructor(ipc_handler: BasicIPCHandler); + public setup(); + private on_message(sender: string, broadcast: boolean, message: ChannelMessage); + post_connect_request(data: ConnectRequestData, callback_avail: () => Promise): Promise; + } + } + export namespace mproxy { + export interface MethodProxyInvokeData { + method_name: string; + arguments: any[]; + promise_id: string; + } + export interface MethodProxyResultData { + promise_id: string; + result: any; + success: boolean; + } + export interface MethodProxyCallback { + promise: Promise; + promise_id: string; + resolve: (object: any) => any; + reject: (object: any) => any; + } + export type MethodProxyConnectParameters = { + channel_id: string; + client_id: string; }; - protected constructor(ipc_handler: BasicIPCHandler, connect_params?: MethodProxyConnectParameters); - protected setup(); - protected finalize(); - protected register_method(method: (...args: any[]) => Promise | string); - private _handle_message(remote_id: string, message: ChannelMessage); - private _handle_finalize(); - private _handle_remote_callback(remote_id: string); - private _send_result(promise_id: string, success: boolean, message: any); - private _handle_invoke(data: MethodProxyInvokeData); - private _handle_result(data: MethodProxyResultData); - generate_connect_parameters(): MethodProxyConnectParameters; - is_slave(); - is_master(); - protected abstract on_connected(); - protected abstract on_disconnected(); + export abstract class MethodProxy { + readonly ipc_handler: BasicIPCHandler; + private _ipc_channel: Channel; + private _ipc_parameters: MethodProxyConnectParameters; + private readonly _local: boolean; + private readonly _slave: boolean; + private _connected: boolean; + private _proxied_methods: { + [key: string]: () => Promise; + }; + private _proxied_callbacks: { + [key: string]: MethodProxyCallback; + }; + protected constructor(ipc_handler: BasicIPCHandler, connect_params?: MethodProxyConnectParameters); + protected setup(); + protected finalize(); + protected register_method(method: (...args: any[]) => Promise | string); + private _handle_message(remote_id: string, boradcast: boolean, message: ChannelMessage); + private _handle_finalize(); + private _handle_remote_callback(remote_id: string); + private _send_result(promise_id: string, success: boolean, message: any); + private _handle_invoke(data: MethodProxyInvokeData); + private _handle_result(data: MethodProxyResultData); + generate_connect_parameters(): MethodProxyConnectParameters; + is_slave(); + is_master(); + protected abstract on_connected(); + protected abstract on_disconnected(); + } } export function setup(); export function get_handler(); + export function get_connect_handler(); export function supported(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\connection\CommandHandler.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/connection/CommandHandler.ts */ declare namespace connection { export class ServerConnectionCommandBoss extends AbstractCommandHandlerBoss { constructor(connection: AbstractServerConnection); @@ -230,7 +291,7 @@ declare namespace connection { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\connection\CommandHelper.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/connection/CommandHelper.ts */ declare namespace connection { export class CommandHelper extends AbstractCommandHandler { private _who_am_i: any; @@ -260,7 +321,7 @@ declare namespace connection { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\connection\ConnectionBase.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/connection/ConnectionBase.ts */ declare namespace connection { export interface CommandOptions { flagset?: string[]; @@ -300,6 +361,10 @@ declare namespace connection { STOPPING, STOPPED } + export type LatencySettings = { + min_buffer: number; /* milliseconds */ + max_buffer: number; /* milliseconds */ + }; export interface VoiceClient { client_id: number; callback_playback: () => any; @@ -309,6 +374,11 @@ declare namespace connection { get_volume(): number; set_volume(volume: number): void; abort_replay(); + support_latency_settings(): boolean; + reset_latency_settings(); + latency_settings(settings?: LatencySettings): LatencySettings; + support_flush(): boolean; + flush(); } export abstract class AbstractVoiceConnection { readonly connection: AbstractServerConnection; @@ -363,7 +433,7 @@ declare namespace connection { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\connection\HandshakeHandler.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/connection/HandshakeHandler.ts */ declare namespace connection { export interface HandshakeIdentityHandler { connection: AbstractServerConnection; @@ -387,7 +457,7 @@ declare namespace connection { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\connection\ServerConnectionDeclaration.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/connection/ServerConnectionDeclaration.ts */ declare enum ErrorID { NOT_IMPLEMENTED = 0x2, COMMAND_NOT_FOUND = 0x100, @@ -470,7 +540,7 @@ declare interface PlaylistSong { song_metadata: string; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ConnectionHandler.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ConnectionHandler.ts */ declare enum DisconnectReason { HANDLER_DESTROYED, REQUESTED, @@ -588,7 +658,7 @@ declare class ConnectionHandler { destroy(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\crypto\asn1.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/crypto/asn1.ts */ declare namespace asn1 { export class Int10 { constructor(value?: any); @@ -680,7 +750,7 @@ declare namespace asn1 { export function decode(stream: string | ArrayBuffer); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\crypto\crc32.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/crypto/crc32.ts */ declare class Crc32 { private static readonly lookup; private crc: number; @@ -689,12 +759,12 @@ declare class Crc32 { digest(radix: number); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\crypto\hex.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/crypto/hex.ts */ declare namespace hex { export function encode(buffer); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\crypto\sha.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/crypto/sha.ts */ declare function define($); declare function unescape(string: string): string; declare class _sha1 { @@ -705,7 +775,7 @@ declare namespace sha { export function sha1(message: string | ArrayBuffer): PromiseLike; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\dns.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/dns.ts */ declare namespace dns { export interface AddressTarget { target_ip: string; @@ -726,12 +796,12 @@ declare namespace dns { export function resolve_address(address: ServerAddress, options?: ResolveOptions): Promise; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\events.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/events.ts */ declare namespace event { namespace global { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\FileManager.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/FileManager.ts */ declare class FileEntry { name: string; datetime: number; @@ -918,12 +988,12 @@ declare class AvatarManager { }, client_unique_id: string, callback_loaded?: (successfully: boolean, error?: any) => any): JQuery; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\i18n\country.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/i18n/country.ts */ declare namespace i18n { export function country_name(alpha_code: string, fallback?: string); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\i18n\localize.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/i18n/localize.ts */ declare function guid(); declare namespace i18n { export interface TranslationKey { @@ -994,7 +1064,7 @@ declare namespace i18n { declare const tr: typeof i18n.tr; declare const tra: typeof i18n.tra; -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\log.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/log.ts */ declare enum LogCategory { CHANNEL, CHANNEL_PROPERTIES, @@ -1062,7 +1132,7 @@ declare namespace log { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\main.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/main.ts */ declare const js_render; declare const native_client; declare function getUserMediaFunctionPromise(): (constraints: MediaStreamConstraints) => Promise; @@ -1077,12 +1147,13 @@ declare function initialize_app(): Promise; declare function str2ab8(str); declare function arrayBufferBase64(base64: string); declare function base64_encode_ab(source: ArrayBufferLike); -declare function execute_default_connect(); +declare function handle_connect_request(properties: bipc.connect.ConnectRequestData, connection: ConnectionHandler); declare function main(); declare const task_teaweb_starter: loader.Task; +declare const task_connect_handler: loader.Task; declare const task_certificate_callback: loader.Task; -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\permission\GroupManager.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/permission/GroupManager.ts */ declare enum GroupType { QUERY, TEMPLATE, @@ -1132,7 +1203,7 @@ declare class GroupManager extends connection.AbstractCommandHandler { private handle_group_permission_list(json: any[]); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\permission\PermissionManager.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/permission/PermissionManager.ts */ declare enum PermissionType { B_SERVERINSTANCE_HELP_VIEW = "b_serverinstance_help_view", B_SERVERINSTANCE_VERSION_VIEW = "b_serverinstance_version_view", @@ -1566,7 +1637,7 @@ declare class PermissionManager extends connection.AbstractCommandHandler { export_permission_types(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\PPTListener.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/PPTListener.ts */ declare enum KeyCode { KEY_CANCEL = 3, KEY_HELP = 6, @@ -1717,7 +1788,7 @@ declare namespace ppt { export function key_description(key: KeyDescriptor); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\profiles\ConnectionProfile.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/profiles/ConnectionProfile.ts */ declare namespace profiles { export class ConnectionProfile { id: string; @@ -1750,7 +1821,7 @@ declare namespace profiles { export function delete_profile(profile: ConnectionProfile); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\profiles\identities\NameIdentity.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/profiles/identities/NameIdentity.ts */ declare namespace profiles.identities { export class NameHandshakeHandler extends AbstractHandshakeIdentityHandler { readonly identity: NameIdentity; @@ -1775,7 +1846,7 @@ declare namespace profiles.identities { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\profiles\identities\TeaForumIdentity.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/profiles/identities/TeaForumIdentity.ts */ declare namespace profiles.identities { export class TeaForumHandshakeHandler extends AbstractHandshakeIdentityHandler { readonly identity: TeaForumIdentity; @@ -1804,7 +1875,7 @@ declare namespace profiles.identities { export function static_forum_identity(): TeaForumIdentity | undefined; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\profiles\identities\TeamSpeakIdentity.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/profiles/identities/TeamSpeakIdentity.ts */ declare namespace profiles.identities { export namespace CryptoHelper { export function base64_url_encode(str); @@ -1872,7 +1943,7 @@ declare namespace profiles.identities { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\profiles\identities\teaspeak-forum.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/profiles/identities/teaspeak-forum.ts */ declare interface Window { grecaptcha: GReCaptcha; } @@ -1932,7 +2003,7 @@ declare namespace forum { export function logout(): Promise; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\profiles\Identity.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/profiles/Identity.ts */ declare namespace profiles.identities { export enum IdentitifyType { TEAFORO, @@ -1966,7 +2037,7 @@ declare namespace profiles.identities { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\proto.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/proto.ts */ declare interface Array { remove(elem?: T): boolean; last?(): T; @@ -2050,7 +2121,7 @@ declare interface Navigator { webkitGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\settings.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/settings.ts */ declare interface SettingsKey { key: string; fallback_keys?: string | string[]; @@ -2147,7 +2218,7 @@ declare class ServerSettings extends SettingsBase { } declare let settings: Settings; -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\sound\Sounds.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/sound/Sounds.ts */ declare enum Sound { SOUND_TEST = "sound.test", SOUND_EGG = "sound.egg", @@ -2236,7 +2307,7 @@ declare namespace sound { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\stats.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/stats.ts */ declare namespace stats { export enum CloseCodes { UNSET = 3000, @@ -2284,7 +2355,7 @@ declare namespace stats { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\channel.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/channel.ts */ declare enum ChannelType { PERMANENT, SEMI_PERMANENT, @@ -2398,7 +2469,7 @@ declare class ChannelEntry { log_data(): log.server.base.Channel; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\client_move.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/client_move.ts */ declare class ClientMover { static readonly listener_root; static readonly move_element; @@ -2424,7 +2495,7 @@ declare class ClientMover { deactivate(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\client.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/client.ts */ declare enum ClientType { CLIENT_VOICE, CLIENT_QUERY, @@ -2626,12 +2697,12 @@ declare class MusicClientEntry extends ClientEntry { requestPlayerInfo(max_age?: number): Promise; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\elements\context_divider.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/elements/context_divider.ts */ declare interface JQuery { dividerfy(): this; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\elements\context_menu.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/elements/context_menu.ts */ declare namespace contextmenu { export interface MenuEntry { callback?: () => void; @@ -2682,7 +2753,7 @@ declare class HTMLContextMenuProvider implements contextmenu.ContextMenuProvider html_format_enabled(): boolean; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\elements\modal.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/elements/modal.ts */ declare enum ElementType { HEADER, BODY, @@ -2744,7 +2815,7 @@ declare interface JQuery { modalize(entry_callback?: (header: JQuery, body: JQuery, footer: JQuery) => ModalElements | void, properties?: ModalProperties | any): Modal; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\elements\net_graph.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/elements/net_graph.ts */ declare namespace net.graph { export type Entry = { timestamp: number; @@ -2829,7 +2900,7 @@ declare namespace net.graph { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\elements\slider.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/elements/slider.ts */ declare interface SliderOptions { min_value?: number; max_value?: number; @@ -2843,7 +2914,7 @@ declare interface Slider { } declare function sliderfy(slider: JQuery, options?: SliderOptions): Slider; -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\elements\tab.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/elements/tab.ts */ declare interface JQuery { asTabWidget(copy?: boolean): JQuery; tabify(copy?: boolean): this; @@ -2851,7 +2922,7 @@ declare interface JQuery { } declare var TabFunctions; -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\elements\tooltip.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/elements/tooltip.ts */ declare function tooltip(entry: JQuery); declare namespace tooltip { export type Handle = { @@ -2863,7 +2934,7 @@ declare namespace tooltip { export function initialize(entry: JQuery): Handle; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\frames\chat_frame.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/frames/chat_frame.ts */ declare namespace chat { export enum InfoFrameMode { NONE = "none", @@ -3247,7 +3318,7 @@ declare namespace chat { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\frames\chat.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/frames/chat.ts */ declare enum ChatType { GENERAL, SERVER, @@ -3288,7 +3359,7 @@ declare namespace MessageHelper { export function set_icon_size(size: string); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\frames\connection_handlers.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/frames/connection_handlers.ts */ declare let server_connections: ServerConnectionManager; declare class ServerConnectionManager { private connection_handlers: ConnectionHandler[]; @@ -3315,7 +3386,7 @@ declare class ServerConnectionManager { private _update_scroll_buttons(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\frames\ControlBar.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/frames/ControlBar.ts */ declare let control_bar: ControlBar; declare type MicrophoneState = "disabled" | "muted" | "enabled"; declare type HeadphoneState = "muted" | "enabled"; @@ -3378,7 +3449,7 @@ declare class ControlBar { private on_open_playlist_manage(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\frames\hostbanner.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/frames/hostbanner.ts */ declare class Hostbanner { readonly html_tag: JQuery; readonly client: ConnectionHandler; @@ -3391,7 +3462,7 @@ declare class Hostbanner { private generate_tag?(): Promise; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\frames\MenuBar.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/frames/MenuBar.ts */ declare namespace top_menu { export interface HRItem { } @@ -3470,7 +3541,7 @@ declare namespace top_menu { export function initialize(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\frames\server_log.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/frames/server_log.ts */ declare namespace log { export namespace server { export enum Type { @@ -3552,9 +3623,6 @@ declare namespace log { export type HostMessageDisconnect = { message: string; }; - //tr("You was moved by {3} from channel {1} to {2}") : tr("{0} was moved from channel {1} to {2} by {3}") - //tr("You switched from channel {1} to {2}") : tr("{0} switched from channel {1} to {2}") - //tr("You got kicked out of the channel {1} to channel {2} by {3}{4}") : tr("{0} got kicked from channel {1} to {2} by {3}{4}") export type ClientMove = { channel_from?: base.Channel; channel_from_own: boolean; @@ -3698,7 +3766,7 @@ declare namespace log { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\htmltags.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/htmltags.ts */ declare namespace htmltags { export interface ClientProperties { client_id: number; @@ -3723,24 +3791,24 @@ declare namespace htmltags { namespace bbcodes { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalAbout.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalAbout.ts */ declare namespace Modals { export function spawnAbout(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalAvatar.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalAvatar.ts */ declare namespace Modals { //TODO: Test if we could render this image and not only the browser by knowing the type. export function spawnAvatarUpload(callback_data: (data: ArrayBuffer | undefined | null) => any); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalAvatarList.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalAvatarList.ts */ declare namespace Modals { export const human_file_size; export function spawnAvatarList(client: ConnectionHandler); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalBanClient.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalBanClient.ts */ declare namespace Modals { export type BanEntry = { name?: string; @@ -3755,36 +3823,41 @@ declare namespace Modals { }) => void); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalBanList.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalBanList.ts */ declare namespace Modals { export function openBanList(client: ConnectionHandler); //Note: This object must be sorted (from shortest to longest)! export const duration_data; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalBookmarks.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalBookmarks.ts */ declare namespace Modals { export function spawnBookmarkModal(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalBotMenue.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalBotMenue.ts */ -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalChangeVolume.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalChangeLatency.ts */ +declare namespace Modals { + export function spawnChangeLatency(client: ClientEntry, current: connection.voice.LatencySettings, reset: () => connection.voice.LatencySettings, apply: (settings: connection.voice.LatencySettings) => any, callback_flush?: () => any); +} + +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalChangeVolume.ts */ declare namespace Modals { export function spawnChangeVolume(client: ClientEntry, local: boolean, current: number, max: number | undefined, callback: (number) => void); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalChannelInfo.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalChannelInfo.ts */ declare namespace Modals { export function openChannelInfo(channel: ChannelEntry); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalClientInfo.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalClientInfo.ts */ declare namespace Modals { export function openClientInfo(client: ClientEntry); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalConnect.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalConnect.ts */ declare namespace connection_log { //TODO: Save password data export type ConnectionData = { @@ -3836,51 +3909,51 @@ declare namespace Modals { export const Regex; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalCreateChannel.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalCreateChannel.ts */ declare namespace Modals { export function createChannelModal(connection: ConnectionHandler, channel: ChannelEntry | undefined, parent: ChannelEntry | undefined, permissions: PermissionManager, callback: (properties?: ChannelProperties, permissions?: PermissionValue[]) => any); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalGroupAssignment.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalGroupAssignment.ts */ declare namespace Modals { export function createServerGroupAssignmentModal(client: ClientEntry, callback: (groups: number[], flag: boolean) => Promise); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalIconSelect.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalIconSelect.ts */ declare namespace Modals { export function spawnIconSelect(client: ConnectionHandler, callback_icon?: (id: number) => any, selected_icon?: number); export function spawnIconUpload(client: ConnectionHandler); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalIdentity.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalIdentity.ts */ declare namespace Modals { export function spawnTeamSpeakIdentityImprove(identity: profiles.identities.TeaSpeakIdentity, name: string): Modal; export function spawnTeamSpeakIdentityImport(callback: (identity: profiles.identities.TeaSpeakIdentity) => any): Modal; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalInvite.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalInvite.ts */ declare namespace Modals { export function spawnInviteEditor(connection: ConnectionHandler); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalKeySelect.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalKeySelect.ts */ declare namespace Modals { export function spawnKeySelect(callback: (key?: ppt.KeyEvent) => void); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalPlaylistEdit.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalPlaylistEdit.ts */ declare namespace Modals { export function spawnPlaylistSongInfo(song: PlaylistSong); export function spawnSongAdd(playlist: Playlist, callback_add: (url: string, loader: string) => any); export function spawnPlaylistEdit(client: ConnectionHandler, playlist: Playlist); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalPlaylistList.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalPlaylistList.ts */ declare namespace Modals { export function spawnPlaylistManage(client: ConnectionHandler); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalPoke.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalPoke.ts */ declare namespace Modals { export class PokeModal { private _handle: Modal; @@ -3898,7 +3971,7 @@ declare namespace Modals { export function spawnPoke(source: ConnectionHandler, invoker: PokeInvoker, message: string); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalQuery.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalQuery.ts */ declare namespace Modals { export function spawnQueryCreate(connection: ConnectionHandler, callback_created?: (user, pass) => any); export function spawnQueryCreated(credentials: { @@ -3907,7 +3980,7 @@ declare namespace Modals { }, just_created: boolean); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalQueryManage.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalQueryManage.ts */ declare namespace Modals { /* export function spawnQueryManage(client: ConnectionHandler) { @@ -4070,36 +4143,37 @@ declare namespace Modals { export function spawnQueryManage(client: ConnectionHandler); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalServerEdit.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalServerEdit.ts */ declare namespace Modals { export function createServerModal(server: ServerEntry, callback: (properties?: ServerProperties) => Promise); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalServerInfo.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalServerInfo.ts */ declare namespace Modals { export function openServerInfo(server: ServerEntry); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalServerInfoBandwidth.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalServerInfoBandwidth.ts */ declare namespace Modals { export type InfoUpdateCallback = (info: ServerConnectionInfo | boolean) => any; export function openServerInfoBandwidth(server: ServerEntry, update_callbacks?: InfoUpdateCallback[]): Modal; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalSettings.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalSettings.ts */ declare namespace Modals { export function spawnSettingsModal(default_page?: string): Modal; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\ModalYesNo.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/ModalYesNo.ts */ declare namespace Modals { export function spawnYesNo(header: BodyCreator, body: BodyCreator, callback: (_: boolean) => any, properties?: { text_yes?: string; text_no?: string; + closeable?: boolean; }); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\permission\CanvasPermissionEditor.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/permission/CanvasPermissionEditor.ts */ declare namespace pe { namespace ui { export namespace scheme { @@ -4351,7 +4425,7 @@ declare namespace pe { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\permission\HTMLPermissionEditor.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/permission/HTMLPermissionEditor.ts */ declare namespace pe { export class HTMLPermission { readonly handle: HTMLPermissionEditor; @@ -4448,7 +4522,7 @@ declare namespace pe { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\modal\permission\ModalPermissionEdit.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/modal/permission/ModalPermissionEdit.ts */ declare interface JQuery { dropdown: any; } @@ -4515,7 +4589,7 @@ declare namespace Modals { export function spawnPermissionEdit(connection: ConnectionHandler, selected_tab?: T, options?: OptionMap[T]): Modal; } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\server.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/server.ts */ declare class ServerProperties { virtualserver_host: string; virtualserver_port: number; @@ -4634,7 +4708,7 @@ declare class ServerEntry { set flag_text_unread(flag: boolean); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\ui\view.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/ui/view.ts */ declare class ChannelTree { client: ConnectionHandler; server: ServerEntry; @@ -4693,7 +4767,7 @@ declare class ChannelTree { subscribe_all_channels(); } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\utils\helpers.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/utils/helpers.ts */ declare namespace helpers { export function hashPassword(password: string): Promise; } @@ -4723,7 +4797,7 @@ declare class LaterPromise extends Promise { } declare const copy_to_clipboard; -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\voice\RecorderBase.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/voice/RecorderBase.ts */ declare namespace audio { export namespace recorder { export interface InputDevice { @@ -4821,7 +4895,7 @@ declare namespace audio { } } -/* File: C:\Users\WolverinDEV\TeaWeb\shared\js\voice\RecorderProfile.ts */ +/* File: /home/wolverindev/TeaSpeak/Web-Client/shared/js/voice/RecorderProfile.ts */ declare type VadType = "threshold" | "push_to_talk" | "active"; declare interface RecorderProfileConfig { version: number;