private void SpeakerBoost_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e) { var convertedValue = VolumeConversionHelper.ConvertVolumeSliderToScale((float)SpeakerBoost.Value); if (_audioPreview != null) { _audioPreview.SpeakerBoost = convertedValue; } if (_audioManager != null) { _audioManager.SpeakerBoost = convertedValue; } _settings.SetClientSetting(SettingsKeys.SpeakerBoost, SpeakerBoost.Value.ToString(CultureInfo.InvariantCulture)); if ((SpeakerBoostLabel != null) && (SpeakerBoost != null)) { SpeakerBoostLabel.Content = VolumeConversionHelper.ConvertLinearDiffToDB(convertedValue); } }
private void PreviewAudio(object sender, RoutedEventArgs e) { if (_audioPreview == null) { if (!_clientStateSingleton.MicrophoneAvailable) { Logger.Info("Unable to preview audio, no valid audio input device available or selected"); return; } //get device try { var inputId = Mic.SelectedIndex; var output = outputDeviceList[Speakers.SelectedIndex]; SaveSelectedInputAndOutput(); _audioPreview = new AudioPreview(); _audioPreview.SpeakerBoost = VolumeConversionHelper.ConvertVolumeSliderToScale((float)SpeakerBoost.Value); _audioPreview.StartPreview(inputId, output); Preview.Content = "Stop Preview"; } catch (Exception ex) { Logger.Error(ex, "Unable to preview audio - likely output device error - Pick another. Error:" + ex.Message); } } else { Preview.Content = "Audio Preview"; _audioPreview.StopEncoding(); _audioPreview = null; } }
public MainWindow() { GCSettings.LatencyMode = GCLatencyMode.SustainedLowLatency; InitializeComponent(); DataContext = this; var client = ClientStateSingleton.Instance; WindowStartupLocation = WindowStartupLocation.Manual; Left = _settings.GetPositionSetting(SettingsKeys.ClientX).FloatValue; Top = _settings.GetPositionSetting(SettingsKeys.ClientY).FloatValue; Title = Title + " - " + UpdaterChecker.VERSION; if (_settings.GetClientSetting(SettingsKeys.StartMinimised).BoolValue) { Hide(); WindowState = WindowState.Minimized; Logger.Info("Started DCS-SimpleRadio Client " + UpdaterChecker.VERSION + " minimized"); } else { Logger.Info("Started DCS-SimpleRadio Client " + UpdaterChecker.VERSION); } _guid = _settings.GetClientSetting(SettingsKeys.CliendIdShort).StringValue; Analytics.Log("Client", "Startup", _settings.GetClientSetting(SettingsKeys.ClientIdLong).RawValue); InitSettingsScreen(); InitInput(); InitAudioInput(); InitAudioOutput(); InitMicAudioOutput(); _connectCommand = new DelegateCommand(Connect, () => ServerAddress != null); FavouriteServersViewModel = new FavouriteServersViewModel(new CsvFavouriteServerStore()); InitDefaultAddress(); SpeakerBoost.Value = _settings.GetClientSetting(SettingsKeys.SpeakerBoost).DoubleValue; Speaker_VU.Value = -100; Mic_VU.Value = -100; _audioManager = new AudioManager(_clients); _audioManager.SpeakerBoost = VolumeConversionHelper.ConvertVolumeSliderToScale((float)SpeakerBoost.Value); if ((SpeakerBoostLabel != null) && (SpeakerBoost != null)) { SpeakerBoostLabel.Content = VolumeConversionHelper.ConvertLinearDiffToDB(_audioManager.SpeakerBoost); } UpdaterChecker.CheckForUpdate(); InitFlowDocument(); _dcsAutoConnectListener = new DCSAutoConnectListener(AutoConnect); _updateTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(100) }; _updateTimer.Tick += UpdateClientCount_VUMeters; _updateTimer.Start(); }