diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasScreensWithLayouts.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasScreensWithLayouts.cs new file mode 100644 index 00000000..ccae1e11 --- /dev/null +++ b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasScreensWithLayouts.cs @@ -0,0 +1,70 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PepperDash.Essentials.Core.DeviceTypeInterfaces +{ + /// + /// This defines a device that has screens with layouts + /// Simply decorative + /// + public interface IHasScreensWithLayouts + { + /// + /// A dictionary of screens, keyed by screen ID, that contains information about each screen and its layouts. + /// + Dictionary Screens { get; } + } + + /// + /// Represents information about a screen and its layouts. + /// + public class ScreenInfo + { + + /// + /// Indicates whether the screen is enabled or not. + /// + [JsonProperty("enabled")] + public bool Enabled { get; set; } + + /// + /// The name of the screen. + /// + [JsonProperty("name")] + public string Name { get; set; } + + /// + /// The index of the screen. + /// + [JsonProperty("screenIndex")] + public int ScreenIndex { get; set; } + + /// + /// A dictionary of layout information for the screen, keyed by layout ID. + /// + [JsonProperty("layouts")] + public Dictionary Layouts { get; set; } + } + + /// + /// Represents information about a layout on a screen. + /// + public class LayoutInfo + { + /// + /// The display name for the layout + /// + [JsonProperty("layoutName")] + public string LayoutName { get; set; } + + /// + /// The index of the layout. + /// + [JsonProperty("layoutIndex")] + public int LayoutIndex { get; set; } + } +} diff --git a/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/IPresenterTrack.cs b/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/IPresenterTrack.cs index 538a5adf..b38225fe 100644 --- a/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/IPresenterTrack.cs +++ b/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/IPresenterTrack.cs @@ -13,20 +13,59 @@ namespace PepperDash.Essentials.Devices.Common.Codec.Cisco /// public interface IPresenterTrack : IKeyed { + /// + /// + /// bool PresenterTrackAvailability { get; } + /// + /// Feedback indicating whether Presenter Track is available. + /// BoolFeedback PresenterTrackAvailableFeedback { get; } + /// + /// Feedback indicateing the current status of Presenter Track is off + /// BoolFeedback PresenterTrackStatusOffFeedback { get; } + + /// + /// Feedback indicating the current status of Presenter Track is follow + /// BoolFeedback PresenterTrackStatusFollowFeedback { get; } + + /// + /// Feedback indicating the current status of Presenter Track is background + /// BoolFeedback PresenterTrackStatusBackgroundFeedback { get; } + + /// + /// Feedback indicating the current status of Presenter Track is persistent + /// BoolFeedback PresenterTrackStatusPersistentFeedback { get; } + /// + /// Indicates the current status of Presenter Track. + /// bool PresenterTrackStatus { get; } + /// + /// Turns off Presenter Track. + /// void PresenterTrackOff(); + + /// + /// Turns on Presenter Track in follow mode. + /// void PresenterTrackFollow(); + + /// + /// Turns on Presenter Track in background mode. + /// void PresenterTrackBackground(); + + /// + /// Turns on Presenter Track in persistent mode. + /// void PresenterTrackPersistent(); } } diff --git a/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/ISpeakerTrack.cs b/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/ISpeakerTrack.cs index 4e72dcf6..83735183 100644 --- a/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/ISpeakerTrack.cs +++ b/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/ISpeakerTrack.cs @@ -13,13 +13,28 @@ namespace PepperDash.Essentials.Devices.Common.Codec.Cisco /// public interface ISpeakerTrack : IKeyed { + /// + /// Indicates whether Speaker Track is available on the codec. + /// bool SpeakerTrackAvailability { get; } + /// + /// + /// BoolFeedback SpeakerTrackAvailableFeedback { get; } + /// + /// Feedback indicating the current status of Speaker Track is off + /// bool SpeakerTrackStatus { get; } + /// + /// Turns Speaker Track off + /// void SpeakerTrackOff(); + /// + /// Turns Speaker Track on + /// void SpeakerTrackOn(); } } diff --git a/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/RoomPresets.cs b/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/RoomPresets.cs index 8fc8a1d0..0adf40a2 100644 --- a/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/RoomPresets.cs +++ b/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/RoomPresets.cs @@ -12,20 +12,45 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec /// public interface IHasCodecRoomPresets { + /// + /// Event that is raised when the list of room presets has changed. + /// event EventHandler CodecRoomPresetsListHasChanged; + /// + /// List of near end presets that can be recalled. + /// List NearEndPresets { get; } + /// + /// List of far end presets that can be recalled. + /// List FarEndRoomPresets { get; } + /// + /// Selects a near end preset by its ID. + /// + /// void CodecRoomPresetSelect(int preset); + /// + /// Stores a near end preset with the given ID and description. + /// + /// + /// void CodecRoomPresetStore(int preset, string description); + /// + /// Selects a far end preset by its ID. This is typically used to recall a preset that has been defined on the far end codec. + /// + /// void SelectFarEndPreset(int preset); } - public static class RoomPresets + /// + /// Static class for converting non-generic RoomPresets to generic CameraPresets. + /// + public static class RoomPresets { /// /// Converts non-generic RoomPresets to generic CameraPresets @@ -47,6 +72,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec /// public class CodecRoomPreset : PresetBase { + /// + /// + /// + /// + /// + /// + /// public CodecRoomPreset(int id, string description, bool def, bool isDef) : base(id, description, def, isDef) {