25 using System.Collections.Generic;
27 using System.Windows.Forms;
29 using System.Drawing.Imaging;
33 using System.Runtime.InteropServices;
92 STREAMTYPE_CHANNELMSG,
208 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
340 public const int TT_SOUNDDEVICE_ID_REMOTEIO = 0;
346 public const int TT_SOUNDDEVICE_ID_VOICEPREPROCESSINGIO = (1 | (int)TT_SOUNDDEVICE_ID_SHARED_FLAG);
351 public const int TT_SOUNDDEVICE_ID_OPENSLES_DEFAULT = 0;
356 public const int TT_SOUNDDEVICE_ID_OPENSLES_VOICECOM = 1;
365 public const int TT_SOUNDDEVICE_ID_TEAMTALK_VIRTUAL = 1978;
381 public const uint TT_SOUNDDEVICE_ID_SHARED_FLAG = 0x00000800;
387 public const uint TT_SOUNDDEVICE_ID_MASK = 0x000007FF;
400 public const int SOUND_VU_MAX = 100;
406 public const int SOUND_VU_MIN = 0;
414 public const int SOUND_VOLUME_MAX = 32000;
422 public const int SOUND_VOLUME_DEFAULT = 1000;
428 public const int SOUND_VOLUME_MIN = 0;
437 public const int SOUND_GAIN_MAX = 32000;
447 public const int SOUND_GAIN_DEFAULT = 1000;
456 public const int SOUND_GAIN_MIN = 0;
473 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
580 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
622 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
650 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
686 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
764 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
812 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
843 uMousePosX = uMousePosY = 0;
860 public const uint DESKTOPINPUT_KEYCODE_IGNORE = 0xFFFFFFFF;
869 public const ushort DESKTOPINPUT_MOUSEPOS_IGNORE = 0xFFFF;
877 public const uint DESKTOPINPUT_KEYCODE_LMOUSEBTN = 0x1000;
885 public const uint DESKTOPINPUT_KEYCODE_RMOUSEBTN = 0x1001;
893 public const uint DESKTOPINPUT_KEYCODE_MMOUSEBTN = 0x1002;
908 [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode)]
944 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
989 public const int SPEEX_BANDMODE_NARROW = 0;
991 public const int SPEEX_BANDMODE_WIDE = 1;
993 public const int SPEEX_BANDMODE_UWIDE = 2;
995 public const int SPEEX_QUALITY_MIN = 0;
997 public const int SPEEX_QUALITY_MAX = 10;
1000 public const int SPEEX_NB_MIN_BITRATE = 2150;
1003 public const int SPEEX_NB_MAX_BITRATE = 24600;
1006 public const int SPEEX_WB_MIN_BITRATE = 3950;
1009 public const int SPEEX_WB_MAX_BITRATE = 42200;
1012 public const int SPEEX_UWB_MIN_BITRATE = 4150;
1015 public const int SPEEX_UWB_MAX_BITRATE = 44000;
1018 public const int DEFAULT_SPEEX_BANDMODE = 1;
1021 public const int DEFAULT_SPEEX_QUALITY = 4;
1024 public const int DEFAULT_SPEEX_DELAY = 40;
1027 public const bool DEFAULT_SPEEX_SIMSTEREO =
false;
1030 public const int DEFAULT_SPEEX_BITRATE = 0;
1033 public const int DEFAULT_SPEEX_MAXBITRATE = 0;
1036 public const bool DEFAULT_SPEEX_DTX =
true;
1041 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1089 public const int OPUS_APPLICATION_VOIP = 2048;
1092 public const int OPUS_APPLICATION_AUDIO = 2049;
1095 public const int OPUS_MIN_BITRATE = 6000;
1098 public const int OPUS_MAX_BITRATE = 510000;
1102 public const int OPUS_MIN_FRAMESIZE = 2;
1105 public const int OPUS_MAX_FRAMESIZE = 60;
1109 public const int OPUS_REALMAX_FRAMESIZE = 120;
1111 public const int DEFAULT_OPUS_APPLICATION = OPUS_APPLICATION_VOIP;
1112 public const int DEFAULT_OPUS_SAMPLERATE = 48000;
1113 public const int DEFAULT_OPUS_CHANNELS = 1;
1114 public const int DEFAULT_OPUS_COMPLEXITY = 10;
1115 public const bool DEFAULT_OPUS_FEC =
true;
1116 public const bool DEFAULT_OPUS_DTX =
false;
1117 public const bool DEFAULT_OPUS_VBR =
true;
1118 public const bool DEFAULT_OPUS_VBRCONSTRAINT =
false;
1119 public const int DEFAULT_OPUS_BITRATE = 32000;
1120 public const int DEFAULT_OPUS_DELAY = 20;
1140 [StructLayout(LayoutKind.Explicit)]
1237 bEnableDenoise =
false;
1238 nMaxNoiseSuppressDB = 0;
1240 bEnableEchoCancellation =
false;
1242 nEchoSuppressActive = 0;
1249 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1271 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1275 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1288 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1302 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1314 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1332 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1340 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1350 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1370 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1412 echocanceller.
bEnable =
false;
1414 noisesuppression.
bEnable =
false;
1415 noisesuppression.
nLevel = 0;
1417 voicedetection.
bEnable =
false;
1419 gaincontroller2.
bEnable =
false;
1428 levelestimation.
bEnable =
false;
1436 public const bool DEFAULT_WEBRTC_PREAMPLIFIER_ENABLE =
false;
1437 public const float DEFAULT_WEBRTC_PREAMPLIFIER_GAINFACTOR = 1.0f;
1438 public const bool DEFAULT_WEBRTC_VAD_ENABLE =
false;
1439 public const bool DEFAULT_WEBRTC_LEVELESTIMATION_ENABLE =
false;
1440 public const bool DEFAULT_WEBRTC_GAINCTL_ENABLE =
false;
1441 public const float DEFAULT_WEBRTC_GAINDB = 15;
1442 public const bool DEFAULT_WEBRTC_SAT_PROT_ENABLE =
false;
1443 public const float DEFAULT_WEBRTC_INIT_SAT_MARGIN_DB = 20;
1444 public const float DEFAULT_WEBRTC_EXTRA_SAT_MARGIN_DB = 2;
1445 public const float DEFAULT_WEBRTC_MAXGAIN_DBSEC = 3;
1446 public const float DEFAULT_WEBRTC_MAX_OUT_NOISE = -50;
1447 public const bool DEFAULT_WEBRTC_NOISESUPPRESS_ENABLE =
false;
1448 public const int DEFAULT_WEBRTC_NOISESUPPRESS_LEVEL = 2;
1449 public const bool DEFAULT_WEBRTC_ECHO_CANCEL_ENABLE =
false;
1450 public const float WEBRTC_GAINCONTROLLER2_FIXEDGAIN_MAX = 49.9f;
1471 [StructLayout(LayoutKind.Explicit)]
1491 public const bool DEFAULT_AGC_ENABLE =
true;
1492 public const int DEFAULT_AGC_GAINLEVEL = 8000;
1493 public const int DEFAULT_AGC_INC_MAXDB = 12;
1494 public const int DEFAULT_AGC_DEC_MAXDB = -40;
1495 public const int DEFAULT_AGC_GAINMAXDB = 30;
1496 public const bool DEFAULT_DENOISE_ENABLE =
true;
1497 public const int DEFAULT_DENOISE_SUPPRESS = -30;
1498 public const bool DEFAULT_ECHO_ENABLE =
true;
1499 public const int DEFAULT_ECHO_SUPPRESS = -40;
1500 public const int DEFAULT_ECHO_SUPPRESS_ACTIVE = -15;
1507 [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode)]
1535 public const int WEBM_VPX_DL_REALTIME = 1;
1538 public const int WEBM_VPX_DL_GOOD_QUALITY = 1000000;
1541 public const int WEBM_VPX_DL_BEST_QUALITY = 0;
1567 [StructLayout(LayoutKind.Explicit)]
1601 [StructLayout(LayoutKind.Explicit)]
1628 public const int DEFAULT_AGC_GAINLEVEL = 8000;
1629 public const int DEFAULT_AGC_INC_MAXDB = 12;
1633 [StructLayout(LayoutKind.Explicit)]
1654 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1680 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1696 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1887 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1981 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2052 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2100 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2125 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2306 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2403 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
2409 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
2415 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
2421 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
2446 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2514 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2592 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2724 if (transmitUsers[i * 2] == 0 || transmitUsers[i * 2] == nUserID)
2729 transmitUsers[i * 2] = nUserID;
2730 transmitUsers[i * 2 + 1] |= (int)uStreamType;
2740 if (transmitUsers[i * 2] == nUserID)
2751 if (transmitUsers[i * 2] == 0)
2762 if (transmitUsers[i * 2] == nUserID)
2767 transmitUsers[i * 2] = nUserID;
2768 transmitUsers[i * 2 + 1] &= (int)~uStreamType;
2770 if (transmitUsers[i * 2 + 1] == (
int)
StreamType.STREAMTYPE_NONE)
2774 transmitUsers[i * 2] = transmitUsers[(i + 1) * 2 + 1];
2775 transmitUsers[i * 2 + 1] = transmitUsers[(i + 1) * 2 + 1];
2799 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2825 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2855 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2913 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
2964 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
3024 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
3355 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
3993 [StructLayout(LayoutKind.Sequential)]
4004 [MarshalAs(UnmanagedType.ByValArray, SizeConst = TTDLL.SIZEOF_TTMESSAGE_DATA)]
4013 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
Channel));
4014 case TTType.__CLIENTERRORMSG:
4015 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
ClientErrorMsg));
4016 case TTType.__DESKTOPINPUT:
4017 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
DesktopInput));
4018 case TTType.__FILETRANSFER:
4019 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
FileTransfer));
4020 case TTType.__MEDIAFILEINFO:
4021 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
MediaFileInfo));
4022 case TTType.__REMOTEFILE:
4023 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
RemoteFile));
4024 case TTType.__SERVERPROPERTIES:
4025 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
ServerProperties));
4026 case TTType.__SERVERSTATISTICS:
4027 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
ServerStatistics));
4028 case TTType.__TEXTMESSAGE:
4029 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
TextMessage));
4031 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
User));
4032 case TTType.__USERACCOUNT:
4033 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
UserAccount));
4034 case TTType.__BANNEDUSER :
4035 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
BannedUser));
4037 return Marshal.ReadInt32(TTDLL.TT_DBG_GETDATAPTR(ref
this)) != 0;
4039 return Marshal.ReadInt32(TTDLL.TT_DBG_GETDATAPTR(ref
this));
4040 case TTType.__STREAMTYPE :
4041 return (
StreamType)Marshal.ReadInt32(TTDLL.TT_DBG_GETDATAPTR(ref
this));
4042 case TTType.__AUDIOINPUTPROGRESS :
4043 return Marshal.PtrToStructure(TTDLL.TT_DBG_GETDATAPTR(ref
this), typeof(
AudioInputProgress));
4050 [StructLayout(LayoutKind.Explicit, Size = 5224)]
4212 public const int TT_STRLEN = 512;
4215 public const int TT_USERID_MAX = 0xFFF;
4219 public const int TT_CHANNELID_MAX = 0xFFF;
4224 public const int TT_VIDEOFORMATS_MAX = 1024;
4231 public const int TT_TRANSMITUSERS_MAX = 128;
4240 public const int TT_CLASSROOM_FREEFORALL = 0xFFF;
4244 public const int TT_CLASSROOM_USERID_INDEX = 0;
4248 public const int TT_CLASSROOM_STREAMTYPE_INDEX = 1;
4252 public const int TT_TRANSMITUSERS_FREEFORALL = 0xFFF;
4256 public const int TT_TRANSMITUSERS_USERID_INDEX = 0;
4260 public const int TT_TRANSMITUSERS_STREAMTYPE_INDEX = 1;
4275 public const int TT_LOCAL_USERID = 0;
4284 public const int TT_LOCAL_TX_USERID = 0x1002;
4293 public const int TT_MUXED_USERID = 0x1001;
4299 public const int TT_CHANNELS_OPERATOR_MAX = 16;
4304 public const int TT_TRANSMITQUEUE_MAX = 16;
4308 public const int TT_SAMPLERATES_MAX = 16;
4314 public const int TT_DESKTOPINPUT_MAX = 16;
4324 public const uint TT_MEDIAPLAYBACK_OFFSET_IGNORE = 0xFFFFFFFF;
4328 public static string GetVersion() {
return Marshal.PtrToStringAuto(TTDLL.TT_GetVersion()); }
4342 Assembly assembly = Assembly.GetExecutingAssembly();
4343 AssemblyName name = assembly.GetName();
4344 Version dllversion =
new Version(Marshal.PtrToStringUni((
c_tt.TTDLL.TT_GetVersion())));
4345 if (!name.Version.Equals(dllversion))
4347 string errmsg = String.Format(
"Invalid {2} version loaded. {2} is version {0} and {3} is version {1}",
4348 dllversion.ToString(), name.Version.ToString(),
c_tt.TTDLL.dllname,
c_tt.TTDLL.mgtdllname);
4352 System.Diagnostics.Debug.WriteLine(errmsg);
4355 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOCODEC) == Marshal.SizeOf(
new AudioCodec()));
4356 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__BANNEDUSER) == Marshal.SizeOf(
new BannedUser()));
4357 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__VIDEOFORMAT) == Marshal.SizeOf(
new VideoFormat()));
4358 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__OPUSCODEC) == Marshal.SizeOf(
new OpusCodec()));
4359 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__CHANNEL) == Marshal.SizeOf(
new Channel()));
4361 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__REMOTEFILE) == Marshal.SizeOf(
new RemoteFile()));
4362 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__FILETRANSFER) == Marshal.SizeOf(
new FileTransfer()));
4363 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__MEDIAFILESTATUS) == Marshal.SizeOf(Enum.GetUnderlyingType(typeof(
MediaFileStatus))));
4366 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__SOUNDDEVICE) == Marshal.SizeOf(
new SoundDevice()));
4367 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__SPEEXCODEC) == Marshal.SizeOf(
new SpeexCodec()));
4368 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__TEXTMESSAGE) == Marshal.SizeOf(
new TextMessage()));
4369 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__WEBMVP8CODEC) == Marshal.SizeOf(
new WebMVP8Codec()));
4370 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__TTMESSAGE) == Marshal.SizeOf(
new TTMessage()));
4371 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__USER) == Marshal.SizeOf(
new User()));
4372 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__USERACCOUNT) == Marshal.SizeOf(
new UserAccount()));
4373 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__USERSTATISTICS) == Marshal.SizeOf(
new UserStatistics()));
4375 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__VIDEOCODEC) == Marshal.SizeOf(
new VideoCodec()));
4376 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOCONFIG) == Marshal.SizeOf(
new AudioConfig()));
4377 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__SPEEXVBRCODEC) == Marshal.SizeOf(
new SpeexVBRCodec()));
4378 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__VIDEOFRAME) == Marshal.SizeOf(
new VideoFrame()));
4379 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOBLOCK) == Marshal.SizeOf(
new AudioBlock()));
4380 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOFORMAT) == Marshal.SizeOf(
new AudioFormat()));
4381 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__MEDIAFILEINFO) == Marshal.SizeOf(
new MediaFileInfo()));
4382 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__CLIENTERRORMSG) == Marshal.SizeOf(
new ClientErrorMsg()));
4383 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__DESKTOPINPUT) == Marshal.SizeOf(
new DesktopInput()));
4384 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__SPEEXDSP) == Marshal.SizeOf(
new SpeexDSP()));
4385 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__STREAMTYPE) == Marshal.SizeOf(Enum.GetUnderlyingType(typeof(
StreamType))));
4386 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__AUDIOPREPROCESSORTYPE) == Marshal.SizeOf(Enum.GetUnderlyingType(typeof(
AudioPreprocessorType))));
4391 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__CLIENTKEEPALIVE) == Marshal.SizeOf(
new ClientKeepAlive()));
4393 Debug.Assert(TTDLL.TT_DBG_SIZEOF(
TTType.__JITTERCONFIG) == Marshal.SizeOf(
new JitterConfig()));
4397 m_ttInst = TTDLL.TT_InitTeamTalkPoll();
4400 m_eventhandler =
new MyEventHandler(
this);
4402 IntPtr hWnd = m_eventhandler.Hwnd;
4404 m_eventhandler.CreateControl();
4405 IntPtr hWnd = m_eventhandler.Handle;
4407 m_ttInst = TTDLL.TT_InitTeamTalk(hWnd, MyEventHandler.WM_TEAMTALK_CLIENTEVENT);
4421 #region IDisposable Members 4428 private void DeleteMe()
4430 if (m_ttInst != IntPtr.Zero)
4432 TTDLL.TT_CloseTeamTalk(m_ttInst);
4433 m_ttInst = IntPtr.Zero;
4458 return TTDLL.TT_GetMessage(m_ttInst, ref pMsg, ref nWaitMs);
4490 return TTDLL.TT_PumpMessage(m_ttInst, nClientEvent, nIdentifier);
4503 return TTDLL.TT_GetFlags(m_ttInst);
4511 get {
return GetFlags(); }
4525 return TTDLL.TT_SetLicenseInformation(szRegName, szRegKey);
4537 if(OnConnectionSuccess != null)
4538 OnConnectionSuccess();
4541 if (OnConnectionFailed != null)
4542 OnConnectionFailed();
4545 if (OnConnectionLost != null)
4548 case ClientEvent.CLIENTEVENT_CON_MAX_PAYLOAD_UPDATED :
4549 if (OnConnectionMaxPayloadUpdated != null)
4550 OnConnectionMaxPayloadUpdated((
int)msg.
DataToObject());
4553 if (OnCmdProcessing != null)
4557 if (OnCmdError != null)
4561 if (OnCmdSuccess != null)
4562 OnCmdSuccess((
int)msg.
nSource);
4565 if (OnCmdMyselfLoggedIn != null)
4568 case ClientEvent.CLIENTEVENT_CMD_MYSELF_LOGGEDOUT:
4569 if (OnCmdMyselfLoggedOut != null)
4570 OnCmdMyselfLoggedOut();
4575 if (OnCmdMyselfKicked != null)
4578 else if (OnCmdMyselfKicked != null)
4579 OnCmdMyselfKicked(
new User());
4582 if (OnCmdUserLoggedIn != null)
4586 if (OnCmdUserLoggedOut != null)
4590 if (OnCmdUserUpdate != null)
4594 if (OnCmdUserJoinedChannel != null)
4598 if (OnCmdUserLeftChannel != null)
4602 if (OnCmdUserTextMessage != null)
4606 if (OnCmdChannelNew != null)
4610 if (OnCmdChannelUpdate != null)
4614 if (OnCmdChannelRemove != null)
4618 if (OnCmdServerUpdate != null)
4621 case ClientEvent.CLIENTEVENT_CMD_SERVERSTATISTICS :
4622 if (OnCmdServerStatistics != null)
4626 if (OnCmdFileNew != null)
4630 if (OnCmdFileRemove != null)
4634 if (OnCmdUserAccount != null)
4638 if (OnCmdBannedUser != null)
4643 if (OnUserStateChange != null)
4647 if (OnUserVideoCapture != null)
4650 case ClientEvent.CLIENTEVENT_USER_MEDIAFILE_VIDEO:
4651 if (OnUserMediaFileVideo != null)
4655 if (OnUserDesktopWindow != null)
4659 if (OnUserDesktopCursor != null)
4663 if (OnUserDesktopInput != null)
4666 case ClientEvent.CLIENTEVENT_USER_RECORD_MEDIAFILE :
4667 if(OnUserRecordMediaFile != null)
4671 if(OnUserAudioBlock != null)
4675 if(OnInternalError!= null)
4679 if(OnVoiceActivation != null)
4683 if(OnHotKeyToggle != null)
4687 if(OnHotKeyTest != null)
4691 if(OnFileTransfer != null)
4694 case ClientEvent.CLIENTEVENT_DESKTOPWINDOW_TRANSFER :
4695 if(OnDesktopWindowTransfer != null)
4699 if(OnStreamMediaFile != null)
4703 if (OnLocalMediaFile != null)
4707 if (OnAudioInput != null)
4710 case ClientEvent.CLIENTEVENT_USER_FIRSTVOICESTREAMPACKET:
4711 if (OnUserFirstVoiceStreamPacket != null)
4730 ref
int lpnOutputDeviceID)
4732 return TTDLL.TT_GetDefaultSoundDevices(ref lpnInputDeviceID, ref lpnOutputDeviceID);
4739 ref
int lpnInputDeviceID,
4740 ref
int lpnOutputDeviceID)
4742 return TTDLL.TT_GetDefaultSoundDevicesEx(nSndSystem, ref lpnInputDeviceID, ref lpnOutputDeviceID);
4755 bool b = TTDLL.TT_GetSoundDevices_NULL(IntPtr.Zero, ref count);
4757 b = TTDLL.TT_GetSoundDevices(devs, ref count);
4758 lpSoundDevices = b ? devs : null;
4778 return TTDLL.TT_RestartSoundSystem();
4785 int nSampleRate,
int nChannels,
4786 bool bDuplexMode,
SpeexDSP lpSpeexDSP)
4788 return TTDLL.TT_StartSoundLoopbackTest(nInputDeviceID, nOutputDeviceID,
4789 nSampleRate, nChannels, bDuplexMode,
4824 int nSampleRate,
int nChannels,
4828 return TTDLL.TT_StartSoundLoopbackTestEx(nInputDeviceID, nOutputDeviceID,
4829 nSampleRate, nChannels, bDuplexMode,
4830 ref lpAudioPreprocessor, ref lpSoundDeviceEffects);
4840 return TTDLL.TT_CloseSoundLoopbackTest(lpTTSoundLoop);
4872 return TTDLL.TT_InitSoundInputDevice(m_ttInst, nInputDeviceID);
4907 return TTDLL.TT_InitSoundInputSharedDevice(nSampleRate, nChannels, nFrameSize);
4940 return TTDLL.TT_InitSoundOutputDevice(m_ttInst, nOutputDeviceID);
4974 return TTDLL.TT_InitSoundOutputSharedDevice(nSampleRate, nChannels, nFrameSize);
5011 return TTDLL.TT_InitSoundDuplexDevices(m_ttInst, nInputDeviceID, nOutputDeviceID);
5034 return TTDLL.TT_CloseSoundInputDevice(m_ttInst);
5056 return TTDLL.TT_CloseSoundOutputDevice(m_ttInst);
5066 return TTDLL.TT_CloseSoundDuplexDevices(m_ttInst);
5105 return TTDLL.TT_SetSoundDeviceEffects(m_ttInst, ref lpSoundDeviceEffect);
5113 return TTDLL.TT_GetSoundDeviceEffects(m_ttInst, ref lpSoundDeviceEffect);
5133 return TTDLL.TT_GetSoundInputLevel(m_ttInst);
5152 return TTDLL.TT_SetSoundInputGainLevel(m_ttInst, nLevel);
5162 return TTDLL.TT_GetSoundInputGainLevel(m_ttInst);
5182 return TTDLL.TT_SetSoundInputPreprocess(m_ttInst, ref lpSpeexDSP);
5195 return TTDLL.TT_GetSoundInputPreprocess(m_ttInst, ref lpSpeexDSP);
5210 return TTDLL.TT_SetSoundInputPreprocessEx(m_ttInst, ref lpAudioPreprocessor);
5222 return TTDLL.TT_GetSoundInputPreprocessEx(m_ttInst, ref lpAudioPreprocessor);
5233 return TTDLL.TT_SetSoundOutputVolume(m_ttInst, nVolume);
5243 return TTDLL.TT_GetSoundOutputVolume(m_ttInst);
5254 return TTDLL.TT_SetSoundOutputMute(m_ttInst, bMuteAll);
5268 return TTDLL.TT_Enable3DSoundPositioning(m_ttInst, bEnable);
5281 return TTDLL.TT_AutoPositionUsers(m_ttInst);
5350 return TTDLL.TT_EnableAudioBlockEvent(m_ttInst, nUserID, uStreamTypes, bEnable);
5383 return TTDLL.TT_EnableAudioBlockEventEx(m_ttInst, nUserID, uStreamTypes, ref lpAudioFormat, bEnable);
5421 return TTDLL.TT_InsertAudioBlock(m_ttInst, ref lpAudioBlock);
5443 return TTDLL.TT_EnableVoiceTransmission(m_ttInst, bEnable);
5473 return TTDLL.TT_EnableVoiceActivation(m_ttInst, bEnable);
5491 return TTDLL.TT_SetVoiceActivationLevel(m_ttInst, nLevel);
5501 return TTDLL.TT_GetVoiceActivationLevel(m_ttInst);
5517 return TTDLL.TT_SetVoiceActivationStopDelay(m_ttInst, nDelayMSec);
5531 return TTDLL.TT_GetVoiceActivationStopDelay(m_ttInst);
5577 string szAudioFileName,
5580 return TTDLL.TT_StartRecordingMuxedAudioFile(m_ttInst,
5606 string szAudioFileName,
5609 return TTDLL.TT_StartRecordingMuxedAudioFileEx(m_ttInst,
5649 string szAudioFileName,
5652 return TTDLL.TT_StartRecordingMuxedStreams(m_ttInst, uStreamTypes, ref lpAudioCodec, szAudioFileName, uAFF);
5668 return TTDLL.TT_StopRecordingMuxedAudioFile(m_ttInst);
5679 return TTDLL.TT_StopRecordingMuxedAudioFileEx(m_ttInst, nChannelID);
5706 return TTDLL.TT_StartVideoCaptureTransmission(m_ttInst, ref lpVideoCodec);
5715 return TTDLL.TT_StopVideoCaptureTransmission(m_ttInst);
5734 int count = devs.Length;
5735 bool b = TTDLL.TT_GetVideoCaptureDevices(devs, ref count);
5739 for (
int i = 0; i < count; i++)
5740 lpVideoDevices[i] = devs[i];
5742 else lpVideoDevices = null;
5760 return TTDLL.TT_InitVideoCaptureDevice(m_ttInst, szDeviceID, ref lpVideoFormat);
5768 return TTDLL.TT_CloseVideoCaptureDevice(m_ttInst);
5792 return TTDLL.TT_PaintVideoFrame(nUserID, hDC, XDest, YDest, nDestWidth,
5793 nDestHeight, ref lpVideoFrame);
5839 return TTDLL.TT_PaintVideoFrameEx(nUserID, hDC, XDest, YDest, nDestWidth, nDestHeight,
5840 XSrc, YSrc, nSrcWidth, nSrcHeight,
5865 IntPtr ptr = TTDLL.TT_AcquireUserVideoCaptureFrame(m_ttInst, nUserID);
5866 if(ptr == IntPtr.Zero)
5872 PixelFormat pixelformat = PixelFormat.Format32bppRgb;
5877 Dictionary<IntPtr, IntPtr> vidcapframes =
new Dictionary<IntPtr, IntPtr>();
5889 if (vidcapframes.TryGetValue(lpVideoFrame.
frameBuffer, out ptr))
5892 return TTDLL.TT_ReleaseUserVideoCaptureFrame(m_ttInst, ptr);
5957 return TTDLL.TT_StartStreamingMediaFileToChannel(m_ttInst, szMediaFilePath,
5994 return TTDLL.TT_StartStreamingMediaFileToChannelEx(m_ttInst, szMediaFilePath,
5995 ref lpMediaFilePlayback,
6018 return TTDLL.TT_UpdateStreamingMediaFileToChannel(m_ttInst, ref lpMediaFilePlayback, ref lpVideoCodec);
6030 return TTDLL.TT_StopStreamingMediaFileToChannel(m_ttInst);
6059 return TTDLL.TT_InitLocalPlayback(m_ttInst, szMediaFilePath, ref lpMediaFilePlayback);
6076 return TTDLL.TT_UpdateLocalPlayback(m_ttInst, nPlaybackSessionID, ref lpMediaFilePlayback);
6089 return TTDLL.TT_StopLocalPlayback(m_ttInst, nPlaybackSessionID);
6102 return TTDLL.TT_GetMediaFileInfo(szMediaFilePath, ref lpMediaFileInfo);
6127 IntPtr ptr = TTDLL.TT_AcquireUserMediaVideoFrame(m_ttInst, nUserID);
6128 if (ptr == IntPtr.Zero)
6134 PixelFormat pixelformat = PixelFormat.Format32bppRgb;
6149 if (mediaframes.TryGetValue(lpVideoFrame.
frameBuffer, out ptr))
6152 return TTDLL.TT_ReleaseUserMediaVideoFrame(m_ttInst, ptr);
6157 Dictionary<IntPtr, IntPtr> mediaframes =
new Dictionary<IntPtr, IntPtr>();
6204 return TTDLL.TT_SendDesktopWindow(m_ttInst, ref lpDesktopWindow, nConvertBmpFormat);
6216 return TTDLL.TT_CloseDesktopWindow(m_ttInst);
6238 IntPtr ptr = TTDLL.TT_Palette_GetColorTable(nBmpPalette, nIndex);
6242 return Color.FromArgb(Marshal.ReadInt32(ptr));
6261 return TTDLL.TT_SendDesktopWindowFromHWND(m_ttInst, hWnd, nBitmapFormat, nDesktopProtocol);
6285 return TTDLL.TT_PaintDesktopWindow(m_ttInst, nUserID, hDC, XDest, YDest, nDestWidth, nDestHeight);
6331 return TTDLL.TT_PaintDesktopWindowEx(m_ttInst, nUserID, hDC, XDest,
6332 YDest, nDestWidth, nDestHeight,
6333 XSrc, YSrc, nSrcWidth, nSrcHeight);
6351 return TTDLL.TT_SendDesktopCursorPosition(m_ttInst, nPosX, nPosY);
6380 return TTDLL.TT_SendDesktopInput(m_ttInst, nUserID, lpDesktopInputs, lpDesktopInputs.Length);
6408 IntPtr ptr = TTDLL.TT_AcquireUserDesktopWindow(m_ttInst, nUserID);
6409 if (ptr == IntPtr.Zero)
6412 desktopwindows.Add(lpDesktopWindow.
frameBuffer, ptr);
6413 return lpDesktopWindow;
6424 IntPtr ptr = TTDLL.TT_AcquireUserDesktopWindowEx(m_ttInst, nUserID, nBitmapFormat);
6425 if (ptr == IntPtr.Zero)
6428 desktopwindows.Add(lpDesktopWindow.
frameBuffer, ptr);
6429 return lpDesktopWindow;
6432 Dictionary<IntPtr, IntPtr> desktopwindows =
new Dictionary<IntPtr, IntPtr>();
6438 if (desktopwindows.TryGetValue(lpDesktopWindow.
frameBuffer, out ptr))
6440 desktopwindows.Remove(lpDesktopWindow.
frameBuffer);
6441 return TTDLL.TT_ReleaseUserDesktopWindow(m_ttInst, ptr);
6464 return TTDLL.TT_SetEncryptionContext(m_ttInst, ref lpEncryptionContext);
6502 return TTDLL.TT_Connect(m_ttInst, szHostAddress, nTcpPort, nUdpPort,
6503 nLocalTcpPort, nLocalUdpPort, bEncrypted);
6537 return TTDLL.TT_ConnectSysID(m_ttInst, szHostAddress,
6538 nTcpPort, nUdpPort, nLocalTcpPort,
6539 nLocalUdpPort, bEncrypted, szSystemID);
6565 string szBindIPAddr,
6570 return TTDLL.TT_ConnectEx(m_ttInst, szHostAddress, nTcpPort, nUdpPort,
6571 szBindIPAddr, nLocalTcpPort, nLocalUdpPort,
6581 return TTDLL.TT_Disconnect(m_ttInst);
6594 return TTDLL.TT_QueryMaxPayload(m_ttInst, nUserID);
6603 return TTDLL.TT_GetClientStatistics(m_ttInst, ref lpClientStatistics);
6622 return TTDLL.TT_SetClientKeepAlive(m_ttInst, ref lpClientKeepAlive);
6633 return TTDLL.TT_GetClientKeepAlive(m_ttInst, ref lpClientKeepAlive);
6659 return TTDLL.TT_DoPing(m_ttInst);
6673 public int DoLogin(
string szNickname,
string szUsername,
string szPassword)
6675 return TTDLL.TT_DoLogin(m_ttInst, szNickname, szUsername, szPassword);
6707 public int DoLoginEx(
string szNickname,
string szUsername,
string szPassword,
6708 string szClientName)
6710 return TTDLL.TT_DoLoginEx(m_ttInst, szNickname, szUsername, szPassword, szClientName);
6727 return TTDLL.TT_DoLogout(m_ttInst);
6770 return TTDLL.TT_DoJoinChannel(m_ttInst, ref lpChannel);
6797 return TTDLL.TT_DoJoinChannelByID(m_ttInst, nChannelID, szPassword);
6820 return TTDLL.TT_DoLeaveChannel(m_ttInst);
6841 return TTDLL.TT_DoChangeNickname(m_ttInst, szNewNick);
6864 return TTDLL.TT_DoChangeStatus(m_ttInst, nStatusMode, szStatusMessage);
6886 return TTDLL.TT_DoTextMessage(m_ttInst, ref lpTextMessage);
6908 public int DoChannelOp(
int nUserID,
int nChannelID,
bool bMakeOperator)
6910 return TTDLL.TT_DoChannelOp(m_ttInst, nUserID, nChannelID, bMakeOperator);
6933 string szOpPassword,
6936 return TTDLL.TT_DoChannelOpEx(m_ttInst, nUserID, nChannelID, szOpPassword, bMakeOperator);
6962 return TTDLL.TT_DoKickUser(m_ttInst, nUserID, nChannelID);
7000 return TTDLL.TT_DoSendFile(m_ttInst, nChannelID, szLocalFilePath);
7031 public int DoRecvFile(
int nChannelID,
int nFileID,
string szLocalFilePath)
7033 return TTDLL.TT_DoRecvFile(m_ttInst, nChannelID, nFileID, szLocalFilePath);
7059 return TTDLL.TT_DoDeleteFile(m_ttInst, nChannelID, nFileID);
7077 return TTDLL.TT_DoSubscribe(m_ttInst, nUserID, uSubscriptions);
7096 return TTDLL.TT_DoUnsubscribe(m_ttInst, nUserID, uSubscriptions);
7125 return TTDLL.TT_DoMakeChannel(m_ttInst, ref lpChannel);
7161 return TTDLL.TT_DoUpdateChannel(m_ttInst, ref lpChannel);
7183 return TTDLL.TT_DoRemoveChannel(m_ttInst, nChannelID);
7206 return TTDLL.TT_DoMoveUser(m_ttInst, nUserID, nChannelID);
7226 return TTDLL.TT_DoUpdateServer(m_ttInst, ref lpServerProperties);
7254 return TTDLL.TT_DoListUserAccounts(m_ttInst, nIndex, nCount);
7280 return TTDLL.TT_DoNewUserAccount(m_ttInst, ref lpUserAccount);
7302 return TTDLL.TT_DoDeleteUserAccount(m_ttInst, szUsername);
7333 return TTDLL.TT_DoBanUser(m_ttInst, nUserID, nChannelID);
7349 return TTDLL.TT_DoBanUserEx(m_ttInst, nUserID, uBanTypes);
7372 return TTDLL.TT_DoBan(m_ttInst, ref lpBannedUser);
7397 return TTDLL.TT_DoBanIPAddress(m_ttInst, szIPAddress, nChannelID);
7422 return TTDLL.TT_DoUnBanUser(m_ttInst, szIPAddress, nChannelID);
7436 return TTDLL.TT_DoUnBanUserEx(m_ttInst, ref lpBannedUser);
7461 return TTDLL.TT_DoListBans(m_ttInst, nChannelID, nIndex, nCount);
7482 return TTDLL.TT_DoSaveConfig(m_ttInst);
7502 return TTDLL.TT_DoQueryServerStats(m_ttInst);
7518 return TTDLL.TT_DoQuit(m_ttInst);
7533 return TTDLL.TT_GetServerProperties(m_ttInst, ref lpServerProperties);
7548 bool b = TTDLL.TT_GetServerUsers_NULL(m_ttInst, IntPtr.Zero, ref count);
7550 b = TTDLL.TT_GetServerUsers(m_ttInst, users, ref count);
7551 lpUsers = b ? users : null;
7568 return TTDLL.TT_GetRootChannelID(m_ttInst);
7578 return TTDLL.TT_GetMyChannelID(m_ttInst);
7583 public int ChannelID {
get {
return GetMyChannelID(); } }
7593 return TTDLL.TT_GetChannel(m_ttInst, nChannelID, ref lpChannel);
7604 bool b = TTDLL.TT_GetChannelPath(m_ttInst, nChannelID, ptr);
7606 szChannelPath = Marshal.PtrToStringUni(ptr);
7607 Marshal.FreeHGlobal(ptr);
7618 return TTDLL.TT_GetChannelIDFromPath(m_ttInst, szChannelPath);
7631 bool b = TTDLL.TT_GetChannelUsers_NULL(m_ttInst, nChannelID, IntPtr.Zero, ref count);
7633 b = TTDLL.TT_GetChannelUsers(m_ttInst, nChannelID, users, ref count);
7634 lpUsers = b ? users : null;
7648 bool b = TTDLL.TT_GetChannelFiles_NULL(m_ttInst, nChannelID, IntPtr.Zero, ref count);
7650 b = TTDLL.TT_GetChannelFiles(m_ttInst, nChannelID, files, ref count);
7651 lpRemoteFiles = b ? files : null;
7663 return TTDLL.TT_GetChannelFile(m_ttInst, nChannelID, nFileID, ref lpRemoteFile);
7673 return TTDLL.TT_IsChannelOperator(m_ttInst, nUserID, nChannelID);
7684 bool b = TTDLL.TT_GetServerChannels_NULL(m_ttInst, IntPtr.Zero, ref count);
7686 b = TTDLL.TT_GetServerChannels(m_ttInst, channels, ref count);
7687 lpChannels = b ? channels : null;
7705 return TTDLL.TT_GetMyUserID(m_ttInst);
7720 return TTDLL.TT_GetMyUserAccount(m_ttInst, ref lpUserAccount);
7726 public int UserID {
get {
return GetMyUserID(); } }
7740 return TTDLL.TT_GetMyUserType(m_ttInst);
7751 public BearWare.UserRight UserRights {
get {
return GetMyUserRights(); } }
7756 return TTDLL.TT_GetMyUserRights(m_ttInst);
7770 return TTDLL.TT_GetMyUserData(m_ttInst);
7776 public int UserData {
get {
return GetMyUserData(); } }
7786 return TTDLL.TT_GetUser(m_ttInst, nUserID, ref lpUser);
7795 return TTDLL.TT_GetUserStatistics(m_ttInst, nUserID, ref lpUserStatistics);
7807 return TTDLL.TT_GetUserByUsername(m_ttInst, szUsername, ref lpUser);
7827 return TTDLL.TT_SetUserVolume(m_ttInst, nUserID, nStreamType, nVolume);
7842 return TTDLL.TT_SetUserMute(m_ttInst, nUserID, nStreamType, bMute);
7860 return TTDLL.TT_SetUserStoppedPlaybackDelay(m_ttInst, nUserID, nStreamType, nDelayMSec);
7891 return TTDLL.TT_SetUserJitterControl(m_ttInst, nUserID, nStreamType, ref lpJitterConfig);
7908 return TTDLL.TT_GetUserJitterControl(m_ttInst, nUserID, nStreamType, ref lpJitterConfig);
7927 float x,
float y,
float z)
7929 return TTDLL.TT_SetUserPosition(m_ttInst, nUserID, nStreamType, x, y, z);
7944 return TTDLL.TT_SetUserStereo(m_ttInst, nUserID, nStreamType, bLeftSpeaker, bRightSpeaker);
7984 return TTDLL.TT_SetUserMediaStorageDir(m_ttInst, nUserID, szFolderPath, szFileNameVars, uAFF);
8014 return TTDLL.TT_SetUserMediaStorageDirEx(m_ttInst, nUserID, szFolderPath, szFileNameVars, uAFF, nStopRecordingExtraDelayMSec);
8044 return TTDLL.TT_SetUserAudioStreamBufferSize(m_ttInst, nUserID, uStreamType, nMSec);
8067 IntPtr ptr = TTDLL.TT_AcquireUserAudioBlock(m_ttInst, uStreamTypes, nUserID);
8068 if (ptr == IntPtr.Zero)
8071 audioblocks.Add(lpAudioBlock.
lpRawAudio, ptr);
8072 return lpAudioBlock;
8075 Dictionary<IntPtr, IntPtr> audioblocks =
new Dictionary<IntPtr, IntPtr>();
8093 if (audioblocks.TryGetValue(lpAudioBlock.
lpRawAudio, out ptr))
8096 return TTDLL.TT_ReleaseUserAudioBlock(m_ttInst, ptr);
8115 return TTDLL.TT_GetFileTransferInfo(m_ttInst, nTransferID, ref lpFileTransfer);
8128 return TTDLL.TT_CancelFileTransfer(m_ttInst, nTransferID);
8144 TTDLL.TT_GetErrorMessage((
int)nError, ptr);
8145 string s = Marshal.PtrToStringUni(ptr);
8146 Marshal.FreeHGlobal(ptr);
8178 return TTDLL.TT_HotKey_Register(m_ttInst, nHotKeyID, lpnVKCodes, lpnVKCodes.Length);
8187 return TTDLL.TT_HotKey_Unregister(m_ttInst, nHotKeyID);
8196 return TTDLL.TT_HotKey_IsActive(m_ttInst, nHotKeyID);
8209 if (m_eventhandler != null)
8212 IntPtr hWnd = m_eventhandler.Hwnd;
8214 IntPtr hWnd = m_eventhandler.Handle;
8216 return TTDLL.TT_HotKey_InstallTestHook(m_ttInst, hWnd,
8217 MyEventHandler.WM_TEAMTALK_CLIENTEVENT);
8228 return TTDLL.TT_HotKey_RemoveTestHook(m_ttInst);
8239 bool b = TTDLL.TT_HotKey_GetKeyString(m_ttInst, nVKCode, ptr);
8241 szKeyName = Marshal.PtrToStringUni(ptr);
8242 Marshal.FreeHGlobal(ptr);
8249 return TTDLL.TT_DBG_SetSoundInputTone(m_ttInst, uStreamTypes, nFrequency);
8256 return TTDLL.TT_DBG_WriteAudioFileTone(ref lpMediaFileInfo, nFrequency);
8265 public delegate
void Connection();
8297 public delegate
void MaxPayloadUpdate(
int nPayloadSize);
8315 public delegate
void CommandProcessing(
int nCmdID,
bool bActive);
8333 public delegate
void CommandError(
int nCmdID,
ClientErrorMsg clienterrormsg);
8348 public delegate
void CommandSuccess(
int nCmdID);
8364 public delegate
void MyselfLoggedIn(
int nMyUserID,
UserAccount useraccount);
8377 public delegate
void MyselfLoggedOut();
8392 public delegate
void MyselfKicked(
User user);
8404 public delegate
void UserUpdate(
User user);
8409 public delegate
void UserStreamUpdate(
User user,
int nStreamID);
8453 public delegate
void UserTextMessage(
TextMessage textmessage);
8464 public delegate
void ChannelUpdate(
Channel channel);
8505 public delegate
void FileUpdate(
RemoteFile remotefile);
8520 public delegate
void ListUserAccount(
UserAccount useraccount);
8527 public delegate
void ListBannedUser(
BannedUser banneduser);
8545 public delegate
void UserVideoFrame(
int nUserID,
int nStreamID);
8567 public delegate
void NewDesktopWindow(
int nUserID,
int nStreamID);
8580 public delegate
void UserDesktopInput(
int nSrcUserID,
DesktopInput desktopinput);
8597 public delegate
void UserRecordMediaFile(
int nUserID,
MediaFileInfo mediafileinfo);
8606 public delegate
void NewAudioBlock(
int nUserID,
StreamType nStreamType);
8620 public delegate
void ErrorOccured(
ClientErrorMsg clienterrormsg);
8630 public delegate
void VoiceActivation(
bool bVoiceActive);
8643 public delegate
void HotKeyToggle(
int nHotKeyID,
bool bActive);
8659 public delegate
void HotKeyTest(
int nVkCode,
bool bActive);
8682 public delegate
void FileTransferUpdate(
FileTransfer filetransfer);
8706 public delegate
void DesktopTransferUpdate(
int nSessionID,
int nBytesRemain);
8720 public delegate
void StreamMediaFile(
MediaFileInfo mediafileinfo);
8729 public delegate
void LocalMediaFile(
MediaFileInfo mediafileinfo);
8749 private IntPtr m_ttInst;
8751 c_tt.MyEventHandler m_eventhandler;
8764 public const int DEFAULT_TCPPORT = 10333;
8765 public const int DEFAULT_UDPPORT = 10333;
8781 public const int DEFAULT_TCPPORT = 10443;
8782 public const int DEFAULT_UDPPORT = 10443;
8862 return TTDLL.TT_Mixer_GetMixerCount();
8871 ref
string szMixerName)
8874 bool b = TTDLL.TT_Mixer_GetMixerName(nMixerIndex, ptr);
8876 szMixerName = Marshal.PtrToStringUni(ptr);
8878 Marshal.FreeHGlobal(ptr);
8889 ref
string szMixerName)
8892 bool b = TTDLL.TT_Mixer_GetWaveInName(nWaveDeviceID, ptr);
8894 szMixerName = Marshal.PtrToStringUni(ptr);
8895 Marshal.FreeHGlobal(ptr);
8906 ref
string szMixerName)
8909 bool b = TTDLL.TT_Mixer_GetWaveOutName(nWaveDeviceID, ptr);
8911 szMixerName = Marshal.PtrToStringUni(ptr);
8913 Marshal.FreeHGlobal(ptr);
8929 return TTDLL.TT_Mixer_SetWaveOutMute(nWaveDeviceID, nControl, bMute);
8942 return TTDLL.TT_Mixer_GetWaveOutMute(nWaveDeviceID, nControl);
8954 return TTDLL.TT_Mixer_SetWaveOutVolume(nWaveDeviceID, nControl, nVolume);
8966 return TTDLL.TT_Mixer_GetWaveOutVolume(nWaveDeviceID, nControl);
8977 return TTDLL.TT_Mixer_SetWaveInSelected(nWaveDeviceID, nControl);
8989 return TTDLL.TT_Mixer_GetWaveInSelected(nWaveDeviceID, nControl);
9001 return TTDLL.TT_Mixer_SetWaveInVolume(nWaveDeviceID, nControl, nVolume);
9013 return TTDLL.TT_Mixer_GetWaveInVolume(nWaveDeviceID, nControl);
9023 return TTDLL.TT_Mixer_SetWaveInBoost(nWaveDeviceID, bEnable);
9033 return TTDLL.TT_Mixer_GetWaveInBoost(nWaveDeviceID);
9043 return TTDLL.TT_Mixer_SetWaveInMute(nWaveDeviceID, bEnable);
9053 return TTDLL.TT_Mixer_GetWaveInMute(nWaveDeviceID);
9065 return TTDLL.TT_Mixer_GetWaveInControlCount(nWaveDeviceID);
9081 bool b = TTDLL.TT_Mixer_GetWaveInControlName(nWaveDeviceID, nControlIndex, ptr);
9083 szDeviceName = Marshal.PtrToStringUni(ptr);
9084 Marshal.FreeHGlobal(ptr);
9098 return TTDLL.TT_Mixer_SetWaveInControlSelected(nWaveDeviceID, nControlIndex);
9111 return TTDLL.TT_Mixer_GetWaveInControlSelected(nWaveDeviceID, nControlIndex);
9131 return TTDLL.TT_Firewall_IsEnabled();
9144 return TTDLL.TT_Firewall_Enable(bEnable);
9154 return TTDLL.TT_Firewall_AppExceptionExists(szExecutable);
9167 return TTDLL.TT_Firewall_AddAppException(szName, szExecutable);
9180 return TTDLL.TT_Firewall_RemoveAppException(szExecutable);
9188 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
9215 return TTDLL.TT_Windows_GetDesktopActiveHWND();
9221 return TTDLL.TT_Windows_GetDesktopHWND();
9226 ref
System.IntPtr lpHWnd)
9228 return TTDLL.TT_Windows_GetDesktopWindowHWND(nIndex, ref lpHWnd);
9236 return TTDLL.TT_Windows_GetWindow(hWnd, ref lpShareWindow);
9262 lpTranslatedDesktopInputs =
new DesktopInput[lpDesktopInputs.Length];
9263 return TTDLL.TT_DesktopInput_KeyTranslate(nTranslate, lpDesktopInputs,
9264 lpTranslatedDesktopInputs,
9265 lpDesktopInputs.Length);
9290 return TTDLL.TT_DesktopInput_Execute(lpDesktopInputs, lpDesktopInputs.Length);
bool SetSoundInputPreprocess(AudioPreprocessor lpAudioPreprocessor)
Enable sound preprocessor which should be used for processing audio recorded by the sound input devic...
bool DBG_SetSoundInputTone(StreamType uStreamTypes, int nFrequency)
AbusePrevention abusePrevent
Properties which can be set to prevent abuse of a server, e.g. limit number of commands issued...
UserRight uUserRights
A bitmask based on BearWare.UserRight which specifies the rights the user have who logs onto the serv...
int nMaxNoiseSuppressDB
Maximum attenuation of the noise in dB. Negative value! Default value is -30. Value is ignored if bEn...
BanType
Way to ban a user from either login or joining a channel.
bool InitSoundOutputDevice(int nOutputDeviceID)
Initialize the sound output device (for audio playback).
A channel which persists even when the last user leaves the channel.
A new user logged on to the server.
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...
User left a channel is logged to file by the server.
Command indicating success.
static bool Enable(bool bEnable)
Enable/disable the Windows Firewall.
bool bVBR
Enable variable bitrate.
bool bMore
Whether this text message is to be merged with next text message.
static int GetWaveInSelected(int nWaveDeviceID, MixerControl nControl)
Get the selected state of a Windows Mixer Wave-In device from the 'enum' of devices.
User deleted a file is logged to file by the server.
HotKeyToggle OnHotKeyToggle
A hotkey has been acticated or deactivated.
The ban applies to the channel specified in the szChannel of BearWare.BannedUser. Otherwise the ban a...
If set the client is currently streaming the video of a media file. When streaming a video file the B...
Used to denote nothing selected.
int nBufferMSecVoice
The size of the buffer (in msec) to hold voice content.
Default values for BearWare.WebRTCAudioPreprocessor.
bool bPassword
Whether password is required to join channel. Read-only property.
UserTextMessage OnCmdUserTextMessage
A user has sent a text-message.
Audio codec used by channel failed to initialize. Ensure the settings specified in BearWare...
Control timers for sending keep alive information to the server.
long nVideoCaptureFramesDropped
Number of video frames dropped because user application didn't retrieve video frames in time...
DesktopWindow AcquireUserDesktopWindow(int nUserID)
Get a user's desktop window (bitmap image).
Used for tracking when a desktop window has been transmitted to the server.
Login failed due to maximum number of users on server.
bool bStereoPlayback
Playback should be done in stereo. Doing so will disable 3d-positioning.
static int GetWaveInMute(int nWaveDeviceID)
See if microphone is muted.
A user has joined a channel.
ChannelUpdate OnCmdChannelNew
A new channel has been created.
SoundSystem
The supported sound systems.
Error during file transfer.
bool SetUserJitterControl(int nUserID, StreamType nStreamType, JitterConfig lpJitterConfig)
Set the configuration for de-jitter measures for a user.
Desktop protocol based on ZLIB for image compression and UDP for data transmission.
int nSamples
The number of samples in the raw audio array.
string szPrivateKeyFile
Path to certificate's private key.
Only channel operators (and administrators) will receive audio/video/desktop transmissions. Default channel users will only see transmissions from operators and/or administrators.
Same as BearWare.SoundSystem.SOUNDSYSTEM_AUDIOUNIT.
UserType GetMyUserType()
Get the client instance's user type.
AudioConfig(bool set_defaults)
UserVideoFrame OnUserMediaFileVideo
A new video frame was received from a user.
User can see users in all other channels.
bool ReleaseUserVideoCaptureFrame(VideoFrame lpVideoFrame)
Delete a user's video frame, acquired through TeamTalkBase.AcquireUserVideoCaptureFrame(), so its allocated resources can be released.
long nFilesRx
The number of bytes for file transmission received by the server.
Connection OnConnectionFailed
Failed to connect to server.
The bitmap is a 24-bit colored bitmap. The maximum size of a 24-bit bitmap is 4095 blocks of 85 by 16...
Translate from TTKEYCODE to Windows scan-code.
A RGB32 image where the pixels can be accessed directly in an allocated imageBuffer.
A client logged out of the server.
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 nUserData
The nUserData of the user's BearWare.UserAccount. This field can be use to denote e...
Codec
The codecs supported.
static bool GetMixerName(int nMixerIndex, ref string szMixerName)
Get the name of a Windows Mixer based on its name.
User was banned is logged to file by the server.
A sound output device failed.
const int DEFAULT_AGC_GAINMAXDB
User updated a channel is logged to file by the server.
int nMaxMediaFileTxPerSecond
The maximum number of bytes per second which the server will allow for media file packets...
User was moved to another channel is logged to file by the server.
const bool DEFAULT_AGC_ENABLE
bool StopRecordingMuxedAudioFile(int nChannelID)
Stop recording conversations from a channel to a single file.
int nMaxTotalTxPerSecond
The amount of bytes per second which the server will allow for packet forwarding. If this value is ex...
static bool SetWaveInBoost(int nWaveDeviceID, bool bEnable)
Enable and disable microphone boost.
BearWare.TTMessage event queue overflowed.
int [] outputSampleRates
Supported sample rates by device for playback. A zero value terminates the list of supported sample r...
User is allowed to stream video files to channel.
static System.IntPtr GetDesktopHWND()
Get the handle (HWND) of the Windows desktop (full desktop).
bool ReleaseUserDesktopWindow(DesktopWindow lpDesktopWindow)
Release memory allocated by the BearWare.DesktopWindow.
int nGainLevel
Reference gain level to be used by all users.
UserStreamUpdate OnUserFirstVoiceStreamPacket
The first voice packet of a new voice stream has been received.
const int DEFAULT_WEBRTC_NOISESUPPRESS_LEVEL
const bool DEFAULT_WEBRTC_ECHO_CANCEL_ENABLE
SoundDeviceFeature uSoundDeviceFeatures
Additional features available for this sound device. The sound device features can be used to enable ...
bool CloseSoundOutputDevice()
Shutdown the output sound device.
The login service is currently unavailable.
int nChannelID
The channel which the user is currently participating in. 0 if none. This value can change as a resul...
MaxPayloadUpdate OnConnectionMaxPayloadUpdated
The maximum size of the payload put into UDP packets has been updated.
int GetRootChannelID()
Get the root channel's ID.
int nTcpPingTimeMs
Response time to server on TCP (based on ping/pong sent at a specified interval. Set to -1 if not cur...
If set the client instance's sound input device has been initialized, i.e. TeamTalkBase.InitSoundInputDevice() has been called successfully.
FileTransferStatus
Status of a file transfer.
bool SetSoundInputPreprocess(SpeexDSP lpSpeexDSP)
Enable sound preprocessor which should be used for processing audio recorded by the sound input devic...
string szMOTD
The message of the day. Read-only property. Use szMOTDRaw to update this property.
HotKeyTest OnHotKeyTest
A button was pressed or released on the user's keyboard or mouse.
int GetVoiceActivationStopDelay()
Get the delay of when voice active state should be disabled.
MediaFileInfo mediafileinfo
The server rejected a command issued by the local client instance.
int nChannels
Mono = 1 or stereo = 2.
bool SetClientKeepAlive(ClientKeepAlive lpClientKeepAlive)
Update the client instance's default keep alive settings.
int nMaxLoginsPerIPAddress
The maximum number of users allowed to log in with the same IP-address. 0 means disabled.
Allow multiple users to log on to the server with the same BearWare.UserAccount.
Nothing is logged to file by server.
const uint DESKTOPINPUT_KEYCODE_IGNORE
The server doesn't support the issued command.
If set the user's media file playback is muted.
bool SetEncryptionContext(EncryptionContext lpEncryptionContext)
Setup encryption properties prior to Connect().
const int DEFAULT_AGC_GAINLEVEL
Client instance has not been authenticated.
ClientError
Errors which can occur either as a result of client commands or as a result of internal errors...
Subscription uLocalSubscriptions
A bitmask of what the local user subscribes to from this user. Invoking TeamTalkBase.DoSubscribe() and TeamTalkBase.DoUnsubscribe() on the local client instance can change this value. Event BearWare.ClientEvent.CLIENTEVENT_CMD_USER_UPDATE is posted if this value changes.
Same as BearWare.ClientError.INTERR_AUDIOPREPROCESSOR_INIT_FAILED.
bool GetSoundInputPreprocess(ref AudioPreprocessor lpAudioPreprocessor)
Get the sound preprocessor settings which are currently in use for recorded sound input device (voice...
long nVoiceBytesSent
Voice data sent (on UDP).
bool GetServerProperties(ref ServerProperties lpServerProperties)
Get the server's properties.
static int GetWaveOutVolume(int nWaveDeviceID, MixerControl nControl)
Get the volume of a Windows Mixer Wave-Out device from the 'enum' of devices.
bool StartRecordingMuxedStreams(StreamType uStreamTypes, AudioCodec lpAudioCodec, string szAudioFileName, AudioFileFormat uAFF)
Mix multiple BearWare.StreamType into a single audio file.
int nVideoFormatsCount
The number of capture formats available in captureFormats array.
int nTransmitUsersQueueDelayMSec
Delay for switching to next active voice user in transmitUsersQueue.
The server successfully processed a command issued by the local client instance.
int DoListBans(int nChannelID, int nIndex, int nCount)
Issue a command to list the banned users.
Don't allow recording to files in the channel.
bool bInbound
TRUE if download and FALSE if upload.
An enum encapsulation the minimum, maximum and default sound levels for input and output sound device...
FileTransfer filetransfer
int nMaxDecDBSec
Used so volume should not be attenuated too quickly (maximal gain decrease in dB/second). Negative value! Default is -40. Value is ignored if bEnableAGC is FALSE.
int nTxIntervalMSec
Milliseconds of audio data before each transmission.
Configuration of WebRTC pre-amplifier.
const int TT_TRANSMITQUEUE_MAX
string szUsername
The account's username.
A sound input device failed.
int nStoppedDelayMediaFile
The delay of when a user should no longer be considered playing audio of a media file.
UserUpdate OnUserStateChange
A user's state has been updated.
int nFrameBufferSize
The size in bytes of the buffer allocate in frameBuffer. Typically nBytesPerLine * nHeight...
BitmapFormat
The bitmap format used for a BearWare.DesktopWindow.
The bitmap is a 16-bit colored bitmap. The maximum pixels.
System.IntPtr frameBuffer
A buffer allocated internally by TeamTalkBase.
bool bVBRConstraint
Enable constrained VBR. bVBR must be enabled to enable this.
int DoUnBanUser(string szIPAddress, int nChannelID)
Unban the user with the specified IP-address.
bool Enable3DSoundPositioning(bool bEnable)
Enable automatically position users using 3D-sound.
If set the user currently streams a video file. If this flag changes the event BearWare.ClientEvent.CLIENTEVENT_USER_STATECHANGE is posted.
User can add and remove banned users.
UserDesktopInput OnUserDesktopInput
Desktop input (mouse or keyboard input) has been received from a user.
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...
ErrorOccured OnInternalError
A internal error occured.
bool SetUserMediaStorageDir(int nUserID, string szFolderPath, string szFileNameVars, AudioFileFormat uAFF)
Store user's audio to disk.
A channel has been removed.
string szMOTDRaw
The message of the day including variables. The result of the szMOTDRaw string will be displayed in s...
ClientEvent nClientEvent
The event's message number.
SoundSystem nSoundSystem
The sound system used by the sound device.
int nQuality
A value from 0-10. If nBitRate is non-zero it will override this value.
bool GetSoundInputPreprocess(ref SpeexDSP lpSpeexDSP)
Get the sound preprocessor settings which are currently in use for recorded sound input device (voice...
A default user who can join channels.
bool SendDesktopInput(int nUserID, DesktopInput[] lpDesktopInputs)
Send a mouse or keyboard event to a shared desktop window.
int nFromUserID
Will be set automatically on outgoing message.
static int GetWaveInControlCount(int nWaveDeviceID)
Get the number of Windows Mixer Wave-In devices.
UserDesktopInput OnUserDesktopCursor
A user has sent the position of the mouse cursor.
int SendDesktopWindow(DesktopWindow lpDesktopWindow, BitmapFormat nConvertBmpFormat)
Transmit a desktop window (bitmap) to users in the same channel.
If set the client instance's video device has been initialized, i.e. TeamTalkBase.InitVideoCaptureDevice() has been called successfuly.
Cannot join channel because it has maximum number of users.
A struct which describes the properties of a window which can be shared.
bool SetSoundDeviceEffects(SoundDeviceEffects lpSoundDeviceEffect)
Set up audio effects on a sound device.
bool GetChannel(int nChannelID, ref Channel lpChannel)
Get the channel with a specific ID.
int GetMyUserData()
If an account was used in TeamTalkBase.DoLogin() then this value will return the nUserData from the B...
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).
int nMaxVideoCaptureTxPerSecond
The maximum number of bytes per second which the server will allow for video input packets...
bool IsChannelOperator(int nUserID, int nChannelID)
Check whether user is operator of a channel.
string szPassword
The account's password.
Shortcut to allow voice, media files, desktop, webcamera and channel messages.
Set up audio effects supported by the sound device.
A struct containing the properties of a text message sent by a user.
bool GetServerUsers(out User[] lpUsers)
Get all the users on the server.
static bool IsEnabled()
Check if the Windows Firewall is currently enabled.
An audio block containing the raw audio from a user who was talking.
Media file played locally is procesing.
int nParentID
Parent channel ID. 0 means no parent channel, i.e. it's the root channel.
bool InitVideoCaptureDevice(string szDeviceID, VideoFormat lpVideoFormat)
Initialize a video capture device.
bool CloseSoundDuplexDevices()
Shut down sound devices running in duplex mode.
UserVideoFrame OnUserVideoCapture
A new video frame was received from a user.
User logged out is logged to file by the server.
string szUsername
Username of the person who uploaded the files.
User's nick name is locked. TeamTalkBase.DoChangeNickname() cannot be used and TeamTalkBase.DoLogin() will ignore szNickname parameter.
int nTxIntervalMSec
Milliseconds of audio data before each transmission.
Ban szIPAddress specified in BearWare.BannedUser.
Desktop window stream type which is a window (or bitmap) being transmitted.
User can record voice in all channels. Even channels with BearWare.ChannelType.CHANNEL_NO_RECORDING.
User can see hidden channels, BearWare.ChannelType.CHANNEL_HIDDEN.
int nCommandsLimit
Limit number of commands a user can send to the server.
UserType
The types of users supported.
Server statistics available.
A wrapper for the Windows Firewall API.
Windows Audio Session API (WASAPI). Should be used on Windows Vista/7/8/10.
Intercept all voice sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do this...
Class used to load TeamTalk5Pro.dll and instantiate a TeamTalk client in TeamTalk 5 SDK Professional ...
A custom user to user text message. Works the same way as BearWare.TextMsgType BearWare.TextMsgType.MSGTYPE_USER.
The image format with the highest bandwidth usage. A 640x480 pixel images takes up 1...
static bool CloseSoundLoopbackTest(IntPtr lpTTSoundLoop)
Stop recorder and playback test.
The client instance logged out of the server.
int nUdpKeepAliveIntervalMSec
Client instance's interval between sending UDP keep alive packets. The UDP keep alive packets are use...
uint nEncodeDeadline
Time that should be spent on encoding a frame.
The first voice packet of a new voice stream has been received.
int DoChannelOp(int nUserID, int nChannelID, bool bMakeOperator)
Make another user operator of a channel.
int GetSoundInputGainLevel()
Get voice gain level of outgoing audio.
string szUsername
Username of banned user.
bool CloseSoundInputDevice()
Shutdown the input sound device.
FileTransferStatus nStatus
Status of file transfer.
const int DEFAULT_AGC_GAINLEVEL
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.
int nUdpConnectRTXMSec
Client instance's interval for retransmitting UDP connect packets. UDP connect packets are only sent ...
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...
MixerControl
The Windows mixer controls which can be queried by the BearWare.WindowsMixer class.
A struct containing the properties of a shared desktop window.
Use the BearWare.SpeexDSP audio preprocessor.
long nDesktopBytesRX
The number of bytes in desktop packets received by the server from clients.
string szRemoteFileName
The filename in the channel.
string szMessage
The actual text message. The message can be multi-line (include EOL)
int nComplexity
Complexity of encoding (affects CPU usage). Value from 0-10.
UserUpdate OnCmdUserJoinedChannel
A user has joined a channel.
bool GetServerChannels(out Channel[] lpChannels)
Get all the channels on the server.
bool bAutoSave
Whether the server automatically saves changes.
Server has updated its settings (server name, MOTD, etc.)
ClientErrorMsg clienterrormsg
TeamTalk5Pro(bool poll_based)
Simply calls TeamTalkBase.TeamTalkBase()
Intercept all media file data sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do ...
int nLevel
Noise suppression level. 0 = Low, 1 = Moderate, 2 = High, 3 = VeryHigh. Default: 1.
bool CloseVideoCaptureDevice()
Close a video capture device.
A User to user text message. A message of this type can be sent across channels.
int nSessionID
The ID of the session which the bitmap belongs to. If the session ID changes it means the user has st...
UserState
The possible states for a user. Used for BearWare.User's uUserState variable.
long nMediaFileBytesRX
The number of bytes in media file packets received by the server from clients.
Speex audio codec in VBR mode, http://www.speex.org.
TeamTalk5(bool poll_based)
Simply calls TeamTalkBase.TeamTalkBase()
int nMaxLoginAttempts
The maximum number of logins with wrong password before banning user's IP-address.
int HotKey_IsActive(int nHotKeyID)
Check whether hotkey is active.
float fFixedGainFactor
Gain factor. Default: 1.
User disconnected due to connection timeout is logged to file by the server.
int nFileID
The ID identifying the file.
bool SetUserMediaStorageDir(int nUserID, string szFolderPath, string szFileNameVars, AudioFileFormat uAFF, int nStopRecordingExtraDelayMSec)
Store user's audio to disk.
Connection OnConnectionSuccess
Connected successfully to the server.
int nBitRate
Bitrate for encoded audio. Should be between BearWare.OpusConstants.OPUS_MIN_BITRATE and BearWare...
string szNickname
Nickname of banned user. Read-only property.
Banned from joining a channel.
string szIPAddress
The user's IP-address. This value is set by the server.
bool StopRecordingMuxedAudioFile()
Stop an active muxed audio recording.
long nVoiceBytesTX
The number of bytes in audio packets sent from the server to clients.
Banned IP-address does not exist.
int nTxIntervalMSec
Duration of audio before each transmission. Minimum is 2 msec. Recommended is 40 msec. Maximum is 500 msec.
Advanced Linux Sound Architecture (ALSA). Should be used on Linux.
int DoLogin(string szNickname, string szUsername, string szPassword)
Same as DologinEx() but without the option to specify szClientName. Kept for backwards compatibility...
OpusCodec opus
Opus codec settings if nCodec is OPUS_CODEC.
A new file is added to a channel.
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).
Desktop input stream type which is keyboard or mouse input being transmitted.
FileTransferUpdate OnFileTransfer
A file transfer is processing.
Codec nCodec
Specifies member holds the codec settings. So far there is only one video codec to choose from...
long nMediaFileAudioPacketsLost
Number of media file audio packets lost from user.
long nFileSize
The size of the file being transferred.
If set the client instance is running in sound duplex mode where multiple audio output streams are mi...
User updated server's properties is logged to file by the server.
SoundDeviceFeature
Features available on a sound device. Checkout uSoundDeviceFeatures on BearWare.SoundDevice.
A struct containing the properties of a sound device for either playback or recording.
bool bEnableAGC
Users should enable automatic gain control.
int DoDeleteUserAccount(string szUsername)
Issue command to delete a user account on the server.
static System.Drawing.Color Palette_GetColorTable(BitmapFormat nBmpPalette, int nIndex)
Get RGB values of the palette for the bitmap format.
string szStatusMsg
The user's current status message. Invoke TeamTalkBase.DoChangeStatus() to change this value...
bool HotKey_GetKeyString(int nVKCode, ref string szKeyName)
Get a string description of the virtual-key code.
User is allowed to forward desktop input packets through server.
MyselfKicked OnCmdMyselfKicked
The client instance was kicked from a channel.
System.IntPtr lpRawAudio
The raw audio in 16-bit integer format array. The size of the array in bytes is sizeof(short) * nSamp...
bool GetClientKeepAlive(ref ClientKeepAlive lpClientKeepAlive)
Get the client instance's current keep alive settings.
const int TT_VIDEOFORMATS_MAX
long nMediaFileAudioPacketsRecv
Number of media file audio packets received from user.
The BearWare.SoundDevice can enable Acoustic Echo Canceler (AEC). Enable AEC use property bEnableAEC ...
ServerProperties serverproperties
Audio configuration for clients in a channel.
Image format where a 640x480 pixel images takes up 614.400 bytes.
int nLoginDelayMSec
Number of msec before an IP-address can make another login attempt. If less than this amount then Tea...
User is allowed to media files to channel.
User removed a channel is logged to file by the server.
int DoChangeNickname(string szNewNick)
Change the client instance's nick name.
bool GetFileTransferInfo(int nTransferID, ref FileTransfer lpFileTransfer)
Get information about an active file transfer.
long nMediaFileVideoFramesDropped
Number of media file video frames dropped because user application didn't retrieve video frames in ti...
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).
long nVoiceBytesRecv
Voice data received (on UDP).
If set the client instance is currently transmitting a desktop window. A desktop window update is iss...
Voice and video transmission in the channel is controlled by a channel operator.
UserUpdate OnCmdUserUpdate
User changed properties.
File transfer doesn't exists.
int nEchoSuppress
Set maximum attenuation of the residual echo in dB (negative number). Default is -40. Value is ignored if bEnableEchoCancellation is FALSE.
int nMaxIncDBSec
Used so volume should not be amplified too quickly (maximal gain increase in dB/second). Default is 12.
int nWaveDeviceID
A Windows specific ID to the sound device.
UserType uUserType
A bitmask of the type of user based on BearWare.UserType.
int [] transmitUsers
List of users who can transmit in a channel.
int DoQueryServerStats()
Get the server's current statistics.
long nVideoCaptureFramesLost
Video frames which couldn't be shown because packets were lost.
User created new channel is logged to file by the server.
Configuration parameters for the Jitter Buffer.
const bool DEFAULT_WEBRTC_SAT_PROT_ENABLE
string szDeviceID
A string identifying the device.
int nHeight
The height in pixels of the bitmap.
int nMaxVoiceTxPerSecond
The maximum number of bytes per second which the server will allow for voice packets. If this value is exceeded the server will start dropping audio packets. 0 = disabled.
bool GetChannelPath(int nChannelID, ref string szChannelPath)
Get the channel's path. Channels are separated by '/'.
int DoLogout()
Logout of the server.
If set the client instance is currently transmitting audio.
void RemoveTransmitUser(int nUserID, StreamType uStreamType)
Helper function for removing a BearWare.StreamType for a user in transmitUsers.
bool bEnableEchoCancellation
Speex DSP is used for specifying how recorded audio from a sound input device should be preprocessed ...
User is allowed to forward desktop packets through server.
ChannelUpdate OnCmdChannelRemove
A channel has been removed. Event handler for BearWare.ClientEvent.CLIENTEVENT_CMD_CHANNEL_REMOVE.
int GetSoundInputLevel()
Get the volume level of the current recorded audio.
Server failed to open file.
DesktopKeyState
The state of a key (or mouse button), i.e. if it's pressed or released.
Connected successfully to the server.
Ban szUsername specified in BearWare.BannedUser.
Voice stream type which is audio recorded from a sound input device.
long nUdpBytesSent
Bytes sent on UDP.
bool InitSoundInputDevice(int nInputDeviceID)
Initialize the sound input device (for recording audio).
bool DBG_WriteAudioFileTone(MediaFileInfo lpMediaFileInfo, int nFrequency)
The bitmap is a 32-bit colored bitmap. The maximum size of a 32-bit bitmap is 4095 blocks of 51 by 20...
float [] soundPositionVoice
User's position when using 3D-sound (DirectSound option). Index 0 is x-axis, index 1 is y-axis and in...
int DoRemoveChannel(int nChannelID)
Remove a channel from a server.
const int DEFAULT_DENOISE_SUPPRESS
string szCertificateFile
Path to SSL certificate in PEM format.
int nSampleRate
The sample rate of the raw audio.
bool bDTX
Discontinuous transmission. Enables "null" packets during silence.
VideoFrame AcquireUserVideoCaptureFrame(int nUserID, out Bitmap bmp)
Extract a user's video frame for display.
long nMediaFileVideoBytesSent
Video from media file data sent (on UDP).
int DoUnBanUserEx(BannedUser lpBannedUser)
Unban the properties specified in BearWare.BannedUser.
const float DEFAULT_WEBRTC_GAINDB
User can update server properties.
string szName
Name of the channel.
int nChannelID
The channel where the file is/will be located.
Preamplifier preamplifier
DesktopWindow AcquireUserDesktopWindowEx(int nUserID, BitmapFormat nBitmapFormat)
Same as TeamTalkBase.AcquireUserDesktopWindow() except an extra option for converting bitmap to a dif...
string szInitChannel
User should (manually) join this channel after login. If an initial channel is specified in the user'...
int nMaxOutputChannels
The maximum number of output channels.
StreamType uStreamTypes
The stream types used to generate the AudioBlock's raw audio.
bool bVerifyClientOnce
Whether to only verify client's certificate once during initial connection.
bool GetClientStatistics(ref ClientStatistics lpClientStatistics)
Retrieve client statistics of bandwidth usage and response times.
long nMediaFileAudioBytesSent
Audio from media file data sent (on UDP).
string szCaptureAPI
The name of the API used to capture video.
int nStoppedDelayVoice
The delay of when a user should no longer be considered as talking.
int nFixedDelayMSec
The fixed delay in milliseconds. Default = 0.
User can send private text messages, i.e. BearWare.TextMsgType.MSGTYPE_USER.
bool SetSoundOutputMute(bool bMuteAll)
Set all users mute.
Use TeamTalk's internal audio preprocessor for gain audio. Same as used for TeamTalkBase.SetSoundInputGainLevel().
A broadcast message. Requires BearWare.UserRight.USERRIGHT_TEXTMESSAGE_BROADCAST. ...
If set the client instance's sound output device has been initialized, i.e. TeamTalkBase.InitSoundOutputDevice() has been called successfully.
VoiceDetection voicedetection
Internal use to denote no supported formats.
string szUploadTime
Time when file was uploaded. Date/time is converted local time.
SpeexVBRCodec speex_vbr
Speex codec settings if nCodec is BearWare.Codec.SPEEX_VBR_CODEC.
User was removed from ban list is logged to file by the server.
bool SetUserAudioStreamBufferSize(int nUserID, StreamType uStreamType, int nMSec)
Change the amount of media data which can be buffered in the user's playback queue.
NoiseSuppression noisesuppression
long nMediaFileAudioBytesRecv
Audio from media file data received (on UDP).
int nSampleRate
The sample rate to use. Sample rate must be 8000, 12000, 16000, 24000 or 48000 Hz.
bool bUseAdativeDejitter
Turns adaptive jitter buffering ON/OFF. Default is OFF.
Failed to connect to server.
int nConnectionLostMSec
The duration before the TeamTalk instance should consider the client/server connection lost...
Gain level for AGC. Only active when bEnable is true.
A struct containing the properties of a file in a BearWare.Channel.
A new channel has been created.
A new or updated desktop window has been received from a user.
int DoQuit()
Quit from server.
Configuration of WebRTC's gain controller 2 for AGC.
A user with administrator privileges.
Cannot process command since channel is not empty.
string szCAFile
Path to Certificate Authority (CA) Certificate in PEM format.
A new video frame from a video capture device was received from a user.
Configuration for fine tuning gain level.
AudioCodec audiocodec
The audio codec used by users in the channel.
Command cannot be performed due to missing parameter. Only used internally.
User is allowed to create permanent channels which are stored in the server's configuration file...
The user is in initial state.
DesktopTransferUpdate OnDesktopWindowTransfer
Used for tracking when a desktop window has been transmitted to the server.
static bool SetWaveOutMute(int nWaveDeviceID, MixerControl nControl, bool bMute)
Mute or unmute a Windows Mixer Wave-Out device from the 'enum' of devices.
A wrapper for the Windows Mixer API.
Intercept all channel messages sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do...
Speex audio codec, http://www.speex.org.
string szDeviceID
An identifier uniquely identifying the sound device even when new sound devices are being added and r...
CommandError OnCmdError
The server rejected a command issued by the local client instance.
const bool DEFAULT_WEBRTC_LEVELESTIMATION_ENABLE
BanType uBanTypes
The type of ban that applies to this banned user.
UserUpdate OnCmdUserLeftChannel
User has left a channel.
Use WebRTC's audio preprocessor from BearWare.WebRTCAudioPreprocessor. https://webrtc.org.
int nChannels
The number of channels used (1 for mono, 2 for stereo).
The bitmap is a 256-colored bitmap requiring a palette. The default 256 colored palette is the Netsca...
Channel text messages as stream type.
A file has been removed from a channel.
bool GetSoundDeviceEffects(ref SoundDeviceEffects lpSoundDeviceEffect)
Get the audio effects that are currently enabled.
int nMaxBitRate
The maximum bitrate at which the audio codec is allowed to output audio. Set to zero if it should be ...
bool InsertAudioBlock(AudioBlock lpAudioBlock)
Transmit application provided raw audio in BearWare.AudioBlock-structs as BearWare.StreamType.STREAMTYPE_VOICE, i.e. microphone input.
Statistics of bandwidth usage and ping times in the local client instance.
Subscribing to BearWare.StreamType.STREAMTYPE_MEDIAFILE_VIDEO and BearWare.StreamType.STREAMTYPE_MEDIAFILE_AUDIO.
const int DEFAULT_ECHO_SUPPRESS_ACTIVE
long nVideoCaptureBytesSent
Video data sent (on UDP).
bool AutoPositionUsers()
Automatically position users using 3D-sound.
Don't allow voice transmission if it's trigged by voice activation.
int nWidth
The width in pixels of the window.
Helper for BearWare.ClientFlag.CLIENT_CONNECTING and BearWare.ClientFlag.CLIENT_CONNECTED to see if T...
const bool DEFAULT_DENOISE_ENABLE
int DoMoveUser(int nUserID, int nChannelID)
Issue command to move a user from one channel to another.
int nUserData
User specific data which will be stored on persistent storage on the server if the channel type is Be...
int nEchoSuppressActive
Set maximum attenuation of the residual echo in dB when near end is active (negative number)...
Video capture stream type which is video recorded from a webcam.
static int GetWaveInBoost(int nWaveDeviceID)
See if microphone boost is enabled.
Use TeamTalk's internal audio preprocessor BearWare.TTAudioPreprocessor.
int nSoundInputDeviceDelayMSec
Delay of sound input device until the first audio frame is delivered (in msec).
bool GetUserByUsername(string szUsername, ref User lpUser)
Get the user with the specified username.
int [] transmitUsersQueue
The users currently queued for voice or media file transmission.
long nDesktopBytesSent
Desktop data sent (on UDP).
int nStreamID
The ID of the stream. The stream id changes every time the user enables a new transmission using Team...
const int TT_SAMPLERATES_MAX
bool StopVideoCaptureTransmission()
Stop transmitting from video capture device.
An internal error occurred in the client instance.
DirectSound audio system. Should be used on Windows.
long nTotalBytesRX
The number of bytes received by the server from clients.
int nChannelID
Set to zero if nMsgType is BearWare.TextMsgType BearWare.TextMsgType.MSGTYPE_USER or BearWare...
Audio stream type from a media file which is being streamed.
int nHeight
The height in pixels of the image contained in imageBuffer.
Prefered image format with the lowest bandwidth usage. A 640x480 pixel image takes up 460...
int nMaxUsers
Max number of users in channel.
A struct containing the properties of a user.
bool EnableVoiceActivation(bool bEnable)
Enable voice activation.
const bool DEFAULT_WEBRTC_PREAMPLIFIER_ENABLE
int DoChannelOpEx(int nUserID, int nChannelID, string szOpPassword, bool bMakeOperator)
Make another user operator of a channel using the szOpPassword of BearWare.Channel.
bool Disconnect()
Disconnect from the server.
bool HotKey_Register(int nHotKeyID, int[] lpnVKCodes)
Register a global hotkey.
Progress is audio being injected as BearWare.StreamType.STREAMTYPE_VOICE.
Packet reception and data statistics for a user.
bool SetSoundInputGainLevel(int nLevel)
Set voice gaining of recorded audio.
Voice activation has triggered transmission.
int GetVoiceActivationLevel()
Get voice activation level.
string szDeviceName
The name of the capture device.
float fMaxOutputNoiseLevelDBFS
static int GetWaveInVolume(int nWaveDeviceID, MixerControl nControl)
Get the volume of a Windows Mixer Wave-In device from the 'enum' of devices.
int DoRecvFile(int nChannelID, int nFileID, string szLocalFilePath)
Download a file from the specified channel.
const int TT_STRLEN
The maximum length of all strings used in TeamTalkBase. This value includes the zero terminator...
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...
If set the client instance is currently muxing audio streams into a single file. This is enabled by c...
bool SetVoiceActivationStopDelay(int nDelayMSec)
Set the delay of when voice activation should be stopped.
int nBitRate
The bitrate at which the audio codec should output encoded audio data. Dividing it by 8 gives roughly...
bool InitSoundDuplexDevices(int nInputDeviceID, int nOutputDeviceID)
Enable duplex mode where multiple audio streams are mixed into a single stream using software...
bool bMuteRightSpeaker
Whether to mute right speaker in stereo playback.
DesktopProtocol
The protocols supported for transferring a BearWare.DesktopWindow.
bool bEnableDenoise
Whether clients who join the channel should automatically enable denoising.
Command has syntax error. Only used internally.
Server does not allow file transfers.
int nTcpPort
The server's TCP port.
static bool GetWaveOutName(int nWaveDeviceID, ref string szMixerName)
Get the name of the mixer associated with a wave-out device.
StreamMediaFile OnStreamMediaFile
Media file being streamed to a channel is processing.
bool bEnable
Enable WebRTC's fixed digital gain. WebRTC's automatic gain control (AGC)
static bool GetSoundDevices(out SoundDevice[] lpSoundDevices)
Retrieve list of sound devices for recording and playback.
Configure peer verification for encrypted connection.
const float DEFAULT_WEBRTC_EXTRA_SAT_MARGIN_DB
bool ReleaseUserAudioBlock(AudioBlock lpAudioBlock)
Release the shared memory of an BearWare.AudioBlock.
User is allowed to forward video packets through server. TeamTalkBase.StartVideoCaptureTransmission()...
bool [] stereoPlaybackVoice
Check what speaker a user is outputting to. If index 0 is TRUE then left speaker is playing...
Cannot apply BearWare.ChannelType.CHANNEL_HIDDEN to BearWare.Channel's channel type.
EchoCanceller echocanceller
If set the client instance will start transmitting audio if the sound level is above the voice activa...
int nUserData
A user data field which can be used for additional information. The nUserData field of the BearWare...
int nUdpServerSilenceSec
The number of seconds nothing has been received by the client on UDP.
bool bEnable
Enable WebRTC echo canceller. The WebRTC echo canceller requires sound input and output devices are i...
WebRTC's audio preprocessor.
int nApplication
Application of encoded audio, VoIP or music.
Subscribing to BearWare.StreamType.STREAMTYPE_VIDEOCAPTURE.
User saved server's configuration is logged to file by the server.
A struct containing the server's statistics, i.e. bandwidth usage and user activity.
A user has sent a text-message.
string szWindowTitle
The title of the window.
static bool SetWaveInVolume(int nWaveDeviceID, MixerControl nControl, int nVolume)
Set the volume of a Windows Mixer Wave-In device from the 'enum' of devices.
long nVideoCaptureBytesRX
The number of bytes in video packets received by the server from clients.
DesktopInput desktopinput
int DoSubscribe(int nUserID, Subscription uSubscriptions)
Subscribe to user events and/or data.
Translate from Windows scan-code to TTKEYCODE. The Windows scan-code can be retrieved in Windows' WM_...
Configuration of WebRTC's echo canceller. See also TT_SetSoundDeviceEffects()
Video stream type from a media file which is being streamed.
ChannelType uChannelType
A bitmask of the type of channel based on BearWare.ChannelType.
int nTransferID
The ID identifying the file transfer.
bool GetChannelUsers(int nChannelID, out User[] lpUsers)
Get the IDs of all users in a channel.
int GetTransmitUserCount()
Get the number of users who can currently transmit to the BearWare.ChannelType.CHANNEL_CLASSROOM.
static int GetMixerCount()
Get the number of Windows Mixers available.
int nDeviceID
The ID of the sound device. Used for passing to TeamTalkBase.InitSoundInputDevice() and TeamTalkBase...
const bool DEFAULT_WEBRTC_VAD_ENABLE
int DoUpdateChannel(Channel lpChannel)
Update a channel's properties.
OPUS constants for BearWare.OpusCodec.
long nVideoCaptureBytesRecv
Video data received (on UDP).
TextMsgType
Text message types.
int nMaxGainDB
Ensure volume doesn't become too loud (maximal gain in dB). Default is 30. Value is ignored if bEnabl...
long nFileSize
The size of the file.
Connection OnConnectionLost
Connection to server has been lost.
string szLastModified
Timestamp of last modification of user account. Date/time is converted local time.
User can broadcast text message of type BearWare.TextMsgType.MSGTYPE_BROADCAST to all users...
Shortcut to allow both audio and video media files.
If set user is streaming a media file. If this flag changes the event BearWare.ClientEvent.CLIENTEVENT_USER_STATECHANGE is posted.
long nMediaFileVideoFramesLost
Media file video frames which couldn't be shown because packets were lost.
string szPassword
Password to join the channel. When extracted through TeamTalkBase.GetChannel() the password will only...
VideoFormat [] videoFormats
The supported capture formats.
UserUpdate OnCmdUserLoggedIn
A new user logged on to the server.
int DoBanIPAddress(string szIPAddress, int nChannelID)
Issue a ban command on an IP-address user.
User's status is logged to file by the server.
static bool GetDefaultSoundDevicesEx(SoundSystem nSndSystem, ref int lpnInputDeviceID, ref int lpnOutputDeviceID)
Get the default sound devices for the specified sound system.
User joined a channel is logged to file by the server.
bool GetUserStatistics(int nUserID, ref UserStatistics lpUserStatistics)
Get statistics for data and packet reception from a user.
BitmapFormat bmpFormat
The format of the bitmap.
int nDefaultSampleRate
The default sample rate for the sound device.
bool bStereoPlayback
Playback should be done in stereo. Doing so will disable 3d-positioning.
SpeexCodec speex
Speex codec settings if nCodec is BearWare.Codec.SPEEX_CODEC.
long nMediaFileVideoPacketsRecv
Number of media file video packets received from user. A video frame can consist of several video pac...
bool HotKey_Unregister(int nHotKeyID)
Unregister a registered hotkey.
long nUdpBytesRecv
Bytes received on UDP.
If set the client instance has muted all users.
A user state has changed.
int nStreamID
A unique identifier for the frames which are part of the same video sequence. If the stream ID change...
If set the user's voice is muted.
A button was pressed or released on the user's keyboard or mouse.
A file transfer is processing.
int nSource
The source of the event depends on wmMsg.
User can move users from one channel to another.
int nGainLevel
A value from 0 to 32768. Default is 8000. Value is ignored if bEnableAGC is FALSE.
The client instance is in closed state, i.e. no operations has been performed on it.
float fInitialSaturationMarginDB
bool bVerifyPeer
Verify that peer (client or server) uses a certificate that has been generated by the Certificate Aut...
The BearWare.SoundDevice can enable denoising. Enable denoising use property bEnableDenoising on Bear...
AudioPreprocessorType nPreprocessor
The audio preprocessor to use in the union of audio preprocessors.
int nUsersPeak
The highest numbers of users online.
string szChannelPath
Channel where user was located when banned.
string szIPAddress
IP-address of banned user.
DesktopProtocol nProtocol
The desktop protocol used for transmitting the desktop window.
int nUsersServed
The number of users who have logged on to the server.
Cannot join same channel twice.
User's private text messages are logged to file by the server.
int nWndY
Y coordinate of the window relative to the Windows desktop.
Intercept all custom text messages sent by user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do this.
int nHeight
The height in pixels of the window.
const float DEFAULT_WEBRTC_MAXGAIN_DBSEC
bool bMuteLeftSpeaker
Whether to mute left speaker in stereo playback.
Used internally to denote an unauthenticated user.
static int DesktopInputKeyTranslate(TTKeyTranslate nTranslate, DesktopInput[] lpDesktopInputs, out DesktopInput[] lpTranslatedDesktopInputs)
Translate platform key-code to and from TeamTalk's intermediate format.
const float DEFAULT_WEBRTC_MAX_OUT_NOISE
Invalid password for becoming channel operator.
uint uVersion
The user's client version. This property is set by the server and will not change after login...
static string GetVersion()
Get the DLL's version number.
User uploaded a file is logged to file by the server.
Intercept all user text messages sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do this.
ListBannedUser OnCmdBannedUser
A new banned user has been listed by the server. Event handler for BearWare.ClientEvent.CLIENTEVENT_CMD_BANNEDUSER.
bool StartVideoCaptureTransmission(VideoCodec lpVideoCodec)
Start transmitting from video capture device.
If set the client instance is connected to a server, i.e. BearWare.ClientEvent.CLIENTEVENT_CON_SUCCES...
Class used to load TeamTalk5.dll and instantiate a TeamTalk client in TeamTalk 5 SDK Standard Edition...
int DoListUserAccounts(int nIndex, int nCount)
Issue command to list user accounts on the server.
TTKeyTranslate
Translate to and from TeamTalk's intermediate key-codes (TTKEYCODE).
int DoBanUserEx(int nUserID, BanType uBanTypes)
Ban the user with nUserID using the ban types specified.
Intercept all video sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do this...
static int GetWaveOutMute(int nWaveDeviceID, MixerControl nControl)
Get the mute state of a Windows Mixer Wave-Out device from the 'enum' of devices. ...
Subscribing to channel texxt messages.
IntPtr frameBuffer
A buffer pointing to the bitmap data (often refered to as Scan0).
int DoLoginEx(string szNickname, string szUsername, string szPassword, string szClientName)
Logon to a server.
long nFilesTx
The number of bytes for file transmission transmitted from the server.
string szNickname
The user's nickname. Invoking TeamTalkBase.DoChangeNickname() changes this value. Event BearWare...
long nVideoCapturePacketsRecv
Number of video packets received from user. A video frame can consist of several video packets...
float fExtraSaturationMarginDB
bool GetUserJitterControl(int nUserID, StreamType nStreamType, ref JitterConfig lpJitterConfig)
Get the de-jitter configuration for a user.
bool EnableVoiceTransmission(bool bEnable)
Start/stop transmitting of voice data from sound input.
ServerStats OnCmdServerStatistics
Server statistics available.
string szAccessToken
A randomly generated 256 bit access token created by the server to identify the login session...
User disconnected from server is logged to file by the server.
If set the client instance is logged on to a server, i.e. got BearWare.ClientEvent.CLIENTEVENT_CMD_MYSELF_LOGGEDIN event after issueing TeamTalkBase.DoLogin().
Cannot leave channel because not in channel.
float fGainDB
Gain level in dB. Range: 0 <= x < 50. Default: 0.
const int DEFAULT_AGC_INC_MAXDB
User can send private text messages, i.e. BearWare.TextMsgType.MSGTYPE_CHANNEL.
static bool AddAppException(string szName, string szExecutable)
Add an application to the Windows Firewall exception list.
Users are allowed to forward audio packets through server. TeamTalkBase.EnableVoiceTransmission() ...
const int TT_TRANSMITUSERS_MAX
The maximum number of users allowed to transmit when a BearWare.Channel is configured with BearWare...
int nMaxDesktopTxPerSecond
The maximum number of bytes per second which the server will allow for desktop packets. If this value is exceeded the server will start dropping desktop packets. 0 = disabled.
int DoLeaveChannel()
Leave the current channel.
AudioInput OnAudioInput
Audio input progress as result of TeamTalkBase.InsertAudioBlock()
The BearWare.SoundDevice can run in duplex mode.
The BearWare.SoundDevice can enable Automatic Gain Control (AGC). Enable AGC use property bEnableAGC ...
int nUdpPort
The server's UDP port.
Value for specifying that no audio preprocessing should occur.
Maximum number of file transfers exceeded.
A User to channel text message. Users of type BearWare.UserType.USERTYPE_DEFAULT can only send this t...
int [] autoOperatorChannels
Channels where this user will automatically become channel operator when joining. The channels must b...
WebRTCAudioPreprocessor webrtc
Used when nPreprocessor is BearWare.AudioPreprocessorType.WEBRTC_AUDIOPREPROCESSOR.
int nTcpServerSilenceSec
The number of seconds nothing has been received by the client on TCP.
Configuration of WebRTC's noise suppression. See also BearWare.SpeexDSP.
User failed to log in is logged to file by the server.
string szOwner
The username of the user who made the ban.
int rc_target_bitrate
Target bitrate in kbits/sec. This value must be greater than 0.
If set the user is currently talking. If this flag changes the event BearWare.ClientEvent.CLIENTEVENT_USER_STATECHANGE is posted.
int nMaxAdaptiveDelayMSec
A hard maximum delay on the adaptive delay. Only valid when higher than zero. Default = 0...
AudioBlock AcquireUserAudioBlock(StreamType uStreamTypes, int nUserID)
Extract the raw audio associated with the event TeamTalkBase.OnUserAudioBlock().
CommandSuccess OnCmdSuccess
The server successfully processed a command issued by the local client instance.
ChannelUpdate OnCmdChannelUpdate
A channel's properties has been updated.
long nMediaFileVideoFramesRecv
Number of media file video frames received from user.
int GetMyChannelID()
Get the channel which the local client instance is currently participating in.
WebM video codec settings.
string szUsername
The szUsername of the user's BearWare.UserAccount. A user account is created by calling TeamTalkBase...
const float DEFAULT_WEBRTC_INIT_SAT_MARGIN_DB
User's status is locked. TeamTalkBase.DoChangeStatus() cannot be used.
int nVolumeMediaFile
The user's voice volume level. Note that it's a virtual volume which is being set since the master vo...
static bool SetWaveInSelected(int nWaveDeviceID, MixerControl nControl)
Set the selected state of a Windows Mixer Wave-In device from the 'enum' of devices.
A struct containing the properties of the server's settings.
const float DEFAULT_WEBRTC_PREAMPLIFIER_GAINFACTOR
bool bEnable
Enable WebRTC noise suppression.
AudioConfig audiocfg
The audio configuration which users who join the channel should use.
Abstract class which encapsulates the TeamTalk 5 client. Instantiate either BearWare.TeamTalk5 (TeamTalk 5 SDK Standard Edition) or BearWare.TeamTalk5Pro (TeamTalk 5 SDK Professional Edition) to create the TeamTalk instance.
Stream type for audio of local playback.
bool GetUser(int nUserID, ref User lpUser)
Get the user with the specified ID.
bool SetVoiceActivationLevel(int nLevel)
Set voice activation level.
A struct containing the properties of a channel.
Subscription uPeerSubscriptions
A bitmask of what this user subscribes to from local client instance. Invoking TeamTalkBase.DoSubscribe() and TeamTalkBase.DoUnsubscribe() on the remoe client instance can change this value. Event BearWare.ClientEvent.CLIENTEVENT_CMD_USER_UPDATE is posted if this value changes.
IP-address has been banned from server.
int nActiveAdaptiveDelayMSec
The current adaptive delay. When used with TeamTalkBase.SetUserJitterControl(), this value is used as...
int DoSaveConfig()
Save the server's current state to its settings file (typically the server's .xml file)...
NewAudioBlock OnUserAudioBlock
A new audio block can be extracted.
int nChannelID
The ID of the channel where the file is located.
TTAudioPreprocessor ttpreprocessor
Used when nPreprocessor is BearWare.AudioPreprocessorType.TEAMTALK_AUDIOPREPROCESSOR.
int nWidth
The width in pixels of the bitmap.
A media file recording has changed status.
string szMediaStorageDir
Store audio received from this user to this folder.
TeamTalkBase(bool poll_based)
Create a new TeamTalk client instance.
long nDesktopBytesRecv
Desktop data received (on UDP).
MyselfLoggedIn OnCmdMyselfLoggedIn
The client instance successfully logged on to server.
Intercept all desktop data sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do thi...
AdaptiveDigital adaptivedigital
int nTimeOutTimerMediaFileMSec
Time out timer for media file stream. The maximum time in miliseconds a user can transmit a media fil...
User's broadcast text messages are logged to file by the server.
LocalMediaFile OnLocalMediaFile
Media file is being played locally.
The BearWare.SoundDevice can position user in 3D.
int DoBan(BannedUser lpBannedUser)
Ban the properties specified in lpBannedUser.
string szClientName
The name of the client application which the user is using. This is the value passed as szClientName ...
If set the client instance is currently try to connect to a server, i.e. TeamTalkBase.Connect() has been called.
StreamType
The types of streams which are available for transmission.
UserUpdate OnCmdUserLoggedOut
A user logged out of the server.
long nMediaFileVideoBytesRecv
Video from media file data received (on UDP).
void AddTransmitUser(int nUserID, StreamType uStreamType)
Helper function for adding a user and BearWare.StreamType to transmitUsers.
ServerLogEvent
Events that are logged by the server, i.e. written to server's log file.
const bool DEFAULT_WEBRTC_NOISESUPPRESS_ENABLE
If set the client instance current have an active desktop session, i.e. TeamTalkBase.SendDesktopWindow() has been called. Call TeamTalkBase.CloseDesktopWindow() to close the desktop session.
A struct containing the properties of an event.
int nUdpConnectTimeoutMSec
The duration before the client instance should give up trying to connect to the server on UDP...
const int DEFAULT_ECHO_SUPPRESS
Struct used for specifying the video codec to use.
User is allowed to stream audio files to channel.
long nVoicePacketsLost
Number of voice packets lost from user.
Connection to server has been lost.
Configuration of WebRTC's voice detection.
ServerUpdate OnCmdServerUpdate
Server has updated its settings (server name, MOTD, etc.)
If set the client is currently streaming the audio of a media file. When streaming a video file the B...
bool bEnable
Use WebRTC's voice detection to trigger BearWare.TeamTalkBase.OnVoiceActivation.
Hidden channel which can only be seen with BearWare.UserRight.USERRIGHT_VIEW_HIDDEN_CHANNELS.
bool bEnableEchoCancellation
Enable echo cancellation.
A struct containing the properties of a banned user.
static bool SetLicenseInformation(string szRegName, string szRegKey)
Set license information to disable trial mode.
LevelEstimation levelestimation
static bool GetWaveInControlName(int nWaveDeviceID, int nControlIndex, ref string szDeviceName)
Get the name of the Wave-In device with the specified index.
Invalid username for BearWare.UserAccount.
User's custom text messages are logged to file by the server.
Invalid channel password.
bool SetSoundOutputVolume(int nVolume)
Set master volume.
ChannelType
The types of channels supported.
static bool GetVideoCaptureDevices(out VideoCaptureDevice[] lpVideoDevices)
Get the list of devices available for video capture.
Default values for BearWare.SpeexDSP.
A new audio block can be extracted.
A struct containing the properties of a video capture device.
bool GetMyUserAccount(ref UserAccount lpUserAccount)
Get the local client instance's BearWare.UserAccount.
TextMsgType nMsgType
The type of text message.
bool bDTX
Enable/disable discontinuous transmission. When enabled Speex will ignore silence, so the bitrate will become very low.
int nChannelID
The channel's ID. A value from 1 - BearWare.TeamTalkBase.TT_CHANNELID_MAX.
int DoJoinChannelByID(int nChannelID, string szPassword)
Join an existing channel.
User is allowed to create temporary channels which disappear when last user leaves the channel...
bool bEnableAGC
Whether clients who join a BearWare.Channel should enable AGC with the settings specified nGainLevel...
User logged in is logged to file by the server.
static bool AppExceptionExists(string szExecutable)
Check if an executable is already in the Windows Firewall exception list.
A struct containing the properties of a file transfer.
bool GetChannelFiles(int nChannelID, out RemoteFile[] lpRemoteFiles)
Get the list of the files in a channel which can be downloaded.
User can upload files to channels.
int GetMyUserID()
Get the local client instance's user ID.
int SendDesktopWindowFromHWND(System.IntPtr hWnd, BitmapFormat nBitmapFormat, DesktopProtocol nDesktopProtocol)
Transmit the specified window in a desktop session.
bool InitSoundOutputSharedDevice(int nSampleRate, int nChannels, int nFrameSize)
Setup sample rate, channels and frame size of shared sound output device.
If set the user currently has an active desktop session. If this flag changes the event BearWare...
VoiceActivation OnVoiceActivation
Voice activation has triggered transmission.
IntPtr hWnd
The Windows handle of the window.
A hotkey has been acticated or deactivated.
int DoUpdateServer(ServerProperties lpServerProperties)
Update server properties.
Desktop input (mouse or keyboard input) has been received from a user.
The maximum number of logins allowed per IP-address has been exceeded.
int DoDeleteFile(int nChannelID, int nFileID)
Delete a file from a channel.
bool SetUserVolume(int nUserID, StreamType nStreamType, int nVolume)
Set the volume of a user.
The server does not support the audio codec specified by the client. Introduced in version 4...
int DoSendFile(int nChannelID, string szLocalFilePath)
Send a file to the specified channel.
bool SetUserMute(int nUserID, StreamType nStreamType, bool bMute)
Mute a user.
const bool DEFAULT_ECHO_ENABLE
Invalid username or password for account.
int [] inputSampleRates
Supported sample rates by device for recording. A zero value terminates the list of supported sample ...
string szOpPassword
Password to become channel operator.
int GetChannelIDFromPath(string szChannelPath)
Get the channel ID of the supplied path. Channels are separated by '/'.
string szFromUsername
The originators username.
SpeexDSP(bool set_defaults)
static string GetErrorMessage(ClientError nError)
Get textual discription of an error message.
int DoMakeChannel(Channel lpChannel)
Make a new channel on the server.
long nUptimeMSec
The server's uptime in msec.
int nGainLevel
Gain level between BearWare.SoundLevel.SOUND_GAIN_MIN and BearWare.SoundLevel.SOUND_GAIN_MAX. Default is BearWare.SoundLevel.SOUND_GAIN_DEFAULT (no gain).
int DoKickUser(int nUserID, int nChannelID)
Kick user from either channel or server.
bool bKeyFrame
Whether the image acquired is a key-frame. If it is not a key-frame and there has been packet loss or...
Windows legacy audio system. Should be used on Windows Mobile.
static bool GetWaveInControlSelected(int nWaveDeviceID, int nControlIndex)
Get the selected state of a Wave-In device in the Windows Mixer.
Subscribing to custom user messages.
int nMaxInputChannels
The maximum number of input channels.
ListUserAccount OnCmdUserAccount
A new user account has been listed by the server. Event handler for BearWare.ClientEvent.CLIENTEVENT_CMD_USERACCOUNT.
int nUserID
The user's ID. A value from 1 - BearWare.TeamTalkBase.TT_USERID_MAX. This property is set by the serv...
void ProcessMsg(TTMessage msg)
Event handler for BearWare.TTMessage.
const int TT_CHANNELS_OPERATOR_MAX
bool PumpMessage(ClientEvent nClientEvent, int nIdentifier)
Cause client instance event thread to schedule an update event.
uint uReserved
Reserved. To preserve alignment.
string szDeviceName
The name of the sound device.
FileUpdate OnCmdFileRemove
A file has been removed from a channel.
Properties to prevent server abuse.
string szNote
Additional notes about this user.
bool Connect(string szHostAddress, int nTcpPort, int nUdpPort, int nLocalTcpPort, int nLocalUdpPort, bool bEncrypted)
Connect to a server.
BearWare.UserRight GetMyUserRights()
Convenience method for TeamTalkBase.GetMyUserAccount()
string szTopic
Topic of the channel.
Helper class for extracting Windows HWND handles and controlling mouse and keyboard.
The client instance successfully logged on to server.
OPUS audio codec settings. For detailed information about the OPUS codec check out http://www...
int DoNewUserAccount(UserAccount lpUserAccount)
Issue command to create a new user account on the server.
WebRTCAudioPreprocessor(bool set_defaults)
UserType uUserType
The uUserType of the user's BearWare.UserAccount. This property is set by the server and will not cha...
Speex audio codec settings for Constant Bitrate mode (CBR).
int nCommandsIntervalMSec
Commands within given interval.
bool bEnableDenoise
Enable noise suppression.
long nVoiceBytesRX
The number of bytes in audio packets received by the server from clients.
int nErrorNo
Error number based on BearWare.ClientError.
A user account has been received from the server.
int nBufferMSecMediaFile
The size of the buffer (in msec) to hold media file content.
User's IP-address is logged to file by serer.
bool [] stereoPlaybackMediaFile
Check what speaker a user is outputting to. If index 0 is TRUE then left speaker is playing...
int nVerifyDepth
Set limit to depth in the certificate chain during the verification procedure.
The client instance was kicked from a channel.
ServerLogEvent uServerLogEvents
The events that are logged on the server.
long nVoicePacketsRecv
Number of voice packets received from user.
The selected BearWare.AudioCodec exceeds what the server allows.
int nWndX
X coordinate of the window relative to the Windows desktop.
Subscribing to user text messages.
A user has sent the position of the mouse cursor.
If set the client instance will auto position users in a 180 degree circle using 3D-sound. This option is only available with BearWare.SoundSystem.SOUNDSYSTEM_DSOUND.
int nUserTimeout
The number of seconds before a user who hasn't responded to keepalives will be kicked off the server...
Cannot upload file because disk quota will be exceeded.
The maximum size of the payload put into UDP packets has been updated.
A command issued by TeamTalkBase.Do* methods is being processed.
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).
bool EnableAudioBlockEvent(int nUserID, StreamType uStreamTypes, AudioFormat lpAudioFormat, bool bEnable)
Same as TeamTalkBase.EnableAudioBlockEvent() but option to specify audio output format.
bool bFEC
Forward error correction. Corrects errors if there's packetloss.
int nRcTargetBitrate
Same as rc_target_bitrate.
int nMaxUsers
The maximum number of users allowed on the server. A user with admin account can ignore this...
int nUdpPingTimeMs
Response time to server on UDP (based on ping/pong sent at a specified interval. Set to -1 if not cur...
User was kicked is logged to file by the server.
AudioPreprocessorType
The types of supported audio preprocessors.
int nFrameBufferSize
The size in bytes of the buffer allocate in frameBuffer.
string szErrorMsg
Text message describing the error.
bool StartRecordingMuxedAudioFile(AudioCodec lpAudioCodec, string szAudioFileName, AudioFileFormat uAFF)
Store all audio conversations with specific BearWare.AudioCodec settings to a single file...
User downloaded a file is logged to file by the server.
CommandProcessing OnCmdProcessing
A command issued by Do* methods is being processed.
int nToUserID
Set to zero if channel message.
A default channel is a channel which disappears after the last user leaves the channel.
long nTotalBytesTX
The number of bytes sent from the server to clients.
const bool DEFAULT_WEBRTC_GAINCTL_ENABLE
Subscribing to BearWare.StreamType.STREAMTYPE_VOICE.
BearWare.SoundDeviceEffects failed to initialize.
If set the user currently has an active video stream. If this flag changes the event BearWare...
static bool RestartSoundSystem()
Reinitialize sound system (in order to detect new/removed devices).
bool HotKey_RemoveTestHook()
Remove the test hook again so the OnHotKeyTest event will no longer be notified.
static bool GetDefaultSoundDevices(ref int lpnInputDeviceID, ref int lpnOutputDeviceID)
Get the default sound devices.
bool QueryMaxPayload(int nUserID)
Query the maximum size of UDP data packets to the user or server.
FileUpdate OnCmdFileNew
A new file is added to a channel.
User can download files from channels.
Media file being streamed to a channel is processing.
FixedDigital fixeddigital
float fMaxGainChangeDBPerSecond
FourCC
The picture format used by a capture device.
int DoPing()
Ping server and wait for server to reply.
bool CancelFileTranfer(int nTransferID)
Cancel an active file transfer.
uint uSampleIndex
The index of the first sample in lpRawAudio. Its value will be a multiple of nSamples. The sample index can be used to detect overflows of the internal buffer. When a user initially starts talking the nSampleIndex will be 0 and while the user is talking nSampleIndex will be greater than 0. When the user stops talking nSampleIndex will be reset to 0 again.
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...
The server uses a protocol which is incompatible with the client instance.
Subscribing to BearWare.StreamType.STREAMTYPE_DESKTOP.
int DoBanUser(int nUserID, int nChannelID)
Issue a ban command on a user in a specific channel.
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.
int nStatusMode
The user's current status mode. Invoke TeamTalkBase.DoChangeStatus() to change this value...
PulseAudio API. PulseAudio is typically used on Ubuntu 22.
Translate from Mac OS X Carbon kVK_* key-code to TTKEYCODE. The Mac OS X key-codes are defined in Car...
long nVideoCaptureFramesRecv
Number of video frames received from user.
Struct used for specifying which audio codec a channel uses.
int nQuality
A value from 1-10. As of DLL version 4.2 also 0 is supported.
int nActiveAdaptiveDelayMSec
The currently active adaptive jitter delay for received voice streams for this user.
static bool SetWaveInControlSelected(int nWaveDeviceID, int nControlIndex)
Set the selected state of a Wave-In device in the Windows Mixer.
static bool SetWaveOutVolume(int nWaveDeviceID, MixerControl nControl, int nVolume)
Set the volume of a Windows Mixer Wave-Out device from the 'enum' of devices.
BearWare.ClientFlag GetFlags()
Get a bitmask describing the client's current state.
long nVideoCaptureBytesTX
The number of bytes in video packets sent from the server to clients.
Only one user can transmit at a time.
The BearWare.SoundDevice is the default communication device. This feature is only supported on BearW...
UserRecordMediaFile OnUserRecordMediaFile
An media file recording has changed status.
Audio configuration specifying how recorded audio from sound input device should be preprocessed befo...
A new video frame from a video media file was received from a user.
Subscribing to broadcast text messsages.
SpeexDSP speexdsp
Used when nPreprocessor is BearWare.AudioPreprocessorType.SPEEXDSP_AUDIOPREPROCESSOR.
string szLocalFilePath
The file path on local disk.
string szServerProtocolVersion
The version of the server's protocol.
long nDiskQuota
Number of bytes available for file storage.
bool SendDesktopCursorPosition(ushort nPosX, ushort nPosY)
Send the position of mouse cursor to users in the same channel.
A channel's properties has been updated.
float [] soundPositionMediaFile
User's position when using 3D-sound (DirectSound option). Index 0 is x-axis, index 1 is y-axis and in...
bool GetChannelFile(int nChannelID, int nFileID, ref RemoteFile lpRemoteFile)
Get information about a file which can be downloaded.
bool HotKey_InstallTestHook()
Install a test hook which calls the event OnHotKeyTest whenever a key or mouse button is pressed...
static bool SetWaveInMute(int nWaveDeviceID, bool bEnable)
Mute/unmute microphone input.
StreamType GetTransmitStreamTypes(int nUserID)
Helper function for getting the BearWare.StreamType a user can transmit by querying transmitUsers...
Speex constants for BearWare.SpeexCodec and BearWare.SpeexVBRCodec.
int nTcpKeepAliveIntervalMSec
Client instance's interval between TeamTalkBase.DoPing() command. Read-only value. Will be half of BearWare.ServerProperties' nUserTimeout.
bool bEnable
Enable level estimater. When enabled TeamTalkBase.GetSoundInputLevel() will return a value based on W...
GainController2 gaincontroller2
bool GetMessage(ref TTMessage pMsg, int nWaitMs)
Poll for events in the client instance.
Command flooding prevented by server.
long nDesktopBytesTX
The number of bytes in desktop packets sent from the server to clients.
bool bEnableAGC
Enable Automatic Gain Control.
int nTimeOutTimerVoiceMSec
Time out timer for voice stream. The maximum time in miliseconds a user can transmit voice without ch...
Sound system denoting invalid or not found.
static System.IntPtr GetDesktopActiveHWND()
Get the handle (HWND) of the window which is currently active (focused) on the Windows desktop...
TTType ttType
Specifies which member to access in the union.
long nMediaFileBytesTX
The number of bytes in media file packets sent from the server to clients.
bool bSupports3D
Whether the sound device supports 3D-sound effects.
MyselfLoggedOut OnCmdMyselfLoggedOut
The client instance logged out of a server.
int DoTextMessage(TextMessage lpTextMessage)
Send a text message to either a user or a channel.
Subscribing to BearWare.StreamType.STREAMTYPE_DESKTOPINPUT.
bool bEnable
Enable pre-amplifier. Replacement for TT_SetSoundInputGainLevel()
Translate from TTKEYCODE to Mac OS X Carbon kVK_* key-code.
int DoJoinChannel(Channel lpChannel)
Create a new channel and join it.
ClientFlag
Flags used to describe the the client instance current state.
int nWidth
The width in pixels of the image contained in frameBuffer.
User's channel text messages are logged to file by the server.
string szServerName
The server's name.
Cannot find user account.
int DoChangeStatus(int nStatusMode, string szStatusMessage)
Change the client instance's currect status.
If set GetSoundInputLevel() is higher than the voice activation level. To enable voice transmission i...
int nVolumeVoice
The user's voice volume level. Note that it's a virtual volume which is being set since the master vo...
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...
int nAudioCodecBpsLimit
Bandwidth restriction for audio codecs created by this user. This value will hold the highest bitrate...
Subscription
A user by default accepts audio, video and text messages from all users. Using subscribtions can...
static bool GetDesktopWindowHWND(int nIndex, ref System.IntPtr lpHWnd)
Get the all the handles (HWND) of visible windows.
If set the user currently streams an audio file. If user is streaming a video file with audio then th...
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 GetWindow(System.IntPtr hWnd, ref ShareWindow lpShareWindow)
Get the properties of a window from its window handle (HWND).
A banned user has been received from the server.
UserState uUserState
A bitmask of the user's current state, e.g. talking, muted, etc.
NewDesktopWindow OnUserDesktopWindow
A new or updated desktop window has been received from a user.
Configuration of WebRTC's level estimater.
static int DesktopInputExecute(DesktopInput[] lpDesktopInputs)
Execute desktop (mouse or keyboard) input.
The maximum number of channels has been exceeded.
UserRight
The rights users have once they have logged on to the server.
A struct containing the properties of a user account.
Core Audio. Should be used on MacOS.
BearWare.AudioPreprocessor failed to initialize.
Users who log onto the server has none of the rights below.
int nUdpKeepAliveRTXMSec
Client instance's interval for retransmitting UDP keep alive packets. If server hasn't responded to U...
User can kick users off the server.
long nTransferred
The number of bytes transferred so far.
string szCADir
Path to directory containing Certificate Authority (CA) Certificates in PEM format.
If set the client instance is currently transmitting video.
User can make other users channel operator.
Speex audio codec settings for Variable Bitrate mode (VBR).
int GetSoundOutputVolume()
Get master volume.
bool SetUserPosition(int nUserID, StreamType nStreamType, float x, float y, float z)
Set the position of a user.
bool InitSoundInputSharedDevice(int nSampleRate, int nChannels, int nFrameSize)
Setup sample rate, channels and frame size of shared sound input device.
const ushort DESKTOPINPUT_MOUSEPOS_IGNORE
int nFrameSizeMSec
OPUS supports 2.5, 5, 10, 20, 40, 60, 80, 100 and 120 msec. If nFrameSizeMSec is 0 then nFrameSizeMSe...
const int DEFAULT_AGC_DEC_MAXDB
bool StartRecordingMuxedAudioFile(int nChannelID, string szAudioFileName, AudioFileFormat uAFF)
Store audio conversations from a specific channel into a single file.
static bool GetWaveInName(int nWaveDeviceID, ref string szMixerName)
Get the name of the mixer associated with a wave-in device.
string szFileName
The name of the file.
string szBanTime
Date and time when user was banned. Read-only property.
static bool RemoveAppException(string szExecutable)
Remove an application from the Windows Firewall exception list.
Codec nCodec
Specifies whether the member speex, speex_vbr or opus holds the codec settings.
ClientEvent
TeamTalk client event messages.
int nBytesPerLine
The number of bytes for each scan-line in the bitmap. Zero means 4-byte aligned.
string szServerVersion
The server version.
bool CloseDesktopWindow()
Close the current desktop session.
Configure the audio preprocessor specified by nPreprocessor.