Plugins - Added optional configuration window

Plugins - Moved plugins to their own directory
Device providers - Added all RGB.NET device providers
This commit is contained in:
Robert committed 2020-02-27 19:05:35 +01:00
1 parent 13943f86a7
commit 9b62ba5f3d
752 files changed
+2198 -73

No files matched your search

@@ -28,7 +28,18 @@ namespace Artemis.Core.Services.Interfaces
/// </summary>
IReadOnlyCollection<IRGBDevice> LoadedDevices { get; }
/// <summary>
/// Adds the given device provider to the <see cref="Surface" />
/// </summary>
/// <param name="deviceProvider"></param>
void AddDeviceProvider(IRGBDeviceProvider deviceProvider);
/// <summary>
/// Removes the given device provider from the <see cref="Surface" /> by recreating it without the device provider
/// </summary>
/// <param name="deviceProvider"></param>
void RemoveDeviceProvider(IRGBDeviceProvider deviceProvider);
void Dispose();
/// <summary>
+15 -1
View File
@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Artemis.Core.Events;
using Artemis.Core.Plugins.Abstract;
using Artemis.Core.Plugins.Models;
using Artemis.Core.RGB.NET;
using Artemis.Core.Services.Interfaces;
@@ -16,13 +18,14 @@ namespace Artemis.Core.Services
public class RgbService : IRgbService, IDisposable
{
private readonly List<IRGBDevice> _loadedDevices;
private readonly List<IRGBDeviceProvider> _loadedDeviceProviders;
private readonly ILogger _logger;
private readonly PluginSetting<double> _renderScaleSetting;
private readonly PluginSetting<int> _sampleSizeSetting;
private readonly PluginSetting<int> _targetFrameRateSetting;
private readonly TimerUpdateTrigger _updateTrigger;
private ListLedGroup _surfaceLedGroup;
internal RgbService(ILogger logger, ISettingsService settingsService)
{
_logger = logger;
@@ -37,6 +40,7 @@ namespace Artemis.Core.Services
_renderScaleSetting.SettingChanged += RenderScaleSettingOnSettingChanged;
_targetFrameRateSetting.SettingChanged += TargetFrameRateSettingOnSettingChanged;
_loadedDevices = new List<IRGBDevice>();
_loadedDeviceProviders = new List<IRGBDeviceProvider>();
_updateTrigger = new TimerUpdateTrigger {UpdateFrequency = 1.0 / _targetFrameRateSetting.Value};
Surface.RegisterUpdateTrigger(_updateTrigger);
}
@@ -52,7 +56,11 @@ namespace Artemis.Core.Services
public void AddDeviceProvider(IRGBDeviceProvider deviceProvider)
{
if (_loadedDeviceProviders.Contains(deviceProvider))
return;
Surface.LoadDevices(deviceProvider);
_loadedDeviceProviders.Add(deviceProvider);
if (deviceProvider.Devices == null)
{
@@ -72,6 +80,12 @@ namespace Artemis.Core.Services
}
}
public void RemoveDeviceProvider(IRGBDeviceProvider deviceProvider)
{
if (!_loadedDeviceProviders.Contains(deviceProvider))
return;
}
public void Dispose()
{
Surface.UnregisterUpdateTrigger(_updateTrigger);