using System; using System.Collections.Generic; namespace RGB.NET.Core { /// /// Represents a generic RGB-device /// public interface IRGBDevice : IEnumerable, IBindable, IDisposable { #region Properties /// /// Gets generic information about the . /// IRGBDeviceInfo DeviceInfo { get; } /// /// Gets or sets the location of the . /// Point Location { get; set; } /// /// Gets a copy of the of the whole . /// Size Size { get; } #endregion #region Indexer /// /// Gets the with the specified . /// /// The of the to get. /// The with the specified or null if no is found. Led this[ILedId ledId] { get; } /// /// Gets the at the given physical location. /// /// The to get the location from. /// The at the given or null if no location is found. Led this[Point location] { get; } /// /// Gets a list of inside the given . /// /// The to check. /// The minimal percentage overlay a must have with the to be taken into the list. /// IEnumerable this[Rectangle referenceRect, double minOverlayPercentage = 0.5] { get; } #endregion #region Methods /// /// Perform an update for all dirty , or all if flushLeds is set to true. /// /// Specifies whether all (including clean ones) should be updated. void Update(bool flushLeds = false); #endregion } }