using System; using System.Collections.Generic; using System.Collections.ObjectModel; namespace RGB.NET.Core; public sealed class DevicesChangedEventArgs : EventArgs { #region Properties & Fields public IReadOnlyList Added { get; } public IReadOnlyList Removed { get; } #endregion #region Constructors private DevicesChangedEventArgs(IList added, IList removed) { this.Added = new ReadOnlyCollection(added); this.Removed = new ReadOnlyCollection(removed); } #endregion #region Methods public static DevicesChangedEventArgs CreateDevicesAddedArgs(params IRGBDevice[] addedDevices) => CreateDevicesAddedArgs((IEnumerable)addedDevices); public static DevicesChangedEventArgs CreateDevicesAddedArgs(IEnumerable addedDevices) => new(new List(addedDevices), new List()); public static DevicesChangedEventArgs CreateDevicesRemovedArgs(params IRGBDevice[] removedDevices) => CreateDevicesRemovedArgs((IEnumerable)removedDevices); public static DevicesChangedEventArgs CreateDevicesRemovedArgs(IEnumerable removedDevices) => new(new List(), new List(removedDevices)); #endregion }