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