private async Task <object> Restart() { _audioEngine.Stop(); _audioEngine.Start(); await _settingsService.SetSettingAsync(Globals.SettingKeys.IsEngineRunning, true).ConfigureAwait(false); return(true); }
public async Task StartAsync(CancellationToken cancellationToken) { Logger.Info("Starting service"); _containerProvider = new UnityContainerProvider(); LoadPlugins(_containerProvider); _apiServer = _containerProvider.Resolve <IApiServer>(); _apiClient = _containerProvider.Resolve <IApiClient>(); _engine = _containerProvider.Resolve <IAudioEngine>(); _updateService = _containerProvider.Resolve <IUpdateService>(); await _apiServer.StartAsync(); _settingsService = _containerProvider.Resolve <ISettingsService>(); await _settingsService.LoadAsync().ConfigureAwait(false); if (_settingsService.GetSetting <bool>(Globals.SettingKeys.IsEngineRunning)) { _engine.Start(); } _updateTimer.Start(); Logger.Info("Service started"); }
private dynamic ImportConfiguration(ModulesExportDto dto) { var state = _audioEngine.IsRunning; try { if (state) { _audioEngine.Stop(); } if (dto?.Modules == null) { return(false); } if (!_connectionService.Truncate()) { _logger.Error("Could not truncate the connections table."); return(false); } if (!_moduleService.Truncate()) { _logger.Error("Could not truncate the modules table."); return(false); } var moduleIdMap = new Dictionary <long, long>(); foreach (var moduleDto in dto.Modules) { var oldId = moduleDto.Id; _moduleService.Insert(moduleDto); moduleIdMap.Add(oldId, moduleDto.Id); } foreach (var connectionDto in dto.Connections) { if (moduleIdMap.TryGetValue(connectionDto.SourceId, out var newSourceId) && moduleIdMap.TryGetValue(connectionDto.TargetId, out var newTargetId)) { connectionDto.SourceId = newSourceId; connectionDto.TargetId = newTargetId; _connectionService.Insert(connectionDto); } } return(true); } finally { if (state) { _audioEngine.Start(); } } }
private void OnLoaded(object @object, RoutedEventArgs routedEventArgs) { Loaded -= OnLoaded; ClientSettings.Current.Saved += (s, e) => CheckFullScreenSettings(); ClientSettings.Current.Loaded += (s, e) => CheckFullScreenSettings(); _eventAggregator.GetEvent <ViewActivatingEvent>().Subscribe(OnViewActivating, ThreadOption.PublisherThread); _audioEngine.Volume = (float)ClientSettings.Current.MasterVolume; _musicPlayer.Volume = (float)ClientSettings.Current.MusicVolume; _soundPlayer.Volume = (float)ClientSettings.Current.FXVolume; ClientSettings.Current.MasterVolumeChanged += (s, e) => _audioEngine.Volume = (float)e.NewValue; ClientSettings.Current.MusicVolumeChanged += (s, e) => _musicPlayer.Volume = (float)e.NewValue; ClientSettings.Current.FXVolumeChanged += (s, e) => _soundPlayer.Volume = (float)e.NewValue; _audioEngine.Start(); _musicPlayer.PlayMode = PlaybackMode.Sequential | PlaybackMode.Fade; _musicPlayer.SwitchMusic("DefaultMusic"); _musicPlayer.Play(); }