Removed my 'optimisations' from LED samples and made it a lot faster 😓

Expanded settings
This commit is contained in:
Robert committed 2019-12-20 13:43:19 +01:00
1 parent eb963eb409
commit 9311f1626c
5 files changed
+129 -79

No files matched your search

@@ -1,11 +1,17 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using Artemis.Core;
using Artemis.Core.Plugins.Abstract;
using Artemis.Core.Services;
using Artemis.Core.Services.Interfaces;
using Artemis.Core.Services.Storage.Interfaces;
using Artemis.UI.Ninject.Factories;
using Artemis.UI.Screens.Settings.Debug;
using Artemis.UI.Screens.Settings.Tabs.Devices;
using Artemis.UI.Screens.Settings.Tabs.Plugins;
using MaterialDesignThemes.Wpf;
using Ninject;
using Stylet;
@@ -18,10 +24,12 @@ namespace Artemis.UI.Screens.Settings
private readonly IKernel _kernel;
private readonly ISettingsService _settingsService;
private readonly ISurfaceService _surfaceService;
private readonly IPluginService _pluginService;
private readonly IWindowManager _windowManager;
public SettingsViewModel(IKernel kernel,
ISurfaceService surfaceService,
IPluginService pluginService,
IWindowManager windowManager,
ISettingsService settingsService,
IDeviceSettingsViewModelFactory deviceSettingsViewModelFactory)
@@ -32,12 +40,13 @@ namespace Artemis.UI.Screens.Settings
_kernel = kernel;
_surfaceService = surfaceService;
_pluginService = pluginService;
_windowManager = windowManager;
_settingsService = settingsService;
_deviceSettingsViewModelFactory = deviceSettingsViewModelFactory;
DeviceSettingsViewModels = new BindableCollection<DeviceSettingsViewModel>();
Plugins = new BindableCollection<PluginSettingsViewModel>();
RenderScales = new List<Tuple<string, double>> {new Tuple<string, double>("10%", 0.1)};
for (var i = 25; i <= 100; i += 25)
RenderScales.Add(new Tuple<string, double>(i + "%", i / 100.0));
@@ -50,11 +59,11 @@ namespace Artemis.UI.Screens.Settings
SampleSizes = new List<int> {1, 9};
}
public List<int> SampleSizes { get; set; }
public BindableCollection<DeviceSettingsViewModel> DeviceSettingsViewModels { get; set; }
public List<Tuple<string, int>> TargetFrameRates { get; set; }
public List<Tuple<string, double>> RenderScales { get; set; }
public List<int> SampleSizes { get; set; }
public BindableCollection<DeviceSettingsViewModel> DeviceSettingsViewModels { get; set; }
public BindableCollection<PluginSettingsViewModel> Plugins { get; set; }
public Tuple<string, double> SelectedRenderScale
{
@@ -66,7 +75,7 @@ namespace Artemis.UI.Screens.Settings
{
get => TargetFrameRates.FirstOrDefault(t => Math.Abs(t.Item2 - TargetFrameRate) < 0.01);
set => TargetFrameRate = value.Item2;
}
}
public double RenderScale
{
@@ -78,7 +87,6 @@ namespace Artemis.UI.Screens.Settings
}
}
public List<Tuple<string, int>> TargetFrameRates { get; set; }
public int TargetFrameRate
{
@@ -100,14 +108,17 @@ namespace Artemis.UI.Screens.Settings
}
}
public string Title => "Settings";
protected override void OnActivate()
{
DeviceSettingsViewModels.Clear();
foreach (var device in _surfaceService.ActiveSurface.Devices)
DeviceSettingsViewModels.Add(_deviceSettingsViewModelFactory.Create(device));
// TODO: GetPluginsOfType isn't ideal here as it doesn't include disabled plugins
Plugins.Clear();
foreach (var plugin in _pluginService.GetPluginsOfType<Plugin>())
Plugins.Add(new PluginSettingsViewModel(plugin));
base.OnActivate();
}
@@ -115,5 +126,15 @@ namespace Artemis.UI.Screens.Settings
{
_windowManager.ShowWindow(_kernel.Get<DebugViewModel>());
}
public void ShowLogsFolder()
{
Process.Start(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Logs"));
}
public void ShowDataFolder()
{
Process.Start(Constants.DataFolder);
}
}
}