// ReSharper disable UnusedMemberInSuper.Global
// ReSharper disable UnusedMember.Global
using CUE.NET.Devices.Generic.Enums;
using CUE.NET.Devices.Generic.EventArgs;
namespace CUE.NET.Devices
{
///
/// Represents the event-handler of the Exception-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 Updating-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 Updated-event.
///
/// The sender of the event.
/// The arguments provided by the event.
public delegate void UpdatedEventHandler(object sender, UpdatedEventArgs args);
///
/// Represents the event-handler of the LedsUpdating-event.
///
/// The sender of the event.
/// The arguments provided by the event.
public delegate void LedsUpdatingEventHandler(object sender, LedsUpdatingEventArgs args);
///
/// Represents the event-handler of the LedsUpdated-event.
///
/// The sender of the event.
/// The arguments provided by the event.
public delegate void LedsUpdatedEventHandler(object sender, LedsUpdatedEventArgs args);
///
/// Represents a generic cue device.
///
public interface ICueDevice
{
///
/// Gets generic information provided by CUE for the device.
///
IDeviceInfo DeviceInfo { get; }
///
/// Gets or sets the update-mode for the device.
///
UpdateMode UpdateMode { get; set; }
///
/// Gets or sets the update-frequency in seconds. (Calculate by using '1f / updates per second')
///
float UpdateFrequency { get; set; }
// ReSharper disable EventNeverSubscribedTo.Global
///
/// Occurs when a catched exception is thrown inside the device.
///
event ExceptionEventHandler Exception;
///
/// Occurs when the device starts updating.
///
event UpdatingEventHandler Updating;
///
/// Occurs when the device update is done.
///
event UpdatedEventHandler Updated;
///
/// Occurs when the device starts to update the leds.
///
event LedsUpdatingEventHandler LedsUpdating;
///
/// Occurs when the device updated the leds.
///
event LedsUpdatedEventHandler LedsUpdated;
// ReSharper restore EventNeverSubscribedTo.Global
///
/// Perform an update for all dirty keys, or all keys if flushLeds is set to true.
///
/// Specifies whether all keys (including clean ones) should be updated.
void Update(bool flushLeds = false);
}
}