diff --git a/src/PepperDash.Essentials.Core/Bridges/BridgeBase.cs b/src/PepperDash.Essentials.Core/Bridges/BridgeBase.cs
index a1326770..371fc6f4 100644
--- a/src/PepperDash.Essentials.Core/Bridges/BridgeBase.cs
+++ b/src/PepperDash.Essentials.Core/Bridges/BridgeBase.cs
@@ -12,6 +12,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core.Config;
//using PepperDash.Essentials.Devices.Common.Cameras;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core.Bridges
{
diff --git a/src/PepperDash.Essentials.Core/Comm and IR/GenericHttpClient.cs b/src/PepperDash.Essentials.Core/Comm and IR/GenericHttpClient.cs
index 31342a94..b1365dda 100644
--- a/src/PepperDash.Essentials.Core/Comm and IR/GenericHttpClient.cs
+++ b/src/PepperDash.Essentials.Core/Comm and IR/GenericHttpClient.cs
@@ -100,6 +100,7 @@ namespace PepperDash.Essentials.Core
#endregion
}
+
public class GenericHttpClientEventArgs : EventArgs
{
public string ResponseText { get; private set; }
diff --git a/src/PepperDash.Essentials.Core/Crestron IO/Relay/GenericRelayDevice.cs b/src/PepperDash.Essentials.Core/Crestron IO/Relay/GenericRelayDevice.cs
index 421aa3b1..f44362e4 100644
--- a/src/PepperDash.Essentials.Core/Crestron IO/Relay/GenericRelayDevice.cs
+++ b/src/PepperDash.Essentials.Core/Crestron IO/Relay/GenericRelayDevice.cs
@@ -9,6 +9,7 @@ using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core.CrestronIO
{
diff --git a/src/PepperDash.Essentials.Core/Crestron IO/Relay/ISwitchedOutput.cs b/src/PepperDash.Essentials.Core/Crestron IO/Relay/ISwitchedOutput.cs
deleted file mode 100644
index 19f8e0df..00000000
--- a/src/PepperDash.Essentials.Core/Crestron IO/Relay/ISwitchedOutput.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-
-using PepperDash.Essentials.Core;
-
-namespace PepperDash.Essentials.Core.CrestronIO
-{
- ///
- /// Describes an output capable of switching on and off
- ///
- public interface ISwitchedOutput
- {
- BoolFeedback OutputIsOnFeedback {get;}
-
- void On();
- void Off();
- }
-
- public interface ISwitchedOutputCollection
- {
- Dictionary SwitchedOutputs { get; }
- }
-}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Crestron/CrestronGenericBaseDevice.cs b/src/PepperDash.Essentials.Core/Crestron/CrestronGenericBaseDevice.cs
index 0ce2a8fe..aa9559bb 100644
--- a/src/PepperDash.Essentials.Core/Crestron/CrestronGenericBaseDevice.cs
+++ b/src/PepperDash.Essentials.Core/Crestron/CrestronGenericBaseDevice.cs
@@ -5,6 +5,8 @@ using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Core;
using PepperDash.Core.JsonStandardObjects;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Devices;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core
{
diff --git a/src/PepperDash.Essentials.Core/Device Info/IDeviceInfoProvider.cs b/src/PepperDash.Essentials.Core/Device Info/IDeviceInfoProvider.cs
deleted file mode 100644
index ea9c16e6..00000000
--- a/src/PepperDash.Essentials.Core/Device Info/IDeviceInfoProvider.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using PepperDash.Core;
-
-namespace PepperDash.Essentials.Core.DeviceInfo
-{
- public interface IDeviceInfoProvider:IKeyed
- {
- DeviceInfo DeviceInfo { get; }
-
- event DeviceInfoChangeHandler DeviceInfoChanged;
-
- void UpdateDeviceInfo();
- }
-
- public delegate void DeviceInfoChangeHandler(IKeyed device, DeviceInfoEventArgs args);
-}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/DeviceControlsParentInterfaces/IPresentationSource.cs b/src/PepperDash.Essentials.Core/DeviceControlsParentInterfaces/IPresentationSource.cs
deleted file mode 100644
index ac45a9d4..00000000
--- a/src/PepperDash.Essentials.Core/DeviceControlsParentInterfaces/IPresentationSource.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-//using System;
-//using System.Collections.Generic;
-//using Crestron.SimplSharpPro;
-//using Crestron.SimplSharpPro.DeviceSupport;
-
-//using PepperDash.Core;
-
-
-//namespace PepperDash.Essentials.Core
-//{
-// public interface IPresentationSource : IKeyed
-// {
-// string Name { get; }
-// PresentationSourceType Type { get; }
-// string IconName { get; set; }
-// BoolFeedback HasPowerOnFeedback { get; }
-
-// }
-//}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Device Info/DeviceInfo.cs b/src/PepperDash.Essentials.Core/DeviceInfo/DeviceInfo.cs
similarity index 100%
rename from src/PepperDash.Essentials.Core/Device Info/DeviceInfo.cs
rename to src/PepperDash.Essentials.Core/DeviceInfo/DeviceInfo.cs
diff --git a/src/PepperDash.Essentials.Core/DeviceInfo/DeviceInfoChangeHandler.cs b/src/PepperDash.Essentials.Core/DeviceInfo/DeviceInfoChangeHandler.cs
new file mode 100644
index 00000000..a1f2e758
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/DeviceInfo/DeviceInfoChangeHandler.cs
@@ -0,0 +1,7 @@
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Core.DeviceInfo
+{
+ // TODO: Change to event args... no reason for extraneous delegate
+ public delegate void DeviceInfoChangeHandler(IKeyed device, DeviceInfoEventArgs args);
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Device Info/DeviceInfoEventArgs.cs b/src/PepperDash.Essentials.Core/DeviceInfo/DeviceInfoEventArgs.cs
similarity index 100%
rename from src/PepperDash.Essentials.Core/Device Info/DeviceInfoEventArgs.cs
rename to src/PepperDash.Essentials.Core/DeviceInfo/DeviceInfoEventArgs.cs
diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IChannel.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IChannel.cs
index 5a38c703..3a9edf92 100644
--- a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IChannel.cs
+++ b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IChannel.cs
@@ -1,6 +1,4 @@
using Crestron.SimplSharpPro;
-using Crestron.SimplSharpPro.DeviceSupport;
-
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.SmartObjects;
@@ -18,30 +16,4 @@ namespace PepperDash.Essentials.Core
void Info(bool pressRelease);
void Exit(bool pressRelease);
}
-
- ///
- ///
- ///
- public static class IChannelExtensions
- {
- public static void LinkButtons(this IChannel dev, BasicTriList triList)
- {
- triList.SetBoolSigAction(123, dev.ChannelUp);
- triList.SetBoolSigAction(124, dev.ChannelDown);
- triList.SetBoolSigAction(125, dev.LastChannel);
- triList.SetBoolSigAction(137, dev.Guide);
- triList.SetBoolSigAction(129, dev.Info);
- triList.SetBoolSigAction(134, dev.Exit);
- }
-
- public static void UnlinkButtons(this IChannel dev, BasicTriList triList)
- {
- triList.ClearBoolSigAction(123);
- triList.ClearBoolSigAction(124);
- triList.ClearBoolSigAction(125);
- triList.ClearBoolSigAction(137);
- triList.ClearBoolSigAction(129);
- triList.ClearBoolSigAction(134);
- }
- }
}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IChannelExtensions.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IChannelExtensions.cs
new file mode 100644
index 00000000..5e28dcb7
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IChannelExtensions.cs
@@ -0,0 +1,30 @@
+using Crestron.SimplSharpPro.DeviceSupport;
+
+namespace PepperDash.Essentials.Core
+{
+ ///
+ ///
+ ///
+ public static class IChannelExtensions
+ {
+ public static void LinkButtons(this IChannel dev, BasicTriList triList)
+ {
+ triList.SetBoolSigAction(123, dev.ChannelUp);
+ triList.SetBoolSigAction(124, dev.ChannelDown);
+ triList.SetBoolSigAction(125, dev.LastChannel);
+ triList.SetBoolSigAction(137, dev.Guide);
+ triList.SetBoolSigAction(129, dev.Info);
+ triList.SetBoolSigAction(134, dev.Exit);
+ }
+
+ public static void UnlinkButtons(this IChannel dev, BasicTriList triList)
+ {
+ triList.ClearBoolSigAction(123);
+ triList.ClearBoolSigAction(124);
+ triList.ClearBoolSigAction(125);
+ triList.ClearBoolSigAction(137);
+ triList.ClearBoolSigAction(129);
+ triList.ClearBoolSigAction(134);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasBranding.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasBranding.cs
deleted file mode 100644
index 63f4917a..00000000
--- a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/IHasBranding.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System;
-
-namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
-{
- public interface IHasBranding
- {
- bool BrandingEnabled { get; }
- void InitializeBranding(string roomKey);
- }
-}
-
-namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
-{
- [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")]
- public interface IHasBranding
- {
- bool BrandingEnabled { get; }
- void InitializeBranding(string roomKey);
- }
-}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/INumeric.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/INumeric.cs
index 62ea8b3f..b3edca5b 100644
--- a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/INumeric.cs
+++ b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/INumeric.cs
@@ -33,13 +33,7 @@ namespace PepperDash.Essentials.Core
void KeypadAccessoryButton2(bool pressRelease);
}
- public interface ISetTopBoxNumericKeypad : INumericKeypad
- {
- void Dash(bool pressRelease);
- void KeypadEnter(bool pressRelease);
- }
-
- ///
+ ///
///
///
public static class INumericExtensions
diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/ISetTopBoxControls.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/ISetTopBoxControls.cs
index a9a92126..f938a696 100644
--- a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/ISetTopBoxControls.cs
+++ b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/ISetTopBoxControls.cs
@@ -1,6 +1,7 @@
using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.SmartObjects;
namespace PepperDash.Essentials.Core
diff --git a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/Template.cs b/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/Template.cs
deleted file mode 100644
index 31f71df9..00000000
--- a/src/PepperDash.Essentials.Core/DeviceTypeInterfaces/Template.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Crestron.SimplSharpPro.DeviceSupport;
-
-using PepperDash.Essentials.Core;
-using PepperDash.Essentials.Core.SmartObjects;
-
-namespace PepperDash.Essentials.Core
-{
-
-}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Devices/AudioInterfaces.cs b/src/PepperDash.Essentials.Core/Devices/AudioChangeEventArgs.cs
similarity index 85%
rename from src/PepperDash.Essentials.Core/Devices/AudioInterfaces.cs
rename to src/PepperDash.Essentials.Core/Devices/AudioChangeEventArgs.cs
index 90aa4909..16cf6380 100644
--- a/src/PepperDash.Essentials.Core/Devices/AudioInterfaces.cs
+++ b/src/PepperDash.Essentials.Core/Devices/AudioChangeEventArgs.cs
@@ -5,16 +5,11 @@ using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.DeviceSupport;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core
{
-
- public enum AudioChangeType
- {
- Mute, Volume
- }
-
- public class AudioChangeEventArgs
+ public class AudioChangeEventArgs
{
public AudioChangeType ChangeType { get; private set; }
public IBasicVolumeControls AudioDevice { get; private set; }
diff --git a/src/PepperDash.Essentials.Core/Devices/AudioChangeType.cs b/src/PepperDash.Essentials.Core/Devices/AudioChangeType.cs
new file mode 100644
index 00000000..28b54d63
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Devices/AudioChangeType.cs
@@ -0,0 +1,7 @@
+namespace PepperDash.Essentials.Core
+{
+ public enum AudioChangeType
+ {
+ Mute, Volume
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Devices/CodecInterfaces.cs b/src/PepperDash.Essentials.Core/Devices/CodecInterfaces.cs
deleted file mode 100644
index afb1da17..00000000
--- a/src/PepperDash.Essentials.Core/Devices/CodecInterfaces.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-
-namespace PepperDash.Essentials.Core
-{
- ///
- /// Adds control of codec receive volume
- ///
- public interface IReceiveVolume
- {
- // Break this out into 3 interfaces
- void SetReceiveVolume(ushort level);
- void ReceiveMuteOn();
- void ReceiveMuteOff();
- void ReceiveMuteToggle();
- IntFeedback ReceiveLevelFeedback { get; }
- BoolFeedback ReceiveMuteIsOnFeedback { get; }
- }
-
- ///
- /// Adds control of codec transmit volume
- ///
- public interface ITransmitVolume
- {
- void SetTransmitVolume(ushort level);
- void TransmitMuteOn();
- void TransmitMuteOff();
- void TransmitMuteToggle();
- IntFeedback TransmitLevelFeedback { get; }
- BoolFeedback TransmitMuteIsOnFeedback { get; }
- }
-
- ///
- /// Adds control of codec privacy function (microphone mute)
- ///
- public interface IPrivacy
- {
- void PrivacyModeOn();
- void PrivacyModeOff();
- void PrivacyModeToggle();
- BoolFeedback PrivacyModeIsOnFeedback { get; }
- }
-}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Devices/CrestronProcessor.cs b/src/PepperDash.Essentials.Core/Devices/CrestronProcessor.cs
index 1b0264eb..5e217544 100644
--- a/src/PepperDash.Essentials.Core/Devices/CrestronProcessor.cs
+++ b/src/PepperDash.Essentials.Core/Devices/CrestronProcessor.cs
@@ -6,13 +6,14 @@ using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core.CrestronIO;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core.Devices
{
///
/// This wrapper class is meant to allow interfaces to be applied to any Crestron processor
///
- public class CrestronProcessor : Device, ISwitchedOutputCollection
+ public class CrestronProcessor : Device, IHasSwitchedOutputs
{
public Dictionary SwitchedOutputs { get; private set; }
diff --git a/src/PepperDash.Essentials.Core/Devices/EssentialsBridgeableDevice.cs b/src/PepperDash.Essentials.Core/Devices/EssentialsBridgeableDevice.cs
index 0812ca4e..3f8d9cbb 100644
--- a/src/PepperDash.Essentials.Core/Devices/EssentialsBridgeableDevice.cs
+++ b/src/PepperDash.Essentials.Core/Devices/EssentialsBridgeableDevice.cs
@@ -1,5 +1,6 @@
using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core
{
diff --git a/src/PepperDash.Essentials.Core/Devices/FIND HOMES Interfaces.cs b/src/PepperDash.Essentials.Core/Devices/FIND HOMES Interfaces.cs
deleted file mode 100644
index 318f5179..00000000
--- a/src/PepperDash.Essentials.Core/Devices/FIND HOMES Interfaces.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-using Crestron.SimplSharpPro;
-using Crestron.SimplSharpPro.DeviceSupport;
-
-using PepperDash.Core;
-
-
-namespace PepperDash.Essentials.Core
-{
- public interface IOnline
- {
- BoolFeedback IsOnline { get; }
- }
-
- /////
- ///// ** WANT THIS AND ALL ITS FRIENDS TO GO AWAY **
- ///// Defines a class that has a list of CueAction objects, typically
- ///// for linking functions to user interfaces or API calls
- /////
- //public interface IHasCueActionList
- //{
- // List CueActionList { get; }
- //}
-
-
- //public interface IHasComPortsHardware
- //{
- // IComPorts ComPortsDevice { get; }
- //}
-
- ///
- /// Describes a device that can have a video sync providing device attached to it
- ///
- public interface IAttachVideoStatus : IKeyed
- {
- // Extension methods will depend on this
- }
-
- ///
- /// For display classes that can provide usage data
- ///
- public interface IDisplayUsage
- {
- IntFeedback LampHours { get; }
- }
-
- public interface IMakeModel : IKeyed
- {
- string DeviceMake { get; }
- string DeviceModel { get; }
- }
-}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Devices/IAttachVideoStatusExtensions.cs b/src/PepperDash.Essentials.Core/Devices/IAttachVideoStatusExtensions.cs
index e5218ee0..63025051 100644
--- a/src/PepperDash.Essentials.Core/Devices/IAttachVideoStatusExtensions.cs
+++ b/src/PepperDash.Essentials.Core/Devices/IAttachVideoStatusExtensions.cs
@@ -3,6 +3,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
+using PepperDash.Essentials.Core.Devices;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core
{
diff --git a/src/PepperDash.Essentials.Core/Devices/IProjectorInterfaces.cs b/src/PepperDash.Essentials.Core/Devices/IProjectorInterfaces.cs
deleted file mode 100644
index c0cb33ed..00000000
--- a/src/PepperDash.Essentials.Core/Devices/IProjectorInterfaces.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-
-namespace PepperDash.Essentials.Core
-{
- public interface IBasicVideoMute
- {
- void VideoMuteToggle();
- }
-
- public interface IBasicVideoMuteWithFeedback : IBasicVideoMute
- {
- BoolFeedback VideoMuteIsOn { get; }
-
- void VideoMuteOn();
- void VideoMuteOff();
-
- }
-}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Devices/IVolumeAndAudioInterfaces.cs b/src/PepperDash.Essentials.Core/Devices/IVolumeAndAudioInterfaces.cs
index 254eada2..3c141300 100644
--- a/src/PepperDash.Essentials.Core/Devices/IVolumeAndAudioInterfaces.cs
+++ b/src/PepperDash.Essentials.Core/Devices/IVolumeAndAudioInterfaces.cs
@@ -3,59 +3,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core
{
- ///
- /// Defines minimal volume and mute control methods
- ///
- public interface IBasicVolumeControls : IHasVolumeControl, IHasMuteControl
- {
- }
-
- ///
- /// Defines basic volume control methods
- ///
- public interface IHasVolumeControl
- {
- void VolumeUp(bool pressRelease);
- void VolumeDown(bool pressRelease);
- }
-
- ///
- /// Defines volume control methods and properties with feedback
- ///
- public interface IHasVolumeControlWithFeedback : IHasVolumeControl
- {
- void SetVolume(ushort level);
- IntFeedback VolumeLevelFeedback { get; }
- }
-
- ///
- /// Defines basic mute control methods
- ///
- public interface IHasMuteControl
- {
- void MuteToggle();
- }
-
- ///
- /// Defines mute control methods and properties with feedback
- ///
- public interface IHasMuteControlWithFeedback : IHasMuteControl
- {
- BoolFeedback MuteFeedback { get; }
- void MuteOn();
- void MuteOff();
- }
-
- ///
- /// Adds feedback and direct volume level set to IBasicVolumeControls
- ///
- public interface IBasicVolumeWithFeedback : IBasicVolumeControls, IHasVolumeControlWithFeedback, IHasMuteControlWithFeedback
- {
- }
-
///
/// A class that implements this contains a reference to a current IBasicVolumeControls device.
/// The class may have multiple IBasicVolumeControls.
diff --git a/src/PepperDash.Essentials.Core/Devices/PC/InRoomPc.cs b/src/PepperDash.Essentials.Core/Devices/PC/InRoomPc.cs
index 03e884f0..c0a57426 100644
--- a/src/PepperDash.Essentials.Core/Devices/PC/InRoomPc.cs
+++ b/src/PepperDash.Essentials.Core/Devices/PC/InRoomPc.cs
@@ -5,6 +5,7 @@ using Crestron.SimplSharpPro;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using PepperDash.Core;
diff --git a/src/PepperDash.Essentials.Core/Devices/PC/Laptop.cs b/src/PepperDash.Essentials.Core/Devices/PC/Laptop.cs
index a2864d77..adbf7185 100644
--- a/src/PepperDash.Essentials.Core/Devices/PC/Laptop.cs
+++ b/src/PepperDash.Essentials.Core/Devices/PC/Laptop.cs
@@ -5,6 +5,7 @@ using Crestron.SimplSharpPro;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using PepperDash.Core;
diff --git a/src/PepperDash.Essentials.Core/Devices/ReconfigurableDevice.cs b/src/PepperDash.Essentials.Core/Devices/ReconfigurableDevice.cs
index 3239e192..9e684b3c 100644
--- a/src/PepperDash.Essentials.Core/Devices/ReconfigurableDevice.cs
+++ b/src/PepperDash.Essentials.Core/Devices/ReconfigurableDevice.cs
@@ -9,6 +9,7 @@ using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core.Devices
{
diff --git a/src/PepperDash.Essentials.Core/Devices/IUsageTracking.cs b/src/PepperDash.Essentials.Core/Devices/UsageTracking.cs
similarity index 77%
rename from src/PepperDash.Essentials.Core/Devices/IUsageTracking.cs
rename to src/PepperDash.Essentials.Core/Devices/UsageTracking.cs
index 05b59366..04618bfb 100644
--- a/src/PepperDash.Essentials.Core/Devices/IUsageTracking.cs
+++ b/src/PepperDash.Essentials.Core/Devices/UsageTracking.cs
@@ -1,25 +1,8 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
using PepperDash.Core;
-namespace PepperDash.Essentials.Core
+namespace PepperDash.Essentials.Core.Devices
{
- public interface IUsageTracking
- {
- UsageTracking UsageTracker { get; set; }
- }
-
- //public static class IUsageTrackingExtensions
- //{
- // public static void EnableUsageTracker(this IUsageTracking device)
- // {
- // device.UsageTracker = new UsageTracking();
- // }
- //}
-
public class UsageTracking
{
public event EventHandler DeviceUsageEnded;
@@ -45,7 +28,7 @@ namespace PepperDash.Essentials.Core
void InUseFeedback_OutputChange(object sender, EventArgs e)
{
- if(InUseTracker.InUseFeedback.BoolValue)
+ if(InUseTracker.InUseFeedback.BoolValue)
{
StartDeviceUsage();
}
@@ -95,10 +78,4 @@ namespace PepperDash.Essentials.Core
}
}
}
-
- public class DeviceUsageEventArgs : EventArgs
- {
- public DateTime UsageEndTime { get; set; }
- public int MinutesUsed { get; set; }
- }
}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Devices/VolumeDeviceChangeEventArgs.cs b/src/PepperDash.Essentials.Core/Devices/VolumeDeviceChangeEventArgs.cs
index 2171cb73..28f462c2 100644
--- a/src/PepperDash.Essentials.Core/Devices/VolumeDeviceChangeEventArgs.cs
+++ b/src/PepperDash.Essentials.Core/Devices/VolumeDeviceChangeEventArgs.cs
@@ -6,6 +6,7 @@ using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core
{
diff --git a/src/PepperDash.Essentials.Core/Display/BasicIrDisplay.cs b/src/PepperDash.Essentials.Core/Display/BasicIrDisplay.cs
index 7a8eb8b1..452c5cb9 100644
--- a/src/PepperDash.Essentials.Core/Display/BasicIrDisplay.cs
+++ b/src/PepperDash.Essentials.Core/Display/BasicIrDisplay.cs
@@ -10,6 +10,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
namespace PepperDash.Essentials.Core
diff --git a/src/PepperDash.Essentials.Core/Display/DisplayBase.cs b/src/PepperDash.Essentials.Core/Display/DisplayBase.cs
index f4408b7f..dc683c44 100644
--- a/src/PepperDash.Essentials.Core/Display/DisplayBase.cs
+++ b/src/PepperDash.Essentials.Core/Display/DisplayBase.cs
@@ -11,6 +11,8 @@ using Crestron.SimplSharpPro.DM.Endpoints.Transmitters;
using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Devices;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core
diff --git a/src/PepperDash.Essentials.Core/Display/MockDisplay.cs b/src/PepperDash.Essentials.Core/Display/MockDisplay.cs
index eb529376..bf874194 100644
--- a/src/PepperDash.Essentials.Core/Display/MockDisplay.cs
+++ b/src/PepperDash.Essentials.Core/Display/MockDisplay.cs
@@ -11,6 +11,7 @@ using Crestron.SimplSharpPro.DM.Endpoints.Transmitters;
using PepperDash.Core;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using PepperDash.Essentials.Core.Config;
diff --git a/src/PepperDash.Essentials.Core/Fusion/EssentialsHuddleSpaceFusionSystemControllerBase.cs b/src/PepperDash.Essentials.Core/Fusion/EssentialsHuddleSpaceFusionSystemControllerBase.cs
index 70fb019b..8b4e39f5 100644
--- a/src/PepperDash.Essentials.Core/Fusion/EssentialsHuddleSpaceFusionSystemControllerBase.cs
+++ b/src/PepperDash.Essentials.Core/Fusion/EssentialsHuddleSpaceFusionSystemControllerBase.cs
@@ -11,6 +11,8 @@ using Crestron.SimplSharpPro.Fusion;
using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Devices;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core.Fusion
{
diff --git a/src/PepperDash.Essentials.Core/InUseTracking/DeviceUsageEventArgs.cs b/src/PepperDash.Essentials.Core/InUseTracking/DeviceUsageEventArgs.cs
new file mode 100644
index 00000000..2b0b5cd4
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/InUseTracking/DeviceUsageEventArgs.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace PepperDash.Essentials.Core
+{
+ public class DeviceUsageEventArgs : EventArgs
+ {
+ public DateTime UsageEndTime { get; set; }
+ public int MinutesUsed { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IAttachVideoStatus.cs b/src/PepperDash.Essentials.Core/Interfaces/IAttachVideoStatus.cs
new file mode 100644
index 00000000..440dcb11
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IAttachVideoStatus.cs
@@ -0,0 +1,12 @@
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Describes a device that can have a video sync providing device attached to it
+ ///
+ public interface IAttachVideoStatus : IKeyed
+ {
+ // Extension methods will depend on this
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IBasicVideoMute.cs b/src/PepperDash.Essentials.Core/Interfaces/IBasicVideoMute.cs
new file mode 100644
index 00000000..dcd621af
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IBasicVideoMute.cs
@@ -0,0 +1,7 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface IBasicVideoMute
+ {
+ void VideoMuteToggle();
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IBasicVideoMuteWithFeedback.cs b/src/PepperDash.Essentials.Core/Interfaces/IBasicVideoMuteWithFeedback.cs
new file mode 100644
index 00000000..7d2138f7
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IBasicVideoMuteWithFeedback.cs
@@ -0,0 +1,11 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface IBasicVideoMuteWithFeedback : IBasicVideoMute
+ {
+ BoolFeedback VideoMuteIsOn { get; }
+
+ void VideoMuteOn();
+ void VideoMuteOff();
+
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IBasicVolumeControls.cs b/src/PepperDash.Essentials.Core/Interfaces/IBasicVolumeControls.cs
new file mode 100644
index 00000000..ead745ba
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IBasicVolumeControls.cs
@@ -0,0 +1,9 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Defines minimal volume and mute control methods
+ ///
+ public interface IBasicVolumeControls : IHasVolumeControl, IHasMuteControl
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IBasicVolumeWithFeedback.cs b/src/PepperDash.Essentials.Core/Interfaces/IBasicVolumeWithFeedback.cs
new file mode 100644
index 00000000..68afbc77
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IBasicVolumeWithFeedback.cs
@@ -0,0 +1,9 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Adds feedback and direct volume level set to IBasicVolumeControls
+ ///
+ public interface IBasicVolumeWithFeedback : IBasicVolumeControls, IHasVolumeControlWithFeedback, IHasMuteControlWithFeedback
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Bridges/IBridge.cs b/src/PepperDash.Essentials.Core/Interfaces/IBridgeAdvanced.cs
similarity index 77%
rename from src/PepperDash.Essentials.Core/Bridges/IBridge.cs
rename to src/PepperDash.Essentials.Core/Interfaces/IBridgeAdvanced.cs
index 0c6b44ed..586d2ded 100644
--- a/src/PepperDash.Essentials.Core/Bridges/IBridge.cs
+++ b/src/PepperDash.Essentials.Core/Interfaces/IBridgeAdvanced.cs
@@ -1,6 +1,7 @@
using Crestron.SimplSharpPro.DeviceSupport;
+using PepperDash.Essentials.Core.Bridges;
-namespace PepperDash.Essentials.Core.Bridges
+namespace PepperDash.Essentials.Core.Interfaces
{
///
/// Defines a device that uses JoinMapBaseAdvanced for its join map
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IDeviceInfoProvider.cs b/src/PepperDash.Essentials.Core/Interfaces/IDeviceInfoProvider.cs
new file mode 100644
index 00000000..65ed2ee8
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IDeviceInfoProvider.cs
@@ -0,0 +1,14 @@
+using PepperDash.Core;
+using PepperDash.Essentials.Core.DeviceInfo;
+
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface IDeviceInfoProvider:IKeyed
+ {
+ DeviceInfo.DeviceInfo DeviceInfo { get; }
+
+ event DeviceInfoChangeHandler DeviceInfoChanged;
+
+ void UpdateDeviceInfo();
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IDisplayUsage.cs b/src/PepperDash.Essentials.Core/Interfaces/IDisplayUsage.cs
new file mode 100644
index 00000000..4591c4dc
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IDisplayUsage.cs
@@ -0,0 +1,10 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// For display classes that can provide usage data
+ ///
+ public interface IDisplayUsage
+ {
+ IntFeedback LampHours { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IDspPreset.cs b/src/PepperDash.Essentials.Core/Interfaces/IDspPreset.cs
new file mode 100644
index 00000000..9286059c
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IDspPreset.cs
@@ -0,0 +1,8 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ // TODO: Is this a base class?
+ public interface IDspPreset
+ {
+ string Name { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IHasBranding.cs b/src/PepperDash.Essentials.Core/Interfaces/IHasBranding.cs
new file mode 100644
index 00000000..348ef02e
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IHasBranding.cs
@@ -0,0 +1,8 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface IHasBranding
+ {
+ bool BrandingEnabled { get; }
+ void InitializeBranding(string roomKey);
+ }
+}
diff --git a/src/PepperDash.Essentials.Core/Devices/IDspPreset.cs b/src/PepperDash.Essentials.Core/Interfaces/IHasDspPresets.cs
similarity index 61%
rename from src/PepperDash.Essentials.Core/Devices/IDspPreset.cs
rename to src/PepperDash.Essentials.Core/Interfaces/IHasDspPresets.cs
index 645339bb..709e361c 100644
--- a/src/PepperDash.Essentials.Core/Devices/IDspPreset.cs
+++ b/src/PepperDash.Essentials.Core/Interfaces/IHasDspPresets.cs
@@ -1,17 +1,10 @@
using System.Collections.Generic;
-namespace PepperDash.Essentials.Core
+namespace PepperDash.Essentials.Core.Interfaces
{
public interface IHasDspPresets
{
List Presets { get; }
-
void RecallPreset(IDspPreset preset);
-
- }
-
- public interface IDspPreset
- {
- string Name { get; }
}
}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Devices/IHasFeedbacks.cs b/src/PepperDash.Essentials.Core/Interfaces/IHasFeedbacks.cs
similarity index 100%
rename from src/PepperDash.Essentials.Core/Devices/IHasFeedbacks.cs
rename to src/PepperDash.Essentials.Core/Interfaces/IHasFeedbacks.cs
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IHasMuteControl.cs b/src/PepperDash.Essentials.Core/Interfaces/IHasMuteControl.cs
new file mode 100644
index 00000000..da06d426
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IHasMuteControl.cs
@@ -0,0 +1,10 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Defines basic mute control methods
+ ///
+ public interface IHasMuteControl
+ {
+ void MuteToggle();
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IHasMuteControlWithFeedback.cs b/src/PepperDash.Essentials.Core/Interfaces/IHasMuteControlWithFeedback.cs
new file mode 100644
index 00000000..9ed2c00d
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IHasMuteControlWithFeedback.cs
@@ -0,0 +1,12 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Defines mute control methods and properties with feedback
+ ///
+ public interface IHasMuteControlWithFeedback : IHasMuteControl
+ {
+ BoolFeedback MuteFeedback { get; }
+ void MuteOn();
+ void MuteOff();
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IHasSwitchedOutputs.cs b/src/PepperDash.Essentials.Core/Interfaces/IHasSwitchedOutputs.cs
new file mode 100644
index 00000000..ba35827f
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IHasSwitchedOutputs.cs
@@ -0,0 +1,9 @@
+using System.Collections.Generic;
+
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface IHasSwitchedOutputs
+ {
+ Dictionary SwitchedOutputs { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IHasVolumeControl.cs b/src/PepperDash.Essentials.Core/Interfaces/IHasVolumeControl.cs
new file mode 100644
index 00000000..8eb4a96c
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IHasVolumeControl.cs
@@ -0,0 +1,11 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Defines basic volume control methods
+ ///
+ public interface IHasVolumeControl
+ {
+ void VolumeUp(bool pressRelease);
+ void VolumeDown(bool pressRelease);
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IHasVolumeControlWithFeedback.cs b/src/PepperDash.Essentials.Core/Interfaces/IHasVolumeControlWithFeedback.cs
new file mode 100644
index 00000000..56299ba3
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IHasVolumeControlWithFeedback.cs
@@ -0,0 +1,11 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Defines volume control methods and properties with feedback
+ ///
+ public interface IHasVolumeControlWithFeedback : IHasVolumeControl
+ {
+ void SetVolume(ushort level);
+ IntFeedback VolumeLevelFeedback { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/InUseTracking/IInUseTracking.cs b/src/PepperDash.Essentials.Core/Interfaces/IInUseTracking.cs
similarity index 50%
rename from src/PepperDash.Essentials.Core/InUseTracking/IInUseTracking.cs
rename to src/PepperDash.Essentials.Core/Interfaces/IInUseTracking.cs
index 97a7c7f6..7d5f45dc 100644
--- a/src/PepperDash.Essentials.Core/InUseTracking/IInUseTracking.cs
+++ b/src/PepperDash.Essentials.Core/Interfaces/IInUseTracking.cs
@@ -1,11 +1,6 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-
-namespace PepperDash.Essentials.Core
+namespace PepperDash.Essentials.Core.Interfaces
{
+ // TODO: potentially anemic model here
///
/// Defines a class that uses an InUseTracker
///
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IMakeModel.cs b/src/PepperDash.Essentials.Core/Interfaces/IMakeModel.cs
new file mode 100644
index 00000000..97ec4caf
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IMakeModel.cs
@@ -0,0 +1,10 @@
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface IMakeModel : IKeyed
+ {
+ string DeviceMake { get; }
+ string DeviceModel { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IOnline.cs b/src/PepperDash.Essentials.Core/Interfaces/IOnline.cs
new file mode 100644
index 00000000..de410a8f
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IOnline.cs
@@ -0,0 +1,7 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface IOnline
+ {
+ BoolFeedback IsOnline { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IPrivacy.cs b/src/PepperDash.Essentials.Core/Interfaces/IPrivacy.cs
new file mode 100644
index 00000000..0cffd27b
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IPrivacy.cs
@@ -0,0 +1,13 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Adds control of codec privacy function (microphone mute)
+ ///
+ public interface IPrivacy
+ {
+ void PrivacyModeOn();
+ void PrivacyModeOff();
+ void PrivacyModeToggle();
+ BoolFeedback PrivacyModeIsOnFeedback { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IReceiveVolume.cs b/src/PepperDash.Essentials.Core/Interfaces/IReceiveVolume.cs
new file mode 100644
index 00000000..947a2ab2
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IReceiveVolume.cs
@@ -0,0 +1,16 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Adds control of codec receive volume
+ ///
+ public interface IReceiveVolume
+ {
+ // Break this out into 3 interfaces
+ void SetReceiveVolume(ushort level);
+ void ReceiveMuteOn();
+ void ReceiveMuteOff();
+ void ReceiveMuteToggle();
+ IntFeedback ReceiveLevelFeedback { get; }
+ BoolFeedback ReceiveMuteIsOnFeedback { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Devices/IReconfigurableDevice.cs b/src/PepperDash.Essentials.Core/Interfaces/IReconfigurableDevice.cs
similarity index 63%
rename from src/PepperDash.Essentials.Core/Devices/IReconfigurableDevice.cs
rename to src/PepperDash.Essentials.Core/Interfaces/IReconfigurableDevice.cs
index ab0e37c3..d165cfc6 100644
--- a/src/PepperDash.Essentials.Core/Devices/IReconfigurableDevice.cs
+++ b/src/PepperDash.Essentials.Core/Interfaces/IReconfigurableDevice.cs
@@ -1,12 +1,7 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
using PepperDash.Essentials.Core.Config;
-
-namespace PepperDash.Essentials.Core.Devices
+namespace PepperDash.Essentials.Core.Interfaces
{
public interface IReconfigurableDevice
{
diff --git a/src/PepperDash.Essentials.Core/Interfaces/ISetTopBoxNumericKeypad.cs b/src/PepperDash.Essentials.Core/Interfaces/ISetTopBoxNumericKeypad.cs
new file mode 100644
index 00000000..cb2580bb
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/ISetTopBoxNumericKeypad.cs
@@ -0,0 +1,8 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface ISetTopBoxNumericKeypad : INumericKeypad
+ {
+ void Dash(bool pressRelease);
+ void KeypadEnter(bool pressRelease);
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/ISwitchedOutput.cs b/src/PepperDash.Essentials.Core/Interfaces/ISwitchedOutput.cs
new file mode 100644
index 00000000..00bf82d0
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/ISwitchedOutput.cs
@@ -0,0 +1,14 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ // TODO: Is-A relationship; consider refactoring
+ ///
+ /// Describes an output capable of switching on and off
+ ///
+ public interface ISwitchedOutput
+ {
+ BoolFeedback OutputIsOnFeedback {get;}
+
+ void On();
+ void Off();
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/ITransmitVolume.cs b/src/PepperDash.Essentials.Core/Interfaces/ITransmitVolume.cs
new file mode 100644
index 00000000..a1614d7a
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/ITransmitVolume.cs
@@ -0,0 +1,15 @@
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ ///
+ /// Adds control of codec transmit volume
+ ///
+ public interface ITransmitVolume
+ {
+ void SetTransmitVolume(ushort level);
+ void TransmitMuteOn();
+ void TransmitMuteOff();
+ void TransmitMuteToggle();
+ IntFeedback TransmitLevelFeedback { get; }
+ BoolFeedback TransmitMuteIsOnFeedback { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Interfaces/IUsageTracking.cs b/src/PepperDash.Essentials.Core/Interfaces/IUsageTracking.cs
new file mode 100644
index 00000000..ff6601be
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Interfaces/IUsageTracking.cs
@@ -0,0 +1,17 @@
+using PepperDash.Essentials.Core.Devices;
+
+namespace PepperDash.Essentials.Core.Interfaces
+{
+ public interface IUsageTracking
+ {
+ UsageTracking UsageTracker { get; set; }
+ }
+
+ //public static class IUsageTrackingExtensions
+ //{
+ // public static void EnableUsageTracker(this IUsageTracking device)
+ // {
+ // device.UsageTracker = new UsageTracking();
+ // }
+ //}
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Lighting/ILightingLoad.cs b/src/PepperDash.Essentials.Core/Lighting/ILightingLoad.cs
new file mode 100644
index 00000000..24890793
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Lighting/ILightingLoad.cs
@@ -0,0 +1,15 @@
+namespace PepperDash.Essentials.Core.Lighting
+{
+ ///
+ /// Requiremnts for controlling a lighting load
+ ///
+ public interface ILightingLoad
+ {
+ void SetLoadLevel(int level);
+ void Raise();
+ void Lower();
+
+ IntFeedback LoadLevelFeedback { get; }
+ BoolFeedback LoadIsOnFeedback { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Lighting/ILightingMasterRaiseLower.cs b/src/PepperDash.Essentials.Core/Lighting/ILightingMasterRaiseLower.cs
new file mode 100644
index 00000000..da4308c3
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Lighting/ILightingMasterRaiseLower.cs
@@ -0,0 +1,12 @@
+namespace PepperDash.Essentials.Core.Lighting
+{
+ ///
+ /// Requirements for a device that implements master raise/lower
+ ///
+ public interface ILightingMasterRaiseLower
+ {
+ void MasterRaise();
+ void MasterLower();
+ void MasterRaiseLowerStop();
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Lighting/ILightingScenes.cs b/src/PepperDash.Essentials.Core/Lighting/ILightingScenes.cs
new file mode 100644
index 00000000..09f3d8b7
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Lighting/ILightingScenes.cs
@@ -0,0 +1,20 @@
+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; }
+
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Lighting/Lighting Interfaces.cs b/src/PepperDash.Essentials.Core/Lighting/Lighting Interfaces.cs
deleted file mode 100644
index 6c0eaad3..00000000
--- a/src/PepperDash.Essentials.Core/Lighting/Lighting Interfaces.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-
-using PepperDash.Core;
-
-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; }
-
- }
-
- ///
- /// 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;
- }
- }
-
-}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Lighting/LightingBase.cs b/src/PepperDash.Essentials.Core/Lighting/LightingBase.cs
index 6b0d4d7d..070bfdbb 100644
--- a/src/PepperDash.Essentials.Core/Lighting/LightingBase.cs
+++ b/src/PepperDash.Essentials.Core/Lighting/LightingBase.cs
@@ -115,34 +115,4 @@ namespace PepperDash.Essentials.Core.Lighting
}
}
-
- public class LightingScene
- {
- [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)]
- public string Name { get; set; }
- [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)]
- public string ID { get; set; }
- bool _IsActive;
- [JsonProperty("isActive", NullValueHandling = NullValueHandling.Ignore)]
- public bool IsActive
- {
- get
- {
- return _IsActive;
- }
- set
- {
- _IsActive = value;
- IsActiveFeedback.FireUpdate();
- }
- }
-
- [JsonIgnore]
- public BoolFeedback IsActiveFeedback { get; set; }
-
- public LightingScene()
- {
- IsActiveFeedback = new BoolFeedback(new Func(() => IsActive));
- }
- }
}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Lighting/LightingScene.cs b/src/PepperDash.Essentials.Core/Lighting/LightingScene.cs
new file mode 100644
index 00000000..89c97bb8
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Lighting/LightingScene.cs
@@ -0,0 +1,35 @@
+using System;
+using Newtonsoft.Json;
+
+namespace PepperDash.Essentials.Core.Lighting
+{
+ public class LightingScene
+ {
+ [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)]
+ public string Name { get; set; }
+ [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)]
+ public string ID { get; set; }
+ bool _IsActive;
+ [JsonProperty("isActive", NullValueHandling = NullValueHandling.Ignore)]
+ public bool IsActive
+ {
+ get
+ {
+ return _IsActive;
+ }
+ set
+ {
+ _IsActive = value;
+ IsActiveFeedback.FireUpdate();
+ }
+ }
+
+ [JsonIgnore]
+ public BoolFeedback IsActiveFeedback { get; set; }
+
+ public LightingScene()
+ {
+ IsActiveFeedback = new BoolFeedback(new Func(() => IsActive));
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Lighting/LightingSceneChangeEventArgs.cs b/src/PepperDash.Essentials.Core/Lighting/LightingSceneChangeEventArgs.cs
new file mode 100644
index 00000000..aaed1350
--- /dev/null
+++ b/src/PepperDash.Essentials.Core/Lighting/LightingSceneChangeEventArgs.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Core.Lighting
+{
+ public class LightingSceneChangeEventArgs : EventArgs
+ {
+ public LightingScene CurrentLightingScene { get; private set; }
+
+ public LightingSceneChangeEventArgs(LightingScene scene)
+ {
+ CurrentLightingScene = scene;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Core/Microphone Privacy/MicrophonePrivacyController.cs b/src/PepperDash.Essentials.Core/Microphone Privacy/MicrophonePrivacyController.cs
index 55b458a7..12b7ca9c 100644
--- a/src/PepperDash.Essentials.Core/Microphone Privacy/MicrophonePrivacyController.cs
+++ b/src/PepperDash.Essentials.Core/Microphone Privacy/MicrophonePrivacyController.cs
@@ -8,6 +8,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.CrestronIO;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core.Privacy
diff --git a/src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj b/src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj
index d9a1084e..b4561426 100644
--- a/src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj
+++ b/src/PepperDash.Essentials.Core/PepperDash.Essentials.Core.csproj
@@ -120,7 +120,25 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -185,12 +203,12 @@
-
+
-
-
-
-
+
+
+
+
@@ -198,9 +216,9 @@
-
-
-
+
+
+
@@ -209,7 +227,7 @@
-
+
@@ -233,8 +251,14 @@
+
+
+
+
+
+
@@ -248,7 +272,7 @@
-
+
@@ -268,7 +292,7 @@
-
+
@@ -282,7 +306,6 @@
-
@@ -306,7 +329,7 @@
-
+
@@ -314,9 +337,9 @@
-
+
-
+
@@ -363,7 +386,6 @@
-
@@ -372,7 +394,7 @@
-
+
diff --git a/src/PepperDash.Essentials.Core/Plugins/PluginLoader.cs b/src/PepperDash.Essentials.Core/Plugins/PluginLoader.cs
index 136303e3..d0106050 100644
--- a/src/PepperDash.Essentials.Core/Plugins/PluginLoader.cs
+++ b/src/PepperDash.Essentials.Core/Plugins/PluginLoader.cs
@@ -58,6 +58,7 @@ namespace PepperDash.Essentials
Debug.Console(2, "Found {0} Assemblies", assemblyFiles.Length);
+ //TODO update assembly names here
foreach (var fi in assemblyFiles)
{
string version = string.Empty;
diff --git a/src/PepperDash.Essentials.Core/Presets/DevicePresets.cs b/src/PepperDash.Essentials.Core/Presets/DevicePresets.cs
index d6a9fad0..07776964 100644
--- a/src/PepperDash.Essentials.Core/Presets/DevicePresets.cs
+++ b/src/PepperDash.Essentials.Core/Presets/DevicePresets.cs
@@ -8,6 +8,7 @@ using PepperDash.Core;
//using SSMono.IO;
using PepperDash.Core.WebApi.Presets;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core.Presets
{
diff --git a/src/PepperDash.Essentials.Core/Room/EssentialsRoomBase.cs b/src/PepperDash.Essentials.Core/Room/EssentialsRoomBase.cs
index a64f172c..5c9894a2 100644
--- a/src/PepperDash.Essentials.Core/Room/EssentialsRoomBase.cs
+++ b/src/PepperDash.Essentials.Core/Room/EssentialsRoomBase.cs
@@ -12,6 +12,7 @@ using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
using Newtonsoft.Json;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Core
{
diff --git a/src/PepperDash.Essentials.Core/Room/IEssentialsRoom.cs b/src/PepperDash.Essentials.Core/Room/IEssentialsRoom.cs
index 2273690f..cbe2dada 100644
--- a/src/PepperDash.Essentials.Core/Room/IEssentialsRoom.cs
+++ b/src/PepperDash.Essentials.Core/Room/IEssentialsRoom.cs
@@ -5,6 +5,7 @@ using System.Text;
using Crestron.SimplSharp;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Core.Devices;
diff --git a/src/PepperDash.Essentials.Devices.Common/Audio/GenericAudioOut.cs b/src/PepperDash.Essentials.Devices.Common/Audio/GenericAudioOut.cs
index 70596904..1f2596e6 100644
--- a/src/PepperDash.Essentials.Devices.Common/Audio/GenericAudioOut.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Audio/GenericAudioOut.cs
@@ -7,7 +7,7 @@ using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
-
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
namespace PepperDash.Essentials.Devices.Common
diff --git a/src/PepperDash.Essentials.Devices.Common/AudioCodec/AudioCodecBase.cs b/src/PepperDash.Essentials.Devices.Common/AudioCodec/AudioCodecBase.cs
index 56998d46..ccaf1db1 100644
--- a/src/PepperDash.Essentials.Devices.Common/AudioCodec/AudioCodecBase.cs
+++ b/src/PepperDash.Essentials.Devices.Common/AudioCodec/AudioCodecBase.cs
@@ -6,6 +6,8 @@ using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Devices;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Devices.Common.Codec;
namespace PepperDash.Essentials.Devices.Common.AudioCodec
diff --git a/src/PepperDash.Essentials.Devices.Common/Cameras/CameraVisca.cs b/src/PepperDash.Essentials.Devices.Common/Cameras/CameraVisca.cs
index 6acf5850..346f6ffd 100644
--- a/src/PepperDash.Essentials.Devices.Common/Cameras/CameraVisca.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Cameras/CameraVisca.cs
@@ -8,6 +8,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Devices.Common.Codec;
using System.Text.RegularExpressions;
using Crestron.SimplSharp.Reflection;
diff --git a/src/PepperDash.Essentials.Devices.Common/Codec/iCodecAudio.cs b/src/PepperDash.Essentials.Devices.Common/Codec/iCodecAudio.cs
index d61f7d26..1a81f9f4 100644
--- a/src/PepperDash.Essentials.Devices.Common/Codec/iCodecAudio.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Codec/iCodecAudio.cs
@@ -5,6 +5,7 @@ using System.Text;
using Crestron.SimplSharp;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Devices.Common.Codec
{
diff --git a/src/PepperDash.Essentials.Devices.Common/DSP/BiampTesira/BiampTesiraForteDspLevel.cs b/src/PepperDash.Essentials.Devices.Common/DSP/BiampTesira/BiampTesiraForteDspLevel.cs
index 15d424a2..f0a373b1 100644
--- a/src/PepperDash.Essentials.Devices.Common/DSP/BiampTesira/BiampTesiraForteDspLevel.cs
+++ b/src/PepperDash.Essentials.Devices.Common/DSP/BiampTesira/BiampTesiraForteDspLevel.cs
@@ -6,6 +6,7 @@ using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using System.Text.RegularExpressions;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Devices.Common.DSP
diff --git a/src/PepperDash.Essentials.Devices.Common/DiscPlayer/IRDiscPlayerBase.cs b/src/PepperDash.Essentials.Devices.Common/DiscPlayer/IRDiscPlayerBase.cs
index 33ab25da..db8147dc 100644
--- a/src/PepperDash.Essentials.Devices.Common/DiscPlayer/IRDiscPlayerBase.cs
+++ b/src/PepperDash.Essentials.Devices.Common/DiscPlayer/IRDiscPlayerBase.cs
@@ -11,6 +11,8 @@ using Newtonsoft.Json.Linq;
using PepperDash.Core;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Devices;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.Bridges;
diff --git a/src/PepperDash.Essentials.Devices.Common/Display/AvocorVTFDisplay.cs b/src/PepperDash.Essentials.Devices.Common/Display/AvocorVTFDisplay.cs
index 20d9fbec..358fdc0c 100644
--- a/src/PepperDash.Essentials.Devices.Common/Display/AvocorVTFDisplay.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Display/AvocorVTFDisplay.cs
@@ -10,6 +10,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using Feedback = PepperDash.Essentials.Core.Feedback;
diff --git a/src/PepperDash.Essentials.Devices.Common/Display/NECPSXMDisplay.cs b/src/PepperDash.Essentials.Devices.Common/Display/NECPSXMDisplay.cs
index a674b11a..081e6e26 100644
--- a/src/PepperDash.Essentials.Devices.Common/Display/NECPSXMDisplay.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Display/NECPSXMDisplay.cs
@@ -9,6 +9,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using Feedback = PepperDash.Essentials.Core.Feedback;
diff --git a/src/PepperDash.Essentials.Devices.Common/Display/PanasonicThDisplay.cs b/src/PepperDash.Essentials.Devices.Common/Display/PanasonicThDisplay.cs
index 9acc395e..b5bedce5 100644
--- a/src/PepperDash.Essentials.Devices.Common/Display/PanasonicThDisplay.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Display/PanasonicThDisplay.cs
@@ -9,6 +9,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using Feedback = PepperDash.Essentials.Core.Feedback;
diff --git a/src/PepperDash.Essentials.Devices.Common/Display/SamsungMDCDisplay.cs b/src/PepperDash.Essentials.Devices.Common/Display/SamsungMDCDisplay.cs
index 4c73d589..236007a7 100644
--- a/src/PepperDash.Essentials.Devices.Common/Display/SamsungMDCDisplay.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Display/SamsungMDCDisplay.cs
@@ -10,6 +10,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using Feedback = PepperDash.Essentials.Core.Feedback;
diff --git a/src/PepperDash.Essentials.Devices.Common/Environment/Crestron Lighting/Din8sw8.cs b/src/PepperDash.Essentials.Devices.Common/Environment/Crestron Lighting/Din8sw8.cs
index b262ef84..f91001ca 100644
--- a/src/PepperDash.Essentials.Devices.Common/Environment/Crestron Lighting/Din8sw8.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Environment/Crestron Lighting/Din8sw8.cs
@@ -11,10 +11,11 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.CrestronIO;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Devices.Common.Environment.Lighting
{
- public class Din8sw8Controller : EssentialsDevice, ISwitchedOutputCollection
+ public class Din8sw8Controller : EssentialsDevice, IHasSwitchedOutputs
{
// Need to figure out some sort of interface to make these switched outputs behave like processor relays so they can be used interchangably
diff --git a/src/PepperDash.Essentials.Devices.Common/Environment/Somfy/RelayControlledShade.cs b/src/PepperDash.Essentials.Devices.Common/Environment/Somfy/RelayControlledShade.cs
index a78e5045..16473219 100644
--- a/src/PepperDash.Essentials.Devices.Common/Environment/Somfy/RelayControlledShade.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Environment/Somfy/RelayControlledShade.cs
@@ -8,6 +8,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.CrestronIO;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Shades;
namespace PepperDash.Essentials.Devices.Common.Environment.Somfy
@@ -87,7 +88,7 @@ namespace PepperDash.Essentials.Devices.Common.Environment.Somfy
if (portDevice != null)
{
- return (portDevice as ISwitchedOutputCollection).SwitchedOutputs[relayConfig.PortNumber];
+ return (portDevice as IHasSwitchedOutputs).SwitchedOutputs[relayConfig.PortNumber];
}
else
{
diff --git a/src/PepperDash.Essentials.Devices.Common/Generic/GenericSource.cs b/src/PepperDash.Essentials.Devices.Common/Generic/GenericSource.cs
index 697639e5..8f90f54b 100644
--- a/src/PepperDash.Essentials.Devices.Common/Generic/GenericSource.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Generic/GenericSource.cs
@@ -9,6 +9,8 @@ using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Devices;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
namespace PepperDash.Essentials.Devices.Common
diff --git a/src/PepperDash.Essentials.Devices.Common/SetTopBox/IRSetTopBoxBase.cs b/src/PepperDash.Essentials.Devices.Common/SetTopBox/IRSetTopBoxBase.cs
index e18e8e19..a6230ede 100644
--- a/src/PepperDash.Essentials.Devices.Common/SetTopBox/IRSetTopBoxBase.cs
+++ b/src/PepperDash.Essentials.Devices.Common/SetTopBox/IRSetTopBoxBase.cs
@@ -10,6 +10,8 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Devices;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Presets;
using PepperDash.Essentials.Core.Routing;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
diff --git a/src/PepperDash.Essentials.Devices.Common/SoftCodec/BlueJeansPc.cs b/src/PepperDash.Essentials.Devices.Common/SoftCodec/BlueJeansPc.cs
index 3e17f81d..a7c777d8 100644
--- a/src/PepperDash.Essentials.Devices.Common/SoftCodec/BlueJeansPc.cs
+++ b/src/PepperDash.Essentials.Devices.Common/SoftCodec/BlueJeansPc.cs
@@ -6,6 +6,7 @@ using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.Config;
diff --git a/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/CiscoCamera.cs b/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/CiscoCamera.cs
index 6f68b369..c237d061 100644
--- a/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/CiscoCamera.cs
+++ b/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/CiscoCamera.cs
@@ -5,6 +5,7 @@ using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Devices.Common.Cameras;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
diff --git a/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs b/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
index cf48ba1d..ac5562b2 100644
--- a/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
+++ b/src/PepperDash.Essentials.Devices.Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
@@ -14,6 +14,7 @@ using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using PepperDash.Essentials.Devices.Common.Cameras;
using PepperDash.Essentials.Devices.Common.Codec;
diff --git a/src/PepperDash.Essentials.Devices.Common/VideoCodec/Interfaces/IHasVideoCodec.cs b/src/PepperDash.Essentials.Devices.Common/VideoCodec/Interfaces/IHasVideoCodec.cs
index d8494334..ab270fe2 100644
--- a/src/PepperDash.Essentials.Devices.Common/VideoCodec/Interfaces/IHasVideoCodec.cs
+++ b/src/PepperDash.Essentials.Devices.Common/VideoCodec/Interfaces/IHasVideoCodec.cs
@@ -5,6 +5,7 @@ using System.Text;
using Crestron.SimplSharp;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Devices.Common.VideoCodec
{
diff --git a/src/PepperDash.Essentials.Devices.Common/VideoCodec/MockVC/MockVCCamera.cs b/src/PepperDash.Essentials.Devices.Common/VideoCodec/MockVC/MockVCCamera.cs
index 0c008849..18cbd915 100644
--- a/src/PepperDash.Essentials.Devices.Common/VideoCodec/MockVC/MockVCCamera.cs
+++ b/src/PepperDash.Essentials.Devices.Common/VideoCodec/MockVC/MockVCCamera.cs
@@ -6,6 +6,7 @@ using Crestron.SimplSharp;
using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Core;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Devices.Common.VideoCodec;
namespace PepperDash.Essentials.Devices.Common.Cameras
diff --git a/src/PepperDash.Essentials.Devices.Common/VideoCodec/VideoCodecBase.cs b/src/PepperDash.Essentials.Devices.Common/VideoCodec/VideoCodecBase.cs
index 7d63a5a6..31a482f8 100644
--- a/src/PepperDash.Essentials.Devices.Common/VideoCodec/VideoCodecBase.cs
+++ b/src/PepperDash.Essentials.Devices.Common/VideoCodec/VideoCodecBase.cs
@@ -15,6 +15,7 @@ using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Routing;
using PepperDash.Essentials.Devices.Common.Cameras;
using PepperDash.Essentials.Devices.Common.Codec;
diff --git a/src/PepperDash.Essentials.Devices.Common/VideoCodec/ZoomRoom/ZoomRoomCamera.cs b/src/PepperDash.Essentials.Devices.Common/VideoCodec/ZoomRoom/ZoomRoomCamera.cs
index b0fc52fe..9014fc15 100644
--- a/src/PepperDash.Essentials.Devices.Common/VideoCodec/ZoomRoom/ZoomRoomCamera.cs
+++ b/src/PepperDash.Essentials.Devices.Common/VideoCodec/ZoomRoom/ZoomRoomCamera.cs
@@ -5,6 +5,7 @@ using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Devices.Common.Cameras;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
diff --git a/src/PepperDash.Essentials.Devices.DM/Chassis/DmCardAudioOutput.cs b/src/PepperDash.Essentials.Devices.DM/Chassis/DmCardAudioOutput.cs
index 4b4a927e..99bc1b88 100644
--- a/src/PepperDash.Essentials.Devices.DM/Chassis/DmCardAudioOutput.cs
+++ b/src/PepperDash.Essentials.Devices.DM/Chassis/DmCardAudioOutput.cs
@@ -7,6 +7,7 @@ using Crestron.SimplSharpPro.DM;
using PepperDash.Core;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.DM
{
diff --git a/src/PepperDash.Essentials.Devices.DM/Chassis/DmpsAudioOutputController.cs b/src/PepperDash.Essentials.Devices.DM/Chassis/DmpsAudioOutputController.cs
index 751c1a5a..9fc893b7 100644
--- a/src/PepperDash.Essentials.Devices.DM/Chassis/DmpsAudioOutputController.cs
+++ b/src/PepperDash.Essentials.Devices.DM/Chassis/DmpsAudioOutputController.cs
@@ -11,6 +11,7 @@ using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.DM.Config;
diff --git a/src/PepperDash.Essentials.Devices.DM/Chassis/DmpsMicrophoneController.cs b/src/PepperDash.Essentials.Devices.DM/Chassis/DmpsMicrophoneController.cs
index 30b2cfab..5cc647b1 100644
--- a/src/PepperDash.Essentials.Devices.DM/Chassis/DmpsMicrophoneController.cs
+++ b/src/PepperDash.Essentials.Devices.DM/Chassis/DmpsMicrophoneController.cs
@@ -8,6 +8,7 @@ using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.DM
diff --git a/src/PepperDash.Essentials.Devices.DM/Endpoints/DGEs/Dge100Controller.cs b/src/PepperDash.Essentials.Devices.DM/Endpoints/DGEs/Dge100Controller.cs
index f8c2a021..830ff54b 100644
--- a/src/PepperDash.Essentials.Devices.DM/Endpoints/DGEs/Dge100Controller.cs
+++ b/src/PepperDash.Essentials.Devices.DM/Endpoints/DGEs/Dge100Controller.cs
@@ -17,6 +17,7 @@ using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Essentials.Core.DeviceInfo;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.DM.Endpoints.DGEs
{
diff --git a/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmc4KScalerCController.cs b/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmc4KScalerCController.cs
index 8d4abadd..12572c27 100644
--- a/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmc4KScalerCController.cs
+++ b/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmc4KScalerCController.cs
@@ -6,6 +6,7 @@ using Crestron.SimplSharpPro.DM.Endpoints.Receivers;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.DM
{
diff --git a/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmc4kScalerCDspController.cs b/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmc4kScalerCDspController.cs
index 5c6db1aa..219795a3 100644
--- a/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmc4kScalerCDspController.cs
+++ b/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmc4kScalerCDspController.cs
@@ -6,6 +6,7 @@ using Crestron.SimplSharpPro.DM.Endpoints.Receivers;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.DM
{
diff --git a/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmcHelper.cs b/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmcHelper.cs
index a9282693..c13b981e 100644
--- a/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmcHelper.cs
+++ b/src/PepperDash.Essentials.Devices.DM/Endpoints/Receivers/DmRmcHelper.cs
@@ -9,6 +9,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.DeviceInfo;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.DM.Config;
using PepperDash.Essentials.Core.Config;
diff --git a/src/PepperDash.Essentials/Audio/EssentialsVolumeLevelConfig.cs b/src/PepperDash.Essentials/Audio/EssentialsVolumeLevelConfig.cs
index 12108564..e1238e1d 100644
--- a/src/PepperDash.Essentials/Audio/EssentialsVolumeLevelConfig.cs
+++ b/src/PepperDash.Essentials/Audio/EssentialsVolumeLevelConfig.cs
@@ -9,6 +9,7 @@ using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Devices.Common.DSP;
using PepperDash.Essentials.DM;
diff --git a/src/PepperDash.Essentials/Bridges/EiscBridge.cs b/src/PepperDash.Essentials/Bridges/EiscBridge.cs
index 21a220ef..20e09688 100644
--- a/src/PepperDash.Essentials/Bridges/EiscBridge.cs
+++ b/src/PepperDash.Essentials/Bridges/EiscBridge.cs
@@ -7,6 +7,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Bridges
{
diff --git a/src/PepperDash.Essentials/Fusion/EssentialsHuddleVtc1FusionController.cs b/src/PepperDash.Essentials/Fusion/EssentialsHuddleVtc1FusionController.cs
index 5ee5a893..199d3b69 100644
--- a/src/PepperDash.Essentials/Fusion/EssentialsHuddleVtc1FusionController.cs
+++ b/src/PepperDash.Essentials/Fusion/EssentialsHuddleVtc1FusionController.cs
@@ -8,7 +8,9 @@ using Crestron.SimplSharpPro.Fusion;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.Fusion;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Fusion
{
diff --git a/src/PepperDash.Essentials/Fusion/EssentialsTechRoomFusionSystemController.cs b/src/PepperDash.Essentials/Fusion/EssentialsTechRoomFusionSystemController.cs
index 0630c53a..2a6c6a26 100644
--- a/src/PepperDash.Essentials/Fusion/EssentialsTechRoomFusionSystemController.cs
+++ b/src/PepperDash.Essentials/Fusion/EssentialsTechRoomFusionSystemController.cs
@@ -7,7 +7,9 @@ using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.Fusion;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Fusion
{
diff --git a/src/PepperDash.Essentials/Room/Config/EssentialsRoomConfig.cs b/src/PepperDash.Essentials/Room/Config/EssentialsRoomConfig.cs
index 6e6e07ed..4c24557a 100644
--- a/src/PepperDash.Essentials/Room/Config/EssentialsRoomConfig.cs
+++ b/src/PepperDash.Essentials/Room/Config/EssentialsRoomConfig.cs
@@ -10,6 +10,7 @@ using PepperDash.Core;
using PepperDash.Essentials;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
namespace PepperDash.Essentials.Room.Config
{
diff --git a/src/PepperDash.Essentials/Room/Types/EssentialsCombinedHuddleVtc1Room.cs b/src/PepperDash.Essentials/Room/Types/EssentialsCombinedHuddleVtc1Room.cs
index 9dec21f2..be879519 100644
--- a/src/PepperDash.Essentials/Room/Types/EssentialsCombinedHuddleVtc1Room.cs
+++ b/src/PepperDash.Essentials/Room/Types/EssentialsCombinedHuddleVtc1Room.cs
@@ -9,6 +9,7 @@ using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec;
diff --git a/src/PepperDash.Essentials/Room/Types/EssentialsDualDisplayRoom.cs b/src/PepperDash.Essentials/Room/Types/EssentialsDualDisplayRoom.cs
index d3812feb..5cf76358 100644
--- a/src/PepperDash.Essentials/Room/Types/EssentialsDualDisplayRoom.cs
+++ b/src/PepperDash.Essentials/Room/Types/EssentialsDualDisplayRoom.cs
@@ -10,6 +10,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec;
diff --git a/src/PepperDash.Essentials/Room/Types/EssentialsHuddleSpaceRoom.cs b/src/PepperDash.Essentials/Room/Types/EssentialsHuddleSpaceRoom.cs
index 4ed3da6b..18822a07 100644
--- a/src/PepperDash.Essentials/Room/Types/EssentialsHuddleSpaceRoom.cs
+++ b/src/PepperDash.Essentials/Room/Types/EssentialsHuddleSpaceRoom.cs
@@ -9,6 +9,7 @@ using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Room.Config;
namespace PepperDash.Essentials
diff --git a/src/PepperDash.Essentials/Room/Types/EssentialsHuddleVtc1Room.cs b/src/PepperDash.Essentials/Room/Types/EssentialsHuddleVtc1Room.cs
index 20134a2e..c28d99cc 100644
--- a/src/PepperDash.Essentials/Room/Types/EssentialsHuddleVtc1Room.cs
+++ b/src/PepperDash.Essentials/Room/Types/EssentialsHuddleVtc1Room.cs
@@ -9,6 +9,7 @@ using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec;
diff --git a/src/PepperDash.Essentials/Room/Types/EssentialsTechRoom.cs b/src/PepperDash.Essentials/Room/Types/EssentialsTechRoom.cs
index c2b08f89..701f5447 100644
--- a/src/PepperDash.Essentials/Room/Types/EssentialsTechRoom.cs
+++ b/src/PepperDash.Essentials/Room/Types/EssentialsTechRoom.cs
@@ -11,6 +11,7 @@ using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.Presets;
using PepperDash.Essentials.Devices.Common;
using PepperDash.Essentials.Room.Config;
diff --git a/src/PepperDash.Essentials/Room/Types/Interfaces/IEssentialsHuddleSpaceRoom.cs b/src/PepperDash.Essentials/Room/Types/Interfaces/IEssentialsHuddleSpaceRoom.cs
index c7f68e8b..938de0b1 100644
--- a/src/PepperDash.Essentials/Room/Types/Interfaces/IEssentialsHuddleSpaceRoom.cs
+++ b/src/PepperDash.Essentials/Room/Types/Interfaces/IEssentialsHuddleSpaceRoom.cs
@@ -1,6 +1,7 @@
using System;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Room.Config;
diff --git a/src/PepperDash.Essentials/Room/Types/Interfaces/IEssentialsHuddleVtc1Room.cs b/src/PepperDash.Essentials/Room/Types/Interfaces/IEssentialsHuddleVtc1Room.cs
index 4b13145c..29dbb4c1 100644
--- a/src/PepperDash.Essentials/Room/Types/Interfaces/IEssentialsHuddleVtc1Room.cs
+++ b/src/PepperDash.Essentials/Room/Types/Interfaces/IEssentialsHuddleVtc1Room.cs
@@ -1,5 +1,6 @@
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec;
diff --git a/src/PepperDash.Essentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs b/src/PepperDash.Essentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs
index e58172de..0ee95baf 100644
--- a/src/PepperDash.Essentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs
+++ b/src/PepperDash.Essentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs
@@ -7,6 +7,7 @@ using Crestron.SimplSharpPro.UI;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.SmartObjects;
using PepperDash.Essentials.Core.PageManagers;
diff --git a/src/PepperDash.Essentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs b/src/PepperDash.Essentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
index 3f557da1..fd94e7fc 100644
--- a/src/PepperDash.Essentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
+++ b/src/PepperDash.Essentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
@@ -10,6 +10,7 @@ using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.SmartObjects;
using PepperDash.Essentials.Core.PageManagers;
using PepperDash.Essentials.Room.Config;
diff --git a/src/PepperDash.Essentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/src/PepperDash.Essentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
index 40671238..af09c403 100644
--- a/src/PepperDash.Essentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
+++ b/src/PepperDash.Essentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
@@ -11,6 +11,7 @@ using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Core;
using PepperDash.Essentials;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.Interfaces;
using PepperDash.Essentials.Core.SmartObjects;
using PepperDash.Essentials.Core.Touchpanels.Keyboards;
using PepperDash.Essentials.Devices.Common.Codec;