// Copyright Epic Games, Inc. All Rights Reserved. // This file is automatically generated. Changes to this file may be overwritten. namespace Epic.OnlineServices.RTCAudio { /// /// This struct is used to call . /// public struct SendAudioOptions { /// /// The Product User ID of the user trying to request this operation. /// public ProductUserId LocalUserId { get; set; } /// /// The room this event is registered on. /// public Utf8String RoomName { get; set; } /// /// Audio buffer, which must have a duration of 10 ms. /// The SDK makes a copy of buffer. There is no need to keep the buffer around after calling EOS_RTCAudio_SendAudio /// public AudioBuffer? Buffer { get; set; } } [System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 8)] internal struct SendAudioOptionsInternal : ISettable, System.IDisposable { private int m_ApiVersion; private System.IntPtr m_LocalUserId; private System.IntPtr m_RoomName; private System.IntPtr m_Buffer; public ProductUserId LocalUserId { set { Helper.Set(value, ref m_LocalUserId); } } public Utf8String RoomName { set { Helper.Set(value, ref m_RoomName); } } public AudioBuffer? Buffer { set { Helper.Set(ref value, ref m_Buffer); } } public void Set(ref SendAudioOptions other) { m_ApiVersion = RTCAudioInterface.SendaudioApiLatest; LocalUserId = other.LocalUserId; RoomName = other.RoomName; Buffer = other.Buffer; } public void Set(ref SendAudioOptions? other) { if (other.HasValue) { m_ApiVersion = RTCAudioInterface.SendaudioApiLatest; LocalUserId = other.Value.LocalUserId; RoomName = other.Value.RoomName; Buffer = other.Value.Buffer; } } public void Dispose() { Helper.Dispose(ref m_LocalUserId); Helper.Dispose(ref m_RoomName); Helper.Dispose(ref m_Buffer); } } }