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