diff --git a/PepperDashEssentials/Bridges/DmChassisControllerBridge.cs b/PepperDashEssentials/Bridges/DmChassisControllerBridge.cs
index 14fa580c..90eea6b1 100644
--- a/PepperDashEssentials/Bridges/DmChassisControllerBridge.cs
+++ b/PepperDashEssentials/Bridges/DmChassisControllerBridge.cs
@@ -206,8 +206,10 @@ namespace PepperDash.Essentials.Bridges
public class DmChassisControllerJoinMap : JoinMapBase
{
- //Digital
+ // Digtal/Analog
public uint SystemId { get; set; }
+
+ //Digital
public uint IsOnline { get; set; }
public uint OutputUsb { get; set; }
public uint InputUsb { get; set; }
@@ -233,7 +235,9 @@ namespace PepperDash.Essentials.Bridges
public DmChassisControllerJoinMap()
{
- SystemId = 10;
+ //Digital/Analog
+ SystemId = 10; // Analog sets/gets SystemId, digital input applies and provides feedback of ID change busy
+
//Digital
IsOnline = 11;
VideoSyncStatus = 100; //101-299
@@ -261,8 +265,6 @@ namespace PepperDash.Essentials.Bridges
OutputEndpointOnline = 700; //701-899
HdcpSupportState = 1000; //1001-1199
HdcpSupportCapability = 1200; //1201-1399
-
-
}
public override void OffsetJoinNumbers(uint joinStart)
diff --git a/PepperDashEssentials/Bridges/DmpsAudioOutputControllerBridge.cs b/PepperDashEssentials/Bridges/DmpsAudioOutputControllerBridge.cs
new file mode 100644
index 00000000..cb144f3b
--- /dev/null
+++ b/PepperDashEssentials/Bridges/DmpsAudioOutputControllerBridge.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using Crestron.SimplSharpPro.DeviceSupport;
+using Crestron.SimplSharpPro.DM;
+
+using PepperDash.Core;
+using PepperDash.Essentials.Core;
+using PepperDash.Essentials.DM;
+
+namespace PepperDash.Essentials.Bridges
+{
+ public static class DmpsAudioOutputControllerApiExtensions
+ {
+ public static void LinkToApi(this DmpsAudioOutputController dmAudioOutputController, BasicTriList trilis, uint joinStart, string joinMapKey)
+ {
+ var joinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as DmpsAudioOutputControllerJoinMap;
+
+ if (joinMap == null)
+ joinMap = new DmpsAudioOutputControllerJoinMap();
+
+ joinMap.OffsetJoinNumbers(joinStart);
+
+ Debug.Console(1, dmAudioOutputController, "Linking to Trilist '{0}'", trilis.ID.ToString("X"));
+
+
+ }
+
+ public class DmpsAudioOutputControllerJoinMap: JoinMapBase
+ {
+ // Digital
+ public uint MasterVolumeMute { get; set; }
+ public uint SourceVolumeMute { get; set; }
+ public uint Codec1VolumeMute { get; set; }
+ public uint Codec2VolumeMute { get; set; }
+
+
+ public DmpsAudioOutputControllerJoinMap()
+ {
+ MasterVolumeMute = 1; // 1-10
+ SourceVolumeMute = 11; // 11-20
+ Codec1VolumeMute = 21; // 21-30
+ Codec2VolumeMute = 31; // 31-40
+ }
+
+ public override void OffsetJoinNumbers(uint joinStart)
+ {
+ var joinOffset = joinStart -1;
+
+ MasterVolumeMute = MasterVolumeMute + joinOffset;
+ SourceVolumeMute = SourceVolumeMute + joinOffset;
+ Codec1VolumeMute = Codec1VolumeMute + joinOffset;
+ Codec2VolumeMute = Codec2VolumeMute + joinOffset;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/PepperDashEssentials/Bridges/DmpsRoutingControllerBridge.cs b/PepperDashEssentials/Bridges/DmpsRoutingControllerBridge.cs
index 1f61b1b6..9071f234 100644
--- a/PepperDashEssentials/Bridges/DmpsRoutingControllerBridge.cs
+++ b/PepperDashEssentials/Bridges/DmpsRoutingControllerBridge.cs
@@ -139,7 +139,7 @@ namespace PepperDash.Essentials.Bridges
public DmpsRoutingControllerJoinMap()
- {;
+ {
OutputVideo = 100; //101-299
OutputAudio = 300; //301-499
VideoSyncStatus = 100; //101-299
@@ -148,8 +148,8 @@ namespace PepperDash.Essentials.Bridges
OutputCurrentVideoInputNames = 2000; //2001-2199
OutputCurrentAudioInputNames = 2200; //2201-2399
InputCurrentResolution = 2400; // 2401-2599
- InputEndpointOnline = 500;
- OutputEndpointOnline = 700;
+ InputEndpointOnline = 500; //501-699
+ OutputEndpointOnline = 700; //701-899
//HdcpSupport = 1000; //1001-1199
//HdcpSupportCapability = 1200; //1201-1399
diff --git a/PepperDashEssentials/PepperDashEssentials.csproj b/PepperDashEssentials/PepperDashEssentials.csproj
index bdc25538..3327128a 100644
--- a/PepperDashEssentials/PepperDashEssentials.csproj
+++ b/PepperDashEssentials/PepperDashEssentials.csproj
@@ -121,6 +121,7 @@
+
diff --git a/essentials-framework/Essentials DM/Essentials_DM/Chassis/DmpsAudioOutputController.cs b/essentials-framework/Essentials DM/Essentials_DM/Chassis/DmpsAudioOutputController.cs
index a10c73b2..dfeac4ee 100644
--- a/essentials-framework/Essentials DM/Essentials_DM/Chassis/DmpsAudioOutputController.cs
+++ b/essentials-framework/Essentials DM/Essentials_DM/Chassis/DmpsAudioOutputController.cs
@@ -26,7 +26,6 @@ namespace PepperDash.Essentials.DM
public DmpsAudioOutput SourceVolumeLevel { get; private set; }
public DmpsAudioOutput Codec1VolumeLevel { get; private set; }
public DmpsAudioOutput Codec2VolumeLevel { get; private set; }
- public Dictionary MicVolumeLevels { get; private set; }
public DmpsAudioOutputController(string key, string name, Card.Dmps3OutputBase card)
: base(key, name)
@@ -51,6 +50,7 @@ namespace PepperDash.Essentials.DM
{
Codec1VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec1);
}
+
}
void BaseDevice_DMOutputChange(Switch device, DMOutputEventArgs args)
@@ -111,6 +111,8 @@ namespace PepperDash.Essentials.DM
public BoolFeedback MuteFeedback { get; private set; }
public IntFeedback VolumeLevelFeedback { get; private set; }
+ public Dictionary MicVolumeLevels { get; private set; }
+
Action MuteOnAction;
Action MuteOffAction;
Action VolumeUpAction;
@@ -120,6 +122,8 @@ namespace PepperDash.Essentials.DM
{
Output = output;
+ Type = type;
+
switch (type)
{
case eDmpsLevelType.Master:
@@ -224,6 +228,13 @@ namespace PepperDash.Essentials.DM
break;
}
}
+
+ var numberOfMics = Global.ControlSystem.NumberOfMicrophones;
+
+ for (int i = 1; i <= numberOfMics; i++)
+ {
+ // Construct each mic level here
+ }
}
#region IBasicVolumeWithFeedback Members
@@ -274,6 +285,7 @@ namespace PepperDash.Essentials.DM
Source,
MicsMaster,
Codec1,
- Codec2
+ Codec2,
+ Mic
}
}
\ No newline at end of file