mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
68 lines
2.3 KiB
C#
68 lines
2.3 KiB
C#
using Artemis.Core.Services;
|
|
using Artemis.Core.Services.Interfaces;
|
|
using Artemis.Core.Services.Storage;
|
|
using Artemis.UI.ViewModels.Controls.Settings;
|
|
using Artemis.UI.ViewModels.Interfaces;
|
|
using Ninject;
|
|
using Stylet;
|
|
|
|
namespace Artemis.UI.ViewModels.Screens
|
|
{
|
|
public class SettingsViewModel : Screen, IScreenViewModel
|
|
{
|
|
private readonly ICoreService _coreService;
|
|
private readonly IKernel _kernel;
|
|
private readonly ISettingsService _settingsService;
|
|
private readonly ISurfaceService _surfaceService;
|
|
private readonly IWindowManager _windowManager;
|
|
|
|
public SettingsViewModel(IKernel kernel, ICoreService coreService, ISurfaceService surfaceService, IWindowManager windowManager, ISettingsService settingsService)
|
|
{
|
|
_kernel = kernel;
|
|
_coreService = coreService;
|
|
_surfaceService = surfaceService;
|
|
_windowManager = windowManager;
|
|
_settingsService = settingsService;
|
|
|
|
DeviceSettingsViewModels = new BindableCollection<DeviceSettingsViewModel>();
|
|
}
|
|
|
|
public BindableCollection<DeviceSettingsViewModel> DeviceSettingsViewModels { get; set; }
|
|
|
|
public double RenderScale
|
|
{
|
|
get => _settingsService.GetSetting("RenderScale", 1.0).Value;
|
|
set
|
|
{
|
|
_settingsService.GetSetting("RenderScale", 1.0).Value = value;
|
|
_settingsService.GetSetting("RenderScale", 1.0).Save();
|
|
}
|
|
}
|
|
|
|
public int TargetFrameRate
|
|
{
|
|
get => _settingsService.GetSetting("TargetFrameRate", 25).Value;
|
|
set
|
|
{
|
|
_settingsService.GetSetting("TargetFrameRate", 25).Value = value;
|
|
_settingsService.GetSetting("TargetFrameRate", 25).Save();
|
|
}
|
|
}
|
|
|
|
public string Title => "Settings";
|
|
|
|
protected override void OnActivate()
|
|
{
|
|
DeviceSettingsViewModels.Clear();
|
|
foreach (var device in _surfaceService.ActiveSurface.Devices)
|
|
DeviceSettingsViewModels.Add(new DeviceSettingsViewModel(device, _coreService));
|
|
|
|
base.OnActivate();
|
|
}
|
|
|
|
public void ShowDebugger()
|
|
{
|
|
_windowManager.ShowWindow(_kernel.Get<DebugViewModel>());
|
|
}
|
|
}
|
|
} |