From 9b1dd099f60ae1b49d226e5298cc61c21c0f23f0 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Tue, 17 Jun 2025 16:47:09 -0600 Subject: [PATCH] feat: Add IPresenterTrack and ISpeakerTrack interfaces Introduced two new interfaces, `IPresenterTrack` and `ISpeakerTrack`, in the `PepperDash.Essentials.Devices.Common.Codec.Cisco` namespace. These interfaces provide properties and methods for managing presenter and speaker tracking functionalities in Cisco codecs, including availability, status feedback, and control methods. --- .../Codec/Cisco/IPresenterTrack.cs | 32 +++++++++++++++++++ .../Codec/Cisco/ISpeakerTrack.cs | 25 +++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/PepperDash.Essentials.Devices.Common/Codec/Cisco/IPresenterTrack.cs create mode 100644 src/PepperDash.Essentials.Devices.Common/Codec/Cisco/ISpeakerTrack.cs diff --git a/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/IPresenterTrack.cs b/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/IPresenterTrack.cs new file mode 100644 index 00000000..538a5adf --- /dev/null +++ b/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/IPresenterTrack.cs @@ -0,0 +1,32 @@ +using PepperDash.Core; +using PepperDash.Essentials.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PepperDash.Essentials.Devices.Common.Codec.Cisco +{ + /// + /// Describes the Presenter Track controls for a Cisco codec. + /// + public interface IPresenterTrack : IKeyed + { + bool PresenterTrackAvailability { get; } + + BoolFeedback PresenterTrackAvailableFeedback { get; } + + BoolFeedback PresenterTrackStatusOffFeedback { get; } + BoolFeedback PresenterTrackStatusFollowFeedback { get; } + BoolFeedback PresenterTrackStatusBackgroundFeedback { get; } + BoolFeedback PresenterTrackStatusPersistentFeedback { get; } + + bool PresenterTrackStatus { get; } + + void PresenterTrackOff(); + void PresenterTrackFollow(); + void PresenterTrackBackground(); + void PresenterTrackPersistent(); + } +} diff --git a/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/ISpeakerTrack.cs b/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/ISpeakerTrack.cs new file mode 100644 index 00000000..4e72dcf6 --- /dev/null +++ b/src/PepperDash.Essentials.Devices.Common/Codec/Cisco/ISpeakerTrack.cs @@ -0,0 +1,25 @@ +using PepperDash.Core; +using PepperDash.Essentials.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PepperDash.Essentials.Devices.Common.Codec.Cisco +{ + /// + /// Describes the available tracking modes for a Cisco codec + /// + public interface ISpeakerTrack : IKeyed + { + bool SpeakerTrackAvailability { get; } + + BoolFeedback SpeakerTrackAvailableFeedback { get; } + + bool SpeakerTrackStatus { get; } + + void SpeakerTrackOff(); + void SpeakerTrackOn(); + } +}