25using System.Collections.Generic;
27using System.Windows.Forms;
29using System.Drawing.Imaging;
30using System.Threading;
31using System.Diagnostics;
32using System.Reflection;
33using System.Runtime.InteropServices;
208 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
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)]
908 [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode)]
944 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1041 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
1140 [StructLayout(LayoutKind.Explicit)]
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)]
1409 preamplifier.bEnable =
false;
1410 preamplifier.fFixedGainFactor = 0.0f;
1412 echocanceller.bEnable =
false;
1414 noisesuppression.bEnable =
false;
1415 noisesuppression.nLevel = 0;
1417 voicedetection.bEnable =
false;
1419 gaincontroller2.bEnable =
false;
1420 gaincontroller2.fixeddigital.fGainDB = 0.0f;
1422 gaincontroller2.adaptivedigital.bEnable =
false;
1423 gaincontroller2.adaptivedigital.fInitialSaturationMarginDB = 0.0f;
1424 gaincontroller2.adaptivedigital.fExtraSaturationMarginDB = 0.0f;
1425 gaincontroller2.adaptivedigital.fMaxGainChangeDBPerSecond = 0.0f;
1426 gaincontroller2.adaptivedigital.fMaxOutputNoiseLevelDBFS = 0.0f;
1428 levelestimation.bEnable =
false;
1471 [StructLayout(LayoutKind.Explicit)]
1507 [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode)]
1567 [StructLayout(LayoutKind.Explicit)]
1601 [StructLayout(LayoutKind.Explicit)]
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)]
1810 USERRIGHT_ALL = 0xFFFFFFFF & ~USERRIGHT_LOCKED_NICKNAME & ~USERRIGHT_LOCKED_STATUS
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)]
2772 for (; i < TeamTalkBase.TT_TRANSMITUSERS_MAX - 1; i++)
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)]
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);
4525 return TTDLL.TT_SetLicenseInformation(szRegName, szRegKey);
4548 case ClientEvent.CLIENTEVENT_CON_MAX_PAYLOAD_UPDATED :
4560 case ClientEvent.CLIENTEVENT_CMD_SUCCESS :
4568 case ClientEvent.CLIENTEVENT_CMD_MYSELF_LOGGEDOUT:
4621 case ClientEvent.CLIENTEVENT_CMD_SERVERSTATISTICS :
4633 case ClientEvent.CLIENTEVENT_CMD_USERACCOUNT :
4637 case ClientEvent.CLIENTEVENT_CMD_BANNEDUSER :
4642 case ClientEvent.CLIENTEVENT_USER_STATECHANGE :
4650 case ClientEvent.CLIENTEVENT_USER_MEDIAFILE_VIDEO:
4662 case ClientEvent.CLIENTEVENT_USER_DESKTOPINPUT :
4666 case ClientEvent.CLIENTEVENT_USER_RECORD_MEDIAFILE :
4670 case ClientEvent.CLIENTEVENT_USER_AUDIOBLOCK :
4674 case ClientEvent.CLIENTEVENT_INTERNAL_ERROR :
4678 case ClientEvent.CLIENTEVENT_VOICE_ACTIVATION :
4682 case ClientEvent.CLIENTEVENT_HOTKEY :
4686 case ClientEvent.CLIENTEVENT_HOTKEY_TEST :
4690 case ClientEvent.CLIENTEVENT_FILETRANSFER :
4694 case ClientEvent.CLIENTEVENT_DESKTOPWINDOW_TRANSFER :
4698 case ClientEvent.CLIENTEVENT_STREAM_MEDIAFILE :
4710 case ClientEvent.CLIENTEVENT_USER_FIRSTVOICESTREAMPACKET:
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);
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);
7740 return TTDLL.TT_GetMyUserType(m_ttInst);
7756 return TTDLL.TT_GetMyUserRights(m_ttInst);
7770 return TTDLL.TT_GetMyUserData(m_ttInst);
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);
8749 private IntPtr m_ttInst;
8751 c_tt.MyEventHandler m_eventhandler;
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);
9078 ref
string szDeviceName)
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);
Class used to load TeamTalk5.dll and instantiate a TeamTalk client in TeamTalk 5 SDK Standard Edition...
TeamTalk5(bool poll_based)
Simply calls TeamTalkBase.TeamTalkBase()
const int DEFAULT_TCPPORT
const int DEFAULT_UDPPORT
Class used to load TeamTalk5Pro.dll and instantiate a TeamTalk client in TeamTalk 5 SDK Professional ...
const int DEFAULT_UDPPORT
const int DEFAULT_TCPPORT
TeamTalk5Pro(bool poll_based)
Simply calls TeamTalkBase.TeamTalkBase()
Abstract class which encapsulates the TeamTalk 5 client. Instantiate either BearWare....
bool DBG_WriteAudioFileTone(MediaFileInfo lpMediaFileInfo, int nFrequency)
bool DBG_SetSoundInputTone(StreamType uStreamTypes, int nFrequency)
A wrapper for the Windows Firewall API.
static bool Enable(bool bEnable)
Enable/disable the Windows Firewall.
static bool RemoveAppException(string szExecutable)
Remove an application from the Windows Firewall exception list.
static bool IsEnabled()
Check if the Windows Firewall is currently enabled.
static bool AddAppException(string szName, string szExecutable)
Add an application to the Windows Firewall exception list.
static bool AppExceptionExists(string szExecutable)
Check if an executable is already in the Windows Firewall exception list.
Helper class for extracting Windows HWND handles and controlling mouse and keyboard.
static bool GetWindow(System.IntPtr hWnd, ref ShareWindow lpShareWindow)
Get the properties of a window from its window handle (HWND).
static bool GetDesktopWindowHWND(int nIndex, ref System.IntPtr lpHWnd)
Get the all the handles (HWND) of visible windows.
static System.IntPtr GetDesktopActiveHWND()
Get the handle (HWND) of the window which is currently active (focused) on the Windows desktop.
static int DesktopInputKeyTranslate(TTKeyTranslate nTranslate, DesktopInput[] lpDesktopInputs, out DesktopInput[] lpTranslatedDesktopInputs)
Translate platform key-code to and from TeamTalk's intermediate format.
static int DesktopInputExecute(DesktopInput[] lpDesktopInputs)
Execute desktop (mouse or keyboard) input.
static System.IntPtr GetDesktopHWND()
Get the handle (HWND) of the Windows desktop (full desktop).
A wrapper for the Windows Mixer API.
static bool SetWaveOutVolume(int nWaveDeviceID, MixerControl nControl, int nVolume)
Set the volume of a Windows Mixer Wave-Out device from the 'enum' of devices.
static int GetWaveInVolume(int nWaveDeviceID, MixerControl nControl)
Get the volume of a Windows Mixer Wave-In device from the 'enum' of devices.
static bool SetWaveOutMute(int nWaveDeviceID, MixerControl nControl, bool bMute)
Mute or unmute a Windows Mixer Wave-Out device from the 'enum' of devices.
static bool GetWaveOutName(int nWaveDeviceID, ref string szMixerName)
Get the name of the mixer associated with a wave-out device.
static bool SetWaveInControlSelected(int nWaveDeviceID, int nControlIndex)
Set the selected state of a Wave-In device in the Windows Mixer.
static bool SetWaveInBoost(int nWaveDeviceID, bool bEnable)
Enable and disable microphone boost.
static bool GetWaveInControlSelected(int nWaveDeviceID, int nControlIndex)
Get the selected state of a Wave-In device in the Windows Mixer.
static bool GetWaveInName(int nWaveDeviceID, ref string szMixerName)
Get the name of the mixer associated with a wave-in device.
static bool SetWaveInSelected(int nWaveDeviceID, MixerControl nControl)
Set the selected state of a Windows Mixer Wave-In device from the 'enum' of devices.
static int GetWaveInBoost(int nWaveDeviceID)
See if microphone boost is enabled.
static bool SetWaveInMute(int nWaveDeviceID, bool bEnable)
Mute/unmute microphone input.
static int GetMixerCount()
Get the number of Windows Mixers available.
static int GetWaveOutVolume(int nWaveDeviceID, MixerControl nControl)
Get the volume of a Windows Mixer Wave-Out device from the 'enum' of devices.
static bool SetWaveInVolume(int nWaveDeviceID, MixerControl nControl, int nVolume)
Set the volume of a Windows Mixer Wave-In device from the 'enum' of devices.
static int GetWaveInSelected(int nWaveDeviceID, MixerControl nControl)
Get the selected state of a Windows Mixer Wave-In device from the 'enum' of devices.
static int GetWaveInMute(int nWaveDeviceID)
See if microphone is muted.
static int GetWaveInControlCount(int nWaveDeviceID)
Get the number of Windows Mixer Wave-In devices.
static int GetWaveOutMute(int nWaveDeviceID, MixerControl nControl)
Get the mute state of a Windows Mixer Wave-Out device from the 'enum' of devices.
static bool GetWaveInControlName(int nWaveDeviceID, int nControlIndex, ref string szDeviceName)
Get the name of the Wave-In device with the specified index.
static bool GetMixerName(int nMixerIndex, ref string szMixerName)
Get the name of a Windows Mixer based on its name.
int GetRootChannelID()
Get the root channel's ID.
const int TT_TRANSMITUSERS_STREAMTYPE_INDEX
FileTransferStatus
Status of a file transfer.
bool GetChannelFile(int nChannelID, int nFileID, ref RemoteFile lpRemoteFile)
Get information about a file which can be downloaded.
const int TT_TRANSMITQUEUE_MAX
int ChannelID
Same as GetMyChannelID().
const int TT_CLASSROOM_STREAMTYPE_INDEX
const int TT_CLASSROOM_FREEFORALL
int GetChannelIDFromPath(string szChannelPath)
Get the channel ID of the supplied path. Channels are separated by '/'.
const int TT_TRANSMITUSERS_USERID_INDEX
ChannelType
The types of channels supported.
bool IsChannelOperator(int nUserID, int nChannelID)
Check whether user is operator of a channel.
int GetMyChannelID()
Get the channel which the local client instance is currently participating in.
bool GetServerChannels(out Channel[] lpChannels)
Get all the channels on the server.
bool GetChannelUsers(int nChannelID, out User[] lpUsers)
Get the IDs of all users in a channel.
bool GetChannel(int nChannelID, ref Channel lpChannel)
Get the channel with a specific ID.
const int TT_CLASSROOM_USERID_INDEX
const int TT_TRANSMITUSERS_FREEFORALL
bool GetChannelPath(int nChannelID, ref string szChannelPath)
Get the channel's path. Channels are separated by '/'.
bool GetChannelFiles(int nChannelID, out RemoteFile[] lpRemoteFiles)
Get the list of the files in a channel which can be downloaded.
const int TT_TRANSMITUSERS_MAX
The maximum number of users allowed to transmit when a BearWare.Channel is configured with BearWare....
bool CancelFileTranfer(int nTransferID)
Cancel an active file transfer.
bool GetFileTransferInfo(int nTransferID, ref FileTransfer lpFileTransfer)
Get information about an active file transfer.
@ FILETRANSFER_ACTIVE
File transfer active.
@ FILETRANSFER_FINISHED
File transfer finished.
@ FILETRANSFER_ERROR
Error during file transfer.
@ CHANNEL_NO_VOICEACTIVATION
Don't allow voice transmission if it's trigged by voice activation.
@ CHANNEL_PERMANENT
A channel which persists even when the last user leaves the channel.
@ CHANNEL_OPERATOR_RECVONLY
Only channel operators (and administrators) will receive audio/video/desktop transmissions....
@ CHANNEL_DEFAULT
A default channel is a channel which disappears after the last user leaves the channel.
@ CHANNEL_CLASSROOM
Voice and video transmission in the channel is controlled by a channel operator.
@ CHANNEL_NO_RECORDING
Don't allow recording to files in the channel.
@ CHANNEL_SOLO_TRANSMIT
Only one user can transmit at a time.
@ CHANNEL_HIDDEN
Hidden channel which can only be seen with BearWare.UserRight.USERRIGHT_VIEW_HIDDEN_CHANNELS.
Codec
The codecs supported.
AudioPreprocessorType
The types of supported audio preprocessors.
@ WEBM_VP8_CODEC
WebM video codec.
@ SPEEX_VBR_CODEC
Speex audio codec in VBR mode, http://www.speex.org.
@ NO_CODEC
No codec specified.
@ SPEEX_CODEC
Speex audio codec, http://www.speex.org.
@ OPUS_CODEC
OPUS audio codec.
@ SPEEXDSP_AUDIOPREPROCESSOR
Use the BearWare.SpeexDSP audio preprocessor.
@ WEBRTC_AUDIOPREPROCESSOR
Use WebRTC's audio preprocessor from BearWare.WebRTCAudioPreprocessor. https://webrtc....
@ TEAMTALK_AUDIOPREPROCESSOR
Use TeamTalk's internal audio preprocessor BearWare.TTAudioPreprocessor.
@ NO_AUDIOPREPROCESSOR
Value for specifying that no audio preprocessing should occur.
int DoRecvFile(int nChannelID, int nFileID, string szLocalFilePath)
Download a file from the specified channel.
int DoPing()
Ping server and wait for server to reply.
int DoJoinChannel(Channel lpChannel)
Create a new channel and join it.
int DoListBans(int nChannelID, int nIndex, int nCount)
Issue a command to list the banned users.
int DoUnBanUser(string szIPAddress, int nChannelID)
Unban the user with the specified IP-address.
int DoMoveUser(int nUserID, int nChannelID)
Issue command to move a user from one channel to another.
int DoBanUser(int nUserID, int nChannelID)
Issue a ban command on a user in a specific channel.
int DoChannelOpEx(int nUserID, int nChannelID, string szOpPassword, bool bMakeOperator)
Make another user operator of a channel using the szOpPassword of BearWare.Channel.
int DoBanUserEx(int nUserID, BanType uBanTypes)
Ban the user with nUserID using the ban types specified.
int DoChangeStatus(int nStatusMode, string szStatusMessage)
Change the client instance's currect status.
int DoSendFile(int nChannelID, string szLocalFilePath)
Send a file to the specified channel.
int DoLogin(string szNickname, string szUsername, string szPassword)
Same as DologinEx() but without the option to specify szClientName. Kept for backwards compatibility.
int DoChannelOp(int nUserID, int nChannelID, bool bMakeOperator)
Make another user operator of a channel.
int DoDeleteUserAccount(string szUsername)
Issue command to delete a user account on the server.
int DoUnsubscribe(int nUserID, Subscription uSubscriptions)
Unsubscribe to user events/data. This can be used to ignore messages or voice data from a specific us...
int DoQueryServerStats()
Get the server's current statistics.
int DoMakeChannel(Channel lpChannel)
Make a new channel on the server.
int DoKickUser(int nUserID, int nChannelID)
Kick user from either channel or server.
int DoSaveConfig()
Save the server's current state to its settings file (typically the server's .xml file).
int DoDeleteFile(int nChannelID, int nFileID)
Delete a file from a channel.
int DoQuit()
Quit from server.
int DoUpdateChannel(Channel lpChannel)
Update a channel's properties.
int DoLeaveChannel()
Leave the current channel.
int DoUnBanUserEx(BannedUser lpBannedUser)
Unban the properties specified in BearWare.BannedUser.
int DoNewUserAccount(UserAccount lpUserAccount)
Issue command to create a new user account on the server.
int DoSubscribe(int nUserID, Subscription uSubscriptions)
Subscribe to user events and/or data.
int DoBanIPAddress(string szIPAddress, int nChannelID)
Issue a ban command on an IP-address user.
int DoLoginEx(string szNickname, string szUsername, string szPassword, string szClientName)
Logon to a server.
int DoBan(BannedUser lpBannedUser)
Ban the properties specified in lpBannedUser.
int DoJoinChannelByID(int nChannelID, string szPassword)
Join an existing channel.
int DoLogout()
Logout of the server.
int DoChangeNickname(string szNewNick)
Change the client instance's nick name.
int DoListUserAccounts(int nIndex, int nCount)
Issue command to list user accounts on the server.
int DoUpdateServer(ServerProperties lpServerProperties)
Update server properties.
int DoRemoveChannel(int nChannelID)
Remove a channel from a server.
int DoTextMessage(TextMessage lpTextMessage)
Send a text message to either a user or a channel.
bool Connect(string szHostAddress, int nTcpPort, int nUdpPort, int nLocalTcpPort, int nLocalUdpPort, bool bEncrypted)
Connect to a server.
bool SetClientKeepAlive(ClientKeepAlive lpClientKeepAlive)
Update the client instance's default keep alive settings.
bool ConnectSysID(string szHostAddress, int nTcpPort, int nUdpPort, int nLocalTcpPort, int nLocalUdpPort, bool bEncrypted, string szSystemID)
Same as Connect() but the option of providing a unique system-ID.
bool GetClientStatistics(ref ClientStatistics lpClientStatistics)
Retrieve client statistics of bandwidth usage and response times.
bool QueryMaxPayload(int nUserID)
Query the maximum size of UDP data packets to the user or server.
bool ConnectEx(string szHostAddress, int nTcpPort, int nUdpPort, string szBindIPAddr, int nLocalTcpPort, int nLocalUdpPort, bool bEncrypted)
Bind to specific IP-address prior to connecting to server.
bool SetEncryptionContext(EncryptionContext lpEncryptionContext)
Setup encryption properties prior to Connect().
bool Disconnect()
Disconnect from the server.
bool GetClientKeepAlive(ref ClientKeepAlive lpClientKeepAlive)
Get the client instance's current keep alive settings.
const ushort DESKTOPINPUT_MOUSEPOS_IGNORE
DesktopWindow AcquireUserDesktopWindowEx(int nUserID, BitmapFormat nBitmapFormat)
Same as TeamTalkBase.AcquireUserDesktopWindow() except an extra option for converting bitmap to a dif...
int SendDesktopWindow(DesktopWindow lpDesktopWindow, BitmapFormat nConvertBmpFormat)
Transmit a desktop window (bitmap) to users in the same channel.
const uint DESKTOPINPUT_KEYCODE_IGNORE
TTKeyTranslate
Translate to and from TeamTalk's intermediate key-codes (TTKEYCODE).
DesktopKeyState
The state of a key (or mouse button), i.e. if it's pressed or released.
DesktopWindow AcquireUserDesktopWindow(int nUserID)
Get a user's desktop window (bitmap image).
bool PaintDesktopWindow(int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight)
Paint user's desktop window using a Windows' DC (device context).
int SendDesktopWindowFromHWND(System.IntPtr hWnd, BitmapFormat nBitmapFormat, DesktopProtocol nDesktopProtocol)
Transmit the specified window in a desktop session.
const uint DESKTOPINPUT_KEYCODE_LMOUSEBTN
DesktopProtocol
The protocols supported for transferring a BearWare.DesktopWindow.
bool PaintDesktopWindowEx(int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight, int XSrc, int YSrc, int nSrcWidth, int nSrcHeight)
Paint user's desktop window using a Windows' DC (device context).
const uint DESKTOPINPUT_KEYCODE_RMOUSEBTN
bool CloseDesktopWindow()
Close the current desktop session.
const int TT_DESKTOPINPUT_MAX
bool SendDesktopInput(int nUserID, DesktopInput[] lpDesktopInputs)
Send a mouse or keyboard event to a shared desktop window.
bool ReleaseUserDesktopWindow(DesktopWindow lpDesktopWindow)
Release memory allocated by the BearWare.DesktopWindow.
BitmapFormat
The bitmap format used for a BearWare.DesktopWindow.
const uint DESKTOPINPUT_KEYCODE_MMOUSEBTN
bool SendDesktopCursorPosition(ushort nPosX, ushort nPosY)
Send the position of mouse cursor to users in the same channel.
static System.Drawing.Color Palette_GetColorTable(BitmapFormat nBmpPalette, int nIndex)
Get RGB values of the palette for the bitmap format.
@ TTKEY_MACKEYCODE_TO_TTKEYCODE
Translate from Mac OS X Carbon kVK_* key-code to TTKEYCODE. The Mac OS X key-codes are defined in Car...
@ TTKEY_TTKEYCODE_TO_WINKEYCODE
Translate from TTKEYCODE to Windows scan-code.
@ TTKEY_WINKEYCODE_TO_TTKEYCODE
Translate from Windows scan-code to TTKEYCODE. The Windows scan-code can be retrieved in Windows' WM_...
@ TTKEY_TTKEYCODE_TO_MACKEYCODE
Translate from TTKEYCODE to Mac OS X Carbon kVK_* key-code.
@ TTKEY_NO_TRANSLATE
Perform no translation.
@ DESKTOPKEYSTATE_DOWN
The key is pressed.
@ DESKTOPKEYSTATE_NONE
The key is ignored.
@ DESKTOPKEYSTATE_UP
The key is released.
@ DESKTOPPROTOCOL_ZLIB_1
Desktop protocol based on ZLIB for image compression and UDP for data transmission.
@ BMP_RGB8_PALETTE
The bitmap is a 256-colored bitmap requiring a palette. The default 256 colored palette is the Netsca...
@ BMP_RGB24
The bitmap is a 24-bit colored bitmap. The maximum size of a 24-bit bitmap is 4095 blocks of 85 by 16...
@ BMP_RGB32
The bitmap is a 32-bit colored bitmap. The maximum size of a 32-bit bitmap is 4095 blocks of 51 by 20...
@ BMP_NONE
Used to denote nothing selected.
@ BMP_RGB16_555
The bitmap is a 16-bit colored bitmap. The maximum pixels.
static string GetErrorMessage(ClientError nError)
Get textual discription of an error message.
ClientError
Errors which can occur either as a result of client commands or as a result of internal errors.
@ CMDERR_CHANNEL_ALREADY_EXISTS
Channel already exists.
@ CMDERR_MAX_DISKUSAGE_EXCEEDED
Cannot upload file because disk quota will be exceeded.
@ CMDERR_BAN_NOT_FOUND
Banned IP-address does not exist.
@ CMDERR_MISSING_PARAMETER
Command cannot be performed due to missing parameter. Only used internally.
@ INTERR_SNDEFFECT_FAILURE
BearWare.SoundDeviceEffects failed to initialize.
@ CMDERR_COMMAND_FLOOD
Command flooding prevented by server.
@ CMDERR_INCORRECT_OP_PASSWORD
Invalid password for becoming channel operator.
@ CMDERR_INCOMPATIBLE_PROTOCOLS
The server uses a protocol which is incompatible with the client instance.
@ CMDERR_CHANNEL_CANNOT_BE_HIDDEN
Cannot apply BearWare.ChannelType.CHANNEL_HIDDEN to BearWare.Channel's channel type.
@ CMDERR_OPENFILE_FAILED
Server failed to open file.
@ CMDERR_CHANNEL_BANNED
Banned from joining a channel.
@ CMDERR_SUCCESS
Command indicating success.
@ CMDERR_ALREADY_LOGGEDIN
Already logged in.
@ INTERR_TTMESSAGE_QUEUE_OVERFLOW
BearWare.TTMessage event queue overflowed.
@ CMDERR_INCORRECT_CHANNEL_PASSWORD
Invalid channel password.
@ CMDERR_MAX_SERVER_USERS_EXCEEDED
Login failed due to maximum number of users on server.
@ INTERR_SNDOUTPUT_FAILURE
A sound output device failed.
@ INTERR_AUDIOPREPROCESSOR_INIT_FAILED
BearWare.AudioPreprocessor failed to initialize.
@ CMDERR_INVALID_USERNAME
Invalid username for BearWare.UserAccount.
@ CMDERR_USER_NOT_FOUND
User not found.
@ CMDERR_AUDIOCODEC_BITRATE_LIMIT_EXCEEDED
The selected BearWare.AudioCodec exceeds what the server allows.
@ INTERR_AUDIOCODEC_INIT_FAILED
Audio codec used by channel failed to initialize. Ensure the settings specified in BearWare....
@ CMDERR_FILE_ALREADY_EXISTS
File already exist.
@ CMDERR_MAX_CHANNEL_USERS_EXCEEDED
Cannot join channel because it has maximum number of users.
@ CMDERR_FILE_NOT_FOUND
File does not exist.
@ INTERR_SNDINPUT_FAILURE
A sound input device failed.
@ CMDERR_NOT_LOGGEDIN
Client instance has not been authenticated.
@ CMDERR_SERVER_BANNED
IP-address has been banned from server.
@ CMDERR_ACCOUNT_NOT_FOUND
Cannot find user account.
@ CMDERR_SYNTAX_ERROR
Command has syntax error. Only used internally.
@ CMDERR_CHANNEL_HAS_USERS
Cannot process command since channel is not empty.
@ CMDERR_FILETRANSFER_NOT_FOUND
File transfer doesn't exists.
@ CMDERR_UNKNOWN_COMMAND
The server doesn't support the issued command.
@ CMDERR_ALREADY_IN_CHANNEL
Cannot join same channel twice.
@ CMDERR_FILESHARING_DISABLED
Server does not allow file transfers.
@ CMDERR_INVALID_ACCOUNT
Invalid username or password for account.
@ CMDERR_MAX_FILETRANSFERS_EXCEEDED
Maximum number of file transfers exceeded.
@ CMDERR_MAX_CHANNELS_EXCEEDED
The maximum number of channels has been exceeded.
@ CMDERR_UNKNOWN_AUDIOCODEC
The server does not support the audio codec specified by the client. Introduced in version 4....
@ INTERR_SPEEXDSP_INIT_FAILED
Same as BearWare.ClientError.INTERR_AUDIOPREPROCESSOR_INIT_FAILED.
@ CMDERR_MAX_LOGINS_PER_IPADDRESS_EXCEEDED
The maximum number of logins allowed per IP-address has been exceeded.
@ CMDERR_NOT_IN_CHANNEL
Cannot leave channel because not in channel.
@ CMDERR_CHANNEL_NOT_FOUND
Channel does not exist.
@ CMDERR_NOT_AUTHORIZED
Command not authorized.
@ CMDERR_LOGINSERVICE_UNAVAILABLE
The login service is currently unavailable.
@ CMDERR_INCORRECT_SERVER_PASSWORD
Invalid server password.
delegate void ServerStats(ServerStatistics serverstatistics)
Delegate for event #OnCmdServerStatistics.
delegate void UserUpdate(User user)
Delegate for events #OnCmdUserLoggedIn, #OnCmdUserLoggedOut, #OnCmdUserUpdate, #OnCmdUserJoinedChanne...
UserDesktopInput OnUserDesktopCursor
A user has sent the position of the mouse cursor.
UserUpdate OnCmdUserJoinedChannel
A user has joined a channel.
CommandProcessing OnCmdProcessing
A command issued by Do* methods is being processed.
HotKeyTest OnHotKeyTest
A button was pressed or released on the user's keyboard or mouse.
delegate void NewAudioBlock(int nUserID, StreamType nStreamType)
Delegate for event #OnUserAudioBlock.
Connection OnConnectionLost
Connection to server has been lost.
DesktopTransferUpdate OnDesktopWindowTransfer
Used for tracking when a desktop window has been transmitted to the server.
delegate void UserRecordMediaFile(int nUserID, MediaFileInfo mediafileinfo)
Delegate for event #OnUserRecordMediaFile.
CommandError OnCmdError
The server rejected a command issued by the local client instance.
MaxPayloadUpdate OnConnectionMaxPayloadUpdated
The maximum size of the payload put into UDP packets has been updated.
delegate void StreamMediaFile(MediaFileInfo mediafileinfo)
Delegate for event #OnStreamMediaFile.
UserUpdate OnCmdUserUpdate
User changed properties.
delegate void MyselfLoggedOut()
Delegate for event #OnCmdMyselfLoggedOut.
delegate void CommandSuccess(int nCmdID)
Delegate for event #CommandSuccess.
delegate void UserVideoFrame(int nUserID, int nStreamID)
A delegate for the event #OnUserVideoCapture.
ChannelUpdate OnCmdChannelUpdate
A channel's properties has been updated.
delegate void ErrorOccured(ClientErrorMsg clienterrormsg)
Delegate for event #OnInternalError.
NewAudioBlock OnUserAudioBlock
A new audio block can be extracted.
VoiceActivation OnVoiceActivation
Voice activation has triggered transmission.
MyselfLoggedOut OnCmdMyselfLoggedOut
The client instance logged out of a server.
MyselfLoggedIn OnCmdMyselfLoggedIn
The client instance successfully logged on to server.
delegate void DesktopTransferUpdate(int nSessionID, int nBytesRemain)
Delegate for event OnDesktopWindowTransfer().
delegate void VoiceActivation(bool bVoiceActive)
Delegate for event #OnVoiceActivation.
delegate void ServerUpdate(ServerProperties serverproperties)
Delegate for event #OnCmdServerUpdate.
delegate void UserTextMessage(TextMessage textmessage)
Delegate for events #OnCmdUserTextMessage.
HotKeyToggle OnHotKeyToggle
A hotkey has been acticated or deactivated.
delegate void MyselfKicked(User user)
Delegate for event #OnCmdMyselfKicked.
LocalMediaFile OnLocalMediaFile
Media file is being played locally.
delegate void MaxPayloadUpdate(int nPayloadSize)
Delegate for event OnConnectionMaxPayloadUpdated().
UserTextMessage OnCmdUserTextMessage
A user has sent a text-message.
delegate void ChannelUpdate(Channel channel)
Delegate for #OnCmdChannelNew, #OnCmdChannelUpdate and #OnCmdChannelRemove.
delegate void HotKeyToggle(int nHotKeyID, bool bActive)
Delegate for event #OnHotKeyToggle.
AudioInput OnAudioInput
Audio input progress as result of TeamTalkBase.InsertAudioBlock()
Connection OnConnectionSuccess
Connected successfully to the server.
UserUpdate OnCmdUserLoggedOut
A user logged out of the server.
delegate void UserStreamUpdate(User user, int nStreamID)
Delegate for events #OnUserFirstVoiceStreamPacket.
ErrorOccured OnInternalError
A internal error occured.
CommandSuccess OnCmdSuccess
The server successfully processed a command issued by the local client instance.
StreamMediaFile OnStreamMediaFile
Media file being streamed to a channel is processing.
delegate void UserDesktopInput(int nSrcUserID, DesktopInput desktopinput)
Delegate for event OnUserDesktopCursor().
delegate void HotKeyTest(int nVkCode, bool bActive)
Delegate for event #OnHotKeyTest.
MyselfKicked OnCmdMyselfKicked
The client instance was kicked from a channel.
UserVideoFrame OnUserMediaFileVideo
A new video frame was received from a user.
UserVideoFrame OnUserVideoCapture
A new video frame was received from a user.
ChannelUpdate OnCmdChannelNew
A new channel has been created.
delegate void FileTransferUpdate(FileTransfer filetransfer)
Delegate for event #OnFileTransfer.
ListUserAccount OnCmdUserAccount
A new user account has been listed by the server. Event handler for BearWare.ClientEvent....
UserStreamUpdate OnUserFirstVoiceStreamPacket
The first voice packet of a new voice stream has been received.
FileUpdate OnCmdFileNew
A new file is added to a channel.
delegate void NewDesktopWindow(int nUserID, int nStreamID)
Delegate for event #OnUserDesktopWindow.
delegate void CommandProcessing(int nCmdID, bool bActive)
Delegate for event #OnCmdProcessing.
ListBannedUser OnCmdBannedUser
A new banned user has been listed by the server. Event handler for BearWare.ClientEvent....
delegate void AudioInput(AudioInputProgress aip)
Delegate for event #OnAudioInput.
ServerStats OnCmdServerStatistics
Server statistics available.
UserUpdate OnUserStateChange
A user's state has been updated.
delegate void ListBannedUser(BannedUser banneduser)
A delegate for event #OnCmdUserAccount.
UserRecordMediaFile OnUserRecordMediaFile
An media file recording has changed status.
delegate void LocalMediaFile(MediaFileInfo mediafileinfo)
Delegate for event #OnLocalMediaFile.
delegate void CommandError(int nCmdID, ClientErrorMsg clienterrormsg)
Delegate for event #OnCmdError.
delegate void FileUpdate(RemoteFile remotefile)
A delegate for events #OnCmdFileNew and #OnCmdFileRemove.
ClientEvent
TeamTalk client event messages.
delegate void ListUserAccount(UserAccount useraccount)
A delegate for event #OnCmdUserAccount.
NewDesktopWindow OnUserDesktopWindow
A new or updated desktop window has been received from a user.
UserUpdate OnCmdUserLoggedIn
A new user logged on to the server.
FileUpdate OnCmdFileRemove
A file has been removed from a channel.
ServerUpdate OnCmdServerUpdate
Server has updated its settings (server name, MOTD, etc.)
UserUpdate OnCmdUserLeftChannel
User has left a channel.
FileTransferUpdate OnFileTransfer
A file transfer is processing.
Connection OnConnectionFailed
Failed to connect to server.
delegate void Connection()
Delegate for events #OnConnectionSuccess, #OnConnectionFailed and #OnConnectionLost.
UserDesktopInput OnUserDesktopInput
Desktop input (mouse or keyboard input) has been received from a user.
ChannelUpdate OnCmdChannelRemove
A channel has been removed. Event handler for BearWare.ClientEvent.CLIENTEVENT_CMD_CHANNEL_REMOVE.
delegate void MyselfLoggedIn(int nMyUserID, UserAccount useraccount)
Delegate for event #OnCmdMyselfLoggedIn.
@ __AUDIOPREPROCESSORTYPE
@ __WEBRTCAUDIOPREPROCESSOR
@ CLIENTEVENT_CMD_FILE_REMOVE
A file has been removed from a channel.
@ CLIENTEVENT_CMD_CHANNEL_UPDATE
A channel's properties has been updated.
@ CLIENTEVENT_USER_DESKTOPCURSOR
A user has sent the position of the mouse cursor.
@ CLIENTEVENT_STREAM_MEDIAFILE
Media file being streamed to a channel is processing.
@ CLIENTEVENT_CMD_SUCCESS
The server successfully processed a command issued by the local client instance.
@ CLIENTEVENT_CMD_MYSELF_KICKED
The client instance was kicked from a channel.
@ CLIENTEVENT_USER_STATECHANGE
A user state has changed.
@ CLIENTEVENT_CMD_MYSELF_LOGGEDOUT
The client instance logged out of the server.
@ CLIENTEVENT_FILETRANSFER
A file transfer is processing.
@ CLIENTEVENT_CMD_USER_JOINED
A user has joined a channel.
@ CLIENTEVENT_HOTKEY
A hotkey has been acticated or deactivated.
@ CLIENTEVENT_CMD_USER_UPDATE
User changed properties.
@ CLIENTEVENT_LOCAL_MEDIAFILE
Media file played locally is procesing.
@ CLIENTEVENT_HOTKEY_TEST
A button was pressed or released on the user's keyboard or mouse.
@ CLIENTEVENT_USER_AUDIOBLOCK
A new audio block can be extracted.
@ CLIENTEVENT_CON_MAX_PAYLOAD_UPDATED
The maximum size of the payload put into UDP packets has been updated.
@ CLIENTEVENT_USER_FIRSTVOICESTREAMPACKET
The first voice packet of a new voice stream has been received.
@ CLIENTEVENT_CMD_SERVER_UPDATE
Server has updated its settings (server name, MOTD, etc.)
@ CLIENTEVENT_USER_MEDIAFILE_VIDEO
A new video frame from a video media file was received from a user.
@ CLIENTEVENT_CON_LOST
Connection to server has been lost.
@ CLIENTEVENT_CMD_FILE_NEW
A new file is added to a channel.
@ CLIENTEVENT_USER_DESKTOPINPUT
Desktop input (mouse or keyboard input) has been received from a user.
@ CLIENTEVENT_CMD_MYSELF_LOGGEDIN
The client instance successfully logged on to server.
@ CLIENTEVENT_CON_SUCCESS
Connected successfully to the server.
@ CLIENTEVENT_USER_RECORD_MEDIAFILE
A media file recording has changed status.
@ CLIENTEVENT_USER_DESKTOPWINDOW
A new or updated desktop window has been received from a user.
@ CLIENTEVENT_CMD_ERROR
The server rejected a command issued by the local client instance.
@ CLIENTEVENT_AUDIOINPUT
Progress is audio being injected as BearWare.StreamType.STREAMTYPE_VOICE.
@ CLIENTEVENT_CMD_USER_LEFT
User has left a channel.
@ CLIENTEVENT_CMD_PROCESSING
A command issued by TeamTalkBase.Do* methods is being processed.
@ CLIENTEVENT_CMD_BANNEDUSER
A banned user has been received from the server.
@ CLIENTEVENT_CON_FAILED
Failed to connect to server.
@ CLIENTEVENT_CMD_CHANNEL_NEW
A new channel has been created.
@ CLIENTEVENT_CMD_SERVERSTATISTICS
Server statistics available.
@ CLIENTEVENT_USER_VIDEOCAPTURE
A new video frame from a video capture device was received from a user.
@ CLIENTEVENT_CMD_USERACCOUNT
A user account has been received from the server.
@ CLIENTEVENT_CMD_USER_TEXTMSG
A user has sent a text-message.
@ CLIENTEVENT_CMD_USER_LOGGEDOUT
A client logged out of the server.
@ CLIENTEVENT_INTERNAL_ERROR
An internal error occurred in the client instance.
@ CLIENTEVENT_CMD_USER_LOGGEDIN
A new user logged on to the server.
@ CLIENTEVENT_CMD_CHANNEL_REMOVE
A channel has been removed.
@ CLIENTEVENT_VOICE_ACTIVATION
Voice activation has triggered transmission.
@ CLIENTEVENT_DESKTOPWINDOW_TRANSFER
Used for tracking when a desktop window has been transmitted to the server.
bool HotKey_Register(int nHotKeyID, int[] lpnVKCodes)
Register a global hotkey.
bool HotKey_GetKeyString(int nVKCode, ref string szKeyName)
Get a string description of the virtual-key code.
int HotKey_IsActive(int nHotKeyID)
Check whether hotkey is active.
bool HotKey_Unregister(int nHotKeyID)
Unregister a registered hotkey.
bool HotKey_RemoveTestHook()
Remove the test hook again so the #OnHotKeyTest event will no longer be notified.
bool HotKey_InstallTestHook()
Install a test hook which calls the event #OnHotKeyTest whenever a key or mouse button is pressed.
bool GetMessage(ref TTMessage pMsg, int nWaitMs)
Poll for events in the client instance.
const int TT_CHANNELID_MAX
The highest channel ID. Also used for BearWare.TeamTalkBase.TT_CLASSROOM_FREEFORALL.
const int TT_LOCAL_USERID
User ID passed to TeamTalkBase.EnableAudioBlockEvent() in order to receive BearWare....
BearWare.ClientFlag GetFlags()
Get a bitmask describing the client's current state.
const int TT_MUXED_USERID
User ID used to identify muxed audio that has been mixed into a single stream.
TeamTalkBase(bool poll_based)
Create a new TeamTalk client instance.
ClientFlag
Flags used to describe the the client instance current state.
bool PumpMessage(ClientEvent nClientEvent, int nIdentifier)
Cause client instance event thread to schedule an update event.
const int TT_USERID_MAX
The highest user ID.
const int TT_LOCAL_TX_USERID
User ID passed to TeamTalkBase.EnableAudioBlockEvent() in order to receive BearWare....
void ProcessMsg(TTMessage msg)
Event handler for BearWare.TTMessage.
static string GetVersion()
Get the DLL's version number.
ClientFlag Flags
Same as GetFlags().
static bool SetLicenseInformation(string szRegName, string szRegKey)
Set license information to disable trial mode.
const int TT_STRLEN
The maximum length of all strings used in TeamTalkBase. This value includes the zero terminator,...
@ CLIENT_CLOSED
The client instance is in closed state, i.e. no operations has been performed on it.
@ CLIENT_VIDEOCAPTURE_READY
If set the client instance's video device has been initialized, i.e. TeamTalkBase....
@ CLIENT_CONNECTION
Helper for BearWare.ClientFlag.CLIENT_CONNECTING and BearWare.ClientFlag.CLIENT_CONNECTED to see if T...
@ CLIENT_CONNECTED
If set the client instance is connected to a server, i.e. BearWare.ClientEvent.CLIENTEVENT_CON_SUCCES...
@ CLIENT_SNDINOUTPUT_DUPLEX
If set the client instance is running in sound duplex mode where multiple audio output streams are mi...
@ CLIENT_SNDOUTPUT_READY
If set the client instance's sound output device has been initialized, i.e. TeamTalkBase....
@ CLIENT_CONNECTING
If set the client instance is currently try to connect to a server, i.e. TeamTalkBase....
@ CLIENT_STREAM_VIDEO
If set the client is currently streaming the video of a media file. When streaming a video file the B...
@ CLIENT_MUX_AUDIOFILE
If set the client instance is currently muxing audio streams into a single file. This is enabled by c...
@ CLIENT_SNDOUTPUT_AUTO3DPOSITION
If set the client instance will auto position users in a 180 degree circle using 3D-sound....
@ CLIENT_DESKTOP_ACTIVE
If set the client instance current have an active desktop session, i.e. TeamTalkBase....
@ CLIENT_SNDINPUT_READY
If set the client instance's sound input device has been initialized, i.e. TeamTalkBase....
@ CLIENT_STREAM_AUDIO
If set the client is currently streaming the audio of a media file. When streaming a video file the B...
@ CLIENT_SNDINPUT_VOICEACTIVATED
If set the client instance will start transmitting audio if the sound level is above the voice activa...
@ CLIENT_TX_VOICE
If set the client instance is currently transmitting audio.
@ CLIENT_TX_VIDEOCAPTURE
If set the client instance is currently transmitting video.
@ CLIENT_SNDINPUT_VOICEACTIVE
If set GetSoundInputLevel() is higher than the voice activation level. To enable voice transmission i...
@ CLIENT_TX_DESKTOP
If set the client instance is currently transmitting a desktop window. A desktop window update is iss...
@ CLIENT_AUTHORIZED
If set the client instance is logged on to a server, i.e. got BearWare.ClientEvent....
@ CLIENT_SNDOUTPUT_MUTE
If set the client instance has muted all users.
MixerControl
The Windows mixer controls which can be queried by the BearWare.WindowsMixer class.
UserRight
The rights users have once they have logged on to the server.
ServerLogEvent
Events that are logged by the server, i.e. written to server's log file.
bool GetServerUsers(out User[] lpUsers)
Get all the users on the server.
bool GetServerProperties(ref ServerProperties lpServerProperties)
Get the server's properties.
BanType
Way to ban a user from either login or joining a channel.
@ USERRIGHT_TRANSMIT_DESKTOP
User is allowed to forward desktop packets through server.
@ USERRIGHT_MULTI_LOGIN
Allow multiple users to log on to the server with the same BearWare.UserAccount.
@ USERRIGHT_TRANSMIT_VOICE
Users are allowed to forward audio packets through server. TeamTalkBase.EnableVoiceTransmission()
@ USERRIGHT_CREATE_TEMPORARY_CHANNEL
User is allowed to create temporary channels which disappear when last user leaves the channel.
@ USERRIGHT_TRANSMIT_VIDEOCAPTURE
User is allowed to forward video packets through server. TeamTalkBase.StartVideoCaptureTransmission()
@ USERRIGHT_KICK_USERS
User can kick users off the server.
@ USERRIGHT_UPDATE_SERVERPROPERTIES
User can update server properties.
@ USERRIGHT_ALL
User with all rights.
@ USERRIGHT_LOCKED_NICKNAME
User's nick name is locked. TeamTalkBase.DoChangeNickname() cannot be used and TeamTalkBase....
@ USERRIGHT_TEXTMESSAGE_USER
User can send private text messages, i.e. BearWare.TextMsgType.MSGTYPE_USER.
@ USERRIGHT_TRANSMIT_MEDIAFILE
User is allowed to media files to channel.
@ USERRIGHT_BAN_USERS
User can add and remove banned users.
@ USERRIGHT_TRANSMIT_MEDIAFILE_VIDEO
User is allowed to stream video files to channel.
@ USERRIGHT_TEXTMESSAGE_BROADCAST
User can broadcast text message of type BearWare.TextMsgType.MSGTYPE_BROADCAST to all users.
@ USERRIGHT_TRANSMIT_MEDIAFILE_AUDIO
User is allowed to stream audio files to channel.
@ USERRIGHT_TEXTMESSAGE_CHANNEL
User can send private text messages, i.e. BearWare.TextMsgType.MSGTYPE_CHANNEL.
@ USERRIGHT_OPERATOR_ENABLE
User can make other users channel operator.
@ USERRIGHT_TRANSMIT_DESKTOPINPUT
User is allowed to forward desktop input packets through server.
@ USERRIGHT_MOVE_USERS
User can move users from one channel to another.
@ USERRIGHT_LOCKED_STATUS
User's status is locked. TeamTalkBase.DoChangeStatus() cannot be used.
@ USERRIGHT_VIEW_ALL_USERS
User can see users in all other channels.
@ USERRIGHT_DOWNLOAD_FILES
User can download files from channels.
@ USERRIGHT_UPLOAD_FILES
User can upload files to channels.
@ USERRIGHT_VIEW_HIDDEN_CHANNELS
User can see hidden channels, BearWare.ChannelType.CHANNEL_HIDDEN.
@ USERRIGHT_MODIFY_CHANNELS
User is allowed to create permanent channels which are stored in the server's configuration file.
@ USERRIGHT_RECORD_VOICE
User can record voice in all channels. Even channels with BearWare.ChannelType.CHANNEL_NO_RECORDING.
@ USERRIGHT_NONE
Users who log onto the server has none of the rights below.
@ SERVERLOGEVENT_USER_MOVED
User was moved to another channel is logged to file by the server.
@ SERVERLOGEVENT_USER_LEFTCHANNEL
User left a channel is logged to file by the server.
@ SERVERLOGEVENT_USER_LOGGEDIN
User logged in is logged to file by the server.
@ SERVERLOGEVENT_USER_DISCONNECTED
User disconnected from server is logged to file by the server.
@ SERVERLOGEVENT_SERVER_SAVECONFIG
User saved server's configuration is logged to file by the server.
@ SERVERLOGEVENT_CHANNEL_REMOVED
User removed a channel is logged to file by the server.
@ SERVERLOGEVENT_FILE_DELETED
User deleted a file is logged to file by the server.
@ SERVERLOGEVENT_FILE_DOWNLOADED
User downloaded a file is logged to file by the server.
@ SERVERLOGEVENT_USER_KICKED
User was kicked is logged to file by the server.
@ SERVERLOGEVENT_USER_JOINEDCHANNEL
User joined a channel is logged to file by the server.
@ SERVERLOGEVENT_USER_TEXTMESSAGE_BROADCAST
User's broadcast text messages are logged to file by the server.
@ SERVERLOGEVENT_USER_TEXTMESSAGE_CHANNEL
User's channel text messages are logged to file by the server.
@ SERVERLOGEVENT_SERVER_UPDATED
User updated server's properties is logged to file by the server.
@ SERVERLOGEVENT_USER_CONNECTED
User's IP-address is logged to file by serer.
@ SERVERLOGEVENT_USER_TIMEDOUT
User disconnected due to connection timeout is logged to file by the server.
@ SERVERLOGEVENT_USER_LOGINFAILED
User failed to log in is logged to file by the server.
@ SERVERLOGEVENT_USER_LOGGEDOUT
User logged out is logged to file by the server.
@ SERVERLOGEVENT_NONE
Nothing is logged to file by server.
@ SERVERLOGEVENT_USER_TEXTMESSAGE_PRIVATE
User's private text messages are logged to file by the server.
@ SERVERLOGEVENT_CHANNEL_UPDATED
User updated a channel is logged to file by the server.
@ SERVERLOGEVENT_USER_BANNED
User was banned is logged to file by the server.
@ SERVERLOGEVENT_USER_UPDATED
User's status is logged to file by the server.
@ SERVERLOGEVENT_USER_UNBANNED
User was removed from ban list is logged to file by the server.
@ SERVERLOGEVENT_CHANNEL_CREATED
User created new channel is logged to file by the server.
@ SERVERLOGEVENT_FILE_UPLOADED
User uploaded a file is logged to file by the server.
@ SERVERLOGEVENT_USER_TEXTMESSAGE_CUSTOM
User's custom text messages are logged to file by the server.
@ BANTYPE_NONE
Ban type not set.
@ BANTYPE_CHANNEL
The ban applies to the channel specified in the szChannel of BearWare.BannedUser. Otherwise the ban a...
@ BANTYPE_USERNAME
Ban szUsername specified in BearWare.BannedUser.
@ BANTYPE_IPADDR
Ban szIPAddress specified in BearWare.BannedUser.
static IntPtr StartSoundLoopbackTest(int nInputDeviceID, int nOutputDeviceID, int nSampleRate, int nChannels, bool bDuplexMode, SpeexDSP lpSpeexDSP)
Perform a record and playback test of specified sound devices along with an audio configuration and a...
bool SetUserMediaStorageDir(int nUserID, string szFolderPath, string szFileNameVars, AudioFileFormat uAFF)
Store user's audio to disk.
bool SetUserMediaStorageDir(int nUserID, string szFolderPath, string szFileNameVars, AudioFileFormat uAFF, int nStopRecordingExtraDelayMSec)
Store user's audio to disk.
bool Enable3DSoundPositioning(bool bEnable)
Enable automatically position users using 3D-sound.
bool ReleaseUserAudioBlock(AudioBlock lpAudioBlock)
Release the shared memory of an BearWare.AudioBlock.
bool SetSoundInputPreprocess(SpeexDSP lpSpeexDSP)
Enable sound preprocessor which should be used for processing audio recorded by the sound input devic...
bool SetUserStereo(int nUserID, StreamType nStreamType, bool bLeftSpeaker, bool bRightSpeaker)
Set whether a user should speak in the left, right or both speakers. This function only works if Bear...
bool EnableAudioBlockEvent(int nUserID, StreamType uStreamTypes, AudioFormat lpAudioFormat, bool bEnable)
Same as TeamTalkBase.EnableAudioBlockEvent() but option to specify audio output format.
bool CloseSoundDuplexDevices()
Shut down sound devices running in duplex mode.
bool AutoPositionUsers()
Automatically position users using 3D-sound.
bool SetSoundOutputVolume(int nVolume)
Set master volume.
bool GetSoundDeviceEffects(ref SoundDeviceEffects lpSoundDeviceEffect)
Get the audio effects that are currently enabled.
int GetSoundInputLevel()
Get the volume level of the current recorded audio.
bool SetUserPosition(int nUserID, StreamType nStreamType, float x, float y, float z)
Set the position of a user.
bool SetUserStoppedPlaybackDelay(int nUserID, StreamType nStreamType, int nDelayMSec)
Set the delay of when a user should no longer be considered as playing audio (either voice or audio f...
const int TT_SAMPLERATES_MAX
bool SetUserAudioStreamBufferSize(int nUserID, StreamType uStreamType, int nMSec)
Change the amount of media data which can be buffered in the user's playback queue.
static bool GetSoundDevices(out SoundDevice[] lpSoundDevices)
Retrieve list of sound devices for recording and playback.
static bool GetDefaultSoundDevicesEx(SoundSystem nSndSystem, ref int lpnInputDeviceID, ref int lpnOutputDeviceID)
Get the default sound devices for the specified sound system.
bool GetUserJitterControl(int nUserID, StreamType nStreamType, ref JitterConfig lpJitterConfig)
Get the de-jitter configuration for a user.
bool GetSoundInputPreprocess(ref SpeexDSP lpSpeexDSP)
Get the sound preprocessor settings which are currently in use for recorded sound input device (voice...
AudioBlock AcquireUserAudioBlock(StreamType uStreamTypes, int nUserID)
Extract the raw audio associated with the event TeamTalkBase.OnUserAudioBlock().
bool SetSoundOutputMute(bool bMuteAll)
Set all users mute.
bool InitSoundOutputSharedDevice(int nSampleRate, int nChannels, int nFrameSize)
Setup sample rate, channels and frame size of shared sound output device.
bool InitSoundDuplexDevices(int nInputDeviceID, int nOutputDeviceID)
Enable duplex mode where multiple audio streams are mixed into a single stream using software.
bool CloseSoundOutputDevice()
Shutdown the output sound device.
bool InitSoundOutputDevice(int nOutputDeviceID)
Initialize the sound output device (for audio playback).
int GetSoundInputGainLevel()
Get voice gain level of outgoing audio.
static bool RestartSoundSystem()
Reinitialize sound system (in order to detect new/removed devices).
SoundSystem
The supported sound systems.
bool SetUserVolume(int nUserID, StreamType nStreamType, int nVolume)
Set the volume of a user.
SoundDeviceFeature
Features available on a sound device. Checkout uSoundDeviceFeatures on BearWare.SoundDevice.
int GetSoundOutputVolume()
Get master volume.
static IntPtr StartSoundLoopbackTest(int nInputDeviceID, int nOutputDeviceID, int nSampleRate, int nChannels, bool bDuplexMode, AudioPreprocessor lpAudioPreprocessor, BearWare.SoundDeviceEffects lpSoundDeviceEffects)
Perform a record and playback test of specified sound devices along with an audio configuration and a...
bool SetSoundInputPreprocess(AudioPreprocessor lpAudioPreprocessor)
Enable sound preprocessor which should be used for processing audio recorded by the sound input devic...
bool GetSoundInputPreprocess(ref AudioPreprocessor lpAudioPreprocessor)
Get the sound preprocessor settings which are currently in use for recorded sound input device (voice...
bool EnableAudioBlockEvent(int nUserID, StreamType uStreamTypes, bool bEnable)
Enable/disable access to raw audio from individual users, local microphone input or muxed stream of a...
static bool GetDefaultSoundDevices(ref int lpnInputDeviceID, ref int lpnOutputDeviceID)
Get the default sound devices.
bool SetUserJitterControl(int nUserID, StreamType nStreamType, JitterConfig lpJitterConfig)
Set the configuration for de-jitter measures for a user.
static bool CloseSoundLoopbackTest(IntPtr lpTTSoundLoop)
Stop recorder and playback test.
bool SetUserMute(int nUserID, StreamType nStreamType, bool bMute)
Mute a user.
bool InitSoundInputDevice(int nInputDeviceID)
Initialize the sound input device (for recording audio).
bool SetSoundInputGainLevel(int nLevel)
Set voice gaining of recorded audio.
bool CloseSoundInputDevice()
Shutdown the input sound device.
bool InitSoundInputSharedDevice(int nSampleRate, int nChannels, int nFrameSize)
Setup sample rate, channels and frame size of shared sound input device.
bool SetSoundDeviceEffects(SoundDeviceEffects lpSoundDeviceEffect)
Set up audio effects on a sound device.
@ SOUNDSYSTEM_WINMM
Windows legacy audio system. Should be used on Windows Mobile.
@ SOUNDSYSTEM_WASAPI
Windows Audio Session API (WASAPI). Should be used on Windows Vista/7/8/10.
@ SOUNDSYSTEM_DSOUND
DirectSound audio system. Should be used on Windows.
@ SOUNDSYSTEM_AUDIOUNIT
iOS sound API.
@ SOUNDSYSTEM_COREAUDIO
Core Audio. Should be used on MacOS.
@ SOUNDSYSTEM_AUDIOUNIT_IOS
Same as BearWare.SoundSystem.SOUNDSYSTEM_AUDIOUNIT.
@ SOUNDSYSTEM_PULSEAUDIO
PulseAudio API. PulseAudio is typically used on Ubuntu 22.
@ SOUNDSYSTEM_NONE
Sound system denoting invalid or not found.
@ SOUNDSYSTEM_ALSA
Advanced Linux Sound Architecture (ALSA). Should be used on Linux.
@ SOUNDSYSTEM_OPENSLES_ANDROID
Android sound API.
@ SOUNDDEVICEFEATURE_AEC
The BearWare.SoundDevice can enable Acoustic Echo Canceler (AEC). Enable AEC use property bEnableAEC ...
@ SOUNDDEVICEFEATURE_DEFAULTCOMDEVICE
The BearWare.SoundDevice is the default communication device. This feature is only supported on BearW...
@ SOUNDDEVICEFEATURE_AGC
The BearWare.SoundDevice can enable Automatic Gain Control (AGC). Enable AGC use property bEnableAGC ...
@ SOUNDDEVICEFEATURE_DUPLEXMODE
The BearWare.SoundDevice can run in duplex mode.
@ SOUNDDEVICEFEATURE_NONE
@ SOUNDDEVICEFEATURE_DENOISE
The BearWare.SoundDevice can enable denoising. Enable denoising use property bEnableDenoising on Bear...
@ SOUNDDEVICEFEATURE_3DPOSITION
The BearWare.SoundDevice can position user in 3D.
bool StartRecordingMuxedAudioFile(AudioCodec lpAudioCodec, string szAudioFileName, AudioFileFormat uAFF)
Store all audio conversations with specific BearWare.AudioCodec settings to a single file.
int GetVoiceActivationLevel()
Get voice activation level.
bool StopRecordingMuxedAudioFile(int nChannelID)
Stop recording conversations from a channel to a single file.
bool StopVideoCaptureTransmission()
Stop transmitting from video capture device.
StreamType
The types of streams which are available for transmission.
bool InsertAudioBlock(AudioBlock lpAudioBlock)
Transmit application provided raw audio in BearWare.AudioBlock-structs as BearWare....
int GetVoiceActivationStopDelay()
Get the delay of when voice active state should be disabled.
bool StopRecordingMuxedAudioFile()
Stop an active muxed audio recording.
bool StartVideoCaptureTransmission(VideoCodec lpVideoCodec)
Start transmitting from video capture device.
bool EnableVoiceTransmission(bool bEnable)
Start/stop transmitting of voice data from sound input.
bool EnableVoiceActivation(bool bEnable)
Enable voice activation.
bool StartRecordingMuxedAudioFile(int nChannelID, string szAudioFileName, AudioFileFormat uAFF)
Store audio conversations from a specific channel into a single file.
bool SetVoiceActivationStopDelay(int nDelayMSec)
Set the delay of when voice activation should be stopped.
bool StartRecordingMuxedStreams(StreamType uStreamTypes, AudioCodec lpAudioCodec, string szAudioFileName, AudioFileFormat uAFF)
Mix multiple BearWare.StreamType into a single audio file.
bool SetVoiceActivationLevel(int nLevel)
Set voice activation level.
@ STREAMTYPE_LOCALMEDIAPLAYBACK_AUDIO
Stream type for audio of local playback.
@ STREAMTYPE_NONE
No stream.
@ STREAMTYPE_DESKTOP
Desktop window stream type which is a window (or bitmap) being transmitted.
@ STREAMTYPE_CLASSROOM_ALL
Shortcut to allow voice, media files, desktop, webcamera and channel messages.
@ STREAMTYPE_DESKTOPINPUT
Desktop input stream type which is keyboard or mouse input being transmitted.
@ STREAMTYPE_VOICE
Voice stream type which is audio recorded from a sound input device.
@ STREAMTYPE_VIDEOCAPTURE
Video capture stream type which is video recorded from a webcam.
@ STREAMTYPE_CHANNELMSG
Channel text messages as stream type.
@ STREAMTYPE_MEDIAFILE
Shortcut to allow both audio and video media files.
@ STREAMTYPE_MEDIAFILE_AUDIO
Audio stream type from a media file which is being streamed.
@ STREAMTYPE_MEDIAFILE_VIDEO
Video stream type from a media file which is being streamed.
const int TT_CHANNELS_OPERATOR_MAX
bool GetUserStatistics(int nUserID, ref UserStatistics lpUserStatistics)
Get statistics for data and packet reception from a user.
BearWare.UserRight GetMyUserRights()
Convenience method for TeamTalkBase.GetMyUserAccount()
UserType
The types of users supported.
int GetMyUserID()
Get the local client instance's user ID.
bool GetMyUserAccount(ref UserAccount lpUserAccount)
Get the local client instance's BearWare.UserAccount.
int UserID
Same as GetMyUserID().
int UserData
Same as GetMyUserData().
UserType GetMyUserType()
Get the client instance's user type.
bool GetUser(int nUserID, ref User lpUser)
Get the user with the specified ID.
bool GetUserByUsername(string szUsername, ref User lpUser)
Get the user with the specified username.
Subscription
A user by default accepts audio, video and text messages from all users. Using subscribtions can,...
UserState
The possible states for a user. Used for BearWare.User's uUserState variable.
BearWare.UserRight UserRights
Same as GetMyUserRights().
int GetMyUserData()
If an account was used in TeamTalkBase.DoLogin() then this value will return the nUserData from the B...
TextMsgType
Text message types.
@ USERTYPE_NONE
Used internally to denote an unauthenticated user.
@ USERTYPE_DEFAULT
A default user who can join channels.
@ USERTYPE_ADMIN
A user with administrator privileges.
@ SUBSCRIBE_INTERCEPT_CUSTOM_MSG
Intercept all custom text messages sent by user. Only user-type BearWare.UserType....
@ SUBSCRIBE_VOICE
Subscribing to BearWare.StreamType.STREAMTYPE_VOICE.
@ SUBSCRIBE_DESKTOPINPUT
Subscribing to BearWare.StreamType.STREAMTYPE_DESKTOPINPUT.
@ SUBSCRIBE_VIDEOCAPTURE
Subscribing to BearWare.StreamType.STREAMTYPE_VIDEOCAPTURE.
@ SUBSCRIBE_MEDIAFILE
Subscribing to BearWare.StreamType.STREAMTYPE_MEDIAFILE_VIDEO and BearWare.StreamType....
@ SUBSCRIBE_INTERCEPT_MEDIAFILE
Intercept all media file data sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do ...
@ SUBSCRIBE_BROADCAST_MSG
Subscribing to broadcast text messsages.
@ SUBSCRIBE_INTERCEPT_CHANNEL_MSG
Intercept all channel messages sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do...
@ SUBSCRIBE_DESKTOP
Subscribing to BearWare.StreamType.STREAMTYPE_DESKTOP.
@ SUBSCRIBE_INTERCEPT_VIDEOCAPTURE
Intercept all video sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do this....
@ SUBSCRIBE_INTERCEPT_USER_MSG
Intercept all user text messages sent by a user. Only user-type BearWare.UserType....
@ SUBSCRIBE_CUSTOM_MSG
Subscribing to custom user messages.
@ SUBSCRIBE_INTERCEPT_DESKTOP
Intercept all desktop data sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do thi...
@ SUBSCRIBE_CHANNEL_MSG
Subscribing to channel texxt messages.
@ SUBSCRIBE_USER_MSG
Subscribing to user text messages.
@ SUBSCRIBE_NONE
No subscriptions.
@ SUBSCRIBE_INTERCEPT_VOICE
Intercept all voice sent by a user. Only user-type BearWare.UserType.USERTYPE_ADMIN can do this....
@ USERSTATE_MUTE_MEDIAFILE
If set the user's media file playback is muted.
@ USERSTATE_MEDIAFILE_AUDIO
If set the user currently streams an audio file. If user is streaming a video file with audio then th...
@ USERSTATE_VIDEOCAPTURE
If set the user currently has an active video stream. If this flag changes the event BearWare....
@ USERSTATE_MUTE_VOICE
If set the user's voice is muted.
@ USERSTATE_VOICE
If set the user is currently talking. If this flag changes the event BearWare.ClientEvent....
@ USERSTATE_DESKTOP
If set the user currently has an active desktop session. If this flag changes the event BearWare....
@ USERSTATE_MEDIAFILE
If set user is streaming a media file. If this flag changes the event BearWare.ClientEvent....
@ USERSTATE_MEDIAFILE_VIDEO
If set the user currently streams a video file. If this flag changes the event BearWare....
@ USERSTATE_NONE
The user is in initial state.
@ MSGTYPE_CUSTOM
A custom user to user text message. Works the same way as BearWare.TextMsgType BearWare....
@ MSGTYPE_USER
A User to user text message. A message of this type can be sent across channels.
@ MSGTYPE_BROADCAST
A broadcast message. Requires BearWare.UserRight.USERRIGHT_TEXTMESSAGE_BROADCAST.
@ MSGTYPE_CHANNEL
A User to channel text message. Users of type BearWare.UserType.USERTYPE_DEFAULT can only send this t...
bool PaintVideoFrame(int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight, ref VideoFrame lpVideoFrame)
Paint user's video frame using a Windows' DC (device context).
bool InitVideoCaptureDevice(string szDeviceID, VideoFormat lpVideoFormat)
Initialize a video capture device.
bool ReleaseUserVideoCaptureFrame(VideoFrame lpVideoFrame)
Delete a user's video frame, acquired through TeamTalkBase.AcquireUserVideoCaptureFrame(),...
bool PaintVideoFrameEx(int nUserID, System.IntPtr hDC, int XDest, int YDest, int nDestWidth, int nDestHeight, int XSrc, int YSrc, int nSrcWidth, int nSrcHeight, ref VideoFrame lpVideoFrame)
Paint user's video frame using a Windows' DC (device context).
VideoFrame AcquireUserVideoCaptureFrame(int nUserID, out Bitmap bmp)
Extract a user's video frame for display.
static bool GetVideoCaptureDevices(out VideoCaptureDevice[] lpVideoDevices)
Get the list of devices available for video capture.
bool CloseVideoCaptureDevice()
Close a video capture device.
FourCC
The picture format used by a capture device.
const int TT_VIDEOFORMATS_MAX
@ FOURCC_YUY2
Image format where a 640x480 pixel images takes up 614.400 bytes.
@ FOURCC_NONE
Internal use to denote no supported formats.
@ FOURCC_I420
Prefered image format with the lowest bandwidth usage. A 640x480 pixel image takes up 460....
@ FOURCC_RGB32
The image format with the highest bandwidth usage. A 640x480 pixel images takes up 1....
Properties to prevent server abuse.
int nCommandsLimit
Limit number of commands a user can send to the server.
int nCommandsIntervalMSec
Commands within given interval.
An audio block containing the raw audio from a user who was talking.
int nSamples
The number of samples in the raw audio array.
StreamType uStreamTypes
The stream types used to generate the AudioBlock's raw audio.
int nSampleRate
The sample rate of the raw audio.
uint uSampleIndex
The index of the first sample in lpRawAudio. Its value will be a multiple of nSamples....
int nStreamID
The ID of the stream. The stream id changes every time the user enables a new transmission using Team...
int nChannels
The number of channels used (1 for mono, 2 for stereo).
System.IntPtr lpRawAudio
The raw audio in 16-bit integer format array. The size of the array in bytes is sizeof(short) * nSamp...
Struct used for specifying which audio codec a channel uses.
SpeexVBRCodec speex_vbr
Speex codec settings if nCodec is BearWare.Codec.SPEEX_VBR_CODEC.
SpeexCodec speex
Speex codec settings if nCodec is BearWare.Codec.SPEEX_CODEC.
Codec nCodec
Specifies whether the member speex, speex_vbr or opus holds the codec settings.
OpusCodec opus
Opus codec settings if nCodec is OPUS_CODEC.
const int DEFAULT_AGC_INC_MAXDB
const int DEFAULT_AGC_GAINLEVEL
Audio configuration for clients in a channel.
AudioConfig(bool set_defaults)
int nGainLevel
Reference gain level to be used by all users.
bool bEnableAGC
Users should enable automatic gain control.
Configure the audio preprocessor specified by nPreprocessor.
WebRTCAudioPreprocessor webrtc
Used when nPreprocessor is BearWare.AudioPreprocessorType.WEBRTC_AUDIOPREPROCESSOR.
SpeexDSP speexdsp
Used when nPreprocessor is BearWare.AudioPreprocessorType.SPEEXDSP_AUDIOPREPROCESSOR.
AudioPreprocessorType nPreprocessor
The audio preprocessor to use in the union of audio preprocessors.
TTAudioPreprocessor ttpreprocessor
Used when nPreprocessor is BearWare.AudioPreprocessorType.TEAMTALK_AUDIOPREPROCESSOR.
A struct containing the properties of a banned user.
string szIPAddress
IP-address of banned user.
string szNickname
Nickname of banned user. Read-only property.
string szChannelPath
Channel where user was located when banned.
string szOwner
The username of the user who made the ban.
string szUsername
Username of banned user.
BanType uBanTypes
The type of ban that applies to this banned user.
string szBanTime
Date and time when user was banned. Read-only property.
A struct containing the properties of a channel.
int nTransmitUsersQueueDelayMSec
Delay for switching to next active voice user in transmitUsersQueue.
int[] transmitUsersQueue
The users currently queued for voice or media file transmission.
void AddTransmitUser(int nUserID, StreamType uStreamType)
Helper function for adding a user and BearWare.StreamType to transmitUsers.
int GetTransmitUserCount()
Get the number of users who can currently transmit to the BearWare.ChannelType.CHANNEL_CLASSROOM.
AudioConfig audiocfg
The audio configuration which users who join the channel should use.
void RemoveTransmitUser(int nUserID, StreamType uStreamType)
Helper function for removing a BearWare.StreamType for a user in transmitUsers.
int nTimeOutTimerMediaFileMSec
Time out timer for media file stream. The maximum time in miliseconds a user can transmit a media fil...
bool bPassword
Whether password is required to join channel. Read-only property.
string szPassword
Password to join the channel. When extracted through TeamTalkBase.GetChannel() the password will only...
long nDiskQuota
Number of bytes available for file storage.
int[] transmitUsers
List of users who can transmit in a channel.
StreamType GetTransmitStreamTypes(int nUserID)
Helper function for getting the BearWare.StreamType a user can transmit by querying transmitUsers.
string szTopic
Topic of the channel.
AudioCodec audiocodec
The audio codec used by users in the channel.
int nUserData
User specific data which will be stored on persistent storage on the server if the channel type is Be...
int nTimeOutTimerVoiceMSec
Time out timer for voice stream. The maximum time in miliseconds a user can transmit voice without ch...
string szOpPassword
Password to become channel operator.
int nParentID
Parent channel ID. 0 means no parent channel, i.e. it's the root channel.
int nChannelID
The channel's ID. A value from 1 - BearWare.TeamTalkBase.TT_CHANNELID_MAX.
ChannelType uChannelType
A bitmask of the type of channel based on BearWare.ChannelType.
int nMaxUsers
Max number of users in channel.
string szName
Name of the channel.
string szErrorMsg
Text message describing the error.
int nErrorNo
Error number based on BearWare.ClientError.
Control timers for sending keep alive information to the server.
int nUdpConnectTimeoutMSec
The duration before the client instance should give up trying to connect to the server on UDP....
int nUdpKeepAliveRTXMSec
Client instance's interval for retransmitting UDP keep alive packets. If server hasn't responded to U...
int nUdpConnectRTXMSec
Client instance's interval for retransmitting UDP connect packets. UDP connect packets are only sent ...
int nTcpKeepAliveIntervalMSec
Client instance's interval between TeamTalkBase.DoPing() command. Read-only value....
int nUdpKeepAliveIntervalMSec
Client instance's interval between sending UDP keep alive packets. The UDP keep alive packets are use...
int nConnectionLostMSec
The duration before the TeamTalk instance should consider the client/server connection lost.
Statistics of bandwidth usage and ping times in the local client instance.
long nVoiceBytesRecv
Voice data received (on UDP).
int nSoundInputDeviceDelayMSec
Delay of sound input device until the first audio frame is delivered (in msec).
long nVideoCaptureBytesRecv
Video data received (on UDP).
int nTcpPingTimeMs
Response time to server on TCP (based on ping/pong sent at a specified interval. Set to -1 if not cur...
int nUdpServerSilenceSec
The number of seconds nothing has been received by the client on UDP.
long nMediaFileVideoBytesSent
Video from media file data sent (on UDP).
long nMediaFileVideoBytesRecv
Video from media file data received (on UDP).
long nMediaFileAudioBytesSent
Audio from media file data sent (on UDP).
long nVoiceBytesSent
Voice data sent (on UDP).
long nUdpBytesSent
Bytes sent on UDP.
long nMediaFileAudioBytesRecv
Audio from media file data received (on UDP).
long nVideoCaptureBytesSent
Video data sent (on UDP).
int nTcpServerSilenceSec
The number of seconds nothing has been received by the client on TCP.
long nUdpBytesRecv
Bytes received on UDP.
long nDesktopBytesSent
Desktop data sent (on UDP).
long nDesktopBytesRecv
Desktop data received (on UDP).
int nUdpPingTimeMs
Response time to server on UDP (based on ping/pong sent at a specified interval. Set to -1 if not cur...
A struct containing the properties of a shared desktop window.
int nSessionID
The ID of the session which the bitmap belongs to. If the session ID changes it means the user has st...
int nWidth
The width in pixels of the bitmap.
DesktopProtocol nProtocol
The desktop protocol used for transmitting the desktop window.
int nBytesPerLine
The number of bytes for each scan-line in the bitmap. Zero means 4-byte aligned.
IntPtr frameBuffer
A buffer pointing to the bitmap data (often refered to as Scan0).
int nFrameBufferSize
The size in bytes of the buffer allocate in frameBuffer. Typically nBytesPerLine * nHeight.
BitmapFormat bmpFormat
The format of the bitmap.
int nHeight
The height in pixels of the bitmap.
Configure peer verification for encrypted connection.
string szCAFile
Path to Certificate Authority (CA) Certificate in PEM format.
bool bVerifyClientOnce
Whether to only verify client's certificate once during initial connection.
int nVerifyDepth
Set limit to depth in the certificate chain during the verification procedure.
string szCertificateFile
Path to SSL certificate in PEM format.
string szPrivateKeyFile
Path to certificate's private key.
bool bVerifyPeer
Verify that peer (client or server) uses a certificate that has been generated by the Certificate Aut...
string szCADir
Path to directory containing Certificate Authority (CA) Certificates in PEM format.
A struct containing the properties of a file transfer.
bool bInbound
TRUE if download and FALSE if upload.
FileTransferStatus nStatus
Status of file transfer.
string szRemoteFileName
The filename in the channel.
string szLocalFilePath
The file path on local disk.
long nTransferred
The number of bytes transferred so far.
long nFileSize
The size of the file being transferred.
int nTransferID
The ID identifying the file transfer.
int nChannelID
The channel where the file is/will be located.
Configuration parameters for the Jitter Buffer.
int nMaxAdaptiveDelayMSec
A hard maximum delay on the adaptive delay. Only valid when higher than zero. Default = 0.
int nActiveAdaptiveDelayMSec
The current adaptive delay. When used with TeamTalkBase.SetUserJitterControl(), this value is used as...
bool bUseAdativeDejitter
Turns adaptive jitter buffering ON/OFF. Default is OFF.
int nFixedDelayMSec
The fixed delay in milliseconds. Default = 0.
OPUS audio codec settings. For detailed information about the OPUS codec check out http://www....
int nFrameSizeMSec
OPUS supports 2.5, 5, 10, 20, 40, 60, 80, 100 and 120 msec. If nFrameSizeMSec is 0 then nFrameSizeMSe...
bool bFEC
Forward error correction. Corrects errors if there's packetloss.
bool bVBR
Enable variable bitrate.
int nComplexity
Complexity of encoding (affects CPU usage). Value from 0-10.
bool bDTX
Discontinuous transmission. Enables "null" packets during silence.
int nSampleRate
The sample rate to use. Sample rate must be 8000, 12000, 16000, 24000 or 48000 Hz.
int nApplication
Application of encoded audio, VoIP or music.
bool bVBRConstraint
Enable constrained VBR. bVBR must be enabled to enable this.
int nTxIntervalMSec
Duration of audio before each transmission. Minimum is 2 msec. Recommended is 40 msec....
int nBitRate
Bitrate for encoded audio. Should be between BearWare.OpusConstants.OPUS_MIN_BITRATE and BearWare....
int nChannels
Mono = 1 or stereo = 2.
OPUS constants for BearWare.OpusCodec.
const bool DEFAULT_OPUS_FEC
const int DEFAULT_OPUS_COMPLEXITY
const bool DEFAULT_OPUS_VBR
const bool DEFAULT_OPUS_VBRCONSTRAINT
const int DEFAULT_OPUS_APPLICATION
const int OPUS_MIN_FRAMESIZE
The minimum frame size for OPUS codec. Checkout nFrameSizeMSec of BearWare.OpusCodec.
const int DEFAULT_OPUS_CHANNELS
const bool DEFAULT_OPUS_DTX
const int OPUS_MAX_BITRATE
The maximum bitrate for OPUS codec. Checkout nBitRate of BearWare.OpusCodec.
const int DEFAULT_OPUS_DELAY
const int OPUS_REALMAX_FRAMESIZE
The real maximum frame size for OPUS codec. Checkout nFrameSizeMSec of BearWare.OpusCodec....
const int OPUS_MAX_FRAMESIZE
The maximum frame size for OPUS codec. Checkout nFrameSizeMSec of BearWare.OpusCodec.
const int DEFAULT_OPUS_SAMPLERATE
const int OPUS_APPLICATION_AUDIO
Audio encoding is for music. This value should be set as nApplicaton in BearWare.OpusCodec.
const int OPUS_MIN_BITRATE
The minimum bitrate for OPUS codec. Checkout nBitRate of BearWare.OpusCodec.
const int DEFAULT_OPUS_BITRATE
const int OPUS_APPLICATION_VOIP
Audio encoding is for VoIP. This value should be set as nApplicaton in BearWare.OpusCodec.
A struct containing the properties of a file in a BearWare.Channel.
int nChannelID
The ID of the channel where the file is located.
long nFileSize
The size of the file.
string szUploadTime
Time when file was uploaded. Date/time is converted local time.
string szFileName
The name of the file.
int nFileID
The ID identifying the file.
string szUsername
Username of the person who uploaded the files.
A struct containing the properties of the server's settings.
int nMaxMediaFileTxPerSecond
The maximum number of bytes per second which the server will allow for media file packets....
int nUserTimeout
The number of seconds before a user who hasn't responded to keepalives will be kicked off the server.
bool bAutoSave
Whether the server automatically saves changes.
string szServerProtocolVersion
The version of the server's protocol.
int nMaxLoginsPerIPAddress
The maximum number of users allowed to log in with the same IP-address. 0 means disabled.
ServerLogEvent uServerLogEvents
The events that are logged on the server.
string szAccessToken
A randomly generated 256 bit access token created by the server to identify the login session....
int nMaxDesktopTxPerSecond
The maximum number of bytes per second which the server will allow for desktop packets....
int nUdpPort
The server's UDP port.
int nLoginDelayMSec
Number of msec before an IP-address can make another login attempt. If less than this amount then Tea...
int nMaxTotalTxPerSecond
The amount of bytes per second which the server will allow for packet forwarding. If this value is ex...
string szServerName
The server's name.
int nMaxLoginAttempts
The maximum number of logins with wrong password before banning user's IP-address.
string szMOTD
The message of the day. Read-only property. Use szMOTDRaw to update this property.
string szMOTDRaw
The message of the day including variables. The result of the szMOTDRaw string will be displayed in s...
int nMaxUsers
The maximum number of users allowed on the server. A user with admin account can ignore this.
int nTcpPort
The server's TCP port.
string szServerVersion
The server version.
int nMaxVoiceTxPerSecond
The maximum number of bytes per second which the server will allow for voice packets....
int nMaxVideoCaptureTxPerSecond
The maximum number of bytes per second which the server will allow for video input packets....
A struct containing the server's statistics, i.e. bandwidth usage and user activity.
long nMediaFileBytesTX
The number of bytes in media file packets sent from the server to clients.
long nVideoCaptureBytesTX
The number of bytes in video packets sent from the server to clients.
long nFilesRx
The number of bytes for file transmission received by the server.
long nDesktopBytesTX
The number of bytes in desktop packets sent from the server to clients.
long nFilesTx
The number of bytes for file transmission transmitted from the server.
long nUptimeMSec
The server's uptime in msec.
long nVoiceBytesRX
The number of bytes in audio packets received by the server from clients.
int nUsersServed
The number of users who have logged on to the server.
long nTotalBytesRX
The number of bytes received by the server from clients.
long nTotalBytesTX
The number of bytes sent from the server to clients.
long nVideoCaptureBytesRX
The number of bytes in video packets received by the server from clients.
long nDesktopBytesRX
The number of bytes in desktop packets received by the server from clients.
long nVoiceBytesTX
The number of bytes in audio packets sent from the server to clients.
long nMediaFileBytesRX
The number of bytes in media file packets received by the server from clients.
int nUsersPeak
The highest numbers of users online.
A struct which describes the properties of a window which can be shared.
IntPtr hWnd
The Windows handle of the window.
string szWindowTitle
The title of the window.
int nWndX
X coordinate of the window relative to the Windows desktop.
int nHeight
The height in pixels of the window.
int nWndY
Y coordinate of the window relative to the Windows desktop.
int nWidth
The width in pixels of the window.
const int TT_SOUNDDEVICE_ID_OPENSLES_VOICECOM
Sound device ID for Android OpenSL ES voice communication mode. This device uses the OpenSL ES' Andro...
const int TT_SOUNDDEVICE_ID_OPENSLES_DEFAULT
Sound device ID for Android OpenSL ES default audio device. Note that this sound device may also exis...
const int TT_SOUNDDEVICE_ID_TEAMTALK_VIRTUAL
Sound device ID for virtual TeamTalk sound device.
const uint TT_SOUNDDEVICE_ID_MASK
Extract sound device ID of nDeviceID in BearWare.SoundDevice by and'ing this value.
const int TT_SOUNDDEVICE_ID_VOICEPREPROCESSINGIO
Sound device ID for iOS AudioUnit subtype Voice-Processing I/O Unit. This sound device ID include the...
const uint TT_SOUNDDEVICE_ID_SHARED_FLAG
Flag/bit in nDeviceID telling if the BearWare.SoundDevice is a shared version of an existing sound de...
const int TT_SOUNDDEVICE_ID_REMOTEIO
Sound device ID for iOS AudioUnit subtype Remote I/O Unit.
Set up audio effects supported by the sound device.
bool bEnableEchoCancellation
Enable echo cancellation.
bool bEnableAGC
Enable Automatic Gain Control.
bool bEnableDenoise
Enable noise suppression.
A struct containing the properties of a sound device for either playback or recording.
int nWaveDeviceID
A Windows specific ID to the sound device.
string szDeviceID
An identifier uniquely identifying the sound device even when new sound devices are being added and r...
bool bSupports3D
Whether the sound device supports 3D-sound effects.
SoundDeviceFeature uSoundDeviceFeatures
Additional features available for this sound device. The sound device features can be used to enable ...
int[] inputSampleRates
Supported sample rates by device for recording. A zero value terminates the list of supported sample ...
int nDefaultSampleRate
The default sample rate for the sound device.
int nMaxInputChannels
The maximum number of input channels.
SoundSystem nSoundSystem
The sound system used by the sound device.
int nDeviceID
The ID of the sound device. Used for passing to TeamTalkBase.InitSoundInputDevice() and TeamTalkBase....
string szDeviceName
The name of the sound device.
int[] outputSampleRates
Supported sample rates by device for playback. A zero value terminates the list of supported sample r...
int nMaxOutputChannels
The maximum number of output channels.
An enum encapsulation the minimum, maximum and default sound levels for input and output sound device...
const int SOUND_VU_MAX
The maximum value of recorded audio.
const int SOUND_VOLUME_MAX
The maximum volume.
const int SOUND_GAIN_MIN
The minimum gain level (since it's zero it means silence).
const int SOUND_VOLUME_MIN
The minimum volume.
const int SOUND_VU_MIN
The minimum value of recorded audio.
const int SOUND_GAIN_DEFAULT
The default gain level.
const int SOUND_GAIN_MAX
The maximum gain level.
const int SOUND_VOLUME_DEFAULT
The default volume. Use this whenever possible since it requires the least amount of CPU usage.
Speex audio codec settings for Constant Bitrate mode (CBR).
int nQuality
A value from 1-10. As of DLL version 4.2 also 0 is supported.
int nTxIntervalMSec
Milliseconds of audio data before each transmission.
int nBandmode
Set to 0 for 8 KHz (narrow band), set to 1 for 16 KHz (wide band), set to 2 for 32 KHz (ultra-wide ba...
bool bStereoPlayback
Playback should be done in stereo. Doing so will disable 3d-positioning.
Speex constants for BearWare.SpeexCodec and BearWare.SpeexVBRCodec.
const int SPEEX_BANDMODE_UWIDE
Use BearWare.SpeexCodec or BearWare.SpeexVBRCodec as 32 KHz.
const bool DEFAULT_SPEEX_DTX
Default Speex DTX for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int SPEEX_NB_MAX_BITRATE
The maximum bitrate for Speex codec in 8 KHz mode, i.e. quality set to 10.
const int SPEEX_QUALITY_MAX
The maximum quality for Speex codec.
const int SPEEX_QUALITY_MIN
The minimum quality for Speex codec.
const int SPEEX_WB_MAX_BITRATE
The maximum bitrate for Speex codec in 16 KHz mode, i.e. quality set to 10.
const int SPEEX_WB_MIN_BITRATE
The minimum bitrate for Speex codec in 16 KHz mode, i.e. quality set to 0.
const int DEFAULT_SPEEX_DELAY
Default Speex delay for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int SPEEX_BANDMODE_NARROW
Use BearWare.SpeexCodec or BearWare.SpeexVBRCodec as 8 KHz.
const int SPEEX_UWB_MIN_BITRATE
The minimum bitrate for Speex codec in 32 KHz mode, i.e. quality set to 0.
const int DEFAULT_SPEEX_BITRATE
Default Speex bitrate for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int SPEEX_BANDMODE_WIDE
Use BearWare.SpeexCodec or BearWare.SpeexVBRCodec as 16 KHz.
const int SPEEX_UWB_MAX_BITRATE
The maximum bitrate for Speex codec in 32 KHz mode, i.e. quality set to 10.
const int DEFAULT_SPEEX_MAXBITRATE
Default Speex max bitrate for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int DEFAULT_SPEEX_BANDMODE
Default Speex bandmode for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const bool DEFAULT_SPEEX_SIMSTEREO
Default Speex stereo playback for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int DEFAULT_SPEEX_QUALITY
Default Speex quality for BearWare.SpeexCodec or BearWare.SpeexVBRCodec.
const int SPEEX_NB_MIN_BITRATE
The minimum bitrate for Speex codec in 8 KHz mode, i.e. quality set to 0.
Default values for BearWare.SpeexDSP.
const int DEFAULT_DENOISE_SUPPRESS
const int DEFAULT_ECHO_SUPPRESS_ACTIVE
const bool DEFAULT_AGC_ENABLE
const int DEFAULT_ECHO_SUPPRESS
const int DEFAULT_AGC_DEC_MAXDB
const bool DEFAULT_ECHO_ENABLE
const bool DEFAULT_DENOISE_ENABLE
const int DEFAULT_AGC_INC_MAXDB
const int DEFAULT_AGC_GAINMAXDB
const int DEFAULT_AGC_GAINLEVEL
Audio configuration specifying how recorded audio from sound input device should be preprocessed befo...
SpeexDSP(bool set_defaults)
int nMaxDecDBSec
Used so volume should not be attenuated too quickly (maximal gain decrease in dB/second)....
bool bEnableDenoise
Whether clients who join the channel should automatically enable denoising.
bool bEnableAGC
Whether clients who join a BearWare.Channel should enable AGC with the settings specified nGainLevel,...
int nMaxIncDBSec
Used so volume should not be amplified too quickly (maximal gain increase in dB/second)....
int nGainLevel
A value from 0 to 32768. Default is 8000. Value is ignored if bEnableAGC is FALSE.
int nEchoSuppressActive
Set maximum attenuation of the residual echo in dB when near end is active (negative number)....
int nEchoSuppress
Set maximum attenuation of the residual echo in dB (negative number). Default is -40....
int nMaxGainDB
Ensure volume doesn't become too loud (maximal gain in dB). Default is 30. Value is ignored if bEnabl...
bool bEnableEchoCancellation
Speex DSP is used for specifying how recorded audio from a sound input device should be preprocessed ...
int nMaxNoiseSuppressDB
Maximum attenuation of the noise in dB. Negative value! Default value is -30. Value is ignored if bEn...
Speex audio codec settings for Variable Bitrate mode (VBR).
int nTxIntervalMSec
Milliseconds of audio data before each transmission.
int nMaxBitRate
The maximum bitrate at which the audio codec is allowed to output audio. Set to zero if it should be ...
bool bDTX
Enable/disable discontinuous transmission. When enabled Speex will ignore silence,...
int nQuality
A value from 0-10. If nBitRate is non-zero it will override this value.
int nBandmode
Set to 0 for 8 KHz (narrow band), set to 1 for 16 KHz (wide band), set to 2 for 32 KHz (ultra-wide ba...
int nBitRate
The bitrate at which the audio codec should output encoded audio data. Dividing it by 8 gives roughly...
bool bStereoPlayback
Playback should be done in stereo. Doing so will disable 3d-positioning.
Use TeamTalk's internal audio preprocessor for gain audio. Same as used for TeamTalkBase....
bool bMuteLeftSpeaker
Whether to mute left speaker in stereo playback.
bool bMuteRightSpeaker
Whether to mute right speaker in stereo playback.
int nGainLevel
Gain level between BearWare.SoundLevel.SOUND_GAIN_MIN and BearWare.SoundLevel.SOUND_GAIN_MAX....
A struct containing the properties of an event.
uint uReserved
Reserved. To preserve alignment.
int nSource
The source of the event depends on wmMsg.
ClientEvent nClientEvent
The event's message number.
TTType ttType
Specifies which member to access in the union.
A struct containing the properties of a text message sent by a user.
bool bMore
Whether this text message is to be merged with next text message.
int nChannelID
Set to zero if nMsgType is BearWare.TextMsgType BearWare.TextMsgType.MSGTYPE_USER or BearWare....
int nToUserID
Set to zero if channel message.
string szMessage
The actual text message. The message can be multi-line (include EOL)
int nFromUserID
Will be set automatically on outgoing message.
string szFromUsername
The originators username.
TextMsgType nMsgType
The type of text message.
FileTransfer filetransfer
ClientErrorMsg clienterrormsg
DesktopInput desktopinput
ServerProperties serverproperties
MediaFileInfo mediafileinfo
A struct containing the properties of a user account.
string szNote
Additional notes about this user.
int nUserData
A user data field which can be used for additional information. The nUserData field of the BearWare....
string szInitChannel
User should (manually) join this channel after login. If an initial channel is specified in the user'...
UserType uUserType
A bitmask of the type of user based on BearWare.UserType.
string szPassword
The account's password.
UserRight uUserRights
A bitmask based on BearWare.UserRight which specifies the rights the user have who logs onto the serv...
string szLastModified
Timestamp of last modification of user account. Date/time is converted local time.
int[] autoOperatorChannels
Channels where this user will automatically become channel operator when joining. The channels must b...
AbusePrevention abusePrevent
Properties which can be set to prevent abuse of a server, e.g. limit number of commands issued.
string szUsername
The account's username.
int nAudioCodecBpsLimit
Bandwidth restriction for audio codecs created by this user. This value will hold the highest bitrate...
A struct containing the properties of a user.
int nVolumeVoice
The user's voice volume level. Note that it's a virtual volume which is being set since the master vo...
int nStoppedDelayMediaFile
The delay of when a user should no longer be considered playing audio of a media file.
int nChannelID
The channel which the user is currently participating in. 0 if none. This value can change as a resul...
string szStatusMsg
The user's current status message. Invoke TeamTalkBase.DoChangeStatus() to change this value....
int nActiveAdaptiveDelayMSec
The currently active adaptive jitter delay for received voice streams for this user.
string szUsername
The szUsername of the user's BearWare.UserAccount. A user account is created by calling TeamTalkBase....
int nStoppedDelayVoice
The delay of when a user should no longer be considered as talking.
int nVolumeMediaFile
The user's voice volume level. Note that it's a virtual volume which is being set since the master vo...
bool[] stereoPlaybackMediaFile
Check what speaker a user is outputting to. If index 0 is TRUE then left speaker is playing....
Subscription uPeerSubscriptions
A bitmask of what this user subscribes to from local client instance. Invoking TeamTalkBase....
string szIPAddress
The user's IP-address. This value is set by the server.
int nUserID
The user's ID. A value from 1 - BearWare.TeamTalkBase.TT_USERID_MAX. This property is set by the serv...
string szMediaStorageDir
Store audio received from this user to this folder.
uint uVersion
The user's client version. This property is set by the server and will not change after login....
string szClientName
The name of the client application which the user is using. This is the value passed as szClientName ...
int nBufferMSecVoice
The size of the buffer (in msec) to hold voice content.
float[] soundPositionVoice
User's position when using 3D-sound (DirectSound option). Index 0 is x-axis, index 1 is y-axis and in...
UserState uUserState
A bitmask of the user's current state, e.g. talking, muted, etc.
UserType uUserType
The uUserType of the user's BearWare.UserAccount. This property is set by the server and will not cha...
int nStatusMode
The user's current status mode. Invoke TeamTalkBase.DoChangeStatus() to change this value....
string szNickname
The user's nickname. Invoking TeamTalkBase.DoChangeNickname() changes this value. Event BearWare....
float[] soundPositionMediaFile
User's position when using 3D-sound (DirectSound option). Index 0 is x-axis, index 1 is y-axis and in...
bool[] stereoPlaybackVoice
Check what speaker a user is outputting to. If index 0 is TRUE then left speaker is playing....
int nUserData
The nUserData of the user's BearWare.UserAccount. This field can be use to denote e....
Subscription uLocalSubscriptions
A bitmask of what the local user subscribes to from this user. Invoking TeamTalkBase....
int nBufferMSecMediaFile
The size of the buffer (in msec) to hold media file content.
Packet reception and data statistics for a user.
long nMediaFileVideoPacketsRecv
Number of media file video packets received from user. A video frame can consist of several video pac...
long nVoicePacketsLost
Number of voice packets lost from user.
long nMediaFileAudioPacketsLost
Number of media file audio packets lost from user.
long nVideoCaptureFramesLost
Video frames which couldn't be shown because packets were lost.
long nMediaFileVideoFramesLost
Media file video frames which couldn't be shown because packets were lost.
long nMediaFileVideoFramesDropped
Number of media file video frames dropped because user application didn't retrieve video frames in ti...
long nVideoCaptureFramesDropped
Number of video frames dropped because user application didn't retrieve video frames in time.
long nVideoCaptureFramesRecv
Number of video frames received from user.
long nMediaFileVideoFramesRecv
Number of media file video frames received from user.
long nVoicePacketsRecv
Number of voice packets received from user.
long nMediaFileAudioPacketsRecv
Number of media file audio packets received from user.
long nVideoCapturePacketsRecv
Number of video packets received from user. A video frame can consist of several video packets.
A struct containing the properties of a video capture device.
string szCaptureAPI
The name of the API used to capture video.
int nVideoFormatsCount
The number of capture formats available in captureFormats array.
VideoFormat[] videoFormats
The supported capture formats.
string szDeviceID
A string identifying the device.
string szDeviceName
The name of the capture device.
Struct used for specifying the video codec to use.
Codec nCodec
Specifies member holds the codec settings. So far there is only one video codec to choose from,...
A RGB32 image where the pixels can be accessed directly in an allocated imageBuffer.
bool bKeyFrame
Whether the image acquired is a key-frame. If it is not a key-frame and there has been packet loss or...
int nFrameBufferSize
The size in bytes of the buffer allocate in frameBuffer.
int nHeight
The height in pixels of the image contained in imageBuffer.
int nStreamID
A unique identifier for the frames which are part of the same video sequence. If the stream ID change...
System.IntPtr frameBuffer
A buffer allocated internally by TeamTalkBase.
int nWidth
The width in pixels of the image contained in frameBuffer.
const int WEBM_VPX_DL_BEST_QUALITY
nEncodeDeadline value for best encoding.
const int WEBM_VPX_DL_REALTIME
nEncodeDeadline value for fastest encoding.
const int WEBM_VPX_DL_GOOD_QUALITY
nEncodeDeadline value for good encoding.
WebM video codec settings.
int nRcTargetBitrate
Same as rc_target_bitrate.
uint nEncodeDeadline
Time that should be spent on encoding a frame.
int rc_target_bitrate
Target bitrate in kbits/sec. This value must be greater than 0.
Configuration of WebRTC's echo canceller. See also TT_SetSoundDeviceEffects()
bool bEnable
Enable WebRTC echo canceller. The WebRTC echo canceller requires sound input and output devices are i...
Configuration for fine tuning gain level.
float fInitialSaturationMarginDB
float fMaxOutputNoiseLevelDBFS
float fMaxGainChangeDBPerSecond
float fExtraSaturationMarginDB
Gain level for AGC. Only active when bEnable is true.
float fGainDB
Gain level in dB. Range: 0 <= x < 50. Default: 0.
Configuration of WebRTC's gain controller 2 for AGC.
AdaptiveDigital adaptivedigital
FixedDigital fixeddigital
bool bEnable
Enable WebRTC's fixed digital gain. WebRTC's automatic gain control (AGC)
Configuration of WebRTC's level estimater.
bool bEnable
Enable level estimater. When enabled TeamTalkBase.GetSoundInputLevel() will return a value based on W...
Configuration of WebRTC's noise suppression. See also BearWare.SpeexDSP.
int nLevel
Noise suppression level. 0 = Low, 1 = Moderate, 2 = High, 3 = VeryHigh. Default: 1.
bool bEnable
Enable WebRTC noise suppression.
Configuration of WebRTC pre-amplifier.
bool bEnable
Enable pre-amplifier. Replacement for TT_SetSoundInputGainLevel()
float fFixedGainFactor
Gain factor. Default: 1.
Configuration of WebRTC's voice detection.
bool bEnable
Use WebRTC's voice detection to trigger BearWare.TeamTalkBase.OnVoiceActivation.
WebRTC's audio preprocessor.
GainController2 gaincontroller2
EchoCanceller echocanceller
VoiceDetection voicedetection
Preamplifier preamplifier
WebRTCAudioPreprocessor(bool set_defaults)
NoiseSuppression noisesuppression
LevelEstimation levelestimation
Default values for BearWare.WebRTCAudioPreprocessor.
const float DEFAULT_WEBRTC_EXTRA_SAT_MARGIN_DB
const float DEFAULT_WEBRTC_MAXGAIN_DBSEC
const float DEFAULT_WEBRTC_PREAMPLIFIER_GAINFACTOR
const bool DEFAULT_WEBRTC_NOISESUPPRESS_ENABLE
const bool DEFAULT_WEBRTC_VAD_ENABLE
const bool DEFAULT_WEBRTC_PREAMPLIFIER_ENABLE
const bool DEFAULT_WEBRTC_SAT_PROT_ENABLE
const bool DEFAULT_WEBRTC_GAINCTL_ENABLE
const float WEBRTC_GAINCONTROLLER2_FIXEDGAIN_MAX
const float DEFAULT_WEBRTC_GAINDB
const bool DEFAULT_WEBRTC_ECHO_CANCEL_ENABLE
const bool DEFAULT_WEBRTC_LEVELESTIMATION_ENABLE
const float DEFAULT_WEBRTC_INIT_SAT_MARGIN_DB
const float DEFAULT_WEBRTC_MAX_OUT_NOISE
const int DEFAULT_WEBRTC_NOISESUPPRESS_LEVEL