// Copyright Epic Games, Inc. All Rights Reserved.
// This file is automatically generated. Changes to this file may be overwritten.
namespace Epic.OnlineServices.Lobby
{
///
/// Input parameters to use with Lobby RTC Rooms.
///
public class LocalRTCOptions : ISettable
{
///
/// Flags for the local user in this room. The default is 0 if this struct is not specified. @see ::Flags
///
public uint Flags { get; set; }
///
/// Set to true to enable Manual Audio Input. If manual audio input is enabled, audio recording is not started and the audio buffers
/// must be passed manually using . The default is false if this struct is not specified.
///
public bool UseManualAudioInput { get; set; }
///
/// Set to true to enable Manual Audio Output. If manual audio output is enabled, audio rendering is not started and the audio buffers
/// must be received with and rendered manually. The default is false if this struct is not
/// specified.
///
public bool UseManualAudioOutput { get; set; }
///
/// Set to true to start the audio input device's stream as muted when first connecting to the RTC room.
///
/// It must be manually unmuted with a call to . If manual audio output is enabled, this value is ignored.
/// The default value is false if this struct is not specified.
///
public bool LocalAudioDeviceInputStartsMuted { get; set; }
internal void Set(LocalRTCOptionsInternal? other)
{
if (other != null)
{
Flags = other.Value.Flags;
UseManualAudioInput = other.Value.UseManualAudioInput;
UseManualAudioOutput = other.Value.UseManualAudioOutput;
LocalAudioDeviceInputStartsMuted = other.Value.LocalAudioDeviceInputStartsMuted;
}
}
public void Set(object other)
{
Set(other as LocalRTCOptionsInternal?);
}
}
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential, Pack = 8)]
internal struct LocalRTCOptionsInternal : ISettable, System.IDisposable
{
private int m_ApiVersion;
private uint m_Flags;
private int m_UseManualAudioInput;
private int m_UseManualAudioOutput;
private int m_LocalAudioDeviceInputStartsMuted;
public uint Flags
{
get
{
return m_Flags;
}
set
{
m_Flags = value;
}
}
public bool UseManualAudioInput
{
get
{
bool value;
Helper.TryMarshalGet(m_UseManualAudioInput, out value);
return value;
}
set
{
Helper.TryMarshalSet(ref m_UseManualAudioInput, value);
}
}
public bool UseManualAudioOutput
{
get
{
bool value;
Helper.TryMarshalGet(m_UseManualAudioOutput, out value);
return value;
}
set
{
Helper.TryMarshalSet(ref m_UseManualAudioOutput, value);
}
}
public bool LocalAudioDeviceInputStartsMuted
{
get
{
bool value;
Helper.TryMarshalGet(m_LocalAudioDeviceInputStartsMuted, out value);
return value;
}
set
{
Helper.TryMarshalSet(ref m_LocalAudioDeviceInputStartsMuted, value);
}
}
public void Set(LocalRTCOptions other)
{
if (other != null)
{
m_ApiVersion = LobbyInterface.LocalrtcoptionsApiLatest;
Flags = other.Flags;
UseManualAudioInput = other.UseManualAudioInput;
UseManualAudioOutput = other.UseManualAudioOutput;
LocalAudioDeviceInputStartsMuted = other.LocalAudioDeviceInputStartsMuted;
}
}
public void Set(object other)
{
Set(other as LocalRTCOptions);
}
public void Dispose()
{
}
}
}