Пример #1
0
        public FunctionGroupManagerViewModel(Dispatcher dispatcher, FunctionGroupManager functionGroupManager) :
            base(dispatcher)
        {
            _functionGroupManager = functionGroupManager;
            Modules = new ObservableCollection <ModuleGroupViewModel>();
            UpdateModules(functionGroupManager.Modules);

            functionGroupManager.PropertyChanged += FunctionGroupManagerOnPropertyChanged;
        }
Пример #2
0
        private LrControlApplication()
        {
            // Configure logging
            var template = "{Timestamp:yyyy-MM-dd HH:mm:ss.sss} [{SourceContext:l}] [{Level}] {Message}{NewLine}{Exception}";

            Serilog.Log.Logger = new LoggerConfiguration()
                                 .MinimumLevel.Information()
                                 .WriteTo.ColoredConsole(outputTemplate: template)
                                 .WriteTo.RollingFile("LrControl.exe.{Date}.log",
                                                      outputTemplate: template,
                                                      fileSizeLimitBytes: 10 * 1024 * 1024,
                                                      flushToDiskInterval: TimeSpan.FromSeconds(1),
                                                      retainedFileCountLimit: 5,
                                                      shared: true)
                                 .CreateLogger();

            _settings             = Configurations.Settings.LoadOrDefault();
            _lrApi                = new LrApi();
            _functionCatalog      = Functions.Catalog.FunctionCatalog.DefaultCatalog(_settings, _lrApi);
            _device               = new Device();
            _functionGroupManager = FunctionGroupManager.DefaultGroups(_lrApi, _functionCatalog, _device);

            // Hookup module listener
            _lrApi.LrApplicationView.ModuleChanged += _functionGroupManager.EnableModule;
            _lrApi.ConnectionStatus += (connected, version) => ConnectionStatus?.Invoke(connected, version);

            // Listen for Setting changes
            _settings.PropertyChanged += SettingsOnPropertyChanged;

            // Restore previously selected input/output devices
            RefreshAvailableDevices(false);
            SetInputDevice(_inputDevices.FirstOrDefault(x => x.Name == _settings.LastUsedInputDevice));
            SetOutputDevice(_outputDevices.FirstOrDefault(x => x.Name == _settings.LastUsedOutputDevice));

            // Load configuration
            LoadConfiguration();

            Log.Information("LrControl application started, running {Version}", Environment.Version);
        }