diff --git a/.gitignore b/.gitignore
index c5e1142f..bd60ff8d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -393,4 +393,5 @@ essentials-framework/Essentials Interfaces/PepperDash_Essentials_Interfaces/Pepp
/._PepperDash.Essentials.sln
.vscode/settings.json
_site/
-api/
\ No newline at end of file
+api/
+*.DS_Store
diff --git a/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs b/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs
index 4c2e83e4..821a0c2b 100644
--- a/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs
+++ b/src/PepperDash.Essentials.Core/Devices/LevelControlListItem.cs
@@ -9,10 +9,15 @@ using PepperDash.Essentials.Core.Devices;
namespace PepperDash.Essentials.Core
{
+ ///
+ /// Represents a level control item in a list, which can be used to control volume or mute functionality.
+ ///
public class LevelControlListItem : AudioControlListItemBase
{
-
+ ///
+ /// A reference to the IBasicVolumeWithFeedback device for control.
+ ///
[JsonIgnore]
public IBasicVolumeWithFeedback LevelControl
{
@@ -55,7 +60,7 @@ namespace PepperDash.Essentials.Core
{
get
{
- if(string.IsNullOrEmpty(ItemKey)) return ParentDeviceKey;
+ if (string.IsNullOrEmpty(ItemKey)) return ParentDeviceKey;
else
{
return DeviceManager.AllDevices.
@@ -70,13 +75,39 @@ namespace PepperDash.Essentials.Core
[JsonProperty("type")]
[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public eLevelControlType Type { get; set; }
+
+
+ ///
+ /// Indicates if the item is a mic or not.
+ ///
+ [JsonProperty("isMic", NullValueHandling = NullValueHandling.Ignore)]
+ public bool? IsMic { get; set; }
+
+ ///
+ /// Indicates if the item should show the raw level in the UI.
+ ///
+ [JsonProperty("showRawLevel", NullValueHandling = NullValueHandling.Ignore)]
+ public bool? ShowRawLevel { get; set; }
}
+ ///
+ /// Indicates the type of level control item.
+ ///
[Flags]
public enum eLevelControlType
{
+ ///
+ /// Indicates that the item is a level control only
+ ///
Level = 1,
+ ///
+ /// Indicates that the item is a mute control only
+ ///
Mute = 2,
+ ///
+ /// Indicates that the item is both a level and mute control
+ ///
LevelAndMute = Level | Mute,
}
+
}
diff --git a/src/PepperDash.Essentials.Core/Devices/SourceListItem.cs b/src/PepperDash.Essentials.Core/Devices/SourceListItem.cs
index 6de2f35d..ae223005 100644
--- a/src/PepperDash.Essentials.Core/Devices/SourceListItem.cs
+++ b/src/PepperDash.Essentials.Core/Devices/SourceListItem.cs
@@ -10,7 +10,18 @@ namespace PepperDash.Essentials.Core
///
public enum eSourceListItemType
{
- Route, Off, Other, SomethingAwesomerThanThese
+ ///
+ /// Represents a typical route.
+ ///
+ Route,
+ ///
+ /// Represents an off route.
+ ///
+ Off,
+ ///
+ /// Represents some other type of route
+ ///
+ Other,
}
///
@@ -18,6 +29,9 @@ namespace PepperDash.Essentials.Core
///
public class SourceListItem
{
+ ///
+ /// The key of the source item, which is used to identify it in the DeviceManager
+ ///
[JsonProperty("sourceKey")]
public string SourceKey { get; set; }
@@ -117,6 +131,9 @@ namespace PepperDash.Essentials.Core
[JsonProperty("disableRoutedSharing")]
public bool DisableRoutedSharing { get; set; }
+ ///
+ ///
+ ///
[JsonProperty("destinations")]
public List Destinations { get; set; }
///
@@ -149,31 +166,56 @@ namespace PepperDash.Essentials.Core
[JsonProperty("disableSimpleRouting")]
public bool DisableSimpleRouting { get; set; }
+ ///
+ /// Default constructor for SourceListItem, initializes the Icon to "Blank"
+ ///
public SourceListItem()
{
Icon = "Blank";
}
+ ///
+ /// Returns a string representation of the SourceListItem, including the SourceKey and Name
+ ///
+ ///
public override string ToString()
{
return $"{SourceKey}:{Name}";
}
}
+ ///
+ /// Represents a route in a source list item, which defines the source and destination keys and the type of signal being routed
+ ///
public class SourceRouteListItem
{
+ ///
+ /// The key of the source device to route from
+ ///
[JsonProperty("sourceKey")]
public string SourceKey { get; set; }
+ ///
+ /// The key of the source port to route from
+ ///
[JsonProperty("sourcePortKey")]
public string SourcePortKey { get; set; }
+ ///
+ /// The key of the destination device to route to
+ ///
[JsonProperty("destinationKey")]
public string DestinationKey { get; set; }
+ ///
+ /// The key of the destination port to route to
+ ///
[JsonProperty("destinationPortKey")]
public string DestinationPortKey { get; set; }
+ ///
+ /// The type of signal being routed, such as audio or video
+ ///
[JsonProperty("type")]
public eRoutingSignalType Type { get; set; }
}
@@ -183,15 +225,85 @@ namespace PepperDash.Essentials.Core
///
public enum eSourceListItemDestinationTypes
{
+ ///
+ /// Default display, used for the main video output in a room
+ ///
defaultDisplay,
+ ///
+ /// Left display
+ ///
leftDisplay,
+ ///
+ /// Right display
+ ///
rightDisplay,
+ ///
+ /// Center display
+ ///
centerDisplay,
+ ///
+ /// Program audio, used for the main audio output in a room
+ ///
programAudio,
+ ///
+ /// Codec content, used for sharing content to the far end in a video call
+ ///
codecContent,
+ ///
+ /// Front left display, used for rooms with multiple displays
+ ///
frontLeftDisplay,
+ ///
+ /// Front right display, used for rooms with multiple displays
+ ///
frontRightDisplay,
+ ///
+ /// Rear left display, used for rooms with multiple displays
+ ///
rearLeftDisplay,
+ ///
+ /// Rear right display, used for rooms with multiple displays
+ ///
rearRightDisplay,
+ ///
+ /// Auxiliary display 1, used for additional displays in a room
+ ///
+ auxDisplay1,
+ ///
+ /// Auxiliary display 2, used for additional displays in a room
+ ///
+ auxDisplay2,
+ ///
+ /// Auxiliary display 3, used for additional displays in a room
+ ///
+ auxDisplay3,
+ ///
+ /// Auxiliary display 4, used for additional displays in a room
+ ///
+ auxDisplay4,
+ ///
+ /// Auxiliary display 5, used for additional displays in a room
+ ///
+ auxDisplay5,
+ ///
+ /// Auxiliary display 6, used for additional displays in a room
+ ///
+ auxDisplay6,
+ ///
+ /// Auxiliary display 7, used for additional displays in a room
+ ///
+ auxDisplay7,
+ ///
+ /// Auxiliary display 8, used for additional displays in a room
+ ///
+ auxDisplay8,
+ ///
+ /// Auxiliary display 9, used for additional displays in a room
+ ///
+ auxDisplay9,
+ ///
+ /// Auxiliary display 10, used for additional displays in a room
+ ///
+ auxDisplay10,
}
}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Routing/IRoutingSink.cs b/src/PepperDash.Essentials.Core/Routing/IRoutingSink.cs
index b05c7744..59bcd65b 100644
--- a/src/PepperDash.Essentials.Core/Routing/IRoutingSink.cs
+++ b/src/PepperDash.Essentials.Core/Routing/IRoutingSink.cs
@@ -7,8 +7,14 @@
{
}
+ ///
+ /// For fixed-source endpoint devices with an input port
+ ///
public interface IRoutingSinkWithInputPort :IRoutingSink
{
+ ///
+ /// Gets the current input port for this routing sink.
+ ///
RoutingInputPort CurrentInputPort { get; }
}
/*///