using System.Collections.Generic;
namespace RGB.NET.Core
{
#region EventHandler
///
/// Represents the event-handler of the -event.
///
/// The sender of the event.
/// The arguments provided by the event.
public delegate void ExceptionEventHandler(object sender, ExceptionEventArgs args);
///
/// Represents the event-handler of the -event.
///
/// The sender of the event.
/// The arguments provided by the event.
public delegate void UpdatingEventHandler(object sender, UpdatingEventArgs args);
///
/// Represents the event-handler of the -event.
///
/// The sender of the event.
/// The arguments provided by the event.
public delegate void UpdatedEventHandler(object sender, UpdatedEventArgs args);
#endregion
///
/// Represents a generic RGB-surface.
///
public interface IRGBSurface : ILedGroup
{
#region Properties & Fields
///
/// Gets a dictionary containing the locations of all positioned on this .
///
Dictionary Devices { get; }
///
/// Gets a copy of the representing this .
///
Rectangle SurfaceRectangle { 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);
///
/// Sets the location of the given to the given .
///
/// The to move.
/// The target .
void PositionDevice(IRGBDevice device, Point location);
///
/// Attaches the given .
///
/// The to attach.
/// true if the could be attached; otherwise, false.
bool AttachLedGroup(ILedGroup ledGroup);
///
/// Detaches the given .
///
/// The to detached.
/// true if the could be detached; otherwise, false.
bool DetachLedGroup(ILedGroup ledGroup);
#endregion
#region Events
// ReSharper disable EventNeverSubscribedTo.Global
///
/// Occurs when a catched exception is thrown inside the .
///
event ExceptionEventHandler Exception;
///
/// Occurs when the starts updating.
///
event UpdatingEventHandler Updating;
///
/// Occurs when the update is done.
///
event UpdatedEventHandler Updated;
// ReSharper restore EventNeverSubscribedTo.Global
#endregion
}
}