mirror of
https://github.com/DarthAffe/RGB.NET.git
synced 2025-12-12 17:48:31 +00:00
Added public UpdateTriggers list to DeviceProviders
This commit is contained in:
parent
1d57f4e988
commit
41edda99f0
@ -16,7 +16,9 @@ namespace RGB.NET.Core
|
||||
|
||||
public virtual IEnumerable<IRGBDevice> Devices { get; protected set; } = Enumerable.Empty<IRGBDevice>();
|
||||
|
||||
protected Dictionary<int, IDeviceUpdateTrigger> UpdateTriggers { get; } = new();
|
||||
protected Dictionary<int, IDeviceUpdateTrigger> UpdateTriggerMapping { get; } = new();
|
||||
|
||||
public ReadOnlyCollection<(int id, IDeviceUpdateTrigger trigger)> UpdateTriggers => new(UpdateTriggerMapping.Select(x => (x.Key, x.Value)).ToList());
|
||||
|
||||
#endregion
|
||||
|
||||
@ -49,7 +51,7 @@ namespace RGB.NET.Core
|
||||
|
||||
Devices = new ReadOnlyCollection<IRGBDevice>(GetLoadedDevices(loadFilter).ToList());
|
||||
|
||||
foreach (IDeviceUpdateTrigger updateTrigger in UpdateTriggers.Values)
|
||||
foreach (IDeviceUpdateTrigger updateTrigger in UpdateTriggerMapping.Values)
|
||||
updateTrigger.Start();
|
||||
|
||||
IsInitialized = true;
|
||||
@ -81,8 +83,8 @@ namespace RGB.NET.Core
|
||||
|
||||
protected virtual IDeviceUpdateTrigger GetUpdateTrigger(int id = -1, double? updateRateHardLimit = null)
|
||||
{
|
||||
if (!UpdateTriggers.TryGetValue(id, out IDeviceUpdateTrigger? updaeTrigger))
|
||||
UpdateTriggers[id] = (updaeTrigger = CreateUpdateTrigger(id, updateRateHardLimit ?? _defaultUpdateRateHardLimit));
|
||||
if (!UpdateTriggerMapping.TryGetValue(id, out IDeviceUpdateTrigger? updaeTrigger))
|
||||
UpdateTriggerMapping[id] = (updaeTrigger = CreateUpdateTrigger(id, updateRateHardLimit ?? _defaultUpdateRateHardLimit));
|
||||
|
||||
return updaeTrigger;
|
||||
}
|
||||
@ -91,9 +93,12 @@ namespace RGB.NET.Core
|
||||
|
||||
protected virtual void Reset()
|
||||
{
|
||||
foreach (IDeviceUpdateTrigger updateTrigger in UpdateTriggers.Values)
|
||||
foreach (IDeviceUpdateTrigger updateTrigger in UpdateTriggerMapping.Values)
|
||||
updateTrigger.Dispose();
|
||||
|
||||
foreach (IRGBDevice device in Devices)
|
||||
device.Dispose();
|
||||
|
||||
Devices = Enumerable.Empty<IRGBDevice>();
|
||||
IsInitialized = false;
|
||||
}
|
||||
@ -108,13 +113,7 @@ namespace RGB.NET.Core
|
||||
|
||||
protected virtual void OnException(Exception ex) => Exception?.Invoke(this, ex);
|
||||
|
||||
public virtual void Dispose()
|
||||
{
|
||||
IEnumerable<IRGBDevice> devices = Devices;
|
||||
Reset();
|
||||
foreach (IRGBDevice device in devices)
|
||||
device.Dispose();
|
||||
}
|
||||
public virtual void Dispose() => Reset();
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace RGB.NET.Core
|
||||
{
|
||||
@ -20,6 +21,8 @@ namespace RGB.NET.Core
|
||||
/// </summary>
|
||||
IEnumerable<IRGBDevice> Devices { get; }
|
||||
|
||||
ReadOnlyCollection<(int id, IDeviceUpdateTrigger trigger)> UpdateTriggers { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Events
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user