mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-11 19:36:28 +00:00
Core - Brought device load/save logic in line with the rest of the code
This commit is contained in:
1 parent
46c035851a
commit
76d424012a
11 files changed
+161
-104
No files matched your search
@@ -0,0 +1,42 @@
|
||||
using Artemis.Core.ScriptingProviders;
|
||||
using Artemis.Core.Services.Core;
|
||||
using SkiaSharp;
|
||||
|
||||
namespace Artemis.Core.Services;
|
||||
|
||||
internal class CoreRenderer : IRenderer
|
||||
{
|
||||
private readonly IModuleService _moduleService;
|
||||
private readonly IScriptingService _scriptingService;
|
||||
private readonly IProfileService _profileService;
|
||||
|
||||
public CoreRenderer(IModuleService moduleService, IScriptingService scriptingService, IProfileService profileService)
|
||||
{
|
||||
_moduleService = moduleService;
|
||||
_scriptingService = scriptingService;
|
||||
_profileService = profileService;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Render(SKCanvas canvas, double delta)
|
||||
{
|
||||
foreach (GlobalScript scriptingServiceGlobalScript in _scriptingService.GlobalScripts)
|
||||
scriptingServiceGlobalScript.OnCoreUpdating(delta);
|
||||
|
||||
_moduleService.UpdateActiveModules(delta);
|
||||
|
||||
if (!_profileService.ProfileRenderingDisabled)
|
||||
{
|
||||
_profileService.UpdateProfiles(delta);
|
||||
_profileService.RenderProfiles(canvas);
|
||||
}
|
||||
|
||||
foreach (GlobalScript scriptingServiceGlobalScript in _scriptingService.GlobalScripts)
|
||||
scriptingServiceGlobalScript.OnCoreUpdated(delta);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void PostRender(SKTexture texture)
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -175,7 +175,7 @@ internal class DeviceService : IDeviceService
|
||||
|
||||
_enabledDevices.Add(device);
|
||||
device.IsEnabled = true;
|
||||
device.ApplyToEntity();
|
||||
device.Save();
|
||||
_deviceRepository.Save(device.DeviceEntity);
|
||||
|
||||
OnDeviceEnabled(new DeviceEventArgs(device));
|
||||
@@ -190,7 +190,7 @@ internal class DeviceService : IDeviceService
|
||||
|
||||
_enabledDevices.Remove(device);
|
||||
device.IsEnabled = false;
|
||||
device.ApplyToEntity();
|
||||
device.Save();
|
||||
_deviceRepository.Save(device.DeviceEntity);
|
||||
|
||||
OnDeviceDisabled(new DeviceEventArgs(device));
|
||||
@@ -200,9 +200,7 @@ internal class DeviceService : IDeviceService
|
||||
/// <inheritdoc />
|
||||
public void SaveDevice(ArtemisDevice artemisDevice)
|
||||
{
|
||||
artemisDevice.ApplyToEntity();
|
||||
artemisDevice.ApplyToRgbDevice();
|
||||
|
||||
artemisDevice.Save();
|
||||
_deviceRepository.Save(artemisDevice.DeviceEntity);
|
||||
UpdateLeds();
|
||||
}
|
||||
@@ -211,11 +209,7 @@ internal class DeviceService : IDeviceService
|
||||
public void SaveDevices()
|
||||
{
|
||||
foreach (ArtemisDevice artemisDevice in _devices)
|
||||
{
|
||||
artemisDevice.ApplyToEntity();
|
||||
artemisDevice.ApplyToRgbDevice();
|
||||
}
|
||||
|
||||
artemisDevice.Save();
|
||||
_deviceRepository.Save(_devices.Select(d => d.DeviceEntity));
|
||||
UpdateLeds();
|
||||
}
|
||||
@@ -236,7 +230,6 @@ internal class DeviceService : IDeviceService
|
||||
device = new ArtemisDevice(rgbDevice, deviceProvider);
|
||||
}
|
||||
|
||||
device.ApplyToRgbDevice();
|
||||
ApplyDeviceLayout(device, device.GetBestDeviceLayout());
|
||||
return device;
|
||||
}
|
||||
|
||||
@@ -19,22 +19,24 @@ internal class RenderService : IRenderService, IRenderer, IDisposable
|
||||
|
||||
private readonly ILogger _logger;
|
||||
private readonly IDeviceService _deviceService;
|
||||
private readonly CoreRenderer _coreRenderer;
|
||||
private readonly LazyEnumerable<IGraphicsContextProvider> _graphicsContextProviders;
|
||||
private readonly PluginSetting<int> _targetFrameRateSetting;
|
||||
private readonly PluginSetting<double> _renderScaleSetting;
|
||||
private readonly PluginSetting<string> _preferredGraphicsContext;
|
||||
private readonly SurfaceManager _surfaceManager;
|
||||
|
||||
private SurfaceManager _surfaceManager;
|
||||
private int _frames;
|
||||
private DateTime _lastExceptionLog;
|
||||
private DateTime _lastFrameRateSample;
|
||||
private bool _initialized;
|
||||
|
||||
public RenderService(ILogger logger, ISettingsService settingsService, IDeviceService deviceService, LazyEnumerable<IGraphicsContextProvider> graphicsContextProviders)
|
||||
public RenderService(ILogger logger, ISettingsService settingsService, IDeviceService deviceService, CoreRenderer coreRenderer, LazyEnumerable<IGraphicsContextProvider> graphicsContextProviders)
|
||||
{
|
||||
_frameStopWatch = new Stopwatch();
|
||||
_logger = logger;
|
||||
_deviceService = deviceService;
|
||||
_coreRenderer = coreRenderer;
|
||||
_graphicsContextProviders = graphicsContextProviders;
|
||||
|
||||
_targetFrameRateSetting = settingsService.GetSetting("Core.TargetFrameRate", 30);
|
||||
@@ -77,8 +79,7 @@ internal class RenderService : IRenderService, IRenderer, IDisposable
|
||||
try
|
||||
{
|
||||
OnFrameRendering(new FrameRenderingEventArgs(canvas, delta, _surfaceManager.Surface));
|
||||
foreach (IRenderer renderer in Renderers)
|
||||
renderer.Render(canvas, delta);
|
||||
_coreRenderer.Render(canvas, delta);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -91,8 +92,7 @@ internal class RenderService : IRenderService, IRenderer, IDisposable
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (IRenderer renderer in Renderers)
|
||||
renderer.PostRender(texture);
|
||||
_coreRenderer.PostRender(texture);
|
||||
OnFrameRendered(new FrameRenderedEventArgs(texture, _surfaceManager.Surface));
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
@@ -12,7 +12,7 @@ internal class ScriptingService : IScriptingService
|
||||
private readonly IPluginManagementService _pluginManagementService;
|
||||
private readonly IProfileService _profileService;
|
||||
private readonly List<ScriptingProvider> _scriptingProviders;
|
||||
|
||||
|
||||
public ScriptingService(IPluginManagementService pluginManagementService, IProfileService profileService)
|
||||
{
|
||||
_pluginManagementService = pluginManagementService;
|
||||
|
||||
@@ -27,7 +27,6 @@ internal class SurfaceArrangement
|
||||
{
|
||||
surfaceDevice.X = 0;
|
||||
surfaceDevice.Y = 0;
|
||||
surfaceDevice.ApplyToRgbDevice();
|
||||
}
|
||||
|
||||
foreach (SurfaceArrangementType surfaceArrangementType in Types)
|
||||
@@ -37,18 +36,16 @@ internal class SurfaceArrangement
|
||||
float x = devices.Min(d => d.RgbDevice.Location.X);
|
||||
float y = devices.Min(d => d.RgbDevice.Location.Y);
|
||||
if (x < 0)
|
||||
{
|
||||
foreach (ArtemisDevice surfaceDevice in devices)
|
||||
{
|
||||
surfaceDevice.X += x * -1;
|
||||
surfaceDevice.ApplyToRgbDevice();
|
||||
}
|
||||
}
|
||||
|
||||
if (y < 0)
|
||||
{
|
||||
foreach (ArtemisDevice surfaceDevice in devices)
|
||||
{
|
||||
surfaceDevice.Y += y * -1;
|
||||
surfaceDevice.ApplyToRgbDevice();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal static SurfaceArrangement GetDefaultArrangement()
|
||||
|
||||
@@ -80,9 +80,7 @@ internal class SurfaceArrangementConfiguration
|
||||
};
|
||||
}
|
||||
|
||||
artemisDevice.ApplyToRgbDevice();
|
||||
previous = artemisDevice;
|
||||
|
||||
SurfaceArrangement.ArrangedDevices.Add(artemisDevice);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Artemis.Core.Modules;
|
||||
using Artemis.Core.Services.Core;
|
||||
using Artemis.Storage.Entities.Profile;
|
||||
using Artemis.Storage.Repositories.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
@@ -16,7 +15,7 @@ using SkiaSharp;
|
||||
|
||||
namespace Artemis.Core.Services;
|
||||
|
||||
internal class ProfileService : IProfileService, IRenderer
|
||||
internal class ProfileService : IProfileService
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
private readonly IProfileCategoryRepository _profileCategoryRepository;
|
||||
@@ -36,7 +35,6 @@ internal class ProfileService : IProfileService, IRenderer
|
||||
IPluginManagementService pluginManagementService,
|
||||
IInputService inputService,
|
||||
IDeviceService deviceService,
|
||||
IRenderService renderService,
|
||||
IProfileRepository profileRepository)
|
||||
{
|
||||
_logger = logger;
|
||||
@@ -55,8 +53,6 @@ internal class ProfileService : IProfileService, IRenderer
|
||||
if (!_profileCategories.Any())
|
||||
CreateDefaultProfileCategories();
|
||||
UpdateModules();
|
||||
|
||||
renderService.Renderers.Add(this);
|
||||
}
|
||||
|
||||
public ProfileConfiguration? FocusProfile { get; set; }
|
||||
@@ -187,21 +183,6 @@ internal class ProfileService : IProfileService, IRenderer
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Render(SKCanvas canvas, double delta)
|
||||
{
|
||||
if (ProfileRenderingDisabled)
|
||||
return;
|
||||
|
||||
UpdateProfiles(delta);
|
||||
RenderProfiles(canvas);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void PostRender(SKTexture texture)
|
||||
{
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void LoadProfileConfigurationIcon(ProfileConfiguration profileConfiguration)
|
||||
|
||||
Reference in new issue
Block a user