using System; using System.Collections.Generic; namespace PepperDash.Essentials.Core.Lighting { /// /// Requirements for a device that implements lighting scene control /// public interface ILightingScenes { event EventHandler LightingSceneChange; List LightingScenes { get; } void SelectScene(LightingScene scene); LightingScene CurrentLightingScene { get; } } public interface ILightingScenesDynamic : ILightingScenes { event EventHandler LightingScenesUpdated; } /// /// Requirements for a device that implements master raise/lower /// public interface ILightingMasterRaiseLower { void MasterRaise(); void MasterLower(); void MasterRaiseLowerStop(); } /// /// Requiremnts for controlling a lighting load /// public interface ILightingLoad { void SetLoadLevel(int level); void Raise(); void Lower(); IntFeedback LoadLevelFeedback { get; } BoolFeedback LoadIsOnFeedback { get; } } public class LightingSceneChangeEventArgs : EventArgs { public LightingScene CurrentLightingScene { get; private set; } public LightingSceneChangeEventArgs(LightingScene scene) { CurrentLightingScene = scene; } } }