25using System.Collections.Generic;
27using System.Windows.Forms;
29using System.Drawing.Imaging;
30using System.Threading;
31using System.Diagnostics;
32using System.Reflection;
33using System.Runtime.InteropServices;
47 STREAMTYPE_NONE = 0x00000000,
50 STREAMTYPE_VOICE = 0x00000001,
53 STREAMTYPE_VIDEOCAPTURE = 0x00000002,
56 STREAMTYPE_MEDIAFILE_AUDIO = 0x00000004,
59 STREAMTYPE_MEDIAFILE_VIDEO = 0x00000008,
62 STREAMTYPE_DESKTOP = 0x00000010,
66 STREAMTYPE_DESKTOPINPUT = 0x00000020,
68 STREAMTYPE_MEDIAFILE = STREAMTYPE_MEDIAFILE_AUDIO |
69 STREAMTYPE_MEDIAFILE_VIDEO,
78 STREAMTYPE_CHANNELMSG = 0x00000040,
84 STREAMTYPE_LOCALMEDIAPLAYBACK_AUDIO = 0x00000080,
88 STREAMTYPE_CLASSROOM_ALL = STREAMTYPE_VOICE |
89 STREAMTYPE_VIDEOCAPTURE |
91 STREAMTYPE_MEDIAFILE |
92 STREAMTYPE_CHANNELMSG,
109 SOUNDSYSTEM_NONE = 0,
111 SOUNDSYSTEM_WINMM = 1,
113 SOUNDSYSTEM_DSOUND = 2,
121 SOUNDSYSTEM_ALSA = 3,
123 SOUNDSYSTEM_COREAUDIO = 4,
134 SOUNDSYSTEM_WASAPI = 5,
136 SOUNDSYSTEM_OPENSLES_ANDROID = 7,
152 SOUNDSYSTEM_AUDIOUNIT = 8,
154 SOUNDSYSTEM_AUDIOUNIT_IOS = SOUNDSYSTEM_AUDIOUNIT,
164 SOUNDDEVICEFEATURE_NONE = 0x0000,
170 SOUNDDEVICEFEATURE_AEC = 0x0001,
176 SOUNDDEVICEFEATURE_AGC = 0x0002,
181 SOUNDDEVICEFEATURE_DENOISE = 0x0004,
184 SOUNDDEVICEFEATURE_3DPOSITION = 0x0008,
187 SOUNDDEVICEFEATURE_DUPLEXMODE = 0x0010,
190 SOUNDDEVICEFEATURE_DEFAULTCOMDEVICE = 0x0020,
205 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
470 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
553 AFF_CHANNELCODEC_FORMAT = 1,
557 AFF_MP3_16KBIT_FORMAT = 3,
559 AFF_MP3_32KBIT_FORMAT = 4,
561 AFF_MP3_64KBIT_FORMAT = 5,
563 AFF_MP3_128KBIT_FORMAT = 6,
565 AFF_MP3_256KBIT_FORMAT = 7,
575 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
617 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
645 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
681 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
728 BMP_RGB8_PALETTE = 1,
750 DESKTOPPROTOCOL_ZLIB_1 = 1
759 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
793 DESKTOPKEYSTATE_NONE = 0x00000000,
795 DESKTOPKEYSTATE_DOWN = 0x00000001,
797 DESKTOPKEYSTATE_UP = 0x00000002,
807 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
903 [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode)]
939 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1036 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1135 [StructLayout(LayoutKind.Explicit)]
1244 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1266 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1270 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1283 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1297 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1309 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1327 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1335 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1345 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1365 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1404 preamplifier.bEnable =
false;
1405 preamplifier.fFixedGainFactor = 0.0f;
1407 echocanceller.bEnable =
false;
1409 noisesuppression.bEnable =
false;
1410 noisesuppression.nLevel = 0;
1412 voicedetection.bEnable =
false;
1414 gaincontroller2.bEnable =
false;
1415 gaincontroller2.fixeddigital.fGainDB = 0.0f;
1417 gaincontroller2.adaptivedigital.bEnable =
false;
1418 gaincontroller2.adaptivedigital.fInitialSaturationMarginDB = 0.0f;
1419 gaincontroller2.adaptivedigital.fExtraSaturationMarginDB = 0.0f;
1420 gaincontroller2.adaptivedigital.fMaxGainChangeDBPerSecond = 0.0f;
1421 gaincontroller2.adaptivedigital.fMaxOutputNoiseLevelDBFS = 0.0f;
1423 levelestimation.bEnable =
false;
1455 NO_AUDIOPREPROCESSOR = 0,
1457 SPEEXDSP_AUDIOPREPROCESSOR = 1,
1459 TEAMTALK_AUDIOPREPROCESSOR = 2,
1462 WEBRTC_AUDIOPREPROCESSOR = 3,
1466 [StructLayout(LayoutKind.Explicit)]
1502 [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode)]
1552 SPEEX_VBR_CODEC = 2,
1556 WEBM_VP8_CODEC = 128
1562 [StructLayout(LayoutKind.Explicit)]
1596 [StructLayout(LayoutKind.Explicit)]
1628 [StructLayout(LayoutKind.Explicit)]
1649 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1675 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1691 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1725 USERRIGHT_NONE = 0x00000000,
1728 USERRIGHT_MULTI_LOGIN = 0x00000001,
1730 USERRIGHT_VIEW_ALL_USERS = 0x00000002,
1734 USERRIGHT_CREATE_TEMPORARY_CHANNEL = 0x00000004,
1738 USERRIGHT_MODIFY_CHANNELS = 0x00000008,
1741 USERRIGHT_TEXTMESSAGE_BROADCAST = 0x00000010,
1743 USERRIGHT_KICK_USERS = 0x00000020,
1746 USERRIGHT_BAN_USERS = 0x00000040,
1749 USERRIGHT_MOVE_USERS = 0x00000080,
1752 USERRIGHT_OPERATOR_ENABLE = 0x00000100,
1754 USERRIGHT_UPLOAD_FILES = 0x00000200,
1757 USERRIGHT_DOWNLOAD_FILES = 0x00000400,
1760 USERRIGHT_UPDATE_SERVERPROPERTIES = 0x00000800,
1763 USERRIGHT_TRANSMIT_VOICE = 0x00001000,
1766 USERRIGHT_TRANSMIT_VIDEOCAPTURE = 0x00002000,
1769 USERRIGHT_TRANSMIT_DESKTOP = 0x00004000,
1772 USERRIGHT_TRANSMIT_DESKTOPINPUT = 0x00008000,
1775 USERRIGHT_TRANSMIT_MEDIAFILE_AUDIO = 0x00010000,
1778 USERRIGHT_TRANSMIT_MEDIAFILE_VIDEO = 0x00020000,
1781 USERRIGHT_TRANSMIT_MEDIAFILE = USERRIGHT_TRANSMIT_MEDIAFILE_VIDEO | USERRIGHT_TRANSMIT_MEDIAFILE_AUDIO,
1788 USERRIGHT_LOCKED_NICKNAME = 0x00040000,
1791 USERRIGHT_LOCKED_STATUS = 0x00080000,
1794 USERRIGHT_RECORD_VOICE = 0x00100000,
1796 USERRIGHT_VIEW_HIDDEN_CHANNELS = 0x00200000,
1798 USERRIGHT_ALL = 0xFFFFFFFF & ~USERRIGHT_LOCKED_NICKNAME & ~USERRIGHT_LOCKED_STATUS
1811 SERVERLOGEVENT_NONE = 0x00000000,
1813 SERVERLOGEVENT_USER_CONNECTED = 0x00000001,
1815 SERVERLOGEVENT_USER_DISCONNECTED = 0x00000002,
1817 SERVERLOGEVENT_USER_LOGGEDIN = 0x00000004,
1819 SERVERLOGEVENT_USER_LOGGEDOUT = 0x00000008,
1821 SERVERLOGEVENT_USER_LOGINFAILED = 0x00000010,
1823 SERVERLOGEVENT_USER_TIMEDOUT = 0x00000020,
1825 SERVERLOGEVENT_USER_KICKED = 0x00000040,
1827 SERVERLOGEVENT_USER_BANNED = 0x00000080,
1829 SERVERLOGEVENT_USER_UNBANNED = 0x00000100,
1831 SERVERLOGEVENT_USER_UPDATED = 0x00000200,
1833 SERVERLOGEVENT_USER_JOINEDCHANNEL = 0x00000400,
1835 SERVERLOGEVENT_USER_LEFTCHANNEL = 0x00000800,
1837 SERVERLOGEVENT_USER_MOVED = 0x00001000,
1839 SERVERLOGEVENT_USER_TEXTMESSAGE_PRIVATE = 0x00002000,
1841 SERVERLOGEVENT_USER_TEXTMESSAGE_CUSTOM = 0x00004000,
1843 SERVERLOGEVENT_USER_TEXTMESSAGE_CHANNEL = 0x00008000,
1845 SERVERLOGEVENT_USER_TEXTMESSAGE_BROADCAST = 0x00010000,
1847 SERVERLOGEVENT_CHANNEL_CREATED = 0x00020000,
1849 SERVERLOGEVENT_CHANNEL_UPDATED = 0x00040000,
1851 SERVERLOGEVENT_CHANNEL_REMOVED = 0x00080000,
1853 SERVERLOGEVENT_FILE_UPLOADED = 0x00100000,
1855 SERVERLOGEVENT_FILE_DOWNLOADED = 0x00200000,
1857 SERVERLOGEVENT_FILE_DELETED = 0x00400000,
1859 SERVERLOGEVENT_SERVER_UPDATED = 0x00800000,
1861 SERVERLOGEVENT_SERVER_SAVECONFIG = 0x01000000,
1875 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1969 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2025 BANTYPE_NONE = 0x00,
2029 BANTYPE_CHANNEL = 0x01,
2031 BANTYPE_IPADDR = 0x02,
2033 BANTYPE_USERNAME = 0x04
2040 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2070 USERTYPE_NONE = 0x0,
2072 USERTYPE_DEFAULT = 0x01,
2074 USERTYPE_ADMIN = 0x02
2085 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2110 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2184 SUBSCRIBE_NONE = 0x00000000,
2187 SUBSCRIBE_USER_MSG = 0x00000001,
2190 SUBSCRIBE_CHANNEL_MSG = 0x00000002,
2193 SUBSCRIBE_BROADCAST_MSG = 0x00000004,
2196 SUBSCRIBE_CUSTOM_MSG = 0x00000008,
2198 SUBSCRIBE_VOICE = 0x00000010,
2200 SUBSCRIBE_VIDEOCAPTURE = 0x00000020,
2202 SUBSCRIBE_DESKTOP = 0x00000040,
2206 SUBSCRIBE_DESKTOPINPUT = 0x00000080,
2209 SUBSCRIBE_MEDIAFILE = 0x00000100,
2212 SUBSCRIBE_INTERCEPT_USER_MSG = 0x00010000,
2215 SUBSCRIBE_INTERCEPT_CHANNEL_MSG = 0x00020000,
2219 SUBSCRIBE_INTERCEPT_CUSTOM_MSG = 0x00080000,
2224 SUBSCRIBE_INTERCEPT_VOICE = 0x00100000,
2229 SUBSCRIBE_INTERCEPT_VIDEOCAPTURE = 0x00200000,
2234 SUBSCRIBE_INTERCEPT_DESKTOP = 0x00400000,
2240 SUBSCRIBE_INTERCEPT_MEDIAFILE = 0x01000000,
2250 USERSTATE_NONE = 0x0000000,
2254 USERSTATE_VOICE = 0x00000001,
2256 USERSTATE_MUTE_VOICE = 0x00000002,
2259 USERSTATE_MUTE_MEDIAFILE = 0x00000004,
2264 USERSTATE_DESKTOP = 0x00000008,
2269 USERSTATE_VIDEOCAPTURE = 0x00000010,
2275 USERSTATE_MEDIAFILE_AUDIO = 0x00000020,
2279 USERSTATE_MEDIAFILE_VIDEO = 0x00000040,
2283 USERSTATE_MEDIAFILE = USERSTATE_MEDIAFILE_AUDIO |
2284 USERSTATE_MEDIAFILE_VIDEO
2291 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2388 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
2394 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
2400 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
2406 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
2431 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2483 MSGTYPE_CHANNEL = 2,
2486 MSGTYPE_BROADCAST = 3,
2499 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2534 CHANNEL_DEFAULT = 0x0000,
2537 CHANNEL_PERMANENT = 0x0001,
2539 CHANNEL_SOLO_TRANSMIT = 0x0002,
2550 CHANNEL_CLASSROOM = 0x0004,
2555 CHANNEL_OPERATOR_RECVONLY = 0x0008,
2558 CHANNEL_NO_VOICEACTIVATION = 0x0010,
2560 CHANNEL_NO_RECORDING = 0x0020,
2563 CHANNEL_HIDDEN = 0x0040,
2577 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2747 for (; i < TeamTalkBase.TT_TRANSMITUSERS_MAX - 1; i++)
2762 FILETRANSFER_CLOSED = 0,
2764 FILETRANSFER_ERROR = 1,
2766 FILETRANSFER_ACTIVE = 2,
2768 FILETRANSFER_FINISHED = 3
2774 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2800 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2830 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2888 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2939 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2999 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
3038 CMDERR_SYNTAX_ERROR = 1000,
3043 CMDERR_UNKNOWN_COMMAND = 1001,
3046 CMDERR_MISSING_PARAMETER = 1002,
3049 CMDERR_INCOMPATIBLE_PROTOCOLS = 1003,
3054 CMDERR_UNKNOWN_AUDIOCODEC = 1004,
3057 CMDERR_INVALID_USERNAME = 1005,
3065 CMDERR_INCORRECT_SERVER_PASSWORD = 2000,
3071 CMDERR_INCORRECT_CHANNEL_PASSWORD = 2001,
3077 CMDERR_INVALID_ACCOUNT = 2002,
3083 CMDERR_MAX_SERVER_USERS_EXCEEDED = 2003,
3089 CMDERR_MAX_CHANNEL_USERS_EXCEEDED = 2004,
3094 CMDERR_SERVER_BANNED = 2005,
3126 CMDERR_NOT_AUTHORIZED = 2006,
3133 CMDERR_MAX_DISKUSAGE_EXCEEDED = 2008,
3140 CMDERR_INCORRECT_OP_PASSWORD = 2010,
3147 CMDERR_AUDIOCODEC_BITRATE_LIMIT_EXCEEDED = 2011,
3154 CMDERR_MAX_LOGINS_PER_IPADDRESS_EXCEEDED = 2012,
3158 CMDERR_MAX_CHANNELS_EXCEEDED = 2013,
3164 CMDERR_COMMAND_FLOOD = 2014,
3171 CMDERR_CHANNEL_BANNED = 2015,
3180 CMDERR_NOT_LOGGEDIN = 3000,
3185 CMDERR_ALREADY_LOGGEDIN = 3001,
3189 CMDERR_NOT_IN_CHANNEL = 3002,
3194 CMDERR_ALREADY_IN_CHANNEL = 3003,
3198 CMDERR_CHANNEL_ALREADY_EXISTS = 3004,
3216 CMDERR_CHANNEL_NOT_FOUND = 3005,
3227 CMDERR_USER_NOT_FOUND = 3006,
3232 CMDERR_BAN_NOT_FOUND = 3007,
3237 CMDERR_FILETRANSFER_NOT_FOUND = 3008,
3242 CMDERR_OPENFILE_FAILED = 3009,
3247 CMDERR_ACCOUNT_NOT_FOUND = 3010,
3252 CMDERR_FILE_NOT_FOUND = 3011,
3257 CMDERR_FILE_ALREADY_EXISTS = 3012,
3262 CMDERR_FILESHARING_DISABLED = 3013,
3267 CMDERR_CHANNEL_HAS_USERS = 3015,
3272 CMDERR_LOGINSERVICE_UNAVAILABLE = 3016,
3278 CMDERR_CHANNEL_CANNOT_BE_HIDDEN = 3017,
3287 INTERR_SNDINPUT_FAILURE = 10000,
3292 INTERR_SNDOUTPUT_FAILURE = 10001,
3296 INTERR_AUDIOCODEC_INIT_FAILED = 10002,
3298 INTERR_SPEEXDSP_INIT_FAILED = 10003,
3306 INTERR_AUDIOPREPROCESSOR_INIT_FAILED = 10003,
3314 INTERR_TTMESSAGE_QUEUE_OVERFLOW = 10004,
3321 INTERR_SNDEFFECT_FAILURE = 10005,
3324 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
3345 CLIENTEVENT_NONE = 0,
3357 CLIENTEVENT_CON_SUCCESS = CLIENTEVENT_NONE + 10,
3367 CLIENTEVENT_CON_FAILED = CLIENTEVENT_NONE + 20,
3383 CLIENTEVENT_CON_LOST = CLIENTEVENT_NONE + 30,
3394 CLIENTEVENT_CON_MAX_PAYLOAD_UPDATED = CLIENTEVENT_NONE + 40,
3408 CLIENTEVENT_CMD_PROCESSING = CLIENTEVENT_NONE + 200,
3422 CLIENTEVENT_CMD_ERROR = CLIENTEVENT_NONE + 210,
3434 CLIENTEVENT_CMD_SUCCESS = CLIENTEVENT_NONE + 220,
3452 CLIENTEVENT_CMD_MYSELF_LOGGEDIN = CLIENTEVENT_NONE + 230,
3461 CLIENTEVENT_CMD_MYSELF_LOGGEDOUT = CLIENTEVENT_NONE + 240,
3471 CLIENTEVENT_CMD_MYSELF_KICKED = CLIENTEVENT_NONE + 250,
3482 CLIENTEVENT_CMD_USER_LOGGEDIN = CLIENTEVENT_NONE + 260,
3496 CLIENTEVENT_CMD_USER_LOGGEDOUT = CLIENTEVENT_NONE + 270,
3505 CLIENTEVENT_CMD_USER_UPDATE = CLIENTEVENT_NONE + 280,
3514 CLIENTEVENT_CMD_USER_JOINED = CLIENTEVENT_NONE + 290,
3521 CLIENTEVENT_CMD_USER_LEFT = CLIENTEVENT_NONE + 300,
3531 CLIENTEVENT_CMD_USER_TEXTMSG = CLIENTEVENT_NONE + 310,
3540 CLIENTEVENT_CMD_CHANNEL_NEW = CLIENTEVENT_NONE + 320,
3549 CLIENTEVENT_CMD_CHANNEL_UPDATE = CLIENTEVENT_NONE + 330,
3559 CLIENTEVENT_CMD_CHANNEL_REMOVE = CLIENTEVENT_NONE + 340,
3570 CLIENTEVENT_CMD_SERVER_UPDATE = CLIENTEVENT_NONE + 350,
3579 CLIENTEVENT_CMD_SERVERSTATISTICS = CLIENTEVENT_NONE + 360,
3591 CLIENTEVENT_CMD_FILE_NEW = CLIENTEVENT_NONE + 370,
3598 CLIENTEVENT_CMD_FILE_REMOVE = CLIENTEVENT_NONE + 380,
3607 CLIENTEVENT_CMD_USERACCOUNT = CLIENTEVENT_NONE + 390,
3616 CLIENTEVENT_CMD_BANNEDUSER = CLIENTEVENT_NONE + 400,
3636 CLIENTEVENT_USER_STATECHANGE = CLIENTEVENT_NONE + 500,
3649 CLIENTEVENT_USER_VIDEOCAPTURE = CLIENTEVENT_NONE + 510,
3662 CLIENTEVENT_USER_MEDIAFILE_VIDEO = CLIENTEVENT_NONE + 520,
3677 CLIENTEVENT_USER_DESKTOPWINDOW = CLIENTEVENT_NONE + 530,
3688 CLIENTEVENT_USER_DESKTOPCURSOR = CLIENTEVENT_NONE + 540,
3711 CLIENTEVENT_USER_DESKTOPINPUT = CLIENTEVENT_NONE + 550,
3724 CLIENTEVENT_USER_RECORD_MEDIAFILE = CLIENTEVENT_NONE + 560,
3738 CLIENTEVENT_USER_AUDIOBLOCK = CLIENTEVENT_NONE + 570,
3752 CLIENTEVENT_INTERNAL_ERROR = CLIENTEVENT_NONE + 1000,
3766 CLIENTEVENT_VOICE_ACTIVATION = CLIENTEVENT_NONE + 1010,
3777 CLIENTEVENT_HOTKEY = CLIENTEVENT_NONE + 1020,
3796 CLIENTEVENT_HOTKEY_TEST = CLIENTEVENT_NONE + 1030,
3813 CLIENTEVENT_FILETRANSFER = CLIENTEVENT_NONE + 1040,
3829 CLIENTEVENT_DESKTOPWINDOW_TRANSFER = CLIENTEVENT_NONE + 1050,
3842 CLIENTEVENT_STREAM_MEDIAFILE = CLIENTEVENT_NONE + 1060,
3854 CLIENTEVENT_LOCAL_MEDIAFILE = CLIENTEVENT_NONE + 1070,
3876 CLIENTEVENT_AUDIOINPUT = CLIENTEVENT_NONE + 1080,
3896 CLIENTEVENT_USER_FIRSTVOICESTREAMPACKET = CLIENTEVENT_NONE + 1090,
3909 __CLIENTSTATISTICS = 6,
3912 __MEDIAFILESTATUS = 9,
3913 __SERVERPROPERTIES = 10,
3914 __SERVERSTATISTICS = 11,
3918 __WEBMVP8CODEC = 15,
3922 __USERSTATISTICS = 19,
3923 __VIDEOCAPTUREDEVICE = 20,
3926 __SPEEXVBRCODEC = 23,
3930 __MEDIAFILEINFO = 27,
3931 __CLIENTERRORMSG = 28,
3934 __DESKTOPINPUT = 31,
3937 __AUDIOPREPROCESSORTYPE = 34,
3938 __AUDIOPREPROCESSOR = 35,
3939 __TTAUDIOPREPROCESSOR = 36,
3940 __MEDIAFILEPLAYBACK = 37,
3941 __CLIENTKEEPALIVE = 38,
3943 __AUDIOINPUTPROGRESS = 40,
3944 __JITTERCONFIG = 41,
3945 __WEBRTCAUDIOPREPROCESSOR = 42,
3946 __ENCRYPTIONCONTEXT = 43,
3959 [StructLayout(LayoutKind.Sequential)]
3970 [MarshalAs(UnmanagedType.ByValArray, SizeConst = TTDLL.SIZEOF_TTMESSAGE_DATA)]
3979 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
Channel));
3980 case TTType.__CLIENTERRORMSG:
3981 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
ClientErrorMsg));
3982 case TTType.__DESKTOPINPUT:
3983 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
DesktopInput));
3984 case TTType.__FILETRANSFER:
3985 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
FileTransfer));
3986 case TTType.__MEDIAFILEINFO:
3987 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
MediaFileInfo));
3988 case TTType.__REMOTEFILE:
3989 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
RemoteFile));
3990 case TTType.__SERVERPROPERTIES:
3991 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
ServerProperties));
3992 case TTType.__SERVERSTATISTICS:
3993 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
ServerStatistics));
3994 case TTType.__TEXTMESSAGE:
3995 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
TextMessage));
3997 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
User));
3998 case TTType.__USERACCOUNT:
3999 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
UserAccount));
4000 case TTType.__BANNEDUSER :
4001 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
BannedUser));
4003 return Marshal.ReadInt32(TTDLL.TT_DBG_GETDATAPTR(ref
this)) != 0;
4005 return Marshal.ReadInt32(TTDLL.TT_DBG_GETDATAPTR(ref
this));
4006 case TTType.__STREAMTYPE :
4007 return (
StreamType)Marshal.ReadInt32(TTDLL.TT_DBG_GETDATAPTR(ref
this));
4008 case TTType.__AUDIOINPUTPROGRESS :
4009 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
AudioInputProgress));
4016 [StructLayout(LayoutKind.Explicit, Size = 5224)]
4071 CLIENT_CLOSED = 0x00000000,
4075 CLIENT_SNDINPUT_READY = 0x00000001,
4079 CLIENT_SNDOUTPUT_READY = 0x00000002,
4085 CLIENT_SNDINOUTPUT_DUPLEX = 0x00000004,
4092 CLIENT_SNDINPUT_VOICEACTIVATED = 0x00000008,
4099 CLIENT_SNDINPUT_VOICEACTIVE = 0x00000010,
4102 CLIENT_SNDOUTPUT_MUTE = 0x00000020,
4108 CLIENT_SNDOUTPUT_AUTO3DPOSITION = 0x00000040,
4112 CLIENT_VIDEOCAPTURE_READY = 0x00000080,
4115 CLIENT_TX_VOICE = 0x00000100,
4118 CLIENT_TX_VIDEOCAPTURE = 0x00000200,
4124 CLIENT_TX_DESKTOP = 0x00000400,
4129 CLIENT_DESKTOP_ACTIVE = 0x00000800,
4133 CLIENT_MUX_AUDIOFILE = 0x00001000,
4136 CLIENT_CONNECTING = 0x00002000,
4141 CLIENT_CONNECTED = 0x00004000,
4144 CLIENT_CONNECTION = CLIENT_CONNECTING | CLIENT_CONNECTED,
4148 CLIENT_AUTHORIZED = 0x00008000,
4153 CLIENT_STREAM_AUDIO = 0x00010000,
4158 CLIENT_STREAM_VIDEO = 0x00020000
4294 public static string GetVersion() {
return Marshal.PtrToStringAuto(TTDLL.TT_GetVersion()); }
4308 Assembly assembly = Assembly.GetExecutingAssembly();
4309 AssemblyName name = assembly.GetName();
4310 Version dllversion =
new Version(Marshal.PtrToStringUni((c_tt.TTDLL.TT_GetVersion())));
4311 if (!name.Version.Equals(dllversion))
4313 string errmsg = String.Format(
"Invalid {2} version loaded. {2} is version {0} and {3} is version {1}",
4314 dllversion.ToString(), name.Version.ToString(), c_tt.TTDLL.dllname, c_tt.TTDLL.mgtdllname);
4318 System.Diagnostics.Debug.WriteLine(errmsg);
4321 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOCODEC) == Marshal.SizeOf(
new AudioCodec()));
4322 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__BANNEDUSER) == Marshal.SizeOf(
new BannedUser()));
4323 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__VIDEOFORMAT) == Marshal.SizeOf(
new VideoFormat()));
4324 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__OPUSCODEC) == Marshal.SizeOf(
new OpusCodec()));
4325 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__CHANNEL) == Marshal.SizeOf(
new Channel()));
4327 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__REMOTEFILE) == Marshal.SizeOf(
new RemoteFile()));
4328 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__FILETRANSFER) == Marshal.SizeOf(
new FileTransfer()));
4329 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__MEDIAFILESTATUS) == Marshal.SizeOf(Enum.GetUnderlyingType(typeof(
MediaFileStatus))));
4332 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__SOUNDDEVICE) == Marshal.SizeOf(
new SoundDevice()));
4333 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__SPEEXCODEC) == Marshal.SizeOf(
new SpeexCodec()));
4334 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__TEXTMESSAGE) == Marshal.SizeOf(
new TextMessage()));
4335 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__WEBMVP8CODEC) == Marshal.SizeOf(
new WebMVP8Codec()));
4336 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__TTMESSAGE) == Marshal.SizeOf(
new TTMessage()));
4337 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__USER) == Marshal.SizeOf(
new User()));
4338 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__USERACCOUNT) == Marshal.SizeOf(
new UserAccount()));
4339 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__USERSTATISTICS) == Marshal.SizeOf(
new UserStatistics()));
4341 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__VIDEOCODEC) == Marshal.SizeOf(
new VideoCodec()));
4342 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOCONFIG) == Marshal.SizeOf(
new AudioConfig()));
4343 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__SPEEXVBRCODEC) == Marshal.SizeOf(
new SpeexVBRCodec()));
4344 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__VIDEOFRAME) == Marshal.SizeOf(
new VideoFrame()));
4345 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOBLOCK) == Marshal.SizeOf(
new AudioBlock()));
4346 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOFORMAT) == Marshal.SizeOf(
new AudioFormat()));
4347 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__MEDIAFILEINFO) == Marshal.SizeOf(
new MediaFileInfo()));
4348 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__CLIENTERRORMSG) == Marshal.SizeOf(
new ClientErrorMsg()));
4349 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__DESKTOPINPUT) == Marshal.SizeOf(
new DesktopInput()));
4350 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__SPEEXDSP) == Marshal.SizeOf(
new SpeexDSP()));
4351 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__STREAMTYPE) == Marshal.SizeOf(Enum.GetUnderlyingType(typeof(
StreamType))));
4352 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOPREPROCESSORTYPE) == Marshal.SizeOf(Enum.GetUnderlyingType(typeof(
AudioPreprocessorType))));
4357 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__CLIENTKEEPALIVE) == Marshal.SizeOf(
new ClientKeepAlive()));
4359 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__JITTERCONFIG) == Marshal.SizeOf(
new JitterConfig()));
4363 m_ttInst = TTDLL.TT_InitTeamTalkPoll();
4366 m_eventhandler =
new MyEventHandler(
this);
4368 IntPtr hWnd = m_eventhandler.Hwnd;
4370 m_eventhandler.CreateControl();
4371 IntPtr hWnd = m_eventhandler.Handle;
4373 m_ttInst = TTDLL.TT_InitTeamTalk(hWnd, MyEventHandler.WM_TEAMTALK_CLIENTEVENT);
4387 #region IDisposable Members
4394 private void DeleteMe()
4396 if (m_ttInst != IntPtr.Zero)
4398 TTDLL.TT_CloseTeamTalk(m_ttInst);
4399 m_ttInst = IntPtr.Zero;
4424 return TTDLL.TT_GetMessage(m_ttInst, ref pMsg, ref nWaitMs);
4456 return TTDLL.TT_PumpMessage(m_ttInst, nClientEvent, nIdentifier);
4469 return TTDLL.TT_GetFlags(m_ttInst);
4491 return TTDLL.TT_SetLicenseInformation(szRegName, szRegKey);
4514 case ClientEvent.CLIENTEVENT_CON_MAX_PAYLOAD_UPDATED :
4526 case ClientEvent.CLIENTEVENT_CMD_SUCCESS :
4534 case ClientEvent.CLIENTEVENT_CMD_MYSELF_LOGGEDOUT:
4587 case ClientEvent.CLIENTEVENT_CMD_SERVERSTATISTICS :
4599 case ClientEvent.CLIENTEVENT_CMD_USERACCOUNT :
4603 case ClientEvent.CLIENTEVENT_CMD_BANNEDUSER :
4608 case ClientEvent.CLIENTEVENT_USER_STATECHANGE :
4616 case ClientEvent.CLIENTEVENT_USER_MEDIAFILE_VIDEO:
4628 case ClientEvent.CLIENTEVENT_USER_DESKTOPINPUT :
4632 case ClientEvent.CLIENTEVENT_USER_RECORD_MEDIAFILE :
4636 case ClientEvent.CLIENTEVENT_USER_AUDIOBLOCK :
4640 case ClientEvent.CLIENTEVENT_INTERNAL_ERROR :
4644 case ClientEvent.CLIENTEVENT_VOICE_ACTIVATION :
4648 case ClientEvent.CLIENTEVENT_HOTKEY :
4652 case ClientEvent.CLIENTEVENT_HOTKEY_TEST :
4656 case ClientEvent.CLIENTEVENT_FILETRANSFER :
4660 case ClientEvent.CLIENTEVENT_DESKTOPWINDOW_TRANSFER :
4664 case ClientEvent.CLIENTEVENT_STREAM_MEDIAFILE :
4676 case ClientEvent.CLIENTEVENT_USER_FIRSTVOICESTREAMPACKET:
4696 ref
int lpnOutputDeviceID)
4698 return TTDLL.TT_GetDefaultSoundDevices(ref lpnInputDeviceID, ref lpnOutputDeviceID);
4705 ref
int lpnInputDeviceID,
4706 ref
int lpnOutputDeviceID)
4708 return TTDLL.TT_GetDefaultSoundDevicesEx(nSndSystem, ref lpnInputDeviceID, ref lpnOutputDeviceID);
4721 bool b = TTDLL.TT_GetSoundDevices_NULL(IntPtr.Zero, ref count);
4723 b = TTDLL.TT_GetSoundDevices(devs, ref count);
4724 lpSoundDevices = b ? devs :
null;
4744 return TTDLL.TT_RestartSoundSystem();
4751 int nSampleRate,
int nChannels,
4752 bool bDuplexMode,
SpeexDSP lpSpeexDSP)
4754 return TTDLL.TT_StartSoundLoopbackTest(nInputDeviceID, nOutputDeviceID,
4755 nSampleRate, nChannels, bDuplexMode,
4790 int nSampleRate,
int nChannels,
4794 return TTDLL.TT_StartSoundLoopbackTestEx(nInputDeviceID, nOutputDeviceID,
4795 nSampleRate, nChannels, bDuplexMode,
4796 ref lpAudioPreprocessor, ref lpSoundDeviceEffects);
4806 return TTDLL.TT_CloseSoundLoopbackTest(lpTTSoundLoop);
4838 return TTDLL.TT_InitSoundInputDevice(m_ttInst, nInputDeviceID);
4873 return TTDLL.TT_InitSoundInputSharedDevice(nSampleRate, nChannels, nFrameSize);
4906 return TTDLL.TT_InitSoundOutputDevice(m_ttInst, nOutputDeviceID);
4940 return TTDLL.TT_InitSoundOutputSharedDevice(nSampleRate, nChannels, nFrameSize);
4977 return TTDLL.TT_InitSoundDuplexDevices(m_ttInst, nInputDeviceID, nOutputDeviceID);
5000 return TTDLL.TT_CloseSoundInputDevice(m_ttInst);
5022 return TTDLL.TT_CloseSoundOutputDevice(m_ttInst);
5032 return TTDLL.TT_CloseSoundDuplexDevices(m_ttInst);
5071 return TTDLL.TT_SetSoundDeviceEffects(m_ttInst, ref lpSoundDeviceEffect);
5079 return TTDLL.TT_GetSoundDeviceEffects(m_ttInst, ref lpSoundDeviceEffect);
5099 return TTDLL.TT_GetSoundInputLevel(m_ttInst);
5118 return TTDLL.TT_SetSoundInputGainLevel(m_ttInst, nLevel);
5128 return TTDLL.TT_GetSoundInputGainLevel(m_ttInst);
5148 return TTDLL.TT_SetSoundInputPreprocess(m_ttInst, ref lpSpeexDSP);
5161 return TTDLL.TT_GetSoundInputPreprocess(m_ttInst, ref lpSpeexDSP);
5176 return TTDLL.TT_SetSoundInputPreprocessEx(m_ttInst, ref lpAudioPreprocessor);
5188 return TTDLL.TT_GetSoundInputPreprocessEx(m_ttInst, ref lpAudioPreprocessor);
5199 return TTDLL.TT_SetSoundOutputVolume(m_ttInst, nVolume);
5209 return TTDLL.TT_GetSoundOutputVolume(m_ttInst);
5220 return TTDLL.TT_SetSoundOutputMute(m_ttInst, bMuteAll);
5234 return TTDLL.TT_Enable3DSoundPositioning(m_ttInst, bEnable);
5247 return TTDLL.TT_AutoPositionUsers(m_ttInst);
5316 return TTDLL.TT_EnableAudioBlockEvent(m_ttInst, nUserID, uStreamTypes, bEnable);
5349 return TTDLL.TT_EnableAudioBlockEventEx(m_ttInst, nUserID, uStreamTypes, ref lpAudioFormat, bEnable);
5387 return TTDLL.TT_InsertAudioBlock(m_ttInst, ref lpAudioBlock);
5409 return TTDLL.TT_EnableVoiceTransmission(m_ttInst, bEnable);
5439 return TTDLL.TT_EnableVoiceActivation(m_ttInst, bEnable);
5457 return TTDLL.TT_SetVoiceActivationLevel(m_ttInst, nLevel);
5467 return TTDLL.TT_GetVoiceActivationLevel(m_ttInst);
5483 return TTDLL.TT_SetVoiceActivationStopDelay(m_ttInst, nDelayMSec);
5497 return TTDLL.TT_GetVoiceActivationStopDelay(m_ttInst);
5543 string szAudioFileName,
5546 return TTDLL.TT_StartRecordingMuxedAudioFile(m_ttInst,
5572 string szAudioFileName,
5575 return TTDLL.TT_StartRecordingMuxedAudioFileEx(m_ttInst,
5615 string szAudioFileName,
5618 return TTDLL.TT_StartRecordingMuxedStreams(m_ttInst, uStreamTypes, ref lpAudioCodec, szAudioFileName, uAFF);
5634 return TTDLL.TT_StopRecordingMuxedAudioFile(m_ttInst);
5645 return TTDLL.TT_StopRecordingMuxedAudioFileEx(m_ttInst, nChannelID);
5672 return TTDLL.TT_StartVideoCaptureTransmission(m_ttInst, ref lpVideoCodec);
5681 return TTDLL.TT_StopVideoCaptureTransmission(m_ttInst);
5700 int count = devs.Length;
5701 bool b = TTDLL.TT_GetVideoCaptureDevices(devs, ref count);
5705 for (
int i = 0; i < count; i++)
5706 lpVideoDevices[i] = devs[i];
5708 else lpVideoDevices =
null;
5726 return TTDLL.TT_InitVideoCaptureDevice(m_ttInst, szDeviceID, ref lpVideoFormat);
5734 return TTDLL.TT_CloseVideoCaptureDevice(m_ttInst);
5758 return TTDLL.TT_PaintVideoFrame(nUserID, hDC, XDest, YDest, nDestWidth,
5759 nDestHeight, ref lpVideoFrame);
5805 return TTDLL.TT_PaintVideoFrameEx(nUserID, hDC, XDest, YDest, nDestWidth, nDestHeight,
5806 XSrc, YSrc, nSrcWidth, nSrcHeight,
5831 IntPtr ptr = TTDLL.TT_AcquireUserVideoCaptureFrame(m_ttInst, nUserID);
5832 if(ptr == IntPtr.Zero)
5838 PixelFormat pixelformat = PixelFormat.Format32bppRgb;
5843 Dictionary<IntPtr, IntPtr> vidcapframes =
new Dictionary<IntPtr, IntPtr>();
5855 if (vidcapframes.TryGetValue(lpVideoFrame.
frameBuffer, out ptr))
5858 return TTDLL.TT_ReleaseUserVideoCaptureFrame(m_ttInst, ptr);
5923 return TTDLL.TT_StartStreamingMediaFileToChannel(m_ttInst, szMediaFilePath,
5960 return TTDLL.TT_StartStreamingMediaFileToChannelEx(m_ttInst, szMediaFilePath,
5961 ref lpMediaFilePlayback,
5984 return TTDLL.TT_UpdateStreamingMediaFileToChannel(m_ttInst, ref lpMediaFilePlayback, ref lpVideoCodec);
5996 return TTDLL.TT_StopStreamingMediaFileToChannel(m_ttInst);
6025 return TTDLL.TT_InitLocalPlayback(m_ttInst, szMediaFilePath, ref lpMediaFilePlayback);
6042 return TTDLL.TT_UpdateLocalPlayback(m_ttInst, nPlaybackSessionID, ref lpMediaFilePlayback);
6055 return TTDLL.TT_StopLocalPlayback(m_ttInst, nPlaybackSessionID);
6068 return TTDLL.TT_GetMediaFileInfo(szMediaFilePath, ref lpMediaFileInfo);
6093 IntPtr ptr = TTDLL.TT_AcquireUserMediaVideoFrame(m_ttInst, nUserID);
6094 if (ptr == IntPtr.Zero)
6100 PixelFormat pixelformat = PixelFormat.Format32bppRgb;
6115 if (mediaframes.TryGetValue(lpVideoFrame.
frameBuffer, out ptr))
6118 return TTDLL.TT_ReleaseUserMediaVideoFrame(m_ttInst, ptr);
6123 Dictionary<IntPtr, IntPtr> mediaframes =
new Dictionary<IntPtr, IntPtr>();
6170 return TTDLL.TT_SendDesktopWindow(m_ttInst, ref lpDesktopWindow, nConvertBmpFormat);
6182 return TTDLL.TT_CloseDesktopWindow(m_ttInst);
6204 IntPtr ptr = TTDLL.TT_Palette_GetColorTable(nBmpPalette, nIndex);
6208 return Color.FromArgb(Marshal.ReadInt32(ptr));
6227 return TTDLL.TT_SendDesktopWindowFromHWND(m_ttInst, hWnd, nBitmapFormat, nDesktopProtocol);
6251 return TTDLL.TT_PaintDesktopWindow(m_ttInst, nUserID, hDC, XDest, YDest, nDestWidth, nDestHeight);
6297 return TTDLL.TT_PaintDesktopWindowEx(m_ttInst, nUserID, hDC, XDest,
6298 YDest, nDestWidth, nDestHeight,
6299 XSrc, YSrc, nSrcWidth, nSrcHeight);
6317 return TTDLL.TT_SendDesktopCursorPosition(m_ttInst, nPosX, nPosY);
6346 return TTDLL.TT_SendDesktopInput(m_ttInst, nUserID, lpDesktopInputs, lpDesktopInputs.Length);
6374 IntPtr ptr = TTDLL.TT_AcquireUserDesktopWindow(m_ttInst, nUserID);
6375 if (ptr == IntPtr.Zero)
6378 desktopwindows.Add(lpDesktopWindow.
frameBuffer, ptr);
6379 return lpDesktopWindow;
6390 IntPtr ptr = TTDLL.TT_AcquireUserDesktopWindowEx(m_ttInst, nUserID, nBitmapFormat);
6391 if (ptr == IntPtr.Zero)
6394 desktopwindows.Add(lpDesktopWindow.
frameBuffer, ptr);
6395 return lpDesktopWindow;
6398 Dictionary<IntPtr, IntPtr> desktopwindows =
new Dictionary<IntPtr, IntPtr>();
6404 if (desktopwindows.TryGetValue(lpDesktopWindow.
frameBuffer, out ptr))
6406 desktopwindows.Remove(lpDesktopWindow.
frameBuffer);
6407 return TTDLL.TT_ReleaseUserDesktopWindow(m_ttInst, ptr);
6430 return TTDLL.TT_SetEncryptionContext(m_ttInst, ref lpEncryptionContext);
6468 return TTDLL.TT_Connect(m_ttInst, szHostAddress, nTcpPort, nUdpPort,
6469 nLocalTcpPort, nLocalUdpPort, bEncrypted);
6503 return TTDLL.TT_ConnectSysID(m_ttInst, szHostAddress,
6504 nTcpPort, nUdpPort, nLocalTcpPort,
6505 nLocalUdpPort, bEncrypted, szSystemID);
6531 string szBindIPAddr,
6536 return TTDLL.TT_ConnectEx(m_ttInst, szHostAddress, nTcpPort, nUdpPort,
6537 szBindIPAddr, nLocalTcpPort, nLocalUdpPort,
6547 return TTDLL.TT_Disconnect(m_ttInst);
6560 return TTDLL.TT_QueryMaxPayload(m_ttInst, nUserID);
6569 return TTDLL.TT_GetClientStatistics(m_ttInst, ref lpClientStatistics);
6588 return TTDLL.TT_SetClientKeepAlive(m_ttInst, ref lpClientKeepAlive);
6599 return TTDLL.TT_GetClientKeepAlive(m_ttInst, ref lpClientKeepAlive);
6625 return TTDLL.TT_DoPing(m_ttInst);
6639 public int DoLogin(
string szNickname,
string szUsername,
string szPassword)
6641 return TTDLL.TT_DoLogin(m_ttInst, szNickname, szUsername, szPassword);
6673 public int DoLoginEx(
string szNickname,
string szUsername,
string szPassword,
6674 string szClientName)
6676 return TTDLL.TT_DoLoginEx(m_ttInst, szNickname, szUsername, szPassword, szClientName);
6693 return TTDLL.TT_DoLogout(m_ttInst);
6736 return TTDLL.TT_DoJoinChannel(m_ttInst, ref lpChannel);
6763 return TTDLL.TT_DoJoinChannelByID(m_ttInst, nChannelID, szPassword);
6786 return TTDLL.TT_DoLeaveChannel(m_ttInst);
6807 return TTDLL.TT_DoChangeNickname(m_ttInst, szNewNick);
6830 return TTDLL.TT_DoChangeStatus(m_ttInst, nStatusMode, szStatusMessage);
6852 return TTDLL.TT_DoTextMessage(m_ttInst, ref lpTextMessage);
6874 public int DoChannelOp(
int nUserID,
int nChannelID,
bool bMakeOperator)
6876 return TTDLL.TT_DoChannelOp(m_ttInst, nUserID, nChannelID, bMakeOperator);
6899 string szOpPassword,
6902 return TTDLL.TT_DoChannelOpEx(m_ttInst, nUserID, nChannelID, szOpPassword, bMakeOperator);
6928 return TTDLL.TT_DoKickUser(m_ttInst, nUserID, nChannelID);
6966 return TTDLL.TT_DoSendFile(m_ttInst, nChannelID, szLocalFilePath);
6997 public int DoRecvFile(
int nChannelID,
int nFileID,
string szLocalFilePath)
6999 return TTDLL.TT_DoRecvFile(m_ttInst, nChannelID, nFileID, szLocalFilePath);
7025 return TTDLL.TT_DoDeleteFile(m_ttInst, nChannelID, nFileID);
7043 return TTDLL.TT_DoSubscribe(m_ttInst, nUserID, uSubscriptions);
7062 return TTDLL.TT_DoUnsubscribe(m_ttInst, nUserID, uSubscriptions);
7091 return TTDLL.TT_DoMakeChannel(m_ttInst, ref lpChannel);
7127 return TTDLL.TT_DoUpdateChannel(m_ttInst, ref lpChannel);
7149 return TTDLL.TT_DoRemoveChannel(m_ttInst, nChannelID);
7172 return TTDLL.TT_DoMoveUser(m_ttInst, nUserID, nChannelID);
7192 return TTDLL.TT_DoUpdateServer(m_ttInst, ref lpServerProperties);
7220 return TTDLL.TT_DoListUserAccounts(m_ttInst, nIndex, nCount);
7246 return TTDLL.TT_DoNewUserAccount(m_ttInst, ref lpUserAccount);
7268 return TTDLL.TT_DoDeleteUserAccount(m_ttInst, szUsername);
7299 return TTDLL.TT_DoBanUser(m_ttInst, nUserID, nChannelID);
7315 return TTDLL.TT_DoBanUserEx(m_ttInst, nUserID, uBanTypes);
7338 return TTDLL.TT_DoBan(m_ttInst, ref lpBannedUser);
7363 return TTDLL.TT_DoBanIPAddress(m_ttInst, szIPAddress, nChannelID);
7388 return TTDLL.TT_DoUnBanUser(m_ttInst, szIPAddress, nChannelID);
7402 return TTDLL.TT_DoUnBanUserEx(m_ttInst, ref lpBannedUser);
7427 return TTDLL.TT_DoListBans(m_ttInst, nChannelID, nIndex, nCount);
7448 return TTDLL.TT_DoSaveConfig(m_ttInst);
7468 return TTDLL.TT_DoQueryServerStats(m_ttInst);
7484 return TTDLL.TT_DoQuit(m_ttInst);
7499 return TTDLL.TT_GetServerProperties(m_ttInst, ref lpServerProperties);
7514 bool b = TTDLL.TT_GetServerUsers_NULL(m_ttInst, IntPtr.Zero, ref count);
7516 b = TTDLL.TT_GetServerUsers(m_ttInst, users, ref count);
7517 lpUsers = b ? users :
null;
7534 return TTDLL.TT_GetRootChannelID(m_ttInst);
7544 return TTDLL.TT_GetMyChannelID(m_ttInst);
7559 return TTDLL.TT_GetChannel(m_ttInst, nChannelID, ref lpChannel);
7570 bool b = TTDLL.TT_GetChannelPath(m_ttInst, nChannelID, ptr);
7572 szChannelPath = Marshal.PtrToStringUni(ptr);
7573 Marshal.FreeHGlobal(ptr);
7584 return TTDLL.TT_GetChannelIDFromPath(m_ttInst, szChannelPath);
7597 bool b = TTDLL.TT_GetChannelUsers_NULL(m_ttInst, nChannelID, IntPtr.Zero, ref count);
7599 b = TTDLL.TT_GetChannelUsers(m_ttInst, nChannelID, users, ref count);
7600 lpUsers = b ? users :
null;
7614 bool b = TTDLL.TT_GetChannelFiles_NULL(m_ttInst, nChannelID, IntPtr.Zero, ref count);
7616 b = TTDLL.TT_GetChannelFiles(m_ttInst, nChannelID, files, ref count);
7617 lpRemoteFiles = b ? files :
null;
7629 return TTDLL.TT_GetChannelFile(m_ttInst, nChannelID, nFileID, ref lpRemoteFile);
7639 return TTDLL.TT_IsChannelOperator(m_ttInst, nUserID, nChannelID);
7650 bool b = TTDLL.TT_GetServerChannels_NULL(m_ttInst, IntPtr.Zero, ref count);
7652 b = TTDLL.TT_GetServerChannels(m_ttInst, channels, ref count);
7653 lpChannels = b ? channels :
null;
7671 return TTDLL.TT_GetMyUserID(m_ttInst);
7686 return TTDLL.TT_GetMyUserAccount(m_ttInst, ref lpUserAccount);
7706 return TTDLL.TT_GetMyUserType(m_ttInst);
7722 return TTDLL.TT_GetMyUserRights(m_ttInst);
7736 return TTDLL.TT_GetMyUserData(m_ttInst);
7752 return TTDLL.TT_GetUser(m_ttInst, nUserID, ref lpUser);
7761 return TTDLL.TT_GetUserStatistics(m_ttInst, nUserID, ref lpUserStatistics);
7773 return TTDLL.TT_GetUserByUsername(m_ttInst, szUsername, ref lpUser);
7793 return TTDLL.TT_SetUserVolume(m_ttInst, nUserID, nStreamType, nVolume);
7808 return TTDLL.TT_SetUserMute(m_ttInst, nUserID, nStreamType, bMute);
7826 return TTDLL.TT_SetUserStoppedPlaybackDelay(m_ttInst, nUserID, nStreamType, nDelayMSec);
7857 return TTDLL.TT_SetUserJitterControl(m_ttInst, nUserID, nStreamType, ref lpJitterConfig);
7874 return TTDLL.TT_GetUserJitterControl(m_ttInst, nUserID, nStreamType, ref lpJitterConfig);
7893 float x,
float y,
float z)
7895 return TTDLL.TT_SetUserPosition(m_ttInst, nUserID, nStreamType, x, y, z);
7910 return TTDLL.TT_SetUserStereo(m_ttInst, nUserID, nStreamType, bLeftSpeaker, bRightSpeaker);
7950 return TTDLL.TT_SetUserMediaStorageDir(m_ttInst, nUserID, szFolderPath, szFileNameVars, uAFF);
7980 return TTDLL.TT_SetUserMediaStorageDirEx(m_ttInst, nUserID, szFolderPath, szFileNameVars, uAFF, nStopRecordingExtraDelayMSec);
8010 return TTDLL.TT_SetUserAudioStreamBufferSize(m_ttInst, nUserID, uStreamType, nMSec);
8033 IntPtr ptr = TTDLL.TT_AcquireUserAudioBlock(m_ttInst, uStreamTypes, nUserID);
8034 if (ptr == IntPtr.Zero)
8037 audioblocks.Add(lpAudioBlock.
lpRawAudio, ptr);
8038 return lpAudioBlock;
8041 Dictionary<IntPtr, IntPtr> audioblocks =
new Dictionary<IntPtr, IntPtr>();
8059 if (audioblocks.TryGetValue(lpAudioBlock.
lpRawAudio, out ptr))
8062 return TTDLL.TT_ReleaseUserAudioBlock(m_ttInst, ptr);
8081 return TTDLL.TT_GetFileTransferInfo(m_ttInst, nTransferID, ref lpFileTransfer);
8094 return TTDLL.TT_CancelFileTransfer(m_ttInst, nTransferID);
8110 TTDLL.TT_GetErrorMessage((
int)nError, ptr);
8111 string s = Marshal.PtrToStringUni(ptr);
8112 Marshal.FreeHGlobal(ptr);
8144 return TTDLL.TT_HotKey_Register(m_ttInst, nHotKeyID, lpnVKCodes, lpnVKCodes.Length);
8153 return TTDLL.TT_HotKey_Unregister(m_ttInst, nHotKeyID);
8162 return TTDLL.TT_HotKey_IsActive(m_ttInst, nHotKeyID);
8175 if (m_eventhandler !=
null)
8178 IntPtr hWnd = m_eventhandler.Hwnd;
8180 IntPtr hWnd = m_eventhandler.Handle;
8182 return TTDLL.TT_HotKey_InstallTestHook(m_ttInst, hWnd,
8183 MyEventHandler.WM_TEAMTALK_CLIENTEVENT);
8194 return TTDLL.TT_HotKey_RemoveTestHook(m_ttInst);
8205 bool b = TTDLL.TT_HotKey_GetKeyString(m_ttInst, nVKCode, ptr);
8207 szKeyName = Marshal.PtrToStringUni(ptr);
8208 Marshal.FreeHGlobal(ptr);
8215 return TTDLL.TT_DBG_SetSoundInputTone(m_ttInst, uStreamTypes, nFrequency);
8222 return TTDLL.TT_DBG_WriteAudioFileTone(ref lpMediaFileInfo, nFrequency);
8715 private IntPtr m_ttInst;
8717 c_tt.MyEventHandler m_eventhandler;
8767 TTKEY_NO_TRANSLATE = 0,
8771 TTKEY_WINKEYCODE_TO_TTKEYCODE = 1,
8773 TTKEY_TTKEYCODE_TO_WINKEYCODE = 2,
8777 TTKEY_MACKEYCODE_TO_TTKEYCODE = 3,
8780 TTKEY_TTKEYCODE_TO_MACKEYCODE = 4
8828 return TTDLL.TT_Mixer_GetMixerCount();
8837 ref
string szMixerName)
8840 bool b = TTDLL.TT_Mixer_GetMixerName(nMixerIndex, ptr);
8842 szMixerName = Marshal.PtrToStringUni(ptr);
8844 Marshal.FreeHGlobal(ptr);
8855 ref
string szMixerName)
8858 bool b = TTDLL.TT_Mixer_GetWaveInName(nWaveDeviceID, ptr);
8860 szMixerName = Marshal.PtrToStringUni(ptr);
8861 Marshal.FreeHGlobal(ptr);
8872 ref
string szMixerName)
8875 bool b = TTDLL.TT_Mixer_GetWaveOutName(nWaveDeviceID, ptr);
8877 szMixerName = Marshal.PtrToStringUni(ptr);
8879 Marshal.FreeHGlobal(ptr);
8895 return TTDLL.TT_Mixer_SetWaveOutMute(nWaveDeviceID, nControl, bMute);
8908 return TTDLL.TT_Mixer_GetWaveOutMute(nWaveDeviceID, nControl);
8920 return TTDLL.TT_Mixer_SetWaveOutVolume(nWaveDeviceID, nControl, nVolume);
8932 return TTDLL.TT_Mixer_GetWaveOutVolume(nWaveDeviceID, nControl);
8943 return TTDLL.TT_Mixer_SetWaveInSelected(nWaveDeviceID, nControl);
8955 return TTDLL.TT_Mixer_GetWaveInSelected(nWaveDeviceID, nControl);
8967 return TTDLL.TT_Mixer_SetWaveInVolume(nWaveDeviceID, nControl, nVolume);
8979 return TTDLL.TT_Mixer_GetWaveInVolume(nWaveDeviceID, nControl);
8989 return TTDLL.TT_Mixer_SetWaveInBoost(nWaveDeviceID, bEnable);
8999 return TTDLL.TT_Mixer_GetWaveInBoost(nWaveDeviceID);
9009 return TTDLL.TT_Mixer_SetWaveInMute(nWaveDeviceID, bEnable);
9019 return TTDLL.TT_Mixer_GetWaveInMute(nWaveDeviceID);
9031 return TTDLL.TT_Mixer_GetWaveInControlCount(nWaveDeviceID);
9044 ref
string szDeviceName)
9047 bool b = TTDLL.TT_Mixer_GetWaveInControlName(nWaveDeviceID, nControlIndex, ptr);
9049 szDeviceName = Marshal.PtrToStringUni(ptr);
9050 Marshal.FreeHGlobal(ptr);
9064 return TTDLL.TT_Mixer_SetWaveInControlSelected(nWaveDeviceID, nControlIndex);
9077 return TTDLL.TT_Mixer_GetWaveInControlSelected(nWaveDeviceID, nControlIndex);
9097 return TTDLL.TT_Firewall_IsEnabled();
9110 return TTDLL.TT_Firewall_Enable(bEnable);
9120 return TTDLL.TT_Firewall_AppExceptionExists(szExecutable);
9133 return TTDLL.TT_Firewall_AddAppException(szName, szExecutable);
9146 return TTDLL.TT_Firewall_RemoveAppException(szExecutable);
9154 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
9181 return TTDLL.TT_Windows_GetDesktopActiveHWND();
9187 return TTDLL.TT_Windows_GetDesktopHWND();
9192 ref System.IntPtr lpHWnd)
9194 return TTDLL.TT_Windows_GetDesktopWindowHWND(nIndex, ref lpHWnd);
9202 return TTDLL.TT_Windows_GetWindow(hWnd, ref lpShareWindow);
9228 lpTranslatedDesktopInputs =
new DesktopInput[lpDesktopInputs.Length];
9229 return TTDLL.TT_DesktopInput_KeyTranslate(nTranslate, lpDesktopInputs,
9230 lpTranslatedDesktopInputs,
9231 lpDesktopInputs.Length);
9256 return TTDLL.TT_DesktopInput_Execute(lpDesktopInputs, lpDesktopInputs.Length);
Class used to load TeamTalk5.dll and instantiate a TeamTalk client in TeamTalk 5 SDK Standard Edition...
TeamTalk5(bool poll_based)
Simply calls TeamTalkBase.TeamTalkBase()
const int DEFAULT_TCPPORT
const int DEFAULT_UDPPORT
Class used to load TeamTalk5Pro.dll and instantiate a TeamTalk client in TeamTalk 5 SDK Professional ...
const int DEFAULT_UDPPORT
const int DEFAULT_TCPPORT
TeamTalk5Pro(bool poll_based)
Simply calls TeamTalkBase.TeamTalkBase()
Abstract class which encapsulates the TeamTalk 5 client. Instantiate either BearWare....
bool DBG_WriteAudioFileTone(MediaFileInfo lpMediaFileInfo, int nFrequency)
bool DBG_SetSoundInputTone(StreamType uStreamTypes, int nFrequency)
A wrapper for the Windows Firewall API.
static bool Enable(bool bEnable)
Enable/disable the Windows Firewall.
static bool RemoveAppException(string szExecutable)
Remove an application from the Windows Firewall exception list.
static bool IsEnabled()
Check if the Windows Firewall is currently enabled.
static bool AddAppException(string szName, string szExecutable)
Add an application to the Windows Firewall exception list.
static bool AppExceptionExists(string szExecutable)
Check if an executable is already in the Windows Firewall exception list.
Helper class for extracting Windows HWND handles and controlling mouse and keyboard.
static bool GetWindow(System.IntPtr hWnd, ref ShareWindow lpShareWindow)
Get the properties of a window from its window handle (HWND).
static bool GetDesktopWindowHWND(int nIndex, ref System.IntPtr lpHWnd)
Get the all the handles (HWND) of visible windows.
static System.IntPtr GetDesktopActiveHWND()
Get the handle (HWND) of the window which is currently active (focused) on the Windows desktop.
static int DesktopInputKeyTranslate(TTKeyTranslate nTranslate, DesktopInput[] lpDesktopInputs, out DesktopInput[] lpTranslatedDesktopInputs)
Translate platform key-code to and from TeamTalk's intermediate format.
static int DesktopInputExecute(DesktopInput[] lpDesktopInputs)
Execute desktop (mouse or keyboard) input.
static System.IntPtr GetDesktopHWND()
Get the handle (HWND) of the Windows desktop (full desktop).
A wrapper for the Windows Mixer API.
static bool SetWaveOutVolume(int nWaveDeviceID, MixerControl nControl, int nVolume)
Set the volume of a Windows Mixer Wave-Out device from the 'enum' of devices.
static int GetWaveInVolume(int nWaveDeviceID, MixerControl nControl)
Get the volume of a Windows Mixer Wave-In device from the 'enum' of devices.
static bool SetWaveOutMute(int nWaveDeviceID, MixerControl nControl, bool bMute)
Mute or unmute a Windows Mixer Wave-Out device from the 'enum' of devices.
static bool GetWaveOutName(int nWaveDeviceID, ref string szMixerName)
Get the name of the mixer associated with a wave-out device.
static bool SetWaveInControlSelected(int nWaveDeviceID, int nControlIndex)
Set the selected state of a Wave-In device in the Windows Mixer.
static bool SetWaveInBoost(int nWaveDeviceID, bool bEnable)
Enable and disable microphone boost.
static bool GetWaveInControlSelected(int nWaveDeviceID, int nControlIndex)
Get the selected state of a Wave-In device in the Windows Mixer.
static bool GetWaveInName(int nWaveDeviceID, ref string szMixerName)
Get the name of the mixer associated with a wave-in device.
static bool SetWaveInSelected(int nWaveDeviceID, MixerControl nControl)
Set the selected state of a Windows Mixer Wave-In device from the 'enum' of devices.
static int GetWaveInBoost(int nWaveDeviceID)
See if microphone boost is enabled.
static bool SetWaveInMute(int nWaveDeviceID, bool bEnable)
Mute/unmute microphone input.
static int GetMixerCount()
Get the number of Windows Mixers available.
static int GetWaveOutVolume(int nWaveDeviceID, MixerControl nControl)
Get the volume of a Windows Mixer Wave-Out device from the 'enum' of devices.
static bool SetWaveInVolume(int nWaveDeviceID, MixerControl nControl, int nVolume)
Set the volume of a Windows Mixer Wave-In device from the 'enum' of devices.
static int GetWaveInSelected(int nWaveDeviceID, MixerControl nControl)
Get the selected state of a Windows Mixer Wave-In device from the 'enum' of devices.
static int GetWaveInMute(int nWaveDeviceID)
See if microphone is muted.
static int GetWaveInControlCount(int nWaveDeviceID)
Get the number of Windows Mixer Wave-In devices.
static int GetWaveOutMute(int nWaveDeviceID, MixerControl nControl)
Get the mute state of a Windows Mixer Wave-Out device from the 'enum' of devices.
static bool GetWaveInControlName(int nWaveDeviceID, int nControlIndex, ref string szDeviceName)
Get the name of the Wave-In device with the specified index.
static bool GetMixerName(int nMixerIndex, ref string szMixerName)
Get the name of a Windows Mixer based on its name.
int GetRootChannelID()
Get the root channel's ID.
const int TT_TRANSMITUSERS_STREAMTYPE_INDEX
FileTransferStatus
Status of a file transfer.
bool GetChannelFile(int nChannelID, int nFileID, ref RemoteFile lpRemoteFile)
Get information about a file which can be downloaded.
const int TT_TRANSMITQUEUE_MAX
int ChannelID
Same as GetMyChannelID().
const int TT_CLASSROOM_STREAMTYPE_INDEX
const int TT_CLASSROOM_FREEFORALL
int GetChannelIDFromPath(string szChannelPath)
Get the channel ID of the supplied path. Channels are separated by '/'.
const int TT_TRANSMITUSERS_USERID_INDEX
ChannelType
The types of channels supported.
bool IsChannelOperator(int nUserID, int nChannelID)
Check whether user is operator of a channel.
int GetMyChannelID()
Get the channel which the local client instance is currently participating in.
bool GetServerChannels(out Channel[] lpChannels)
Get all the channels on the server.
bool GetChannelUsers(int nChannelID, out User[] lpUsers)
Get the IDs of all users in a channel.
bool GetChannel(int nChannelID, ref Channel lpChannel)
Get the channel with a specific ID.
const int TT_CLASSROOM_USERID_INDEX
const int TT_TRANSMITUSERS_FREEFORALL
bool GetChannelPath(int nChannelID, ref string szChannelPath)
Get the channel's path. Channels are separated by '/'.
bool GetChannelFiles(int nChannelID, out RemoteFile[] lpRemoteFiles)
Get the list of the files in a channel which can be downloaded.
const int TT_TRANSMITUSERS_MAX
The maximum number of users allowed to transmit when a BearWare.Channel is configured with #ChannelTy...
bool CancelFileTranfer(int nTransferID)
Cancel an active file transfer.
bool GetFileTransferInfo(int nTransferID, ref FileTransfer lpFileTransfer)
Get information about an active file transfer.
Codec
The codecs supported.
AudioPreprocessorType
The types of supported audio preprocessors.
int DoRecvFile(int nChannelID, int nFileID, string szLocalFilePath)
Download a file from the specified channel.
int DoPing()
Ping server and wait for server to reply.
int DoJoinChannel(Channel lpChannel)
Create a new channel and join it.
int DoListBans(int nChannelID, int nIndex, int nCount)
Issue a command to list the banned users.
int DoUnBanUser(string szIPAddress, int nChannelID)
Unban the user with the specified IP-address.
int DoMoveUser(int nUserID, int nChannelID)
Issue command to move a user from one channel to another.
int DoBanUser(int nUserID, int nChannelID)
Issue a ban command on a user in a specific channel.
int DoChannelOpEx(int nUserID, int nChannelID, string szOpPassword, bool bMakeOperator)
Make another user operator of a channel using the szOpPassword of BearWare.Channel.
int DoBanUserEx(int nUserID, BanType uBanTypes)
Ban the user with nUserID using the ban types specified.
int DoChangeStatus(int nStatusMode, string szStatusMessage)
Change the client instance's currect status.
int DoSendFile(int nChannelID, string szLocalFilePath)
Send a file to the specified channel.
int DoLogin(string szNickname, string szUsername, string szPassword)
Same as DologinEx() but without the option to specify szClientName. Kept for backwards compatibility.
int DoChannelOp(int nUserID, int nChannelID, bool bMakeOperator)
Make another user operator of a channel.
int DoDeleteUserAccount(string szUsername)
Issue command to delete a user account on the server.
int DoUnsubscribe(int nUserID, Subscription uSubscriptions)
Unsubscribe to user events/data. This can be used to ignore messages or voice data from a specific us...
int DoQueryServerStats()
Get the server's current statistics.
int DoMakeChannel(Channel lpChannel)
Make a new channel on the server.
int DoKickUser(int nUserID, int nChannelID)
Kick user from either channel or server.
int DoSaveConfig()
Save the server's current state to its settings file (typically the server's .xml file).
int DoDeleteFile(int nChannelID, int nFileID)
Delete a file from a channel.
int DoQuit()
Quit from server.
int DoUpdateChannel(Channel lpChannel)
Update a channel's properties.
int DoLeaveChannel()
Leave the current channel.
int DoUnBanUserEx(BannedUser lpBannedUser)
Unban the properties specified in BearWare.BannedUser.
int DoNewUserAccount(UserAccount lpUserAccount)
Issue command to create a new user account on the server.
int DoSubscribe(int nUserID, Subscription uSubscriptions)
Subscribe to user events and/or data.
int DoBanIPAddress(string szIPAddress, int nChannelID)
Issue a ban command on an IP-address user.
int DoLoginEx(string szNickname, string szUsername, string szPassword, string szClientName)
Logon to a server.
int DoBan(BannedUser lpBannedUser)
Ban the properties specified in lpBannedUser.
int DoJoinChannelByID(int nChannelID, string szPassword)
Join an existing channel.
int DoLogout()
Logout of the server.
int DoChangeNickname(string szNewNick)
Change the client instance's nick name.
int DoListUserAccounts(int nIndex, int nCount)
Issue command to list user accounts on the server.
int DoUpdateServer(ServerProperties lpServerProperties)
Update server properties.
int DoRemoveChannel(int nChannelID)
Remove a channel from a server.
int DoTextMessage(TextMessage lpTextMessage)
Send a text message to either a user or a channel.
bool Connect(string szHostAddress, int nTcpPort, int nUdpPort, int nLocalTcpPort, int nLocalUdpPort, bool bEncrypted)
Connect to a server.
bool SetClientKeepAlive(ClientKeepAlive lpClientKeepAlive)
Update the client instance's default keep alive settings.
bool ConnectSysID(string szHostAddress, int nTcpPort, int nUdpPort, int nLocalTcpPort, int nLocalUdpPort, bool bEncrypted, string szSystemID)
Same as Connect() but the option of providing a unique system-ID.
bool GetClientStatistics(ref ClientStatistics lpClientStatistics)
Retrieve client statistics of bandwidth usage and response times.
bool QueryMaxPayload(int nUserID)
Query the maximum size of UDP data packets to the user or server.
bool ConnectEx(string szHostAddress, int nTcpPort, int nUdpPort, string szBindIPAddr, int nLocalTcpPort, int nLocalUdpPort, bool bEncrypted)
Bind to specific IP-address prior to connecting to server.
bool SetEncryptionContext(EncryptionContext lpEncryptionContext)
Setup encryption properties prior to Connect().
bool Disconnect()
Disconnect from the server.
bool GetClientKeepAlive(ref ClientKeepAlive lpClientKeepAlive)
Get the client instance's current keep alive settings.
const ushort DESKTOPINPUT_MOUSEPOS_IGNORE
DesktopWindow AcquireUserDesktopWindowEx(int nUserID, BitmapFormat nBitmapFormat)
Same as TeamTalkBase.AcquireUserDesktopWindow() except an extra option for converting bitmap to a dif...
int SendDesktopWindow(DesktopWindow lpDesktopWindow, BitmapFormat nConvertBmpFormat)
Transmit a desktop window (bitmap) to users in the same channel.
const uint DESKTOPINPUT_KEYCODE_IGNORE
TTKeyTranslate
Translate to and from TeamTalk's intermediate key-codes (TTKEYCODE).
DesktopKeyState
The state of a key (or mouse button), i.e. if it's pressed or released.
DesktopWindow AcquireUserDesktopWindow(int nUserID)
Get a user's desktop window (bitmap image).
bool PaintDesktopWindow(int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight)
Paint user's desktop window using a Windows' DC (device context).
int SendDesktopWindowFromHWND(System.IntPtr hWnd, BitmapFormat nBitmapFormat, DesktopProtocol nDesktopProtocol)
Transmit the specified window in a desktop session.
const uint DESKTOPINPUT_KEYCODE_LMOUSEBTN
DesktopProtocol
The protocols supported for transferring a BearWare.DesktopWindow.
bool PaintDesktopWindowEx(int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight, int XSrc, int YSrc, int nSrcWidth, int nSrcHeight)
Paint user's desktop window using a Windows' DC (device context).
const uint DESKTOPINPUT_KEYCODE_RMOUSEBTN
bool CloseDesktopWindow()
Close the current desktop session.
const int TT_DESKTOPINPUT_MAX
bool SendDesktopInput(int nUserID, DesktopInput[] lpDesktopInputs)
Send a mouse or keyboard event to a shared desktop window.
bool ReleaseUserDesktopWindow(DesktopWindow lpDesktopWindow)
Release memory allocated by the BearWare.DesktopWindow.
BitmapFormat
The bitmap format used for a BearWare.DesktopWindow.
const uint DESKTOPINPUT_KEYCODE_MMOUSEBTN
bool SendDesktopCursorPosition(ushort nPosX, ushort nPosY)
Send the position of mouse cursor to users in the same channel.
static System.Drawing.Color Palette_GetColorTable(BitmapFormat nBmpPalette, int nIndex)
Get RGB values of the palette for the bitmap format.
static string GetErrorMessage(ClientError nError)
Get textual discription of an error message.
ClientError
Errors which can occur either as a result of client commands or as a result of internal errors.
delegate void ServerStats(ServerStatistics serverstatistics)
Delegate for event OnCmdServerStatistics.
delegate void UserUpdate(User user)
Delegate for events OnCmdUserLoggedIn, OnCmdUserLoggedOut, OnCmdUserUpdate, OnCmdUserJoinedChannel an...
UserDesktopInput OnUserDesktopCursor
A user has sent the position of the mouse cursor.
UserUpdate OnCmdUserJoinedChannel
A user has joined a channel.
CommandProcessing OnCmdProcessing
A command issued by Do* methods is being processed.
HotKeyTest OnHotKeyTest
A button was pressed or released on the user's keyboard or mouse.
delegate void NewAudioBlock(int nUserID, StreamType nStreamType)
Delegate for event OnUserAudioBlock.
Connection OnConnectionLost
Connection to server has been lost.
DesktopTransferUpdate OnDesktopWindowTransfer
Used for tracking when a desktop window has been transmitted to the server.
delegate void UserRecordMediaFile(int nUserID, MediaFileInfo mediafileinfo)
Delegate for event OnUserRecordMediaFile.
CommandError OnCmdError
The server rejected a command issued by the local client instance.
MaxPayloadUpdate OnConnectionMaxPayloadUpdated
The maximum size of the payload put into UDP packets has been updated.
delegate void StreamMediaFile(MediaFileInfo mediafileinfo)
Delegate for event OnStreamMediaFile.
UserUpdate OnCmdUserUpdate
User changed properties.
delegate void MyselfLoggedOut()
Delegate for event OnCmdMyselfLoggedOut.
delegate void CommandSuccess(int nCmdID)
Delegate for event CommandSuccess.
delegate void UserVideoFrame(int nUserID, int nStreamID)
A delegate for the event OnUserVideoCapture.
ChannelUpdate OnCmdChannelUpdate
A channel's properties has been updated.
delegate void ErrorOccured(ClientErrorMsg clienterrormsg)
Delegate for event OnInternalError.
NewAudioBlock OnUserAudioBlock
A new audio block can be extracted.
VoiceActivation OnVoiceActivation
Voice activation has triggered transmission.
MyselfLoggedOut OnCmdMyselfLoggedOut
The client instance logged out of a server.
MyselfLoggedIn OnCmdMyselfLoggedIn
The client instance successfully logged on to server.
delegate void DesktopTransferUpdate(int nSessionID, int nBytesRemain)
Delegate for event OnDesktopWindowTransfer().
delegate void VoiceActivation(bool bVoiceActive)
Delegate for event OnVoiceActivation.
delegate void ServerUpdate(ServerProperties serverproperties)
Delegate for event OnCmdServerUpdate.
delegate void UserTextMessage(TextMessage textmessage)
Delegate for events OnCmdUserTextMessage.
HotKeyToggle OnHotKeyToggle
A hotkey has been acticated or deactivated.
delegate void MyselfKicked(User user)
Delegate for event OnCmdMyselfKicked.
LocalMediaFile OnLocalMediaFile
Media file is being played locally.
delegate void MaxPayloadUpdate(int nPayloadSize)
Delegate for event OnConnectionMaxPayloadUpdated().
UserTextMessage OnCmdUserTextMessage
A user has sent a text-message.
delegate void ChannelUpdate(Channel channel)
Delegate for OnCmdChannelNew, OnCmdChannelUpdate and OnCmdChannelRemove.
delegate void HotKeyToggle(int nHotKeyID, bool bActive)
Delegate for event OnHotKeyToggle.
AudioInput OnAudioInput
Audio input progress as result of TeamTalkBase.InsertAudioBlock()
Connection OnConnectionSuccess
Connected successfully to the server.
UserUpdate OnCmdUserLoggedOut
A user logged out of the server.
delegate void UserStreamUpdate(User user, int nStreamID)
Delegate for events OnUserFirstVoiceStreamPacket.
ErrorOccured OnInternalError
A internal error occured.
CommandSuccess OnCmdSuccess
The server successfully processed a command issued by the local client instance.
StreamMediaFile OnStreamMediaFile
Media file being streamed to a channel is processing.
delegate void UserDesktopInput(int nSrcUserID, DesktopInput desktopinput)
Delegate for event OnUserDesktopCursor().
delegate void HotKeyTest(int nVkCode, bool bActive)
Delegate for event OnHotKeyTest.
MyselfKicked OnCmdMyselfKicked
The client instance was kicked from a channel.
UserVideoFrame OnUserMediaFileVideo
A new video frame was received from a user.
UserVideoFrame OnUserVideoCapture
A new video frame was received from a user.
ChannelUpdate OnCmdChannelNew
A new channel has been created.
delegate void FileTransferUpdate(FileTransfer filetransfer)
Delegate for event OnFileTransfer.
ListUserAccount OnCmdUserAccount
A new user account has been listed by the server. Event handler for #ClientEvent.CLIENTEVENT_CMD_USER...
UserStreamUpdate OnUserFirstVoiceStreamPacket
The first voice packet of a new voice stream has been received.
FileUpdate OnCmdFileNew
A new file is added to a channel.
delegate void NewDesktopWindow(int nUserID, int nStreamID)
Delegate for event OnUserDesktopWindow.
delegate void CommandProcessing(int nCmdID, bool bActive)
Delegate for event OnCmdProcessing.
ListBannedUser OnCmdBannedUser
A new banned user has been listed by the server. Event handler for #ClientEvent.CLIENTEVENT_CMD_BANNE...
delegate void AudioInput(AudioInputProgress aip)
Delegate for event OnAudioInput.
ServerStats OnCmdServerStatistics
Server statistics available.
UserUpdate OnUserStateChange
A user's state has been updated.
delegate void ListBannedUser(BannedUser banneduser)
A delegate for event OnCmdUserAccount.
UserRecordMediaFile OnUserRecordMediaFile
An media file recording has changed status.
delegate void LocalMediaFile(MediaFileInfo mediafileinfo)
Delegate for event OnLocalMediaFile.
delegate void CommandError(int nCmdID, ClientErrorMsg clienterrormsg)
Delegate for event OnCmdError.
delegate void FileUpdate(RemoteFile remotefile)
A delegate for events OnCmdFileNew and OnCmdFileRemove.
ClientEvent
TeamTalk client event messages.
delegate void ListUserAccount(UserAccount useraccount)
A delegate for event OnCmdUserAccount.
NewDesktopWindow OnUserDesktopWindow
A new or updated desktop window has been received from a user.
UserUpdate OnCmdUserLoggedIn
A new user logged on to the server.
FileUpdate OnCmdFileRemove
A file has been removed from a channel.
ServerUpdate OnCmdServerUpdate
Server has updated its settings (server name, MOTD, etc.)
UserUpdate OnCmdUserLeftChannel
User has left a channel.
FileTransferUpdate OnFileTransfer
A file transfer is processing.
Connection OnConnectionFailed
Failed to connect to server.
delegate void Connection()
Delegate for events OnConnectionSuccess, OnConnectionFailed and OnConnectionLost.
UserDesktopInput OnUserDesktopInput
Desktop input (mouse or keyboard input) has been received from a user.
ChannelUpdate OnCmdChannelRemove
A channel has been removed. Event handler for #ClientEvent.CLIENTEVENT_CMD_CHANNEL_REMOVE.
delegate void MyselfLoggedIn(int nMyUserID, UserAccount useraccount)
Delegate for event OnCmdMyselfLoggedIn.
bool HotKey_Register(int nHotKeyID, int[] lpnVKCodes)
Register a global hotkey.
bool HotKey_GetKeyString(int nVKCode, ref string szKeyName)
Get a string description of the virtual-key code.
int HotKey_IsActive(int nHotKeyID)
Check whether hotkey is active.
bool HotKey_Unregister(int nHotKeyID)
Unregister a registered hotkey.
bool HotKey_RemoveTestHook()
Remove the test hook again so the OnHotKeyTest event will no longer be notified.
bool HotKey_InstallTestHook()
Install a test hook which calls the event OnHotKeyTest whenever a key or mouse button is pressed.
bool GetMessage(ref TTMessage pMsg, int nWaitMs)
Poll for events in the client instance.
const int TT_CHANNELID_MAX
The highest channel ID. Also used for TT_CLASSROOM_FREEFORALL.
const int TT_LOCAL_USERID
User ID passed to TeamTalkBase.EnableAudioBlockEvent() in order to receive BearWare....
BearWare.ClientFlag GetFlags()
Get a bitmask describing the client's current state.
const int TT_MUXED_USERID
User ID used to identify muxed audio that has been mixed into a single stream.
TeamTalkBase(bool poll_based)
Create a new TeamTalk client instance.
ClientFlag
Flags used to describe the the client instance current state.
bool PumpMessage(ClientEvent nClientEvent, int nIdentifier)
Cause client instance event thread to schedule an update event.
const int TT_USERID_MAX
The highest user ID.
const int TT_LOCAL_TX_USERID
User ID passed to TeamTalkBase.EnableAudioBlockEvent() in order to receive BearWare....
void ProcessMsg(TTMessage msg)
Event handler for BearWare.TTMessage.
static string GetVersion()
Get the DLL's version number.
ClientFlag Flags
Same as GetFlags().
static bool SetLicenseInformation(string szRegName, string szRegKey)
Set license information to disable trial mode.
const int TT_STRLEN
The maximum length of all strings used in TeamTalkBase. This value includes the zero terminator,...
MixerControl
The Windows mixer controls which can be queried by the BearWare.WindowsMixer class.
UserRight
The rights users have once they have logged on to the server.
ServerLogEvent
Events that are logged by the server, i.e. written to server's log file.
bool GetServerUsers(out User[] lpUsers)
Get all the users on the server.
bool GetServerProperties(ref ServerProperties lpServerProperties)
Get the server's properties.
BanType
Way to ban a user from either login or joining a channel.
static IntPtr StartSoundLoopbackTest(int nInputDeviceID, int nOutputDeviceID, int nSampleRate, int nChannels, bool bDuplexMode, SpeexDSP lpSpeexDSP)
Perform a record and playback test of specified sound devices along with an audio configuration and a...
bool SetUserMediaStorageDir(int nUserID, string szFolderPath, string szFileNameVars, AudioFileFormat uAFF)
Store user's audio to disk.
bool SetUserMediaStorageDir(int nUserID, string szFolderPath, string szFileNameVars, AudioFileFormat uAFF, int nStopRecordingExtraDelayMSec)
Store user's audio to disk.
bool Enable3DSoundPositioning(bool bEnable)
Enable automatically position users using 3D-sound.
bool ReleaseUserAudioBlock(AudioBlock lpAudioBlock)
Release the shared memory of an BearWare.AudioBlock.
bool SetSoundInputPreprocess(SpeexDSP lpSpeexDSP)
Enable sound preprocessor which should be used for processing audio recorded by the sound input devic...
bool SetUserStereo(int nUserID, StreamType nStreamType, bool bLeftSpeaker, bool bRightSpeaker)
Set whether a user should speak in the left, right or both speakers. This function only works if Bear...
bool EnableAudioBlockEvent(int nUserID, StreamType uStreamTypes, AudioFormat lpAudioFormat, bool bEnable)
Same as TeamTalkBase.EnableAudioBlockEvent() but option to specify audio output format.
bool CloseSoundDuplexDevices()
Shut down sound devices running in duplex mode.
bool AutoPositionUsers()
Automatically position users using 3D-sound.
bool SetSoundOutputVolume(int nVolume)
Set master volume.
bool GetSoundDeviceEffects(ref SoundDeviceEffects lpSoundDeviceEffect)
Get the audio effects that are currently enabled.
int GetSoundInputLevel()
Get the volume level of the current recorded audio.
bool SetUserPosition(int nUserID, StreamType nStreamType, float x, float y, float z)
Set the position of a user.
bool SetUserStoppedPlaybackDelay(int nUserID, StreamType nStreamType, int nDelayMSec)
Set the delay of when a user should no longer be considered as playing audio (either voice or audio f...
const int TT_SAMPLERATES_MAX
bool SetUserAudioStreamBufferSize(int nUserID, StreamType uStreamType, int nMSec)
Change the amount of media data which can be buffered in the user's playback queue.
static bool GetSoundDevices(out SoundDevice[] lpSoundDevices)
Retrieve list of sound devices for recording and playback.
static bool GetDefaultSoundDevicesEx(SoundSystem nSndSystem, ref int lpnInputDeviceID, ref int lpnOutputDeviceID)
Get the default sound devices for the specified sound system.
bool GetUserJitterControl(int nUserID, StreamType nStreamType, ref JitterConfig lpJitterConfig)
Get the de-jitter configuration for a user.
bool GetSoundInputPreprocess(ref SpeexDSP lpSpeexDSP)
Get the sound preprocessor settings which are currently in use for recorded sound input device (voice...
AudioBlock AcquireUserAudioBlock(StreamType uStreamTypes, int nUserID)
Extract the raw audio associated with the event TeamTalkBase.OnUserAudioBlock().
bool SetSoundOutputMute(bool bMuteAll)
Set all users mute.
bool InitSoundOutputSharedDevice(int nSampleRate, int nChannels, int nFrameSize)
Setup sample rate, channels and frame size of shared sound output device.
bool InitSoundDuplexDevices(int nInputDeviceID, int nOutputDeviceID)
Enable duplex mode where multiple audio streams are mixed into a single stream using software.
bool CloseSoundOutputDevice()
Shutdown the output sound device.
bool InitSoundOutputDevice(int nOutputDeviceID)
Initialize the sound output device (for audio playback).
int GetSoundInputGainLevel()
Get voice gain level of outgoing audio.
static bool RestartSoundSystem()
Reinitialize sound system (in order to detect new/removed devices).
SoundSystem
The supported sound systems.
bool SetUserVolume(int nUserID, StreamType nStreamType, int nVolume)
Set the volume of a user.
SoundDeviceFeature
Features available on a sound device. Checkout uSoundDeviceFeatures on BearWare.SoundDevice.
int GetSoundOutputVolume()
Get master volume.
static IntPtr StartSoundLoopbackTest(int nInputDeviceID, int nOutputDeviceID, int nSampleRate, int nChannels, bool bDuplexMode, AudioPreprocessor lpAudioPreprocessor, BearWare.SoundDeviceEffects lpSoundDeviceEffects)
Perform a record and playback test of specified sound devices along with an audio configuration and a...
bool SetSoundInputPreprocess(AudioPreprocessor lpAudioPreprocessor)
Enable sound preprocessor which should be used for processing audio recorded by the sound input devic...
bool GetSoundInputPreprocess(ref AudioPreprocessor lpAudioPreprocessor)
Get the sound preprocessor settings which are currently in use for recorded sound input device (voice...
bool EnableAudioBlockEvent(int nUserID, StreamType uStreamTypes, bool bEnable)
Enable/disable access to raw audio from individual users, local microphone input or muxed stream of a...
static bool GetDefaultSoundDevices(ref int lpnInputDeviceID, ref int lpnOutputDeviceID)
Get the default sound devices.
bool SetUserJitterControl(int nUserID, StreamType nStreamType, JitterConfig lpJitterConfig)
Set the configuration for de-jitter measures for a user.
static bool CloseSoundLoopbackTest(IntPtr lpTTSoundLoop)
Stop recorder and playback test.
bool SetUserMute(int nUserID, StreamType nStreamType, bool bMute)
Mute a user.
bool InitSoundInputDevice(int nInputDeviceID)
Initialize the sound input device (for recording audio).
bool SetSoundInputGainLevel(int nLevel)
Set voice gaining of recorded audio.
bool CloseSoundInputDevice()
Shutdown the input sound device.
bool InitSoundInputSharedDevice(int nSampleRate, int nChannels, int nFrameSize)
Setup sample rate, channels and frame size of shared sound input device.
bool SetSoundDeviceEffects(SoundDeviceEffects lpSoundDeviceEffect)
Set up audio effects on a sound device.
bool StartRecordingMuxedAudioFile(AudioCodec lpAudioCodec, string szAudioFileName, AudioFileFormat uAFF)
Store all audio conversations with specific BearWare.AudioCodec settings to a single file.
int GetVoiceActivationLevel()
Get voice activation level.
bool StopRecordingMuxedAudioFile(int nChannelID)
Stop recording conversations from a channel to a single file.
bool StopVideoCaptureTransmission()
Stop transmitting from video capture device.
StreamType
The types of streams which are available for transmission.
bool InsertAudioBlock(AudioBlock lpAudioBlock)
Transmit application provided raw audio in BearWare.AudioBlock-structs as #StreamType....
int GetVoiceActivationStopDelay()
Get the delay of when voice active state should be disabled.
bool StopRecordingMuxedAudioFile()
Stop an active muxed audio recording.
bool StartVideoCaptureTransmission(VideoCodec lpVideoCodec)
Start transmitting from video capture device.
bool EnableVoiceTransmission(bool bEnable)
Start/stop transmitting of voice data from sound input.
bool EnableVoiceActivation(bool bEnable)
Enable voice activation.
bool StartRecordingMuxedAudioFile(int nChannelID, string szAudioFileName, AudioFileFormat uAFF)
Store audio conversations from a specific channel into a single file.
bool SetVoiceActivationStopDelay(int nDelayMSec)
Set the delay of when voice activation should be stopped.
bool StartRecordingMuxedStreams(StreamType uStreamTypes, AudioCodec lpAudioCodec, string szAudioFileName, AudioFileFormat uAFF)
Mix multiple BearWare.StreamType into a single audio file.
bool SetVoiceActivationLevel(int nLevel)
Set voice activation level.
const int TT_CHANNELS_OPERATOR_MAX
bool GetUserStatistics(int nUserID, ref UserStatistics lpUserStatistics)
Get statistics for data and packet reception from a user.
BearWare.UserRight GetMyUserRights()
Convenience method for TeamTalkBase.GetMyUserAccount()
UserType
The types of users supported.
int GetMyUserID()
Get the local client instance's user ID.
bool GetMyUserAccount(ref UserAccount lpUserAccount)
Get the local client instance's BearWare.UserAccount.
int UserID
Same as GetMyUserID().
int UserData
Same as GetMyUserData().
UserType GetMyUserType()
Get the client instance's user type.
bool GetUser(int nUserID, ref User lpUser)
Get the user with the specified ID.
bool GetUserByUsername(string szUsername, ref User lpUser)
Get the user with the specified username.
Subscription
A user by default accepts audio, video and text messages from all users. Using subscribtions can,...
UserState
The possible states for a user. Used for BearWare.User's uUserState variable.
BearWare.UserRight UserRights
Same as GetMyUserRights().
int GetMyUserData()
If an account was used in TeamTalkBase.DoLogin() then this value will return the nUserData from the B...
TextMsgType
Text message types.
bool PaintVideoFrame(int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight, ref VideoFrame lpVideoFrame)
Paint user's video frame using a Windows' DC (device context).
bool InitVideoCaptureDevice(string szDeviceID, VideoFormat lpVideoFormat)
Initialize a video capture device.
bool ReleaseUserVideoCaptureFrame(VideoFrame lpVideoFrame)
Delete a user's video frame, acquired through TeamTalkBase.AcquireUserVideoCaptureFrame(),...
bool PaintVideoFrameEx(int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight, int XSrc, int YSrc, int nSrcWidth, int nSrcHeight, ref VideoFrame lpVideoFrame)
Paint user's video frame using a Windows' DC (device context).
VideoFrame AcquireUserVideoCaptureFrame(int nUserID, out Bitmap bmp)
Extract a user's video frame for display.
static bool GetVideoCaptureDevices(out VideoCaptureDevice[] lpVideoDevices)
Get the list of devices available for video capture.
bool CloseVideoCaptureDevice()
Close a video capture device.
FourCC
The picture format used by a capture device.
const int TT_VIDEOFORMATS_MAX
Properties to prevent server abuse.
int nCommandsLimit
Limit number of commands a user can send to the server.
int nCommandsIntervalMSec
Commands within given interval.
An audio block containing the raw audio from a user who was talking.
int nSamples
The number of samples in the raw audio array.
StreamType uStreamTypes
The stream types used to generate the AudioBlock's raw audio.
int nSampleRate
The sample rate of the raw audio.
uint uSampleIndex
The index of the first sample in lpRawAudio. Its value will be a multiple of nSamples....
int nStreamID
The ID of the stream. The stream id changes every time the user enables a new transmission using Team...
int nChannels
The number of channels used (1 for mono, 2 for stereo).
System.IntPtr lpRawAudio
The raw audio in 16-bit integer format array. The size of the array in bytes is sizeof(short) * nSamp...
Struct used for specifying which audio codec a channel uses.
SpeexVBRCodec speex_vbr
Speex codec settings if nCodec is #Codec.SPEEX_VBR_CODEC.
SpeexCodec speex
Speex codec settings if nCodec is #Codec.SPEEX_CODEC.
Codec nCodec
Specifies whether the member speex, speex_vbr or opus holds the codec settings.
OpusCodec opus
Opus codec settings if nCodec is OPUS_CODEC.
const int DEFAULT_AGC_INC_MAXDB
const int DEFAULT_AGC_GAINLEVEL
Audio configuration for clients in a channel.
AudioConfig(bool set_defaults)
int nGainLevel
Reference gain level to be used by all users.
bool bEnableAGC
Users should enable automatic gain control.
Configure the audio preprocessor specified by nPreprocessor.
WebRTCAudioPreprocessor webrtc
Used when nPreprocessor is #AudioPreprocessorType.WEBRTC_AUDIOPREPROCESSOR.
SpeexDSP speexdsp
Used when nPreprocessor is #AudioPreprocessorType.SPEEXDSP_AUDIOPREPROCESSOR.
AudioPreprocessorType nPreprocessor
The audio preprocessor to use in the union of audio preprocessors.
TTAudioPreprocessor ttpreprocessor
Used when nPreprocessor is #AudioPreprocessorType.TEAMTALK_AUDIOPREPROCESSOR.
A struct containing the properties of a banned user.
string szIPAddress
IP-address of banned user.
string szNickname
Nickname of banned user. Read-only property.
string szChannelPath
Channel where user was located when banned.
string szUsername
Username of banned user.
BanType uBanTypes
The type of ban that applies to this banned user.
string szBanTime
Date and time when user was banned. Read-only property.
A struct containing the properties of a channel.
int nTransmitUsersQueueDelayMSec
Delay for switching to next active voice user in transmitUsersQueue.
int[] transmitUsersQueue
The users currently queued for voice or media file transmission.
void AddTransmitUser(int nUserID, StreamType uStreamType)
Helper function for adding a user and BearWare.StreamType to transmitUsers.
int GetTransmitUserCount()
Get the number of users who can currently transmit to the #ChannelType.CHANNEL_CLASSROOM.
AudioConfig audiocfg
The audio configuration which users who join the channel should use.
void RemoveTransmitUser(int nUserID, StreamType uStreamType)
Helper function for removing a StreamType for a user in transmitUsers.
bool bPassword
Whether password is required to join channel. Read-only property.
string szPassword
Password to join the channel. When extracted through TeamTalkBase.GetChannel() the password will only...
long nDiskQuota
Number of bytes available for file storage.
int[] transmitUsers
List of users who can transmit in a channel.
StreamType GetTransmitStreamTypes(int nUserID)
Helper function for getting the StreamType a user can transmit by querying transmitUsers.
string szTopic
Topic of the channel.
AudioCodec audiocodec
The audio codec used by users in the channel.
int nUserData
User specific data which will be stored on persistent storage on the server if the channel type is #C...
string szOpPassword
Password to become channel operator.
int nParentID
Parent channel ID. 0 means no parent channel, i.e. it's the root channel.
int nChannelID
The channel's ID. A value from 1 - BearWare.TeamTalkBase.TT_CHANNELID_MAX.
ChannelType uChannelType
A bitmask of the type of channel based on BearWare.ChannelType.
int nMaxUsers
Max number of users in channel.
string szName
Name of the channel.
string szErrorMsg
Text message describing the error.
int nErrorNo
Error number based on ClientError.
Control timers for sending keep alive information to the server.
int nUdpConnectTimeoutMSec
The duration before the client instance should give up trying to connect to the server on UDP....
int nUdpKeepAliveRTXMSec
Client instance's interval for retransmitting UDP keep alive packets. If server hasn't responded to U...
int nUdpConnectRTXMSec
Client instance's interval for retransmitting UDP connect packets. UDP connect packets are only sent ...
int nTcpKeepAliveIntervalMSec
Client instance's interval between TeamTalkBase.DoPing() command. Read-only value....
int nUdpKeepAliveIntervalMSec
Client instance's interval between sending UDP keep alive packets. The UDP keep alive packets are use...
int nConnectionLostMSec
The duration before the TeamTalk instance should consider the client/server connection lost.
Statistics of bandwidth usage and ping times in the local client instance.
long nVoiceBytesRecv
Voice data received (on UDP).
int nSoundInputDeviceDelayMSec
Delay of sound input device until the first audio frame is delivered (in msec).
long nVideoCaptureBytesRecv
Video data received (on UDP).
int nTcpPingTimeMs
Response time to server on TCP (based on ping/pong sent at a specified interval. Set to -1 if not cur...
int nUdpServerSilenceSec
The number of seconds nothing has been received by the client on UDP.
long nMediaFileVideoBytesSent
Video from media file data sent (on UDP).
long nMediaFileVideoBytesRecv
Video from media file data received (on UDP).
long nMediaFileAudioBytesSent
Audio from media file data sent (on UDP).
long nVoiceBytesSent
Voice data sent (on UDP).
long nUdpBytesSent
Bytes sent on UDP.
long nMediaFileAudioBytesRecv
Audio from media file data received (on UDP).
long nVideoCaptureBytesSent
Video data sent (on UDP).
int nTcpServerSilenceSec
The number of seconds nothing has been received by the client on TCP.
long nUdpBytesRecv
Bytes received on UDP.
long nDesktopBytesSent
Desktop data sent (on UDP).
long nDesktopBytesRecv
Desktop data received (on UDP).
int nUdpPingTimeMs
Response time to server on UDP (based on ping/pong sent at a specified interval. Set to -1 if not cur...
A struct containing the properties of a shared desktop window.
int nSessionID
The ID of the session which the bitmap belongs to. If the session ID changes it means the user has st...
int nWidth
The width in pixels of the bitmap.
DesktopProtocol nProtocol
The desktop protocol used for transmitting the desktop window.
int nBytesPerLine
The number of bytes for each scan-line in the bitmap. Zero means 4-byte aligned.
IntPtr frameBuffer
A buffer pointing to the bitmap data (often refered to as Scan0).
int nFrameBufferSize
The size in bytes of the buffer allocate in frameBuffer. Typically nBytesPerLine * nHeight.
BitmapFormat bmpFormat
The format of the bitmap.
int nHeight
The height in pixels of the bitmap.
Configure peer verification for encrypted connection.
string szCAFile
Path to Certificate Authority (CA) Certificate in PEM format.
bool bVerifyClientOnce
Whether to only verify client's certificate once during initial connection.
int nVerifyDepth
Set limit to depth in the certificate chain during the verification procedure.
string szCertificateFile
Path to SSL certificate in PEM format.
string szPrivateKeyFile
Path to certificate's private key.
bool bVerifyPeer
Verify that peer (client or server) uses a certificate that has been generated by the Certificate Aut...
string szCADir
Path to directory containing Certificate Authority (CA) Certificates in PEM format.
A struct containing the properties of a file transfer.
bool bInbound
TRUE if download and FALSE if upload.
FileTransferStatus nStatus
Status of file transfer.
string szRemoteFileName
The filename in the channel.
string szLocalFilePath
The file path on local disk.
long nTransferred
The number of bytes transferred so far.
long nFileSize
The size of the file being transferred.
int nTransferID
The ID identifying the file transfer.
int nChannelID
The channel where the file is/will be located.
Configuration parameters for the Jitter Buffer.
int nMaxAdaptiveDelayMSec
A hard maximum delay on the adaptive delay. Only valid when higher than zero. Default = 0.
int nActiveAdaptiveDelayMSec
The current adaptive delay. When used with TeamTalkBase.SetUserJitterControl(), this value is used as...
bool bUseAdativeDejitter
Turns adaptive jitter buffering ON/OFF. Default is OFF.
int nFixedDelayMSec
The fixed delay in milliseconds. Default = 0.
OPUS audio codec settings. For detailed information about the OPUS codec check out http://www....
int nFrameSizeMSec
OPUS supports 2.5, 5, 10, 20, 40, 60, 80, 100 and 120 msec. If nFrameSizeMSec is 0 then nFrameSizeMSe...
bool bFEC
Forward error correction. Corrects errors if there's packetloss.
bool bVBR
Enable variable bitrate.
int nComplexity
Complexity of encoding (affects CPU usage). Value from 0-10.
bool bDTX
Discontinuous transmission. Enables "null" packets during silence.
int nSampleRate
The sample rate to use. Sample rate must be 8000, 12000, 16000, 24000 or 48000 Hz.
int nApplication
Application of encoded audio, VoIP or music.
bool bVBRConstraint
Enable constrained VBR. bVBR must be enabled to enable this.
int nTxIntervalMSec
Duration of audio before each transmission. Minimum is 2 msec. Recommended is 40 msec....
int nBitRate
Bitrate for encoded audio. Should be between BearWare.OpusConstants.OPUS_MIN_BITRATE and BearWare....
int nChannels
Mono = 1 or stereo = 2.
OPUS constants for BearWare.OpusCodec.
const bool DEFAULT_OPUS_FEC
const int DEFAULT_OPUS_COMPLEXITY
const bool DEFAULT_OPUS_VBR
const bool DEFAULT_OPUS_VBRCONSTRAINT
const int DEFAULT_OPUS_APPLICATION
const int OPUS_MIN_FRAMESIZE
The minimum frame size for OPUS codec. Checkout nFrameSizeMSec of BearWare.OpusCodec.
const int DEFAULT_OPUS_CHANNELS
const bool DEFAULT_OPUS_DTX
const int OPUS_MAX_BITRATE
The maximum bitrate for OPUS codec. Checkout nBitRate of BearWare.OpusCodec.
const int DEFAULT_OPUS_DELAY
const int OPUS_REALMAX_FRAMESIZE
The real maximum frame size for OPUS codec. Checkout nFrameSizeMSec of BearWare.OpusCodec....
const int OPUS_MAX_FRAMESIZE
The maximum frame size for OPUS codec. Checkout nFrameSizeMSec of BearWare.OpusCodec.
const int DEFAULT_OPUS_SAMPLERATE
const int OPUS_APPLICATION_AUDIO
Audio encoding is for music. This value should be set as nApplicaton in BearWare.OpusCodec.
const int OPUS_MIN_BITRATE
The minimum bitrate for OPUS codec. Checkout nBitRate of BearWare.OpusCodec.
const int DEFAULT_OPUS_BITRATE
const int OPUS_APPLICATION_VOIP
Audio encoding is for VoIP. This value should be set as nApplicaton in BearWare.OpusCodec.
A struct containing the properties of a file in a BearWare.Channel.
int nChannelID
The ID of the channel where the file is located.
long nFileSize
The size of the file.
string szUploadTime
Time when file was uploaded. Date/time is converted local time.
string szFileName
The name of the file.
int nFileID
The ID identifying the file.
string szUsername
Username of the person who uploaded the files.
A struct containing the properties of the server's settings.
int nMaxMediaFileTxPerSecond
The maximum number of bytes per second which the server will allow for media file packets....
int nUserTimeout
The number of seconds before a user who hasn't responded to keepalives will be kicked off the server.
bool bAutoSave
Whether the server automatically saves changes.
string szServerProtocolVersion
The version of the server's protocol.
int nMaxLoginsPerIPAddress
The maximum number of users allowed to log in with the same IP-address. 0 means disabled.
ServerLogEvent uServerLogEvents
The events that are logged on the server.
string szAccessToken
A randomly generated 256 bit access token created by the server to identify the login session....
int nMaxDesktopTxPerSecond
The maximum number of bytes per second which the server will allow for desktop packets....
int nUdpPort
The server's UDP port.
int nLoginDelayMSec
Number of msec before an IP-address can make another login attempt. If less than this amount then Tea...
int nMaxTotalTxPerSecond
The amount of bytes per second which the server will allow for packet forwarding. If this value is ex...
string szServerName
The server's name.
int nMaxLoginAttempts
The maximum number of logins with wrong password before banning user's IP-address.
string szMOTD
The message of the day. Read-only property. Use szMOTDRaw to update this property.
string szMOTDRaw
The message of the day including variables. The result of the szMOTDRaw string will be displayed in s...
int nMaxUsers
The maximum number of users allowed on the server. A user with admin account can ignore this.
int nTcpPort
The server's TCP port.
string szServerVersion
The server version.
int nMaxVoiceTxPerSecond
The maximum number of bytes per second which the server will allow for voice packets....
int nMaxVideoCaptureTxPerSecond
The maximum number of bytes per second which the server will allow for video input packets....
A struct containing the server's statistics, i.e. bandwidth usage and user activity.
long nMediaFileBytesTX
The number of bytes in media file packets sent from the server to clients.
long nVideoCaptureBytesTX
The number of bytes in video packets sent from the server to clients.
long nFilesRx
The number of bytes for file transmission received by the server.
long nDesktopBytesTX
The number of bytes in desktop packets sent from the server to clients.
long nFilesTx
The number of bytes for file transmission transmitted from the server.
long nUptimeMSec
The server's uptime in msec.
long nVoiceBytesRX
The number of bytes in audio packets received by the server from clients.
int nUsersServed
The number of users who have logged on to the server.
long nTotalBytesRX
The number of bytes received by the server from clients.
long nTotalBytesTX
The number of bytes sent from the server to clients.
long nVideoCaptureBytesRX
The number of bytes in video packets received by the server from clients.
long nDesktopBytesRX
The number of bytes in desktop packets received by the server from clients.
long nVoiceBytesTX
The number of bytes in audio packets sent from the server to clients.
long nMediaFileBytesRX
The number of bytes in media file packets received by the server from clients.
int nUsersPeak
The highest numbers of users online.
A struct which describes the properties of a window which can be shared.
IntPtr hWnd
The Windows handle of the window.
string szWindowTitle
The title of the window.
int nWndX
X coordinate of the window relative to the Windows desktop.
int nHeight
The height in pixels of the window.
int nWndY
Y coordinate of the window relative to the Windows desktop.
int nWidth
The width in pixels of the window.
const int TT_SOUNDDEVICE_ID_OPENSLES_VOICECOM
Sound device ID for Android OpenSL ES voice communication mode. This device uses the OpenSL ES' Andro...
const int TT_SOUNDDEVICE_ID_OPENSLES_DEFAULT
Sound device ID for Android OpenSL ES default audio device. Note that this sound device may also exis...
const int TT_SOUNDDEVICE_ID_TEAMTALK_VIRTUAL
Sound device ID for virtual TeamTalk sound device.
const uint TT_SOUNDDEVICE_ID_MASK
Extract sound device ID of nDeviceID in BearWare.SoundDevice by and'ing this value.
const int TT_SOUNDDEVICE_ID_VOICEPREPROCESSINGIO
Sound device ID for iOS AudioUnit subtype Voice-Processing I/O Unit. This sound device ID include the...
const uint TT_SOUNDDEVICE_ID_SHARED_FLAG
Flag/bit in nDeviceID telling if the BearWare.SoundDevice is a shared version of an existing sound de...
const int TT_SOUNDDEVICE_ID_REMOTEIO
Sound device ID for iOS AudioUnit subtype Remote I/O Unit.
Set up audio effects supported by the sound device.
bool bEnableEchoCancellation
Enable echo cancellation.
bool bEnableAGC
Enable Automatic Gain Control.
bool bEnableDenoise
Enable noise suppression.
A struct containing the properties of a sound device for either playback or recording.
int nWaveDeviceID
A Windows specific ID to the sound device.
string szDeviceID
An identifier uniquely identifying the sound device even when new sound devices are being added and r...
bool bSupports3D
Whether the sound device supports 3D-sound effects.
SoundDeviceFeature uSoundDeviceFeatures
Additional features available for this sound device. The sound device features can be used to enable ...
int[] inputSampleRates
Supported sample rates by device for recording. A zero value terminates the list of supported sample ...
int nDefaultSampleRate
The default sample rate for the sound device.
int nMaxInputChannels
The maximum number of input channels.
SoundSystem nSoundSystem
The sound system used by the sound device.
int nDeviceID
The ID of the sound device. Used for passing to TeamTalkBase.InitSoundInputDevice() and TeamTalkBase....
string szDeviceName
The name of the sound device.
int[] outputSampleRates
Supported sample rates by device for playback. A zero value terminates the list of supported sample r...
int nMaxOutputChannels
The maximum number of output channels.
An enum encapsulation the minimum, maximum and default sound levels for input and output sound device...
const int SOUND_VU_MAX
The maximum value of recorded audio.
const int SOUND_VOLUME_MAX
The maximum volume.
const int SOUND_GAIN_MIN
The minimum gain level (since it's zero it means silence).
const int SOUND_VOLUME_MIN
The minimum volume.
const int SOUND_VU_MIN
The minimum value of recorded audio.
const int SOUND_GAIN_DEFAULT
The default gain level.
const int SOUND_GAIN_MAX
The maximum gain level.
const int SOUND_VOLUME_DEFAULT
The default volume. Use this whenever possible since it requires the least amount of CPU usage.
Speex audio codec settings for Constant Bitrate mode (CBR).
int nQuality
A value from 1-10. As of DLL version 4.2 also 0 is supported.
int nTxIntervalMSec
Milliseconds of audio data before each transmission.
int nBandmode
Set to 0 for 8 KHz (narrow band), set to 1 for 16 KHz (wide band), set to 2 for 32 KHz (ultra-wide ba...
bool bStereoPlayback
Playback should be done in stereo. Doing so will disable 3d-positioning.
Speex constants for BearWare.SpeexCodec and BearWare.SpeexVBRCodec.
const int SPEEX_BANDMODE_UWIDE
Use BearWare.SpeexCodec or BearWare.SpeexVBRCodec as 32 KHz.
const bool DEFAULT_SPEEX_DTX
Default Speex DTX for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int SPEEX_NB_MAX_BITRATE
The maximum bitrate for Speex codec in 8 KHz mode, i.e. quality set to 10.
const int SPEEX_QUALITY_MAX
The maximum quality for Speex codec.
const int SPEEX_QUALITY_MIN
The minimum quality for Speex codec.
const int SPEEX_WB_MAX_BITRATE
The maximum bitrate for Speex codec in 16 KHz mode, i.e. quality set to 10.
const int SPEEX_WB_MIN_BITRATE
The minimum bitrate for Speex codec in 16 KHz mode, i.e. quality set to 0.
const int DEFAULT_SPEEX_DELAY
Default Speex delay for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int SPEEX_BANDMODE_NARROW
Use BearWare.SpeexCodec or BearWare.SpeexVBRCodec as 8 KHz.
const int SPEEX_UWB_MIN_BITRATE
The minimum bitrate for Speex codec in 32 KHz mode, i.e. quality set to 0.
const int DEFAULT_SPEEX_BITRATE
Default Speex bitrate for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int SPEEX_BANDMODE_WIDE
Use BearWare.SpeexCodec or BearWare.SpeexVBRCodec as 16 KHz.
const int SPEEX_UWB_MAX_BITRATE
The maximum bitrate for Speex codec in 32 KHz mode, i.e. quality set to 10.
const int DEFAULT_SPEEX_MAXBITRATE
Default Speex max bitrate for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int DEFAULT_SPEEX_BANDMODE
Default Speex bandmode for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const bool DEFAULT_SPEEX_SIMSTEREO
Default Speex stereo playback for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int DEFAULT_SPEEX_QUALITY
Default Speex quality for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int SPEEX_NB_MIN_BITRATE
The minimum bitrate for Speex codec in 8 KHz mode, i.e. quality set to 0.
Default values for BearWare.SpeexDSP.
const int DEFAULT_DENOISE_SUPPRESS
const int DEFAULT_ECHO_SUPPRESS_ACTIVE
const bool DEFAULT_AGC_ENABLE
const int DEFAULT_ECHO_SUPPRESS
const int DEFAULT_AGC_DEC_MAXDB
const bool DEFAULT_ECHO_ENABLE
const bool DEFAULT_DENOISE_ENABLE
const int DEFAULT_AGC_INC_MAXDB
const int DEFAULT_AGC_GAINMAXDB
const int DEFAULT_AGC_GAINLEVEL
Audio configuration specifying how recorded audio from sound input device should be preprocessed befo...
SpeexDSP(bool set_defaults)
int nMaxDecDBSec
Used so volume should not be attenuated too quickly (maximal gain decrease in dB/second)....
bool bEnableDenoise
Whether clients who join the channel should automatically enable denoising.
bool bEnableAGC
Whether clients who join a BearWare.Channel should enable AGC with the settings specified nGainLevel,...
int nMaxIncDBSec
Used so volume should not be amplified too quickly (maximal gain increase in dB/second)....
int nGainLevel
A value from 0 to 32768. Default is 8000. Value is ignored if bEnableAGC is FALSE.
int nEchoSuppressActive
Set maximum attenuation of the residual echo in dB when near end is active (negative number)....
int nEchoSuppress
Set maximum attenuation of the residual echo in dB (negative number). Default is -40....
int nMaxGainDB
Ensure volume doesn't become too loud (maximal gain in dB). Default is 30. Value is ignored if bEnabl...
bool bEnableEchoCancellation
Speex DSP is used for specifying how recorded audio from a sound input device should be preprocessed ...
int nMaxNoiseSuppressDB
Maximum attenuation of the noise in dB. Negative value! Default value is -30. Value is ignored if bEn...
Speex audio codec settings for Variable Bitrate mode (VBR).
int nTxIntervalMSec
Milliseconds of audio data before each transmission.
int nMaxBitRate
The maximum bitrate at which the audio codec is allowed to output audio. Set to zero if it should be ...
bool bDTX
Enable/disable discontinuous transmission. When enabled Speex will ignore silence,...
int nQuality
A value from 0-10. If nBitRate is non-zero it will override this value.
int nBandmode
Set to 0 for 8 KHz (narrow band), set to 1 for 16 KHz (wide band), set to 2 for 32 KHz (ultra-wide ba...
int nBitRate
The bitrate at which the audio codec should output encoded audio data. Dividing it by 8 gives roughly...
bool bStereoPlayback
Playback should be done in stereo. Doing so will disable 3d-positioning.
Use TeamTalk's internal audio preprocessor for gain audio. Same as used for TeamTalkBase....
bool bMuteLeftSpeaker
Whether to mute left speaker in stereo playback.
bool bMuteRightSpeaker
Whether to mute right speaker in stereo playback.
int nGainLevel
Gain level between BearWare.SoundLevel.SOUND_GAIN_MIN and BearWare.SoundLevel.SOUND_GAIN_MAX....
A struct containing the properties of an event.
uint uReserved
Reserved. To preserve alignment.
int nSource
The source of the event depends on wmMsg.
ClientEvent nClientEvent
The event's message number.
TTType ttType
Specifies which member to access in the union.
A struct containing the properties of a text message sent by a user.
bool bMore
Whether this text message is to be merged with next text message.
int nChannelID
Set to zero if nMsgType is TextMsgType #TextMsgType.MSGTYPE_USER or TextMsgType #TextMsgType....
int nToUserID
Set to zero if channel message.
string szMessage
The actual text message. The message can be multi-line (include EOL)
int nFromUserID
Will be set automatically on outgoing message.
string szFromUsername
The originators username.
TextMsgType nMsgType
The type of text message.
FileTransfer filetransfer
ClientErrorMsg clienterrormsg
DesktopInput desktopinput
ServerProperties serverproperties
MediaFileInfo mediafileinfo
A struct containing the properties of a user account.
string szNote
Additional notes about this user.
int nUserData
A user data field which can be used for additional information. The nUserData field of the BearWare....
string szInitChannel
User should (manually) join this channel after login. If an initial channel is specified in the user'...
UserType uUserType
A bitmask of the type of user based on UserType.
string szPassword
The account's password.
UserRight uUserRights
A bitmask based on UserRight which specifies the rights the user have who logs onto the server....
string szLastModified
Timestamp of last modification of user account. Date/time is converted local time.
int[] autoOperatorChannels
Channels where this user will automatically become channel operator when joining. The channels must b...
AbusePrevention abusePrevent
Properties which can be set to prevent abuse of a server, e.g. limit number of commands issued.
string szUsername
The account's username.
int nAudioCodecBpsLimit
Bandwidth restriction for audio codecs created by this user. This value will hold the highest bitrate...
A struct containing the properties of a user.
int nVolumeVoice
The user's voice volume level. Note that it's a virtual volume which is being set since the master vo...
int nStoppedDelayMediaFile
The delay of when a user should no longer be considered playing audio of a media file.
int nChannelID
The channel which the user is currently participating in. 0 if none. This value can change as a resul...
string szStatusMsg
The user's current status message. Invoke TeamTalkBase.DoChangeStatus() to change this value....
int nActiveAdaptiveDelayMSec
The currently active adaptive jitter delay for received voice streams for this user.
string szUsername
The szUsername of the user's BearWare.UserAccount. A user account is created by calling TeamTalkBase....
int nStoppedDelayVoice
The delay of when a user should no longer be considered as talking.
int nVolumeMediaFile
The user's voice volume level. Note that it's a virtual volume which is being set since the master vo...
bool[] stereoPlaybackMediaFile
Check what speaker a user is outputting to. If index 0 is TRUE then left speaker is playing....
Subscription uPeerSubscriptions
A bitmask of what this user subscribes to from local client instance. Invoking TeamTalkBase....
string szIPAddress
The user's IP-address. This value is set by the server.
int nUserID
The user's ID. A value from 1 - BearWare.TeamTalkBase.TT_USERID_MAX. This property is set by the serv...
string szMediaStorageDir
Store audio received from this user to this folder.
uint uVersion
The user's client version. This property is set by the server and will not change after login....
string szClientName
The name of the client application which the user is using. This is the value passed as szClientName ...
int nBufferMSecVoice
The size of the buffer (in msec) to hold voice content.
float[] soundPositionVoice
User's position when using 3D-sound (DirectSound option). Index 0 is x-axis, index 1 is y-axis and in...
UserState uUserState
A bitmask of the user's current state, e.g. talking, muted, etc.
UserType uUserType
The uUserType of the user's BearWare.UserAccount. This property is set by the server and will not cha...
int nStatusMode
The user's current status mode. Invoke TeamTalkBase.DoChangeStatus() to change this value....
string szNickname
The user's nickname. Invoking TeamTalkBase.DoChangeNickname() changes this value. Event #ClientEvent....
float[] soundPositionMediaFile
User's position when using 3D-sound (DirectSound option). Index 0 is x-axis, index 1 is y-axis and in...
bool[] stereoPlaybackVoice
Check what speaker a user is outputting to. If index 0 is TRUE then left speaker is playing....
int nUserData
The nUserData of the user's BearWare.UserAccount. This field can be use to denote e....
Subscription uLocalSubscriptions
A bitmask of what the local user subscribes to from this user. Invoking TeamTalkBase....
int nBufferMSecMediaFile
The size of the buffer (in msec) to hold media file content.
Packet reception and data statistics for a user.
long nMediaFileVideoPacketsRecv
Number of media file video packets received from user. A video frame can consist of several video pac...
long nVoicePacketsLost
Number of voice packets lost from user.
long nMediaFileAudioPacketsLost
Number of media file audio packets lost from user.
long nVideoCaptureFramesLost
Video frames which couldn't be shown because packets were lost.
long nMediaFileVideoFramesLost
Media file video frames which couldn't be shown because packets were lost.
long nMediaFileVideoFramesDropped
Number of media file video frames dropped because user application didn't retrieve video frames in ti...
long nVideoCaptureFramesDropped
Number of video frames dropped because user application didn't retrieve video frames in time.
long nVideoCaptureFramesRecv
Number of video frames received from user.
long nMediaFileVideoFramesRecv
Number of media file video frames received from user.
long nVoicePacketsRecv
Number of voice packets received from user.
long nMediaFileAudioPacketsRecv
Number of media file audio packets received from user.
long nVideoCapturePacketsRecv
Number of video packets received from user. A video frame can consist of several video packets.
A struct containing the properties of a video capture device.
string szCaptureAPI
The name of the API used to capture video.
int nVideoFormatsCount
The number of capture formats available in captureFormats array.
VideoFormat[] videoFormats
The supported capture formats.
string szDeviceID
A string identifying the device.
string szDeviceName
The name of the capture device.
Struct used for specifying the video codec to use.
Codec nCodec
Specifies member holds the codec settings. So far there is only one video codec to choose from,...
A RGB32 image where the pixels can be accessed directly in an allocated imageBuffer.
bool bKeyFrame
Whether the image acquired is a key-frame. If it is not a key-frame and there has been packet loss or...
int nFrameBufferSize
The size in bytes of the buffer allocate in frameBuffer.
int nHeight
The height in pixels of the image contained in imageBuffer.
int nStreamID
A unique identifier for the frames which are part of the same video sequence. If the stream ID change...
System.IntPtr frameBuffer
A buffer allocated internally by TeamTalkBase.
int nWidth
The width in pixels of the image contained in frameBuffer.
const int WEBM_VPX_DL_BEST_QUALITY
nEncodeDeadline value for best encoding.
const int WEBM_VPX_DL_REALTIME
nEncodeDeadline value for fastest encoding.
const int WEBM_VPX_DL_GOOD_QUALITY
nEncodeDeadline value for good encoding.
WebM video codec settings.
int nRcTargetBitrate
Same as rc_target_bitrate.
uint nEncodeDeadline
Time that should be spent on encoding a frame.
int rc_target_bitrate
Target bitrate in kbits/sec. This value must be greater than 0.
Configuration of WebRTC's echo canceller. See also TT_SetSoundDeviceEffects()
bool bEnable
Enable WebRTC echo canceller. The WebRTC echo canceller requires sound input and output devices are i...
Configuration for fine tuning gain level.
float fInitialSaturationMarginDB
float fMaxOutputNoiseLevelDBFS
float fMaxGainChangeDBPerSecond
float fExtraSaturationMarginDB
Gain level for AGC. Only active when bEnable is true.
float fGainDB
Gain level in dB. Range: 0 <= x < 50. Default: 0.
Configuration of WebRTC's gain controller 2 for AGC.
AdaptiveDigital adaptivedigital
FixedDigital fixeddigital
bool bEnable
Enable WebRTC's fixed digital gain. WebRTC's automatic gain control (AGC)
Configuration of WebRTC's level estimater.
bool bEnable
Enable level estimater. When enabled TeamTalkBase.GetSoundInputLevel() will return a value based on W...
Configuration of WebRTC's noise suppression. See also BearWare.SpeexDSP.
int nLevel
Noise suppression level. 0 = Low, 1 = Moderate, 2 = High, 3 = VeryHigh. Default: 1.
bool bEnable
Enable WebRTC noise suppression.
Configuration of WebRTC pre-amplifier.
bool bEnable
Enable pre-amplifier. Replacement for TT_SetSoundInputGainLevel()
float fFixedGainFactor
Gain factor. Default: 1.
Configuration of WebRTC's voice detection.
bool bEnable
Use WebRTC's voice detection to trigger BearWare.TeamTalkBase.OnVoiceActivation.
WebRTC's audio preprocessor.
GainController2 gaincontroller2
EchoCanceller echocanceller
VoiceDetection voicedetection
Preamplifier preamplifier
WebRTCAudioPreprocessor(bool set_defaults)
NoiseSuppression noisesuppression
LevelEstimation levelestimation
Default values for BearWare.WebRTCAudioPreprocessor.
const float DEFAULT_WEBRTC_EXTRA_SAT_MARGIN_DB
const float DEFAULT_WEBRTC_MAXGAIN_DBSEC
const float DEFAULT_WEBRTC_PREAMPLIFIER_GAINFACTOR
const bool DEFAULT_WEBRTC_NOISESUPPRESS_ENABLE
const bool DEFAULT_WEBRTC_VAD_ENABLE
const bool DEFAULT_WEBRTC_PREAMPLIFIER_ENABLE
const bool DEFAULT_WEBRTC_SAT_PROT_ENABLE
const bool DEFAULT_WEBRTC_GAINCTL_ENABLE
const float WEBRTC_GAINCONTROLLER2_FIXEDGAIN_MAX
const float DEFAULT_WEBRTC_GAINDB
const bool DEFAULT_WEBRTC_ECHO_CANCEL_ENABLE
const bool DEFAULT_WEBRTC_LEVELESTIMATION_ENABLE
const float DEFAULT_WEBRTC_INIT_SAT_MARGIN_DB
const float DEFAULT_WEBRTC_MAX_OUT_NOISE
const int DEFAULT_WEBRTC_NOISESUPPRESS_LEVEL