diff --git a/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs b/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
index 48ee7285..d6b58e5b 100644
--- a/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
+++ b/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
@@ -13,7 +13,7 @@ using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec;
using PepperDash.Essentials.Devices.Common.AudioCodec;
-using PepperDash_Essentials_Core.DeviceTypeInterfaces;
+using PepperDash.Essentials.Core.DeviceTypeInterfaces;
namespace PepperDash.Essentials
{
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/GlsPartitionSensorJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/GlsPartitionSensorJoinMap.cs
index 74402689..08f8400e 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/GlsPartitionSensorJoinMap.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/GlsPartitionSensorJoinMap.cs
@@ -1,8 +1,148 @@
using System;
using PepperDash.Essentials.Core;
+namespace PepperDash.Essentials.Core.Bridges.JoinMaps
+{
+ public class GlsPartitionSensorJoinMap : JoinMapBaseAdvanced
+ {
+ [JoinName("IsOnline")]
+ public JoinDataComplete IsOnline = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 1,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sensor Is Online",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("Name")]
+ public JoinDataComplete Name = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 1,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sensor Name",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("Enable")]
+ public JoinDataComplete Enable = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 2,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sensor Enable",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("PartitionSensed")]
+ public JoinDataComplete PartitionSensed = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 3,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sensor Partition Sensed",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("PartitionNotSensed")]
+ public JoinDataComplete PartitionNotSensed = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 4,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sensor Partition Not Sensed",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("IncreaseSensitivity")]
+ public JoinDataComplete IncreaseSensitivity = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 6,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sensor Increase Sensitivity",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DecreaseSensitivity")]
+ public JoinDataComplete DecreaseSensitivity = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 7,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sensor Decrease Sensitivity",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("Sensitivity")]
+ public JoinDataComplete Sensitivity = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 2,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sensor Sensitivity",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ ///
+ /// Constructor to use when instantiating this Join Map without inheriting from it
+ ///
+ /// Join this join map will start at
+ public GlsPartitionSensorJoinMap(uint joinStart)
+ : this(joinStart, typeof(GlsPartitionSensorJoinMap))
+ {
+
+ }
+
+ ///
+ /// Constructor to use when extending this Join map
+ ///
+ /// Join this join map will start at
+ /// Type of the child join map
+ protected GlsPartitionSensorJoinMap(uint joinStart, Type type)
+ : base(joinStart, type)
+ {
+
+ }
+ }
+}
+
namespace PepperDash_Essentials_Core.Bridges.JoinMaps
{
+ [Obsolete("use PepperDash.Essentials.Core.Bridges.JoinMaps version")]
public class GlsPartitionSensorJoinMap : JoinMapBaseAdvanced
{
[JoinName("IsOnline")]
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/VideoCodecControllerJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/VideoCodecControllerJoinMap.cs
index 8054a077..cce0f7d5 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/VideoCodecControllerJoinMap.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/VideoCodecControllerJoinMap.cs
@@ -1,8 +1,900 @@
using System;
using PepperDash.Essentials.Core;
+namespace PepperDash.Essentials.Core.Bridges.JoinMaps
+{
+ public class VideoCodecControllerJoinMap : JoinMapBaseAdvanced
+ {
+ #region Status
+
+ [JoinName("IsOnline")]
+ public JoinDataComplete IsOnline =
+ new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Device is Online",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ #endregion
+
+ [JoinName("CallDirection")]
+ public JoinDataComplete CallDirection =
+ new JoinDataComplete(new JoinData { JoinNumber = 22, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Current Call Direction",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("CameraLayout")]
+ public JoinDataComplete CameraLayout =
+ new JoinDataComplete(new JoinData { JoinNumber = 142, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Layout Toggle",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraLayoutStringFb")]
+ public JoinDataComplete CameraLayoutStringFb =
+ new JoinDataComplete(new JoinData { JoinNumber = 141, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Current Layout Fb",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("CameraModeAuto")]
+ public JoinDataComplete CameraModeAuto =
+ new JoinDataComplete(new JoinData { JoinNumber = 131, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Mode Auto",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraModeManual")]
+ public JoinDataComplete CameraModeManual =
+ new JoinDataComplete(new JoinData { JoinNumber = 132, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Mode Manual",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraModeOff")]
+ public JoinDataComplete CameraModeOff =
+ new JoinDataComplete(new JoinData { JoinNumber = 133, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Mode Off",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraNumberSelect")]
+ public JoinDataComplete CameraNumberSelect =
+ new JoinDataComplete(new JoinData { JoinNumber = 60, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Number Select/FB",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("CameraPanLeft")]
+ public JoinDataComplete CameraPanLeft =
+ new JoinDataComplete(new JoinData { JoinNumber = 113, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Pan Left",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraPanRight")]
+ public JoinDataComplete CameraPanRight =
+ new JoinDataComplete(new JoinData { JoinNumber = 114, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Pan Right",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraPresetNames")]
+ public JoinDataComplete CameraPresetNames =
+ new JoinDataComplete(new JoinData { JoinNumber = 121, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Preset Names - XSIG, max of 15",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("CameraPresetSelect")]
+ public JoinDataComplete CameraPresetSelect =
+ new JoinDataComplete(new JoinData { JoinNumber = 121, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Preset Select",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("CameraPresetSave")]
+ public JoinDataComplete CameraPresetSave =
+ new JoinDataComplete(new JoinData { JoinNumber = 121, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Save Selected Preset",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraSelfView")]
+ public JoinDataComplete CameraSelfView =
+ new JoinDataComplete(new JoinData { JoinNumber = 141, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Self View Toggle/FB",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraSupportsAutoMode")]
+ public JoinDataComplete CameraSupportsAutoMode =
+ new JoinDataComplete(new JoinData { JoinNumber = 143, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Supports Auto Mode FB",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraSupportsOffMode")]
+ public JoinDataComplete CameraSupportsOffMode =
+ new JoinDataComplete(new JoinData { JoinNumber = 144, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Supports Off Mode FB",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraTiltDown")]
+ public JoinDataComplete CameraTiltDown =
+ new JoinDataComplete(new JoinData { JoinNumber = 112, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Tilt Down",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraTiltUp")]
+ public JoinDataComplete CameraTiltUp =
+ new JoinDataComplete(new JoinData { JoinNumber = 111, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Tilt Up",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraZoomIn")]
+ public JoinDataComplete CameraZoomIn =
+ new JoinDataComplete(new JoinData { JoinNumber = 115, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Zoom In",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CameraZoomOut")]
+ public JoinDataComplete CameraZoomOut =
+ new JoinDataComplete(new JoinData { JoinNumber = 116, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Camera Zoom Out",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("CurrentCallName")]
+ public JoinDataComplete CurrentCallData =
+ new JoinDataComplete(new JoinData { JoinNumber = 2, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Current Call Data - XSIG",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("CurrentDialString")]
+ public JoinDataComplete CurrentDialString =
+ new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Current Dial String",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("CurrentParticipants")]
+ public JoinDataComplete CurrentParticipants =
+ new JoinDataComplete(new JoinData { JoinNumber = 151, JoinSpan = 1 },
+ new JoinMetadata()
+ {
+ Description = "Current Participants XSig",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("CurrentSource")]
+ public JoinDataComplete CurrentSource =
+ new JoinDataComplete(new JoinData { JoinNumber = 201, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Current Source",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("DialMeeting1")]
+ public JoinDataComplete DialMeeting1 =
+ new JoinDataComplete(new JoinData { JoinNumber = 161, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Join first meeting",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DialMeeting2")]
+ public JoinDataComplete DialMeeting2 =
+ new JoinDataComplete(new JoinData { JoinNumber = 162, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Join second meeting",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DialMeeting3")]
+ public JoinDataComplete DialMeeting3 =
+ new JoinDataComplete(new JoinData { JoinNumber = 163, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Join third meeting",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectoryDialSelectedLine")]
+ public JoinDataComplete DirectoryDialSelectedLine =
+ new JoinDataComplete(new JoinData { JoinNumber = 106, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Dial selected directory line",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectoryEntries")]
+ public JoinDataComplete DirectoryEntries =
+ new JoinDataComplete(new JoinData { JoinNumber = 101, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory Entries - XSig, 255 entries",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("DirectoryEntryIsContact")]
+ public JoinDataComplete DirectoryEntryIsContact =
+ new JoinDataComplete(new JoinData { JoinNumber = 101, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory Selected Entry Is Contact FB",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectoryEntrySelectedName")]
+ public JoinDataComplete DirectoryEntrySelectedName =
+ new JoinDataComplete(new JoinData { JoinNumber = 356, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Selected Directory Entry Name",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("DirectoryEntrySelectedNumber")]
+ public JoinDataComplete DirectoryEntrySelectedNumber =
+ new JoinDataComplete(new JoinData { JoinNumber = 357, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Selected Directory Entry Number",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("DirectoryFolderBack")]
+ public JoinDataComplete DirectoryFolderBack =
+ new JoinDataComplete(new JoinData { JoinNumber = 105, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Go back one directory level",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectoryHasChanged")]
+ public JoinDataComplete DirectoryHasChanged =
+ new JoinDataComplete(new JoinData { JoinNumber = 103, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory has changed FB",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectoryIsRoot")]
+ public JoinDataComplete DirectoryIsRoot =
+ new JoinDataComplete(new JoinData { JoinNumber = 102, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory is on Root FB",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectoryLineSelected")]
+ public JoinDataComplete DirectoryLineSelected =
+ new JoinDataComplete(new JoinData { JoinNumber = 101, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory Line Selected FB",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectoryRoot")]
+ public JoinDataComplete DirectoryRoot =
+ new JoinDataComplete(new JoinData { JoinNumber = 104, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Go to Directory Root",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectoryRowCount")]
+ public JoinDataComplete DirectoryRowCount =
+ new JoinDataComplete(new JoinData { JoinNumber = 101, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory Row Count FB",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("DirectorySearchBusy")]
+ public JoinDataComplete DirectorySearchBusy =
+ new JoinDataComplete(new JoinData { JoinNumber = 100, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory Search Busy FB",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DirectorySearchString")]
+ public JoinDataComplete DirectorySearchString =
+ new JoinDataComplete(new JoinData { JoinNumber = 100, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory Search String",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("DirectorySelectRow")]
+ public JoinDataComplete DirectorySelectRow =
+ new JoinDataComplete(new JoinData { JoinNumber = 101, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Directory Select Row",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("DirectorySelectedFolderName")]
+ public JoinDataComplete DirectorySelectedFolderName =
+ new JoinDataComplete(new JoinData { JoinNumber = 358, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Selected Directory Folder Name",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("0")]
+ public JoinDataComplete Dtmf0 =
+ new JoinDataComplete(new JoinData { JoinNumber = 20, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 0",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("1")]
+ public JoinDataComplete Dtmf1 =
+ new JoinDataComplete(new JoinData { JoinNumber = 11, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 1",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("2")]
+ public JoinDataComplete Dtmf2 =
+ new JoinDataComplete(new JoinData { JoinNumber = 12, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 2",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("3")]
+ public JoinDataComplete Dtmf3 =
+ new JoinDataComplete(new JoinData { JoinNumber = 13, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 3",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("4")]
+ public JoinDataComplete Dtmf4 =
+ new JoinDataComplete(new JoinData { JoinNumber = 14, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 4",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("5")]
+ public JoinDataComplete Dtmf5 =
+ new JoinDataComplete(new JoinData { JoinNumber = 15, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 5",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("6")]
+ public JoinDataComplete Dtmf6 =
+ new JoinDataComplete(new JoinData { JoinNumber = 16, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 6",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("7")]
+ public JoinDataComplete Dtmf7 =
+ new JoinDataComplete(new JoinData { JoinNumber = 17, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 7",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("8")]
+ public JoinDataComplete Dtmf8 =
+ new JoinDataComplete(new JoinData { JoinNumber = 18, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 8",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("9")]
+ public JoinDataComplete Dtmf9 =
+ new JoinDataComplete(new JoinData { JoinNumber = 19, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF 9",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("#")]
+ public JoinDataComplete DtmfPound =
+ new JoinDataComplete(new JoinData { JoinNumber = 22, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF #",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("*")]
+ public JoinDataComplete DtmfStar =
+ new JoinDataComplete(new JoinData { JoinNumber = 21, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "DTMF *",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("EndCall")]
+ public JoinDataComplete EndCall =
+ new JoinDataComplete(new JoinData { JoinNumber = 24, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Hang Up",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("HookState")]
+ public JoinDataComplete HookState =
+ new JoinDataComplete(new JoinData { JoinNumber = 31, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Current Hook State",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("IncomingAnswer")]
+ public JoinDataComplete IncomingAnswer =
+ new JoinDataComplete(new JoinData { JoinNumber = 51, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Answer Incoming Call",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("IncomingCall")]
+ public JoinDataComplete IncomingCall =
+ new JoinDataComplete(new JoinData { JoinNumber = 50, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Incoming Call",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("IncomingCallName")]
+ public JoinDataComplete IncomingCallName =
+ new JoinDataComplete(new JoinData { JoinNumber = 51, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Incoming Call Name",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("IncomingCallNumber")]
+ public JoinDataComplete IncomingCallNumber =
+ new JoinDataComplete(new JoinData { JoinNumber = 52, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Incoming Call Number",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("IncomingReject")]
+ public JoinDataComplete IncomingReject =
+ new JoinDataComplete(new JoinData { JoinNumber = 52, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Reject Incoming Call",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+
+ [JoinName("ManualDial")]
+ public JoinDataComplete ManualDial =
+ new JoinDataComplete(new JoinData { JoinNumber = 71, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Dial manual string",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("Meeting Count Fb")]
+ public JoinDataComplete MeetingCount =
+ new JoinDataComplete(new JoinData { JoinNumber = 161, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Meeting Count",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("MicMuteOff")]
+ public JoinDataComplete MicMuteOff =
+ new JoinDataComplete(new JoinData { JoinNumber = 172, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Mic Mute Off",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("MicMuteOn")]
+ public JoinDataComplete MicMuteOn =
+ new JoinDataComplete(new JoinData { JoinNumber = 171, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Mic Mute On",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("MicMuteToggle")]
+ public JoinDataComplete MicMuteToggle =
+ new JoinDataComplete(new JoinData { JoinNumber = 173, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Mic Mute Toggle",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("MinutesBeforeMeetingStart")]
+ public JoinDataComplete MinutesBeforeMeetingStart =
+ new JoinDataComplete(new JoinData { JoinNumber = 41, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Minutes before meeting start that a meeting is joinable",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("ParticipantCount")]
+ public JoinDataComplete ParticipantCount =
+ new JoinDataComplete(new JoinData { JoinNumber = 151, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Current Participant Count",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("Schedule")]
+ public JoinDataComplete Schedule =
+ new JoinDataComplete(new JoinData { JoinNumber = 102, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Schedule Data - XSIG",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("AutoShareWhileInCall")]
+ public JoinDataComplete SourceShareAutoStart =
+ new JoinDataComplete(new JoinData { JoinNumber = 203, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "When high, will autostart sharing when a call is joined",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("SourceShareEnd")]
+ public JoinDataComplete SourceShareEnd =
+ new JoinDataComplete(new JoinData { JoinNumber = 202, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Stop Sharing & Feedback",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("SourceShareStart")]
+ public JoinDataComplete SourceShareStart =
+ new JoinDataComplete(new JoinData { JoinNumber = 201, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Start Sharing & Feedback",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("RecievingContent")]
+ public JoinDataComplete RecievingContent =
+ new JoinDataComplete(new JoinData { JoinNumber = 204, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Recieving content from the far end",
+ JoinType = eJoinType.Digital,
+ JoinCapabilities = eJoinCapabilities.ToSIMPL
+ });
+
+ [JoinName("SelfviewPosition")]
+ public JoinDataComplete SelfviewPosition =
+ new JoinDataComplete(new JoinData { JoinNumber = 211, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "advance selfview position",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("SelfviewPositionFb")]
+ public JoinDataComplete SelfviewPositionFb =
+ new JoinDataComplete(new JoinData { JoinNumber = 211, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "advance selfview position",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ [JoinName("SpeedDialStart")]
+ public JoinDataComplete SpeedDialStart =
+ new JoinDataComplete(new JoinData { JoinNumber = 41, JoinSpan = 4 },
+ new JoinMetadata
+ {
+ Description = "Speed Dial",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("UpdateMeetings")]
+ public JoinDataComplete UpdateMeetings =
+ new JoinDataComplete(new JoinData { JoinNumber = 160, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Update Meetings",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("VolumeDown")]
+ public JoinDataComplete VolumeDown =
+ new JoinDataComplete(new JoinData { JoinNumber = 175, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Volume Down",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("VolumeLevel")]
+ public JoinDataComplete VolumeLevel =
+ new JoinDataComplete(new JoinData { JoinNumber = 174, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Volume Level",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Analog
+ });
+
+ [JoinName("VolumeMuteOff")]
+ public JoinDataComplete VolumeMuteOff =
+ new JoinDataComplete(new JoinData { JoinNumber = 177, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Volume Mute Off",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("VolumeMuteOn")]
+ public JoinDataComplete VolumeMuteOn =
+ new JoinDataComplete(new JoinData { JoinNumber = 176, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Volume Mute On",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("VolumeMuteToggle")]
+ public JoinDataComplete VolumeMuteToggle =
+ new JoinDataComplete(new JoinData { JoinNumber = 178, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Volume Mute Toggle",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("VolumeUp")]
+ public JoinDataComplete VolumeUp =
+ new JoinDataComplete(new JoinData { JoinNumber = 174, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Volume Up",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("DialPhoneCall")]
+ public JoinDataComplete DialPhone =
+ new JoinDataComplete(new JoinData { JoinNumber = 72, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Dial Phone",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("PhoneHookState")]
+ public JoinDataComplete PhoneHookState =
+ new JoinDataComplete(new JoinData { JoinNumber = 72, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Dial Phone",
+ JoinCapabilities = eJoinCapabilities.ToSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("EndPhoneCall")]
+ public JoinDataComplete HangUpPhone =
+ new JoinDataComplete(new JoinData { JoinNumber = 73, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Hang Up PHone",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ [JoinName("PhoneString")]
+ public JoinDataComplete PhoneDialString =
+ new JoinDataComplete(new JoinData { JoinNumber = 2, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = "Phone Dial String",
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Serial
+ });
+
+ public VideoCodecControllerJoinMap(uint joinStart)
+ : base(joinStart, typeof(VideoCodecControllerJoinMap))
+ {
+ }
+
+ public VideoCodecControllerJoinMap(uint joinStart, Type type)
+ : base(joinStart, type)
+ {
+ }
+ }
+}
+
namespace PepperDash_Essentials_Core.Bridges.JoinMaps
{
+ [Obsolete("Use PepperDash.Essentials.Core.Bridges.JoinMaps")]
public class VideoCodecControllerJoinMap : JoinMapBaseAdvanced
{
#region Status
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasBranding.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasBranding.cs
index d5c95c47..63f4917a 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasBranding.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasBranding.cs
@@ -1,8 +1,20 @@
-namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
+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/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasPhoneDialing.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasPhoneDialing.cs
index 2b7af8ad..7f75adec 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasPhoneDialing.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IHasPhoneDialing.cs
@@ -1,6 +1,7 @@
-using PepperDash.Essentials.Core;
+using System;
+using PepperDash.Essentials.Core;
-namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
+namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
{
public interface IHasPhoneDialing
{
@@ -11,4 +12,18 @@ namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
void EndPhoneCall();
void SendDtmfToPhone(string digit);
}
+}
+
+namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
+{
+ [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")]
+ public interface IHasPhoneDialing
+ {
+ BoolFeedback PhoneOffHookFeedback { get; }
+ StringFeedback CallerIdNameFeedback { get; }
+ StringFeedback CallerIdNumberFeedback { get; }
+ void DialPhoneCall(string number);
+ void EndPhoneCall();
+ void SendDtmfToPhone(string digit);
+ }
}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageDefinition.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageDefinition.cs
index f124240d..abf138a4 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageDefinition.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageDefinition.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
-namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
+namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
{
public interface ILanguageDefinition
{
@@ -15,4 +15,21 @@ namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
List DestinationGroupNames { get; set; }
List RoomNames { get; set; }
}
+}
+
+namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
+{
+ [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")]
+ public interface ILanguageDefinition
+ {
+ string LocaleName { get; set; }
+ string FriendlyName { get; set; }
+ bool Enable { get; set; }
+ List UiLabels { get; set; }
+ List Sources { get; set; }
+ List Destinations { get; set; }
+ List SourceGroupNames { get; set; }
+ List DestinationGroupNames { get; set; }
+ List RoomNames { get; set; }
+ }
}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageProvider.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageProvider.cs
index 2ae483f6..dd48723d 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageProvider.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/ILanguageProvider.cs
@@ -1,9 +1,21 @@
using System;
-using System.Collections.Generic;
+
+namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
+{
+
+ public interface ILanguageProvider
+ {
+ ILanguageDefinition CurrentLanguage { get; set; }
+
+ event EventHandler CurrentLanguageChanged;
+ }
+
+}
namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
{
- public interface ILanguageProvider
+ [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")]
+ public interface ILanguageProvider
{
ILanguageDefinition CurrentLanguage { get; set; }
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/LanguageLabel.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/LanguageLabel.cs
index 345da2ed..c7d26722 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/LanguageLabel.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/LanguageLabel.cs
@@ -1,6 +1,7 @@
-using PepperDash.Core;
+using System;
+using PepperDash.Core;
-namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
+namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
{
public class LanguageLabel
{
@@ -9,4 +10,16 @@ namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
public string DisplayText { get; set; }
public uint JoinNumber { get; set; }
}
+}
+
+namespace PepperDash_Essentials_Core.DeviceTypeInterfaces
+{
+ [Obsolete("Use PepperDash.Essentials.Core.DeviceTypeInterfaces")]
+ public class LanguageLabel
+ {
+ public string Key { get; set; }
+ public string Description { get; set; }
+ public string DisplayText { get; set; }
+ public uint JoinNumber { get; set; }
+ }
}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/GenericIRController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/GenericIRController.cs
index bf4544de..b0a40a47 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/GenericIRController.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/GenericIRController.cs
@@ -7,7 +7,7 @@ using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges;
using PepperDash.Essentials.Core.Config;
-namespace PepperDash_Essentials_Core.Devices
+namespace PepperDash.Essentials.Core.Devices
{
public class GenericIrController: EssentialsBridgeableDevice
{
@@ -133,6 +133,139 @@ namespace PepperDash_Essentials_Core.Devices
return new GenericIrController(dc.Key, dc.Name, irPort);
}
+ #endregion
+ }
+}
+
+namespace PepperDash_Essentials_Core.Devices
+{
+ [Obsolete("Use PepperDash.Essentials.Core.Devices")]
+ public class GenericIrController : EssentialsBridgeableDevice
+ {
+ //data storage for bridging
+ private BasicTriList _trilist;
+ private uint _joinStart;
+ private string _joinMapKey;
+ private EiscApiAdvanced _bridge;
+
+ private readonly IrOutputPortController _port;
+
+ public string[] IrCommands { get { return _port.IrFileCommands; } }
+
+ public GenericIrController(string key, string name, IrOutputPortController irPort)
+ : base(key, name)
+ {
+ _port = irPort;
+
+ if (_port == null)
+ {
+ Debug.Console(0, this, Debug.ErrorLogLevel.Error, "IR Port is null, device will not function");
+ return;
+ }
+ DeviceManager.AddDevice(_port);
+
+ _port.DriverLoaded.OutputChange += DriverLoadedOnOutputChange;
+ }
+
+ private void DriverLoadedOnOutputChange(object sender, FeedbackEventArgs args)
+ {
+ if (!args.BoolValue)
+ {
+ return;
+ }
+
+ if (_trilist == null || _bridge == null)
+ {
+ return;
+ }
+
+ LinkToApi(_trilist, _joinStart, _joinMapKey, _bridge);
+ }
+
+ #region Overrides of EssentialsBridgeableDevice
+
+ public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
+ {
+ //if driver isn't loaded yet, store the variables until it is loaded, then call the LinkToApi method again
+ if (!_port.DriverIsLoaded)
+ {
+ _trilist = trilist;
+ _joinStart = joinStart;
+ _joinMapKey = joinMapKey;
+ _bridge = bridge;
+ return;
+ }
+
+ var joinMap = new GenericIrControllerJoinMap(joinStart);
+
+ var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey);
+
+ if (!string.IsNullOrEmpty(joinMapSerialized))
+ joinMap = JsonConvert.DeserializeObject(joinMapSerialized);
+
+ for (uint i = 0; i < _port.IrFileCommands.Length; i++)
+ {
+ var cmd = _port.IrFileCommands[i];
+ var joinData = new JoinDataComplete(new JoinData { JoinNumber = i, JoinSpan = 1 },
+ new JoinMetadata
+ {
+ Description = cmd,
+ JoinCapabilities = eJoinCapabilities.FromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ joinData.SetJoinOffset(joinStart);
+
+ joinMap.Joins.Add(cmd, joinData);
+
+ trilist.SetBoolSigAction(joinData.JoinNumber, (b) => Press(cmd, b));
+ }
+
+ joinMap.PrintJoinMapInfo();
+
+ if (bridge != null)
+ {
+ bridge.AddJoinMap(Key, joinMap);
+ }
+ else
+ {
+ Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device.");
+ }
+ }
+
+ #endregion
+
+ public void Press(string command, bool pressRelease)
+ {
+ _port.PressRelease(command, pressRelease);
+ }
+ }
+
+ public sealed class GenericIrControllerJoinMap : JoinMapBaseAdvanced
+ {
+ public GenericIrControllerJoinMap(uint joinStart)
+ : base(joinStart)
+ {
+ }
+ }
+
+ public class GenericIrControllerFactory : EssentialsDeviceFactory
+ {
+ public GenericIrControllerFactory()
+ {
+ TypeNames = new List { "genericIrController" };
+ }
+ #region Overrides of EssentialsDeviceFactory
+
+ public override EssentialsDevice BuildDevice(DeviceConfig dc)
+ {
+ Debug.Console(1, "Factory Attempting to create new Generic IR Controller Device");
+
+ var irPort = IRPortHelper.GetIrOutputPortController(dc);
+
+ return new GenericIrController(dc.Key, dc.Name, irPort);
+ }
+
#endregion
}
}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/ReadyEventArgs.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/ReadyEventArgs.cs
index 89c0b7b3..de7bc3a5 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/ReadyEventArgs.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/ReadyEventArgs.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using Crestron.SimplSharp;
-namespace PepperDash_Essentials_Core
+namespace PepperDash.Essentials.Core
{
public class IsReadyEventArgs : EventArgs
{
@@ -16,6 +16,26 @@ namespace PepperDash_Essentials_Core
}
}
+ public interface IHasReady
+ {
+ event EventHandler IsReadyEvent;
+ bool IsReady { get; }
+ }
+}
+
+namespace PepperDash_Essentials_Core
+{
+ [Obsolete("Use PepperDash.Essentials.Core")]
+ public class IsReadyEventArgs : EventArgs
+ {
+ public bool IsReady { get; set; }
+
+ public IsReadyEventArgs(bool data)
+ {
+ IsReady = data;
+ }
+ }
+
public interface IHasReady
{
event EventHandler IsReadyEvent;
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenRfgwController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenRfgwController.cs
index fb7968d9..03e8f51d 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenRfgwController.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Gateways/CenRfgwController.cs
@@ -10,9 +10,7 @@ using Crestron.SimplSharpPro.DeviceSupport;
using PepperDash.Core;
-using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config;
-using PepperDash_Essentials_Core;
namespace PepperDash.Essentials.Core
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorController.cs
index 7ade8ba5..b0b58f34 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorController.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/PartitionSensor/GlsPartitionSensorController.cs
@@ -4,7 +4,7 @@ using Crestron.SimplSharpPro.GeneralIO;
using Newtonsoft.Json;
using PepperDash.Core;
using PepperDash.Essentials.Core.Bridges;
-using PepperDash_Essentials_Core.Bridges.JoinMaps;
+using PepperDash.Essentials.Core.Bridges.JoinMaps;
using System;
using System.Collections.Generic;
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ComsMessage.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ComsMessage.cs
index fce6291d..3c01032e 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ComsMessage.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ComsMessage.cs
@@ -1,7 +1,7 @@
using System;
using PepperDash.Core;
-namespace PepperDash_Essentials_Core.Queues
+namespace PepperDash.Essentials.Core.Queues
{
///
/// IBasicCommunication Message for IQueue
@@ -62,6 +62,78 @@ namespace PepperDash_Essentials_Core.Queues
}
}
+ ///
+ /// Shows either the byte[] or string to be sent
+ ///
+ public override string ToString()
+ {
+ return _bytes != null ? _bytes.ToString() : _string;
+ }
+ }
+}
+
+namespace PepperDash_Essentials_Core.Queues
+{
+ ///
+ /// IBasicCommunication Message for IQueue
+ ///
+ [Obsolete("Use PepperDash.Essentials.Core.Queues")]
+ public class ComsMessage : IQueueMessage
+ {
+ private readonly byte[] _bytes;
+ private readonly IBasicCommunication _coms;
+ private readonly string _string;
+ private readonly bool _isByteMessage;
+
+ ///
+ /// Constructor for a string message
+ ///
+ /// IBasicCommunication to send the message
+ /// Message to send
+ public ComsMessage(IBasicCommunication coms, string message)
+ {
+ Validate(coms, message);
+ _coms = coms;
+ _string = message;
+ }
+
+ ///
+ /// Constructor for a byte message
+ ///
+ /// IBasicCommunication to send the message
+ /// Message to send
+ public ComsMessage(IBasicCommunication coms, byte[] message)
+ {
+ Validate(coms, message);
+ _coms = coms;
+ _bytes = message;
+ _isByteMessage = true;
+ }
+
+ private void Validate(IBasicCommunication coms, object message)
+ {
+ if (coms == null)
+ throw new ArgumentNullException("coms");
+
+ if (message == null)
+ throw new ArgumentNullException("message");
+ }
+
+ ///
+ /// Dispatchs the string/byte[] to the IBasicCommunication specified
+ ///
+ public void Dispatch()
+ {
+ if (_isByteMessage)
+ {
+ _coms.SendBytes(_bytes);
+ }
+ else
+ {
+ _coms.SendText(_string);
+ }
+ }
+
///
/// Shows either the byte[] or string to be sent
///
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
index e1b175a6..1fcc497c 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/GenericQueue.cs
@@ -3,7 +3,7 @@ using Crestron.SimplSharp;
using Crestron.SimplSharpPro.CrestronThread;
using PepperDash.Core;
-namespace PepperDash_Essentials_Core.Queues
+namespace PepperDash.Essentials.Core.Queues
{
///
/// Threadsafe processing of queued items with pacing if required
@@ -236,6 +236,250 @@ namespace PepperDash_Essentials_Core.Queues
Dispose(false);
}
+ ///
+ /// Key
+ ///
+ public string Key
+ {
+ get { return _key; }
+ }
+ }
+}
+
+namespace PepperDash_Essentials_Core.Queues
+{
+ ///
+ /// Threadsafe processing of queued items with pacing if required
+ ///
+ [Obsolete("Use PepperDash.Essentials.Core.Queues")]
+ public class GenericQueue : IQueue
+ {
+ private readonly string _key;
+ protected readonly CrestronQueue _queue;
+ protected readonly Thread _worker;
+ protected readonly CEvent _waitHandle = new CEvent();
+
+ private bool _delayEnabled;
+ private int _delayTime;
+
+ private const Thread.eThreadPriority _defaultPriority = Thread.eThreadPriority.MediumPriority;
+
+ ///
+ /// If the instance has been disposed.
+ ///
+ public bool Disposed { get; private set; }
+
+ ///
+ /// Returns the capacity of the CrestronQueue (fixed Size property)
+ ///
+ public int QueueCapacity
+ {
+ get
+ {
+ return _queue.Size;
+ }
+ }
+
+ ///
+ /// Returns the number of elements currently in the CrestronQueue
+ ///
+ public int QueueCount
+ {
+ get
+ {
+ return _queue.Count;
+ }
+ }
+
+ ///
+ /// Constructor with no thread priority
+ ///
+ ///
+ public GenericQueue(string key)
+ : this(key, _defaultPriority, 0, 0)
+ {
+ }
+
+ ///
+ /// Constructor with queue size
+ ///
+ ///
+ /// Fixed size for the queue to hold
+ public GenericQueue(string key, int capacity)
+ : this(key, _defaultPriority, capacity, 0)
+ {
+ }
+
+ ///
+ /// Constructor for generic queue with no pacing
+ ///
+ /// Key
+ /// Pacing in ms between actions
+ public GenericQueue(int pacing, string key)
+ : this(key, _defaultPriority, 0, pacing)
+ {
+ }
+
+ ///
+ /// Constructor with pacing and capacity
+ ///
+ ///
+ ///
+ ///
+ public GenericQueue(string key, int pacing, int capacity)
+ : this(key, _defaultPriority, capacity, pacing)
+ {
+ }
+
+ ///
+ /// Constructor with pacing and priority
+ ///
+ ///
+ ///
+ ///
+ public GenericQueue(string key, int pacing, Thread.eThreadPriority priority)
+ : this(key, priority, 0, pacing)
+ {
+ }
+
+ ///
+ /// Constructor with pacing, priority and capacity
+ ///
+ ///
+ ///
+ ///
+ public GenericQueue(string key, Thread.eThreadPriority priority, int capacity)
+ : this(key, priority, capacity, 0)
+ {
+ }
+
+ ///
+ /// Constructor with pacing, priority and capacity
+ ///
+ ///
+ ///
+ ///
+ ///
+ public GenericQueue(string key, int pacing, Thread.eThreadPriority priority, int capacity)
+ : this(key, priority, capacity, pacing)
+ {
+ }
+
+ ///
+ /// Constructor for generic queue with no pacing
+ ///
+ /// Key
+ ///
+ private GenericQueue(string key, Thread.eThreadPriority priority, int capacity, int pacing)
+ {
+ _key = key;
+ int cap = 25; // sets default
+ if (capacity > 0)
+ {
+ cap = capacity; // overrides default
+ }
+ _queue = new CrestronQueue(cap);
+ _worker = new Thread(ProcessQueue, null, Thread.eThreadStartOptions.Running)
+ {
+ Priority = priority
+ };
+
+ SetDelayValues(pacing);
+ }
+
+ private void SetDelayValues(int pacing)
+ {
+ _delayEnabled = pacing > 0;
+ _delayTime = pacing;
+
+ CrestronEnvironment.ProgramStatusEventHandler += programEvent =>
+ {
+ if (programEvent != eProgramStatusEventType.Stopping)
+ return;
+
+ Dispose();
+ };
+ }
+
+ ///
+ /// Thread callback
+ ///
+ /// The action used to process dequeued items
+ /// Null when the thread is exited
+ private object ProcessQueue(object obj)
+ {
+ while (true)
+ {
+ IQueueMessage item = null;
+
+ if (_queue.Count > 0)
+ {
+ item = _queue.Dequeue();
+ if (item == null)
+ break;
+ }
+ if (item != null)
+ {
+ try
+ {
+ Debug.Console(2, this, "Processing queue item: '{0}'", item.ToString());
+ item.Dispatch();
+
+ if (_delayEnabled)
+ Thread.Sleep(_delayTime);
+ }
+ catch (Exception ex)
+ {
+ Debug.Console(0, this, Debug.ErrorLogLevel.Error, "Caught an exception in the Queue {0}\r{1}\r{2}", ex.Message, ex.InnerException, ex.StackTrace);
+ }
+ }
+ else _waitHandle.Wait();
+ }
+
+ return null;
+ }
+
+ public void Enqueue(IQueueMessage item)
+ {
+ _queue.Enqueue(item);
+ _waitHandle.Set();
+ }
+
+ ///
+ /// Disposes the thread and cleans up resources. Thread cannot be restarted once
+ /// disposed.
+ ///
+ public void Dispose()
+ {
+ Dispose(true);
+ CrestronEnvironment.GC.SuppressFinalize(this);
+ }
+
+ ///
+ /// Actually does the disposing. If you override this method, be sure to either call the base implementation
+ /// or clean up all the resources yourself.
+ ///
+ /// set to true unless called from finalizer
+ protected void Dispose(bool disposing)
+ {
+ if (Disposed)
+ return;
+
+ if (disposing)
+ {
+ Enqueue(null);
+ _worker.Join();
+ _waitHandle.Close();
+ }
+
+ Disposed = true;
+ }
+
+ ~GenericQueue()
+ {
+ Dispose(false);
+ }
+
///
/// Key
///
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueue.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueue.cs
index 852542d5..15803330 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueue.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueue.cs
@@ -5,11 +5,21 @@ using System.Text;
using Crestron.SimplSharp;
using PepperDash.Core;
-namespace PepperDash_Essentials_Core.Queues
+namespace PepperDash.Essentials.Core.Queues
{
public interface IQueue : IKeyed, IDisposable where T : class
{
void Enqueue(T item);
bool Disposed { get; }
}
+}
+
+namespace PepperDash_Essentials_Core.Queues
+{
+ [Obsolete("Use PepperDash.Essentials.Core.Queues")]
+ public interface IQueue : IKeyed, IDisposable where T : class
+ {
+ void Enqueue(T item);
+ bool Disposed { get; }
+ }
}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueueMessage.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueueMessage.cs
index ee0d87d2..8ffd4d96 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueueMessage.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/IQueueMessage.cs
@@ -1,7 +1,18 @@
-namespace PepperDash_Essentials_Core.Queues
+using System;
+
+namespace PepperDash.Essentials.Core.Queues
{
public interface IQueueMessage
{
void Dispatch();
}
+}
+
+namespace PepperDash_Essentials_Core.Queues
+{
+ [Obsolete("Use PepperDash.Essentials.Core.Queues")]
+ public interface IQueueMessage
+ {
+ void Dispatch();
+ }
}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ProcessStringMessage.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ProcessStringMessage.cs
index a15f7231..d8ea4ada 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ProcessStringMessage.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/ProcessStringMessage.cs
@@ -1,6 +1,6 @@
using System;
-namespace PepperDash_Essentials_Core.Queues
+namespace PepperDash.Essentials.Core.Queues
{
///
/// Message class for processing strings via an IQueue
@@ -32,6 +32,50 @@ namespace PepperDash_Essentials_Core.Queues
_action(_message);
}
+ ///
+ /// To string
+ ///
+ /// The current message
+ public override string ToString()
+ {
+ return _message ?? String.Empty;
+ }
+ }
+}
+
+namespace PepperDash_Essentials_Core.Queues
+{
+ ///
+ /// Message class for processing strings via an IQueue
+ ///
+ [Obsolete("Use PepperDash.Essentials.Core.Queues")]
+ public class ProcessStringMessage : IQueueMessage
+ {
+ private readonly Action _action;
+ private readonly string _message;
+
+ ///
+ /// Constructor
+ ///
+ /// Message to be processed
+ /// Action to invoke on the message
+ public ProcessStringMessage(string message, Action action)
+ {
+ _message = message;
+ _action = action;
+ }
+
+ ///
+ /// Processes the string with the given action
+ ///
+ public void Dispatch()
+ {
+ if (_action == null || String.IsNullOrEmpty(_message))
+ return;
+
+ _action(_message);
+ }
+
///
/// To string
///
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/StringResponseProcessor.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/StringResponseProcessor.cs
index 7f6477a3..e2db5d72 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/StringResponseProcessor.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Queues/StringResponseProcessor.cs
@@ -2,7 +2,7 @@
using Crestron.SimplSharp;
using PepperDash.Core;
-namespace PepperDash_Essentials_Core.Queues
+namespace PepperDash.Essentials.Core.Queues
{
public sealed class StringResponseProcessor : IKeyed, IDisposable
{
@@ -98,6 +98,110 @@ namespace PepperDash_Essentials_Core.Queues
///
public bool Disposed { get; private set; }
+ ~StringResponseProcessor()
+ {
+ Dispose(false);
+ }
+ }
+}
+
+namespace PepperDash_Essentials_Core.Queues
+{
+ [Obsolete("Use PepperDash.Essentials.Core.Queues")]
+ public sealed class StringResponseProcessor : IKeyed, IDisposable
+ {
+ private readonly Action _processStringAction;
+ private readonly IQueue _queue;
+ private readonly IBasicCommunication _coms;
+ private readonly CommunicationGather _gather;
+
+ private StringResponseProcessor(string key, Action processStringAction)
+ {
+ _processStringAction = processStringAction;
+ _queue = new GenericQueue(key);
+
+ CrestronEnvironment.ProgramStatusEventHandler += programEvent =>
+ {
+ if (programEvent != eProgramStatusEventType.Stopping)
+ return;
+
+ Dispose();
+ };
+ }
+
+ ///
+ /// Constructor that builds an instance and subscribes to coms TextReceived for processing
+ ///
+ /// Com port to process strings from
+ /// Action to process the incoming strings
+ public StringResponseProcessor(IBasicCommunication coms, Action processStringAction)
+ : this(coms.Key, processStringAction)
+ {
+ _coms = coms;
+ coms.TextReceived += OnResponseReceived;
+ }
+
+ ///
+ /// Constructor that builds an instance and subscribes to gather Line Received for processing
+ ///
+ /// Gather to process strings from
+ /// Action to process the incoming strings
+ public StringResponseProcessor(CommunicationGather gather, Action processStringAction)
+ : this(gather.Port.Key, processStringAction)
+ {
+ _gather = gather;
+ gather.LineReceived += OnResponseReceived;
+ }
+
+ private void OnResponseReceived(object sender, GenericCommMethodReceiveTextArgs args)
+ {
+ _queue.Enqueue(new ProcessStringMessage(args.Text, _processStringAction));
+ }
+
+ ///
+ /// Key
+ ///
+ public string Key
+ {
+ get { return _queue.Key; }
+ }
+
+ ///
+ /// Disposes the instance and cleans up resources.
+ ///
+ public void Dispose()
+ {
+ Dispose(true);
+ CrestronEnvironment.GC.SuppressFinalize(this);
+ }
+
+ private void Dispose(bool disposing)
+ {
+ if (Disposed)
+ return;
+
+ if (disposing)
+ {
+ if (_coms != null)
+ _coms.TextReceived -= OnResponseReceived;
+
+ if (_gather != null)
+ {
+ _gather.LineReceived -= OnResponseReceived;
+ _gather.Stop();
+ }
+
+ _queue.Dispose();
+ }
+
+ Disposed = true;
+ }
+
+ ///
+ /// If the instance has been disposed or not. If it has, you can not use it anymore
+ ///
+ public bool Disposed { get; private set; }
+
~StringResponseProcessor()
{
Dispose(false);
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Remotes/Hrxx0WirelessRemoteController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Remotes/Hrxx0WirelessRemoteController.cs
index 161cba45..e4fcab5b 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Remotes/Hrxx0WirelessRemoteController.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Remotes/Hrxx0WirelessRemoteController.cs
@@ -83,7 +83,7 @@ namespace PepperDash.Essentials.Core
}
}
- void _gateway_IsReadyEvent(object sender, PepperDash_Essentials_Core.IsReadyEventArgs e)
+ void _gateway_IsReadyEvent(object sender, IsReadyEventArgs e)
{
if (e.IsReady != true) return;
_remote = GetHr1x0WirelessRemote(_config);
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
index 4d074678..af7233fb 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
@@ -18,8 +18,7 @@ using PepperDash.Essentials.Core.Routing;
using PepperDash.Essentials.Devices.Common.Cameras;
using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec;
-using PepperDash_Essentials_Core.Queues;
-using PepperDash_Essentials_Core.DeviceTypeInterfaces;
+using PepperDash.Essentials.Core.Queues;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
{
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
index 84617c6d..42a389a7 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
@@ -17,7 +17,6 @@ using PepperDash.Essentials.Devices.Common.Cameras;
using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec.Cisco;
using PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces;
-using PepperDash_Essentials_Core.DeviceTypeInterfaces;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{