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)
{