private void OnSaveCommandExecute()
{
bool registrationSettingChanged = false;
if (SignalingSettings.SignalingServerPort != SignalingServerPort.ToString())
{
SignalingSettings.SignalingServerPort = SignalingServerPort.ToString();
registrationSettingChanged = true;
}
if (SignalingSettings.SignalingServerHost != SignalingServerHost)
{
SignalingSettings.SignalingServerHost = SignalingServerHost;
registrationSettingChanged = true;
}
if (RegistrationSettings.Domain != Domain)
{
RegistrationSettings.Domain = Domain;
registrationSettingChanged = true;
}
if (registrationSettingChanged)
{
OnRegistrationSettingsChanged?.Invoke();
}
#if WIN10
SignalingSettings.AppInsightsEnabled = AppInsightsEnabled;
#endif
if (NtpServerIP!=null)
{
_localSettings.Values[nameof(NtpServerIP)] = NtpServerIP;
}
if (RTCTraceServerIp != null)
{
_localSettings.Values[nameof(RTCTraceServerIp)] = RTCTraceServerIp;
}
if (RTCTraceServerPort != null)
{
_localSettings.Values[nameof(RTCTraceServerPort)] = RTCTraceServerPort;
}
if (SelectedCamera != null)
{
_mediaSettings.SetVideoDevice(SelectedCamera);
_localSettings.Values[nameof(SelectedCamera)] = SelectedCamera.Id;
}
if (SelectedMicrophone != null)
{
_mediaSettings.SetAudioDevice(SelectedMicrophone);
_localSettings.Values[nameof(SelectedMicrophone)] = SelectedMicrophone.Id;
}
if (SelectedVideoCodec != null)
{
_mediaSettings.SetVideoCodec(SelectedVideoCodec);
_localSettings.Values[nameof(SelectedVideoCodec)] = SelectedVideoCodec.Id;
}
if (SelectedAudioCodec != null)
{
_mediaSettings.SetAudioCodec(SelectedAudioCodec);
_localSettings.Values[nameof(SelectedAudioCodec)] = SelectedAudioCodec.Id;
}
if (SelectedCapFPSItem != null)
{
_mediaSettings.SetPreferredVideoCaptureFormat(new VideoCaptureFormat((int)SelectedCapFPSItem.Width,
(int)SelectedCapFPSItem.Height,
(int)SelectedCapFPSItem.FrameRate));
_localSettings.Values[nameof(SelectedCapResItem)] = SelectedCapResItem;
_localSettings.Values[SelectedFrameRateId] = (SelectedCapFPSItem != null) ? SelectedCapFPSItem.FrameRate : 0;
}
if (SelectedAudioPlayoutDevice != null)
{
_localSettings.Values[nameof(SelectedAudioPlayoutDevice)] = SelectedAudioPlayoutDevice.Id;
_mediaSettings.SetAudioPlayoutDevice(SelectedAudioPlayoutDevice);
}
var newList = new List<IceServer>();
foreach (var iceServerVm in IceServers)
{
if (iceServerVm.Apply())
{
newList.Add(iceServerVm.IceServer);
}
}
IceServerSettings.IceServers = newList;
OnCloseCommandExecute();
}