Remove RPC from main distribution (#925)
This commit is contained in:
76
experiment/Discord.Net.Rpc/Entities/VoiceSettings.cs
Normal file
76
experiment/Discord.Net.Rpc/Entities/VoiceSettings.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using Model = Discord.API.Rpc.VoiceSettings;
|
||||
|
||||
namespace Discord.Rpc
|
||||
{
|
||||
public class VoiceSettings
|
||||
{
|
||||
public string InputDeviceId { get; private set; }
|
||||
public float InputVolume { get; private set; }
|
||||
public IReadOnlyCollection<VoiceDevice> AvailableInputDevices { get; private set; }
|
||||
|
||||
public string OutputDeviceId { get; private set; }
|
||||
public float OutputVolume { get; private set; }
|
||||
public IReadOnlyCollection<VoiceDevice> AvailableOutputDevices { get; private set; }
|
||||
|
||||
public bool AutomaticGainControl { get; private set; }
|
||||
public bool EchoCancellation { get; private set; }
|
||||
public bool NoiseSuppression { get; private set; }
|
||||
public bool QualityOfService { get; private set; }
|
||||
public bool SilenceWarning { get; private set; }
|
||||
|
||||
public string ActivationMode { get; private set; }
|
||||
public bool AutoThreshold { get; private set; }
|
||||
public float Threshold { get; private set; }
|
||||
public IReadOnlyCollection<VoiceShortcut> Shortcuts { get; private set; }
|
||||
public float Delay { get; private set; }
|
||||
|
||||
internal VoiceSettings() { }
|
||||
internal static VoiceSettings Create(Model model)
|
||||
{
|
||||
var entity = new VoiceSettings();
|
||||
entity.Update(model);
|
||||
return entity;
|
||||
}
|
||||
internal void Update(Model model)
|
||||
{
|
||||
if (model.AutomaticGainControl.IsSpecified)
|
||||
AutomaticGainControl = model.AutomaticGainControl.Value;
|
||||
if (model.EchoCancellation.IsSpecified)
|
||||
EchoCancellation = model.EchoCancellation.Value;
|
||||
if (model.NoiseSuppression.IsSpecified)
|
||||
NoiseSuppression = model.NoiseSuppression.Value;
|
||||
if (model.QualityOfService.IsSpecified)
|
||||
QualityOfService = model.QualityOfService.Value;
|
||||
if (model.SilenceWarning.IsSpecified)
|
||||
SilenceWarning = model.SilenceWarning.Value;
|
||||
|
||||
if (model.Input.DeviceId.IsSpecified)
|
||||
InputDeviceId = model.Input.DeviceId.Value;
|
||||
if (model.Input.Volume.IsSpecified)
|
||||
InputVolume = model.Input.Volume.Value;
|
||||
if (model.Input.AvailableDevices.IsSpecified)
|
||||
AvailableInputDevices = model.Input.AvailableDevices.Value.Select(x => VoiceDevice.Create(x)).ToImmutableArray();
|
||||
|
||||
if (model.Output.DeviceId.IsSpecified)
|
||||
OutputDeviceId = model.Output.DeviceId.Value;
|
||||
if (model.Output.Volume.IsSpecified)
|
||||
OutputVolume = model.Output.Volume.Value;
|
||||
if (model.Output.AvailableDevices.IsSpecified)
|
||||
AvailableInputDevices = model.Output.AvailableDevices.Value.Select(x => VoiceDevice.Create(x)).ToImmutableArray();
|
||||
|
||||
if (model.Mode.Type.IsSpecified)
|
||||
ActivationMode = model.Mode.Type.Value;
|
||||
if (model.Mode.AutoThreshold.IsSpecified)
|
||||
AutoThreshold = model.Mode.AutoThreshold.Value;
|
||||
if (model.Mode.Threshold.IsSpecified)
|
||||
Threshold = model.Mode.Threshold.Value;
|
||||
if (model.Mode.Shortcut.IsSpecified)
|
||||
Shortcuts = model.Mode.Shortcut.Value.Select(x => VoiceShortcut.Create(x)).ToImmutableArray();
|
||||
if (model.Mode.Delay.IsSpecified)
|
||||
Delay = model.Mode.Delay.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user