예제 #1
0
        private async Task <object> Restart()
        {
            _audioEngine.Stop();
            _audioEngine.Start();

            await _settingsService.SetSettingAsync(Globals.SettingKeys.IsEngineRunning, true).ConfigureAwait(false);

            return(true);
        }
예제 #2
0
        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");
        }
예제 #3
0
        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();
                }
            }
        }
예제 #4
0
        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();
        }