mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 04:34:56 +00:00
Merge branch 'development' into feature/room-combining
This commit is contained in:
@@ -28,6 +28,10 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
public JoinDataComplete EdidSerialNumber = new JoinDataComplete(new JoinData { JoinNumber = 5, JoinSpan = 1 },
|
public JoinDataComplete EdidSerialNumber = new JoinDataComplete(new JoinData { JoinNumber = 5, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "DM RMC EDID Serial Number", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
new JoinMetadata { Description = "DM RMC EDID Serial Number", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
[JoinName("Name")]
|
||||||
|
public JoinDataComplete Name = new JoinDataComplete(new JoinData { JoinNumber = 6, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "DM RMC Name", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
[JoinName("AudioVideoSource")]
|
[JoinName("AudioVideoSource")]
|
||||||
public JoinDataComplete AudioVideoSource = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
public JoinDataComplete AudioVideoSource = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "DM RMC Audio Video Source Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
new JoinMetadata { Description = "DM RMC Audio Video Source Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|||||||
@@ -32,6 +32,10 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
public JoinDataComplete CurrentInputResolution = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
public JoinDataComplete CurrentInputResolution = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "DM TX Current Input Resolution", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
new JoinMetadata { Description = "DM TX Current Input Resolution", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
[JoinName("Name")]
|
||||||
|
public JoinDataComplete Name = new JoinDataComplete(new JoinData { JoinNumber = 2, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "DM TX Name", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
[JoinName("VideoInput")]
|
[JoinName("VideoInput")]
|
||||||
public JoinDataComplete VideoInput = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
public JoinDataComplete VideoInput = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "DM TX Video Input Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
new JoinMetadata { Description = "DM TX Video Input Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
@@ -42,7 +46,7 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
|
|
||||||
[JoinName("HdcpSupportCapability")]
|
[JoinName("HdcpSupportCapability")]
|
||||||
public JoinDataComplete HdcpSupportCapability = new JoinDataComplete(new JoinData { JoinNumber = 3, JoinSpan = 1 },
|
public JoinDataComplete HdcpSupportCapability = new JoinDataComplete(new JoinData { JoinNumber = 3, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "DM TX HDCP Support Capability", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Analog });
|
new JoinMetadata { Description = "DM TX HDCP Support Capability", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
[JoinName("Port1HdcpState")]
|
[JoinName("Port1HdcpState")]
|
||||||
public JoinDataComplete Port1HdcpState = new JoinDataComplete(new JoinData { JoinNumber = 4, JoinSpan = 1 },
|
public JoinDataComplete Port1HdcpState = new JoinDataComplete(new JoinData { JoinNumber = 4, JoinSpan = 1 },
|
||||||
|
|||||||
@@ -7,7 +7,15 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
|
|
||||||
[JoinName("MasterVolumeLevel")]
|
[JoinName("MasterVolumeLevel")]
|
||||||
public JoinDataComplete MasterVolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
public JoinDataComplete MasterVolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "Master Volume Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
new JoinMetadata { Description = "Master Volume Signed dB Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("MasterVolumeLevelScaled")]
|
||||||
|
public JoinDataComplete MasterVolumeLevelScaled = new JoinDataComplete(new JoinData { JoinNumber = 2, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Master Volume 16bit Scaled Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("MixerPresetRecall")]
|
||||||
|
public JoinDataComplete MixerPresetRecall = new JoinDataComplete(new JoinData { JoinNumber = 3, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Mixer Preset Recall Set", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
[JoinName("MasterVolumeMuteOn")]
|
[JoinName("MasterVolumeMuteOn")]
|
||||||
public JoinDataComplete MasterVolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
public JoinDataComplete MasterVolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
@@ -23,11 +31,19 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
|
|
||||||
[JoinName("MasterVolumeDown")]
|
[JoinName("MasterVolumeDown")]
|
||||||
public JoinDataComplete MasterVolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 4, JoinSpan = 1 },
|
public JoinDataComplete MasterVolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 4, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "Master Volume Mute Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
new JoinMetadata { Description = "Master Volume Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MasterVolumeLevelScaledSend")]
|
||||||
|
public JoinDataComplete MasterVolumeLevelScaledSend = new JoinDataComplete(new JoinData { JoinNumber = 5, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Master Volume Scaled Send Enable/Disable", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
[JoinName("SourceVolumeLevel")]
|
[JoinName("SourceVolumeLevel")]
|
||||||
public JoinDataComplete SourceVolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 11, JoinSpan = 1 },
|
public JoinDataComplete SourceVolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 11, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "Source Volume Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
new JoinMetadata { Description = "Source Volume Signed dB Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("SourceVolumeLevelScaled")]
|
||||||
|
public JoinDataComplete SourceVolumeLevelScaled = new JoinDataComplete(new JoinData { JoinNumber = 12, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Source Volume 16bit Scaled Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
[JoinName("SourceVolumeMuteOn")]
|
[JoinName("SourceVolumeMuteOn")]
|
||||||
public JoinDataComplete SourceVolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 11, JoinSpan = 1 },
|
public JoinDataComplete SourceVolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 11, JoinSpan = 1 },
|
||||||
@@ -43,11 +59,19 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
|
|
||||||
[JoinName("SourceVolumeDown")]
|
[JoinName("SourceVolumeDown")]
|
||||||
public JoinDataComplete SourceVolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 14, JoinSpan = 1 },
|
public JoinDataComplete SourceVolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 14, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "Source Volume Mute Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
new JoinMetadata { Description = "Source Volume Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("SourceVolumeLevelScaledSend")]
|
||||||
|
public JoinDataComplete SourceVolumeLevelScaledSend = new JoinDataComplete(new JoinData { JoinNumber = 15, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Source Volume Scaled Send Enable/Disable", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
[JoinName("Codec1VolumeLevel")]
|
[JoinName("Codec1VolumeLevel")]
|
||||||
public JoinDataComplete Codec1VolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 21, JoinSpan = 1 },
|
public JoinDataComplete Codec1VolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 21, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "Codec1 Volume Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
new JoinMetadata { Description = "Codec1 Volume Signed dB Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("Codec1VolumeLevelScaled")]
|
||||||
|
public JoinDataComplete Codec1VolumeLevelScaled = new JoinDataComplete(new JoinData { JoinNumber = 22, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Codec1 Volume 16bit Scaled Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
[JoinName("Codec1VolumeMuteOn")]
|
[JoinName("Codec1VolumeMuteOn")]
|
||||||
public JoinDataComplete Codec1VolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 21, JoinSpan = 1 },
|
public JoinDataComplete Codec1VolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 21, JoinSpan = 1 },
|
||||||
@@ -63,11 +87,19 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
|
|
||||||
[JoinName("Codec1VolumeDown")]
|
[JoinName("Codec1VolumeDown")]
|
||||||
public JoinDataComplete Codec1VolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 24, JoinSpan = 1 },
|
public JoinDataComplete Codec1VolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 24, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "Codec1 Volume Mute Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
new JoinMetadata { Description = "Codec1 Volume Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("Codec1VolumeLevelScaledSend")]
|
||||||
|
public JoinDataComplete Codec1VolumeLevelScaledSend = new JoinDataComplete(new JoinData { JoinNumber = 25, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Codec1 Volume Scaled Send Enable/Disable", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
[JoinName("Codec2VolumeLevel")]
|
[JoinName("Codec2VolumeLevel")]
|
||||||
public JoinDataComplete Codec2VolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 31, JoinSpan = 1 },
|
public JoinDataComplete Codec2VolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 31, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "Codec2 Volume Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
new JoinMetadata { Description = "Codec2 Volume Signed dB Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("Codec2VolumeLevelScaled")]
|
||||||
|
public JoinDataComplete Codec2VolumeLevelScaled = new JoinDataComplete(new JoinData { JoinNumber = 32, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Codec2 Volume 16bit Scaled Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
[JoinName("Codec2VolumeMuteOn")]
|
[JoinName("Codec2VolumeMuteOn")]
|
||||||
public JoinDataComplete Codec2VolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 31, JoinSpan = 1 },
|
public JoinDataComplete Codec2VolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 31, JoinSpan = 1 },
|
||||||
@@ -83,8 +115,39 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
|
|
||||||
[JoinName("Codec2VolumeDown")]
|
[JoinName("Codec2VolumeDown")]
|
||||||
public JoinDataComplete Codec2VolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 34, JoinSpan = 1 },
|
public JoinDataComplete Codec2VolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 34, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "Codec2 Volume Mute Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
new JoinMetadata { Description = "Codec2 Volume Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("Codec2VolumeLevelScaledSend")]
|
||||||
|
public JoinDataComplete Codec2VolumeLevelScaledSend = new JoinDataComplete(new JoinData { JoinNumber = 35, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Codec2 Volume Scaled Send Enable/Disable", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MicsMasterVolumeLevel")]
|
||||||
|
public JoinDataComplete MicsMasterVolumeLevel = new JoinDataComplete(new JoinData { JoinNumber = 41, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "MicsMaster Volume Signed dB Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("MicsMasterVolumeLevelScaled")]
|
||||||
|
public JoinDataComplete MicsMasterVolumeLevelScaled = new JoinDataComplete(new JoinData { JoinNumber = 42, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "MicsMaster Volume 16bit Scaled Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("MicsMasterVolumeMuteOn")]
|
||||||
|
public JoinDataComplete MicsMasterVolumeMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 41, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "MicsMaster Volume Mute On Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MicsMasterVolumeMuteOff")]
|
||||||
|
public JoinDataComplete MicsMasterVolumeMuteOff = new JoinDataComplete(new JoinData { JoinNumber = 42, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "MicsMaster Volume Mute Off Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MicsMasterVolumeUp")]
|
||||||
|
public JoinDataComplete MicsMasterVolumeUp = new JoinDataComplete(new JoinData { JoinNumber = 43, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "MicsMaster Volume Level Up", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MicsMasterVolumeDown")]
|
||||||
|
public JoinDataComplete MicsMasterVolumeDown = new JoinDataComplete(new JoinData { JoinNumber = 44, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "MicsMaster Volume Level Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MicsMasterVolumeLevelScaledSend")]
|
||||||
|
public JoinDataComplete MicsMasterVolumeLevelScaledSend = new JoinDataComplete(new JoinData { JoinNumber = 45, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Mics Master Volume Scaled Send Enable/Disable", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor to use when instantiating this Join Map without inheriting from it
|
/// Constructor to use when instantiating this Join Map without inheriting from it
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Core.Bridges
|
||||||
|
{
|
||||||
|
public class DmpsMicrophoneControllerJoinMap : JoinMapBaseAdvanced
|
||||||
|
{
|
||||||
|
[JoinName("MicGain")]
|
||||||
|
public JoinDataComplete MicGain = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Mic Gain dB Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("MicGainScaled")]
|
||||||
|
public JoinDataComplete MicGainScaled = new JoinDataComplete(new JoinData { JoinNumber = 2, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Mic Gain 16bit Scaled Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Analog });
|
||||||
|
|
||||||
|
[JoinName("MicMuteOn")]
|
||||||
|
public JoinDataComplete MicMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Mic Mute On Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MicMuteOff")]
|
||||||
|
public JoinDataComplete MicMuteOff = new JoinDataComplete(new JoinData { JoinNumber = 2, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Mic Mute Off Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MicGainScaledSend")]
|
||||||
|
public JoinDataComplete MicGainScaledSend = new JoinDataComplete(new JoinData { JoinNumber = 3, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Mic Gain Scaled Send Enable/Disable", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("MicName")]
|
||||||
|
public JoinDataComplete MicName = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "Mic Name Get", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructor to use when instantiating this Join Map without inheriting from it
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="joinStart">Join this join map will start at</param>
|
||||||
|
public DmpsMicrophoneControllerJoinMap(uint joinStart)
|
||||||
|
: this(joinStart, typeof(DmpsMicrophoneControllerJoinMap))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructor to use when extending this Join map
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="joinStart">Join this join map will start at</param>
|
||||||
|
/// <param name="type">Type of the child join map</param>
|
||||||
|
protected DmpsMicrophoneControllerJoinMap(uint joinStart, Type type)
|
||||||
|
: base(joinStart, type)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,10 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
{
|
{
|
||||||
public class DmpsRoutingControllerJoinMap : JoinMapBaseAdvanced
|
public class DmpsRoutingControllerJoinMap : JoinMapBaseAdvanced
|
||||||
{
|
{
|
||||||
|
[JoinName("EnableRouting")]
|
||||||
|
public JoinDataComplete EnableRouting = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "DMPS Enable Audio and Video Routing", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
[JoinName("SystemPowerOn")]
|
[JoinName("SystemPowerOn")]
|
||||||
public JoinDataComplete SystemPowerOn = new JoinDataComplete(new JoinData { JoinNumber = 12, JoinSpan = 1 },
|
public JoinDataComplete SystemPowerOn = new JoinDataComplete(new JoinData { JoinNumber = 12, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "DMPS System Power On Get/Set", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
new JoinMetadata { Description = "DMPS System Power On Get/Set", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
||||||
@@ -12,6 +16,14 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
public JoinDataComplete SystemPowerOff = new JoinDataComplete(new JoinData { JoinNumber = 13, JoinSpan = 1 },
|
public JoinDataComplete SystemPowerOff = new JoinDataComplete(new JoinData { JoinNumber = 13, JoinSpan = 1 },
|
||||||
new JoinMetadata { Description = "DMPS System Power Off Get/Set", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
new JoinMetadata { Description = "DMPS System Power Off Get/Set", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("FrontPanelLockOn")]
|
||||||
|
public JoinDataComplete FrontPanelLockOn = new JoinDataComplete(new JoinData { JoinNumber = 14, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "DMPS Front Panel Lock On Get/Set", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
|
[JoinName("FrontPanelLockOff")]
|
||||||
|
public JoinDataComplete FrontPanelLockOff = new JoinDataComplete(new JoinData { JoinNumber = 15, JoinSpan = 1 },
|
||||||
|
new JoinMetadata { Description = "DMPS Front Panel Lock Off Get/Set", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
|
||||||
|
|
||||||
[JoinName("VideoSyncStatus")]
|
[JoinName("VideoSyncStatus")]
|
||||||
public JoinDataComplete VideoSyncStatus = new JoinDataComplete(new JoinData { JoinNumber = 101, JoinSpan = 32 },
|
public JoinDataComplete VideoSyncStatus = new JoinDataComplete(new JoinData { JoinNumber = 101, JoinSpan = 32 },
|
||||||
new JoinMetadata { Description = "DM Input Video Sync", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital });
|
new JoinMetadata { Description = "DM Input Video Sync", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital });
|
||||||
@@ -40,6 +52,44 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
public JoinDataComplete OutputNames = new JoinDataComplete(new JoinData { JoinNumber = 301, JoinSpan = 32 },
|
public JoinDataComplete OutputNames = new JoinDataComplete(new JoinData { JoinNumber = 301, JoinSpan = 32 },
|
||||||
new JoinMetadata { Description = "DM Chassis Output Name", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
new JoinMetadata { Description = "DM Chassis Output Name", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
|
[JoinName("InputVideoNames")]
|
||||||
|
public JoinDataComplete InputVideoNames =
|
||||||
|
new JoinDataComplete(new JoinData { JoinNumber = 501, JoinSpan = 32 },
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Video Input Name",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("InputAudioNames")]
|
||||||
|
public JoinDataComplete InputAudioNames =
|
||||||
|
new JoinDataComplete(new JoinData { JoinNumber = 701, JoinSpan = 32 },
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Audio Input Name",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
[JoinName("OutputVideoNames")]
|
||||||
|
public JoinDataComplete OutputVideoNames =
|
||||||
|
new JoinDataComplete(new JoinData { JoinNumber = 901, JoinSpan = 32 },
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Video Output Name",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
[JoinName("OutputAudioNames")]
|
||||||
|
public JoinDataComplete OutputAudioNames =
|
||||||
|
new JoinDataComplete(new JoinData { JoinNumber = 1101, JoinSpan = 32 },
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Audio Output Name",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
|
||||||
[JoinName("OutputCurrentVideoInputNames")]
|
[JoinName("OutputCurrentVideoInputNames")]
|
||||||
public JoinDataComplete OutputCurrentVideoInputNames = new JoinDataComplete(new JoinData { JoinNumber = 2001, JoinSpan = 32 },
|
public JoinDataComplete OutputCurrentVideoInputNames = new JoinDataComplete(new JoinData { JoinNumber = 2001, JoinSpan = 32 },
|
||||||
new JoinMetadata { Description = "DM Chassis Video Output Currently Routed Video Input Name", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
new JoinMetadata { Description = "DM Chassis Video Output Currently Routed Video Input Name", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace PepperDash.Essentials.Core.Bridges
|
|||||||
new JoinMetadata { Description = "Processor Last Boot", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
new JoinMetadata { Description = "Processor Last Boot", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });
|
||||||
|
|
||||||
[JoinName("ProgramOffsetJoin")]
|
[JoinName("ProgramOffsetJoin")]
|
||||||
public JoinDataComplete ProgramOffsetJoin = new JoinDataComplete(new JoinData { JoinNumber = 5, JoinSpan = 1 },
|
public JoinDataComplete ProgramOffsetJoin = new JoinDataComplete(new JoinData { JoinNumber = 5, JoinSpan = 5 },
|
||||||
new JoinMetadata { Description = "All Program Data is offset between slots by 5 - First Joins Start at 11", JoinCapabilities = eJoinCapabilities.None, JoinType = eJoinType.None });
|
new JoinMetadata { Description = "All Program Data is offset between slots by 5 - First Joins Start at 11", JoinCapabilities = eJoinCapabilities.None, JoinType = eJoinType.None });
|
||||||
|
|
||||||
[JoinName("ProgramStart")]
|
[JoinName("ProgramStart")]
|
||||||
|
|||||||
@@ -301,7 +301,7 @@ namespace PepperDash.Essentials.Core.Monitoring
|
|||||||
p.Value.AggregatedProgramInfoFeedback.LinkInputSig(
|
p.Value.AggregatedProgramInfoFeedback.LinkInputSig(
|
||||||
trilist.StringInput[programSlotJoinStart + joinMap.AggregatedProgramInfo.JoinNumber]);
|
trilist.StringInput[programSlotJoinStart + joinMap.AggregatedProgramInfo.JoinNumber]);
|
||||||
|
|
||||||
programSlotJoinStart = programSlotJoinStart + joinMap.ProgramOffsetJoin.JoinNumber;
|
programSlotJoinStart = programSlotJoinStart + joinMap.ProgramOffsetJoin.JoinSpan;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -131,6 +131,7 @@
|
|||||||
<Compile Include="Bridges\JoinMaps\DmBladeChassisControllerJoinMap.cs" />
|
<Compile Include="Bridges\JoinMaps\DmBladeChassisControllerJoinMap.cs" />
|
||||||
<Compile Include="Bridges\JoinMaps\DmChassisControllerJoinMap.cs" />
|
<Compile Include="Bridges\JoinMaps\DmChassisControllerJoinMap.cs" />
|
||||||
<Compile Include="Bridges\JoinMaps\DmpsAudioOutputControllerJoinMap.cs" />
|
<Compile Include="Bridges\JoinMaps\DmpsAudioOutputControllerJoinMap.cs" />
|
||||||
|
<Compile Include="Bridges\JoinMaps\DmpsMicrophoneControllerJoinMap.cs" />
|
||||||
<Compile Include="Bridges\JoinMaps\DmpsRoutingControllerJoinMap.cs" />
|
<Compile Include="Bridges\JoinMaps\DmpsRoutingControllerJoinMap.cs" />
|
||||||
<Compile Include="Bridges\JoinMaps\DmRmcControllerJoinMap.cs" />
|
<Compile Include="Bridges\JoinMaps\DmRmcControllerJoinMap.cs" />
|
||||||
<Compile Include="Bridges\JoinMaps\DmTxControllerJoinMap.cs" />
|
<Compile Include="Bridges\JoinMaps\DmTxControllerJoinMap.cs" />
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
public DmpsAudioOutput MasterVolumeLevel { get; private set; }
|
public DmpsAudioOutput MasterVolumeLevel { get; private set; }
|
||||||
public DmpsAudioOutput SourceVolumeLevel { get; private set; }
|
public DmpsAudioOutput SourceVolumeLevel { get; private set; }
|
||||||
|
public DmpsAudioOutput MicsMasterVolumeLevel { get; private set; }
|
||||||
public DmpsAudioOutput Codec1VolumeLevel { get; private set; }
|
public DmpsAudioOutput Codec1VolumeLevel { get; private set; }
|
||||||
public DmpsAudioOutput Codec2VolumeLevel { get; private set; }
|
public DmpsAudioOutput Codec2VolumeLevel { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
public DmpsAudioOutputController(string key, string name, Card.Dmps3OutputBase card)
|
public DmpsAudioOutputController(string key, string name, Card.Dmps3OutputBase card)
|
||||||
: base(key, name)
|
: base(key, name)
|
||||||
{
|
{
|
||||||
@@ -36,88 +36,143 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
OutputCard.BaseDevice.DMOutputChange += new DMOutputEventHandler(BaseDevice_DMOutputChange);
|
OutputCard.BaseDevice.DMOutputChange += new DMOutputEventHandler(BaseDevice_DMOutputChange);
|
||||||
|
|
||||||
MasterVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Master);
|
|
||||||
SourceVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Source);
|
|
||||||
|
|
||||||
if (card is Card.Dmps3ProgramOutput)
|
if (card is Card.Dmps3ProgramOutput)
|
||||||
{
|
{
|
||||||
//(card as Card.Dmps3ProgramOutput).OutputMixer.MicLevel
|
MasterVolumeLevel = new DmpsAudioOutputWithMixer(card, eDmpsLevelType.Master, (card as Card.Dmps3ProgramOutput).OutputMixer);
|
||||||
//TODO: Hook up mic levels and mutes
|
SourceVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Source);
|
||||||
|
MicsMasterVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.MicsMaster);
|
||||||
Codec1VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec1);
|
Codec1VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec1);
|
||||||
Codec2VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec2);
|
Codec2VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec2);
|
||||||
}
|
}
|
||||||
else if (card is Card.Dmps3Aux1Output)
|
else if (card is Card.Dmps3Aux1Output)
|
||||||
{
|
{
|
||||||
|
MasterVolumeLevel = new DmpsAudioOutputWithMixer(card, eDmpsLevelType.Master, (card as Card.Dmps3Aux1Output).OutputMixer);
|
||||||
|
SourceVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Source);
|
||||||
|
MicsMasterVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.MicsMaster);
|
||||||
Codec2VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec2);
|
Codec2VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec2);
|
||||||
}
|
}
|
||||||
else if (card is Card.Dmps3Aux2Output)
|
else if (card is Card.Dmps3Aux2Output)
|
||||||
{
|
{
|
||||||
|
MasterVolumeLevel = new DmpsAudioOutputWithMixer(card, eDmpsLevelType.Master, (card as Card.Dmps3Aux2Output).OutputMixer);
|
||||||
|
SourceVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Source);
|
||||||
|
MicsMasterVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.MicsMaster);
|
||||||
Codec1VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec1);
|
Codec1VolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Codec1);
|
||||||
}
|
}
|
||||||
|
else //Digital Outputs
|
||||||
|
{
|
||||||
|
MasterVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Master);
|
||||||
|
SourceVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.Source);
|
||||||
|
MicsMasterVolumeLevel = new DmpsAudioOutput(card, eDmpsLevelType.MicsMaster);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseDevice_DMOutputChange(Switch device, DMOutputEventArgs args)
|
void BaseDevice_DMOutputChange(Switch device, DMOutputEventArgs args)
|
||||||
{
|
{
|
||||||
|
Debug.Console(2, this, "Dmps Audio Controller Event Output: {0} EventId: {1}", args.Number, args.EventId.ToString());
|
||||||
switch (args.EventId)
|
switch (args.EventId)
|
||||||
{
|
{
|
||||||
|
case DMOutputEventIds.OutputVuFeedBackEventId:
|
||||||
|
{
|
||||||
|
//Frequently called event that isn't needed
|
||||||
|
return;
|
||||||
|
}
|
||||||
case DMOutputEventIds.MasterVolumeFeedBackEventId:
|
case DMOutputEventIds.MasterVolumeFeedBackEventId:
|
||||||
{
|
{
|
||||||
MasterVolumeLevel.VolumeLevelFeedback.FireUpdate();
|
MasterVolumeLevel.VolumeLevelFeedback.FireUpdate();
|
||||||
break;
|
MasterVolumeLevel.VolumeLevelScaledFeedback.FireUpdate();
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
case DMOutputEventIds.MasterMuteOnFeedBackEventId:
|
case DMOutputEventIds.MasterMuteOnFeedBackEventId:
|
||||||
{
|
{
|
||||||
MasterVolumeLevel.MuteFeedback.FireUpdate();
|
MasterVolumeLevel.MuteFeedback.FireUpdate();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DMOutputEventIds.SourceLevelFeedBackEventId:
|
case DMOutputEventIds.SourceLevelFeedBackEventId:
|
||||||
{
|
{
|
||||||
SourceVolumeLevel.VolumeLevelFeedback.FireUpdate();
|
SourceVolumeLevel.VolumeLevelFeedback.FireUpdate();
|
||||||
break;
|
SourceVolumeLevel.VolumeLevelScaledFeedback.FireUpdate();
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
case DMOutputEventIds.SourceMuteOnFeedBackEventId:
|
||||||
|
{
|
||||||
|
SourceVolumeLevel.MuteFeedback.FireUpdate();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DMOutputEventIds.MicMasterLevelFeedBackEventId:
|
||||||
|
{
|
||||||
|
MicsMasterVolumeLevel.VolumeLevelFeedback.FireUpdate();
|
||||||
|
MicsMasterVolumeLevel.VolumeLevelScaledFeedback.FireUpdate();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DMOutputEventIds.MicMasterMuteOnFeedBackEventId:
|
||||||
|
{
|
||||||
|
MicsMasterVolumeLevel.MuteFeedback.FireUpdate();
|
||||||
|
break;
|
||||||
|
}
|
||||||
case DMOutputEventIds.Codec1LevelFeedBackEventId:
|
case DMOutputEventIds.Codec1LevelFeedBackEventId:
|
||||||
{
|
{
|
||||||
if(Codec1VolumeLevel != null)
|
if (Codec1VolumeLevel != null)
|
||||||
Codec1VolumeLevel.VolumeLevelFeedback.FireUpdate();
|
{
|
||||||
break;
|
Codec1VolumeLevel.VolumeLevelFeedback.FireUpdate();
|
||||||
}
|
Codec1VolumeLevel.VolumeLevelScaledFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case DMOutputEventIds.Codec1MuteOnFeedBackEventId:
|
case DMOutputEventIds.Codec1MuteOnFeedBackEventId:
|
||||||
{
|
{
|
||||||
if (Codec1VolumeLevel != null)
|
if (Codec1VolumeLevel != null)
|
||||||
Codec1VolumeLevel.MuteFeedback.FireUpdate();
|
Codec1VolumeLevel.MuteFeedback.FireUpdate();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DMOutputEventIds.Codec2LevelFeedBackEventId:
|
case DMOutputEventIds.Codec2LevelFeedBackEventId:
|
||||||
{
|
{
|
||||||
if (Codec2VolumeLevel != null)
|
if (Codec2VolumeLevel != null)
|
||||||
Codec2VolumeLevel.VolumeLevelFeedback.FireUpdate();
|
{
|
||||||
break;
|
Codec2VolumeLevel.VolumeLevelFeedback.FireUpdate();
|
||||||
}
|
Codec2VolumeLevel.VolumeLevelScaledFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case DMOutputEventIds.Codec2MuteOnFeedBackEventId:
|
case DMOutputEventIds.Codec2MuteOnFeedBackEventId:
|
||||||
{
|
{
|
||||||
if (Codec2VolumeLevel != null)
|
if (Codec2VolumeLevel != null)
|
||||||
Codec2VolumeLevel.MuteFeedback.FireUpdate();
|
Codec2VolumeLevel.MuteFeedback.FireUpdate();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case DMOutputEventIds.MinVolumeFeedBackEventId:
|
||||||
|
{
|
||||||
|
Debug.Console(2, this, "MinVolumeFeedBackEventId: {0}", args.Index);
|
||||||
|
var level = MasterVolumeLevel as DmpsAudioOutputWithMixer;
|
||||||
|
if (level != null)
|
||||||
|
{
|
||||||
|
level.GetVolumeMin();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case DMOutputEventIds.MaxVolumeFeedBackEventId:
|
||||||
|
{
|
||||||
|
Debug.Console(2, this, "MaxVolumeFeedBackEventId: {0}", args.Index);
|
||||||
|
var level = MasterVolumeLevel as DmpsAudioOutputWithMixer;
|
||||||
|
if (level != null)
|
||||||
|
{
|
||||||
|
level.GetVolumeMax();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||||
{
|
{
|
||||||
var joinMap = new DmpsAudioOutputControllerJoinMap(joinStart);
|
var joinMap = new DmpsAudioOutputControllerJoinMap(joinStart);
|
||||||
|
|
||||||
var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey);
|
if (bridge != null)
|
||||||
|
{
|
||||||
if (!string.IsNullOrEmpty(joinMapSerialized))
|
bridge.AddJoinMap(Key, joinMap);
|
||||||
joinMap = JsonConvert.DeserializeObject<DmpsAudioOutputControllerJoinMap>(joinMapSerialized);
|
}
|
||||||
|
else
|
||||||
if (bridge != null)
|
{
|
||||||
{
|
Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device.");
|
||||||
bridge.AddJoinMap(Key, joinMap);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
||||||
@@ -125,6 +180,11 @@ namespace PepperDash.Essentials.DM
|
|||||||
if (MasterVolumeLevel != null)
|
if (MasterVolumeLevel != null)
|
||||||
{
|
{
|
||||||
SetUpDmpsAudioOutputJoins(trilist, MasterVolumeLevel, joinMap.MasterVolumeLevel.JoinNumber);
|
SetUpDmpsAudioOutputJoins(trilist, MasterVolumeLevel, joinMap.MasterVolumeLevel.JoinNumber);
|
||||||
|
var mixer = MasterVolumeLevel as DmpsAudioOutputWithMixer;
|
||||||
|
if (mixer != null)
|
||||||
|
{
|
||||||
|
trilist.SetUShortSigAction(joinMap.MixerPresetRecall.JoinNumber, mixer.RecallPreset);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SourceVolumeLevel != null)
|
if (SourceVolumeLevel != null)
|
||||||
@@ -132,6 +192,11 @@ namespace PepperDash.Essentials.DM
|
|||||||
SetUpDmpsAudioOutputJoins(trilist, SourceVolumeLevel, joinMap.SourceVolumeLevel.JoinNumber);
|
SetUpDmpsAudioOutputJoins(trilist, SourceVolumeLevel, joinMap.SourceVolumeLevel.JoinNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (MicsMasterVolumeLevel != null)
|
||||||
|
{
|
||||||
|
SetUpDmpsAudioOutputJoins(trilist, MicsMasterVolumeLevel, joinMap.MicsMasterVolumeLevel.JoinNumber);
|
||||||
|
}
|
||||||
|
|
||||||
if (Codec1VolumeLevel != null)
|
if (Codec1VolumeLevel != null)
|
||||||
{
|
{
|
||||||
SetUpDmpsAudioOutputJoins(trilist, Codec1VolumeLevel, joinMap.Codec1VolumeLevel.JoinNumber);
|
SetUpDmpsAudioOutputJoins(trilist, Codec1VolumeLevel, joinMap.Codec1VolumeLevel.JoinNumber);
|
||||||
@@ -141,20 +206,20 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
SetUpDmpsAudioOutputJoins(trilist, Codec2VolumeLevel, joinMap.Codec2VolumeLevel.JoinNumber);
|
SetUpDmpsAudioOutputJoins(trilist, Codec2VolumeLevel, joinMap.Codec2VolumeLevel.JoinNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SetUpDmpsAudioOutputJoins(BasicTriList trilist, DmpsAudioOutput output, uint joinStart)
|
static void SetUpDmpsAudioOutputJoins(BasicTriList trilist, DmpsAudioOutput output, uint joinStart)
|
||||||
{
|
{
|
||||||
var volumeLevelJoin = joinStart;
|
var volumeLevelJoin = joinStart;
|
||||||
|
var volumeLevelScaledJoin = joinStart + 1;
|
||||||
var muteOnJoin = joinStart;
|
var muteOnJoin = joinStart;
|
||||||
var muteOffJoin = joinStart + 1;
|
var muteOffJoin = joinStart + 1;
|
||||||
var volumeUpJoin = joinStart + 2;
|
var volumeUpJoin = joinStart + 2;
|
||||||
var volumeDownJoin = joinStart + 3;
|
var volumeDownJoin = joinStart + 3;
|
||||||
|
var sendScaledVolumeJoin = joinStart + 4;
|
||||||
|
|
||||||
|
|
||||||
trilist.SetUShortSigAction(volumeLevelJoin, output.SetVolume);
|
|
||||||
output.VolumeLevelFeedback.LinkInputSig(trilist.UShortInput[volumeLevelJoin]);
|
output.VolumeLevelFeedback.LinkInputSig(trilist.UShortInput[volumeLevelJoin]);
|
||||||
|
output.VolumeLevelScaledFeedback.LinkInputSig(trilist.UShortInput[volumeLevelScaledJoin]);
|
||||||
|
|
||||||
trilist.SetSigTrueAction(muteOnJoin, output.MuteOn);
|
trilist.SetSigTrueAction(muteOnJoin, output.MuteOn);
|
||||||
output.MuteFeedback.LinkInputSig(trilist.BooleanInput[muteOnJoin]);
|
output.MuteFeedback.LinkInputSig(trilist.BooleanInput[muteOnJoin]);
|
||||||
@@ -163,30 +228,78 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
trilist.SetBoolSigAction(volumeUpJoin, output.VolumeUp);
|
trilist.SetBoolSigAction(volumeUpJoin, output.VolumeUp);
|
||||||
trilist.SetBoolSigAction(volumeDownJoin, output.VolumeDown);
|
trilist.SetBoolSigAction(volumeDownJoin, output.VolumeDown);
|
||||||
|
trilist.SetBoolSigAction(sendScaledVolumeJoin, output.SendScaledVolume);
|
||||||
|
trilist.SetUShortSigAction(volumeLevelJoin, output.SetVolume);
|
||||||
|
trilist.SetUShortSigAction(volumeLevelScaledJoin, output.SetVolumeScaled);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DmpsAudioOutputWithMixer : DmpsAudioOutput
|
||||||
|
{
|
||||||
|
CrestronControlSystem.Dmps3OutputMixerWithMonoAndStereo Mixer;
|
||||||
|
|
||||||
|
public DmpsAudioOutputWithMixer(Card.Dmps3OutputBase output, eDmpsLevelType type, CrestronControlSystem.Dmps3OutputMixerWithMonoAndStereo mixer)
|
||||||
|
: base(output, type)
|
||||||
|
{
|
||||||
|
Mixer = mixer;
|
||||||
|
GetVolumeMax();
|
||||||
|
GetVolumeMin();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GetVolumeMin()
|
||||||
|
{
|
||||||
|
MinLevel = (short)Mixer.MinVolumeFeedback.UShortValue;
|
||||||
|
if (VolumeLevelScaledFeedback != null)
|
||||||
|
{
|
||||||
|
VolumeLevelScaledFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GetVolumeMax()
|
||||||
|
{
|
||||||
|
MaxLevel = (short)Mixer.MaxVolumeFeedback.UShortValue;
|
||||||
|
if (VolumeLevelScaledFeedback != null)
|
||||||
|
{
|
||||||
|
VolumeLevelScaledFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RecallPreset(ushort preset)
|
||||||
|
{
|
||||||
|
Debug.Console(1, "DMPS Recalling Preset {0}", preset);
|
||||||
|
Mixer.PresetNumber.UShortValue = preset;
|
||||||
|
Mixer.RecallPreset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class DmpsAudioOutput : IBasicVolumeWithFeedback
|
public class DmpsAudioOutput : IBasicVolumeWithFeedback
|
||||||
{
|
{
|
||||||
Card.Dmps3OutputBase Output;
|
Card.Dmps3OutputBase Output;
|
||||||
|
eDmpsLevelType Type;
|
||||||
UShortInputSig Level;
|
UShortInputSig Level;
|
||||||
|
|
||||||
eDmpsLevelType Type;
|
private bool EnableVolumeSend;
|
||||||
|
private ushort VolumeLevelInput;
|
||||||
|
protected short MinLevel { get; set; }
|
||||||
|
protected short MaxLevel { get; set; }
|
||||||
|
|
||||||
public BoolFeedback MuteFeedback { get; private set; }
|
public BoolFeedback MuteFeedback { get; private set; }
|
||||||
public IntFeedback VolumeLevelFeedback { get; private set; }
|
public IntFeedback VolumeLevelFeedback { get; private set; }
|
||||||
|
public IntFeedback VolumeLevelScaledFeedback { get; private set; }
|
||||||
|
|
||||||
Action MuteOnAction;
|
Action MuteOnAction;
|
||||||
Action MuteOffAction;
|
Action MuteOffAction;
|
||||||
Action<bool> VolumeUpAction;
|
Action<bool> VolumeUpAction;
|
||||||
Action<bool> VolumeDownAction;
|
Action<bool> VolumeDownAction;
|
||||||
|
|
||||||
public DmpsAudioOutput(Card.Dmps3OutputBase output, eDmpsLevelType type)
|
public DmpsAudioOutput(Card.Dmps3OutputBase output, eDmpsLevelType type)
|
||||||
{
|
{
|
||||||
Output = output;
|
Output = output;
|
||||||
|
VolumeLevelInput = 0;
|
||||||
|
EnableVolumeSend = false;
|
||||||
Type = type;
|
Type = type;
|
||||||
|
MinLevel = -800;
|
||||||
|
MaxLevel = 100;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
@@ -194,14 +307,12 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
Level = output.MasterVolume;
|
Level = output.MasterVolume;
|
||||||
|
|
||||||
MuteFeedback = new BoolFeedback( new Func<bool> (() => Output.MasterMuteOnFeedBack.BoolValue));
|
MuteFeedback = new BoolFeedback(new Func<bool>(() => Output.MasterMuteOnFeedBack.BoolValue));
|
||||||
VolumeLevelFeedback = new IntFeedback(new Func<int>(() => Output.MasterVolumeFeedBack.UShortValue));
|
VolumeLevelFeedback = new IntFeedback(new Func<int>(() => Output.MasterVolumeFeedBack.UShortValue));
|
||||||
MuteOnAction = new Action(Output.MasterMuteOn);
|
MuteOnAction = new Action(Output.MasterMuteOn);
|
||||||
MuteOffAction = new Action(Output.MasterMuteOff);
|
MuteOffAction = new Action(Output.MasterMuteOff);
|
||||||
VolumeUpAction = new Action<bool>((b) => Output.MasterVolumeUp.BoolValue = b);
|
VolumeUpAction = new Action<bool>((b) => Output.MasterVolumeUp.BoolValue = b);
|
||||||
VolumeDownAction = new Action<bool>((b) => Output.MasterVolumeDown.BoolValue = b);
|
VolumeDownAction = new Action<bool>((b) => Output.MasterVolumeDown.BoolValue = b);
|
||||||
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case eDmpsLevelType.MicsMaster:
|
case eDmpsLevelType.MicsMaster:
|
||||||
@@ -214,7 +325,6 @@ namespace PepperDash.Essentials.DM
|
|||||||
MuteOffAction = new Action(Output.MicMasterMuteOff);
|
MuteOffAction = new Action(Output.MicMasterMuteOff);
|
||||||
VolumeUpAction = new Action<bool>((b) => Output.MicMasterLevelUp.BoolValue = b);
|
VolumeUpAction = new Action<bool>((b) => Output.MicMasterLevelUp.BoolValue = b);
|
||||||
VolumeDownAction = new Action<bool>((b) => Output.MicMasterLevelDown.BoolValue = b);
|
VolumeDownAction = new Action<bool>((b) => Output.MicMasterLevelDown.BoolValue = b);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case eDmpsLevelType.Source:
|
case eDmpsLevelType.Source:
|
||||||
@@ -243,7 +353,6 @@ namespace PepperDash.Essentials.DM
|
|||||||
MuteOffAction = new Action(programOutput.Codec1MuteOff);
|
MuteOffAction = new Action(programOutput.Codec1MuteOff);
|
||||||
VolumeUpAction = new Action<bool>((b) => programOutput.Codec1LevelUp.BoolValue = b);
|
VolumeUpAction = new Action<bool>((b) => programOutput.Codec1LevelUp.BoolValue = b);
|
||||||
VolumeDownAction = new Action<bool>((b) => programOutput.Codec1LevelDown.BoolValue = b);
|
VolumeDownAction = new Action<bool>((b) => programOutput.Codec1LevelDown.BoolValue = b);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -274,7 +383,6 @@ namespace PepperDash.Essentials.DM
|
|||||||
MuteOffAction = new Action(programOutput.Codec2MuteOff);
|
MuteOffAction = new Action(programOutput.Codec2MuteOff);
|
||||||
VolumeUpAction = new Action<bool>((b) => programOutput.Codec2LevelUp.BoolValue = b);
|
VolumeUpAction = new Action<bool>((b) => programOutput.Codec2LevelUp.BoolValue = b);
|
||||||
VolumeDownAction = new Action<bool>((b) => programOutput.Codec2LevelDown.BoolValue = b);
|
VolumeDownAction = new Action<bool>((b) => programOutput.Codec2LevelDown.BoolValue = b);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -292,7 +400,38 @@ namespace PepperDash.Essentials.DM
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (VolumeLevelFeedback != null)
|
||||||
|
{
|
||||||
|
VolumeLevelScaledFeedback = new IntFeedback(new Func<int>(() => ScaleVolumeFeedback(VolumeLevelFeedback.UShortValue)));
|
||||||
|
VolumeLevelFeedback.FireUpdate();
|
||||||
|
VolumeLevelScaledFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetVolumeScaled(ushort level)
|
||||||
|
{
|
||||||
|
Debug.Console(2, Debug.ErrorLogLevel.None, "Scaling DMPS volume:{0} level:{1} min:{2} max:{3}", Output.Name, level.ToString(), MinLevel.ToString(), MaxLevel.ToString());
|
||||||
|
VolumeLevelInput = (ushort)(level * (MaxLevel - MinLevel) / ushort.MaxValue + MinLevel);
|
||||||
|
if (EnableVolumeSend == true)
|
||||||
|
{
|
||||||
|
Level.UShortValue = VolumeLevelInput;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ushort ScaleVolumeFeedback(ushort level)
|
||||||
|
{
|
||||||
|
short signedLevel = (short)level;
|
||||||
|
Debug.Console(2, Debug.ErrorLogLevel.None, "Scaling DMPS volume:{0} feedback:{1} min:{2} max:{3}", Output.Name, signedLevel.ToString(), MinLevel.ToString(), MaxLevel.ToString());
|
||||||
|
return (ushort)((signedLevel - MinLevel) * ushort.MaxValue / (MaxLevel - MinLevel));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SendScaledVolume(bool pressRelease)
|
||||||
|
{
|
||||||
|
EnableVolumeSend = pressRelease;
|
||||||
|
if (pressRelease == false)
|
||||||
|
{
|
||||||
|
SetVolumeScaled(VolumeLevelInput);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region IBasicVolumeWithFeedback Members
|
#region IBasicVolumeWithFeedback Members
|
||||||
|
|||||||
@@ -0,0 +1,192 @@
|
|||||||
|
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;
|
||||||
|
using PepperDash.Essentials.Core;
|
||||||
|
using PepperDash.Essentials.Core.Bridges;
|
||||||
|
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.DM
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Exposes the volume levels for microphones DMPS3 chassis
|
||||||
|
/// </summary>
|
||||||
|
public class DmpsMicrophoneController
|
||||||
|
{
|
||||||
|
private Dictionary<uint, DmpsMicrophone> Mics;
|
||||||
|
|
||||||
|
public DmpsMicrophoneController(CrestronControlSystem dmps)
|
||||||
|
{
|
||||||
|
Debug.Console(2, "Creating Dmps Microphone Controller");
|
||||||
|
Mics = new Dictionary<uint,DmpsMicrophone>();
|
||||||
|
|
||||||
|
foreach (var mic in dmps.Microphones)
|
||||||
|
{
|
||||||
|
Debug.Console(0, "Dmps Microphone Controller Adding Mic: {0} Name: {1}", mic.ID, mic.Name);
|
||||||
|
var dmpsMic = new DmpsMicrophone("processor-microphone" + mic.ID, mic.Name, mic);
|
||||||
|
|
||||||
|
DeviceManager.AddDevice(dmpsMic);
|
||||||
|
Mics.Add(mic.ID, dmpsMic);
|
||||||
|
}
|
||||||
|
|
||||||
|
dmps.MicrophoneChange += new MicrophoneChangeEventHandler(Dmps_MicrophoneChange);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Dmps_MicrophoneChange(MicrophoneBase mic, GenericEventArgs args)
|
||||||
|
{
|
||||||
|
Debug.Console(2, "Dmps Microphone Controller Index: {0} EventId: {1}", mic.ID, args.EventId.ToString());
|
||||||
|
|
||||||
|
if(Mics.ContainsKey(mic.ID))
|
||||||
|
{
|
||||||
|
Mics[mic.ID].Event(args.EventId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DmpsMicrophone : EssentialsBridgeableDevice, IBasicVolumeWithFeedback
|
||||||
|
{
|
||||||
|
MicrophoneBase Mic;
|
||||||
|
|
||||||
|
private bool EnableVolumeSend;
|
||||||
|
private ushort VolumeLevelInput;
|
||||||
|
protected short MinLevel { get; set; }
|
||||||
|
protected short MaxLevel { get; set; }
|
||||||
|
|
||||||
|
public BoolFeedback MuteFeedback { get; private set; }
|
||||||
|
public IntFeedback VolumeLevelFeedback { get; private set; }
|
||||||
|
public IntFeedback VolumeLevelScaledFeedback { get; private set; }
|
||||||
|
public StringFeedback NameFeedback { get; private set; }
|
||||||
|
|
||||||
|
Action MuteOnAction;
|
||||||
|
Action MuteOffAction;
|
||||||
|
|
||||||
|
public DmpsMicrophone(string key, string name, MicrophoneBase mic) : base(key, name)
|
||||||
|
{
|
||||||
|
Mic = mic;
|
||||||
|
VolumeLevelInput = 0;
|
||||||
|
EnableVolumeSend = false;
|
||||||
|
MinLevel = 0;
|
||||||
|
MaxLevel = 600;
|
||||||
|
|
||||||
|
MuteFeedback = new BoolFeedback(new Func<bool>(() => Mic.MuteOnFeedBack.BoolValue));
|
||||||
|
VolumeLevelFeedback = new IntFeedback(new Func<int>(() => Mic.GainFeedBack.UShortValue));
|
||||||
|
VolumeLevelScaledFeedback = new IntFeedback(new Func<int>(() => ScaleVolumeFeedback(VolumeLevelFeedback.UShortValue)));
|
||||||
|
NameFeedback = new StringFeedback(new Func<string>(() => "Microphone " + Mic.ID));
|
||||||
|
MuteOnAction = new Action(Mic.MuteOn);
|
||||||
|
MuteOffAction = new Action(Mic.MuteOff);
|
||||||
|
|
||||||
|
VolumeLevelFeedback.FireUpdate();
|
||||||
|
VolumeLevelScaledFeedback.FireUpdate();
|
||||||
|
NameFeedback.FireUpdate();
|
||||||
|
MuteFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||||
|
{
|
||||||
|
var joinMap = new DmpsMicrophoneControllerJoinMap(joinStart);
|
||||||
|
|
||||||
|
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.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
||||||
|
|
||||||
|
VolumeLevelFeedback.LinkInputSig(trilist.UShortInput[joinMap.MicGain.JoinNumber]);
|
||||||
|
VolumeLevelScaledFeedback.LinkInputSig(trilist.UShortInput[joinMap.MicGainScaled.JoinNumber ]);
|
||||||
|
MuteFeedback.LinkInputSig(trilist.BooleanInput[joinMap.MicMuteOn.JoinNumber]);
|
||||||
|
MuteFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.MicMuteOff.JoinNumber]);
|
||||||
|
NameFeedback.LinkInputSig(trilist.StringInput[joinMap.MicName.JoinNumber]);
|
||||||
|
|
||||||
|
trilist.SetUShortSigAction(joinMap.MicGain.JoinNumber, SetVolume);
|
||||||
|
trilist.SetUShortSigAction(joinMap.MicGainScaled.JoinNumber, SetVolumeScaled);
|
||||||
|
trilist.SetBoolSigAction(joinMap.MicGainScaledSend.JoinNumber, SendScaledVolume);
|
||||||
|
trilist.SetSigTrueAction(joinMap.MicMuteOn.JoinNumber, MuteOnAction);
|
||||||
|
trilist.SetSigTrueAction(joinMap.MicMuteOff.JoinNumber, MuteOffAction);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Event(int id)
|
||||||
|
{
|
||||||
|
if (id == MicrophoneEventIds.MuteOnFeedBackEventId)
|
||||||
|
{
|
||||||
|
MuteFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
else if (id == MicrophoneEventIds.GainFeedBackEventId)
|
||||||
|
{
|
||||||
|
VolumeLevelFeedback.FireUpdate();
|
||||||
|
VolumeLevelScaledFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetVolumeScaled(ushort level)
|
||||||
|
{
|
||||||
|
VolumeLevelInput = (ushort)(level * (MaxLevel - MinLevel) / ushort.MaxValue + MinLevel);
|
||||||
|
if (EnableVolumeSend == true)
|
||||||
|
{
|
||||||
|
Mic.Gain.UShortValue = VolumeLevelInput;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ushort ScaleVolumeFeedback(ushort level)
|
||||||
|
{
|
||||||
|
short signedLevel = (short)level;
|
||||||
|
return (ushort)((signedLevel - MinLevel) * ushort.MaxValue / (MaxLevel - MinLevel));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SendScaledVolume(bool pressRelease)
|
||||||
|
{
|
||||||
|
EnableVolumeSend = pressRelease;
|
||||||
|
if (pressRelease == false)
|
||||||
|
{
|
||||||
|
SetVolumeScaled(VolumeLevelInput);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region IBasicVolumeWithFeedback Members
|
||||||
|
|
||||||
|
public void SetVolume(ushort level)
|
||||||
|
{
|
||||||
|
Mic.Gain.UShortValue = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MuteOn()
|
||||||
|
{
|
||||||
|
MuteOnAction();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MuteOff()
|
||||||
|
{
|
||||||
|
MuteOffAction();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region IBasicVolumeControls Members
|
||||||
|
|
||||||
|
public void VolumeUp(bool pressRelease)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void VolumeDown(bool pressRelease)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MuteToggle()
|
||||||
|
{
|
||||||
|
if (MuteFeedback.BoolValue)
|
||||||
|
MuteOff();
|
||||||
|
else
|
||||||
|
MuteOn();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
public CrestronControlSystem Dmps { get; set; }
|
public CrestronControlSystem Dmps { get; set; }
|
||||||
public ISystemControl SystemControl { get; private set; }
|
public ISystemControl SystemControl { get; private set; }
|
||||||
|
public bool? EnableRouting { get; private set; }
|
||||||
|
|
||||||
//Check if DMPS is a DMPS3-4K type for endpoint creation
|
//Check if DMPS is a DMPS3-4K type for endpoint creation
|
||||||
public bool Dmps4kType { get; private set; }
|
public bool Dmps4kType { get; private set; }
|
||||||
@@ -32,9 +33,11 @@ namespace PepperDash.Essentials.DM
|
|||||||
//IroutingNumericEvent
|
//IroutingNumericEvent
|
||||||
public event EventHandler<RoutingNumericEventArgs> NumericSwitchChange;
|
public event EventHandler<RoutingNumericEventArgs> NumericSwitchChange;
|
||||||
|
|
||||||
//Feedback for DMPS System Power
|
//Feedback for DMPS System Control
|
||||||
public BoolFeedback SystemPowerOnFeedback { get; private set; }
|
public BoolFeedback SystemPowerOnFeedback { get; private set; }
|
||||||
public BoolFeedback SystemPowerOffFeedback { get; private set; }
|
public BoolFeedback SystemPowerOffFeedback { get; private set; }
|
||||||
|
public BoolFeedback FrontPanelLockOnFeedback { get; private set; }
|
||||||
|
public BoolFeedback FrontPanelLockOffFeedback { get; private set; }
|
||||||
|
|
||||||
// Feedbacks for EssentialDM
|
// Feedbacks for EssentialDM
|
||||||
public Dictionary<uint, IntFeedback> VideoOutputFeedbacks { get; private set; }
|
public Dictionary<uint, IntFeedback> VideoOutputFeedbacks { get; private set; }
|
||||||
@@ -59,6 +62,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
public Dictionary<uint, string> InputNames { get; set; }
|
public Dictionary<uint, string> InputNames { get; set; }
|
||||||
public Dictionary<uint, string> OutputNames { get; set; }
|
public Dictionary<uint, string> OutputNames { get; set; }
|
||||||
public Dictionary<uint, DmCardAudioOutputController> VolumeControls { get; private set; }
|
public Dictionary<uint, DmCardAudioOutputController> VolumeControls { get; private set; }
|
||||||
|
public DmpsMicrophoneController Microphones { get; private set; }
|
||||||
|
|
||||||
public const int RouteOffTime = 500;
|
public const int RouteOffTime = 500;
|
||||||
Dictionary<PortNumberType, CTimer> RouteOffTimers = new Dictionary<PortNumberType, CTimer>();
|
Dictionary<PortNumberType, CTimer> RouteOffTimers = new Dictionary<PortNumberType, CTimer>();
|
||||||
@@ -122,26 +126,37 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
Dmps = Global.ControlSystem;
|
Dmps = Global.ControlSystem;
|
||||||
|
|
||||||
switch (name.Replace("-", "").Replace("c", "").Replace("C", ""))
|
switch (systemControl.SystemControlType)
|
||||||
{
|
{
|
||||||
case "dmps34k50":
|
case eSystemControlType.Dmps34K150CSystemControl:
|
||||||
case "dmps34k100":
|
|
||||||
case "dmps34k150":
|
|
||||||
SystemControl = systemControl as Dmps34K150CSystemControl;
|
SystemControl = systemControl as Dmps34K150CSystemControl;
|
||||||
Dmps4kType = true;
|
Dmps4kType = true;
|
||||||
|
SystemPowerOnFeedback = new BoolFeedback(() => { return true; });
|
||||||
|
SystemPowerOffFeedback = new BoolFeedback(() => { return false; });
|
||||||
break;
|
break;
|
||||||
case "dmps34k200":
|
case eSystemControlType.Dmps34K200CSystemControl:
|
||||||
case "dmps34k250":
|
case eSystemControlType.Dmps34K250CSystemControl:
|
||||||
case "dmps34k300":
|
case eSystemControlType.Dmps34K300CSystemControl:
|
||||||
case "dmps34k350":
|
case eSystemControlType.Dmps34K350CSystemControl:
|
||||||
SystemControl = systemControl as Dmps34K300CSystemControl;
|
SystemControl = systemControl as Dmps34K300CSystemControl;
|
||||||
Dmps4kType = true;
|
Dmps4kType = true;
|
||||||
|
SystemPowerOnFeedback = new BoolFeedback(() => { return true; });
|
||||||
|
SystemPowerOffFeedback = new BoolFeedback(() => { return false; });
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SystemControl = systemControl as Dmps3SystemControl;
|
SystemControl = systemControl as Dmps3SystemControl;
|
||||||
Dmps4kType = false;
|
Dmps4kType = false;
|
||||||
|
SystemPowerOnFeedback = new BoolFeedback(() =>
|
||||||
|
{
|
||||||
|
return ((Dmps3SystemControl)SystemControl).SystemPowerOnFeedBack.BoolValue;
|
||||||
|
});
|
||||||
|
SystemPowerOffFeedback = new BoolFeedback(() =>
|
||||||
|
{
|
||||||
|
return ((Dmps3SystemControl)SystemControl).SystemPowerOffFeedBack.BoolValue;
|
||||||
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Debug.Console(1, this, "DMPS Type = {0}, 4K Type = {1}", systemControl.SystemControlType, Dmps4kType);
|
||||||
|
|
||||||
InputPorts = new RoutingPortCollection<RoutingInputPort>();
|
InputPorts = new RoutingPortCollection<RoutingInputPort>();
|
||||||
OutputPorts = new RoutingPortCollection<RoutingOutputPort>();
|
OutputPorts = new RoutingPortCollection<RoutingOutputPort>();
|
||||||
@@ -149,27 +164,13 @@ namespace PepperDash.Essentials.DM
|
|||||||
TxDictionary = new Dictionary<uint, string>();
|
TxDictionary = new Dictionary<uint, string>();
|
||||||
RxDictionary = new Dictionary<uint, string>();
|
RxDictionary = new Dictionary<uint, string>();
|
||||||
|
|
||||||
SystemPowerOnFeedback = new BoolFeedback(() =>
|
FrontPanelLockOnFeedback = new BoolFeedback(() =>
|
||||||
{
|
{
|
||||||
if (SystemControl is Dmps3SystemControl)
|
return SystemControl.FrontPanelLockOnFeedback.BoolValue;
|
||||||
{
|
|
||||||
return ((Dmps3SystemControl)SystemControl).SystemPowerOnFeedBack.BoolValue;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
SystemPowerOffFeedback = new BoolFeedback(() =>
|
FrontPanelLockOffFeedback = new BoolFeedback(() =>
|
||||||
{
|
{
|
||||||
if (SystemControl is Dmps3SystemControl)
|
return SystemControl.FrontPanelLockOffFeedback.BoolValue;
|
||||||
{
|
|
||||||
return ((Dmps3SystemControl)SystemControl).SystemPowerOffFeedBack.BoolValue;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
VideoOutputFeedbacks = new Dictionary<uint, IntFeedback>();
|
VideoOutputFeedbacks = new Dictionary<uint, IntFeedback>();
|
||||||
@@ -191,6 +192,8 @@ namespace PepperDash.Essentials.DM
|
|||||||
SetupOutputCards();
|
SetupOutputCards();
|
||||||
|
|
||||||
SetupInputCards();
|
SetupInputCards();
|
||||||
|
|
||||||
|
Microphones = new DmpsMicrophoneController(Dmps);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CustomActivate()
|
public override bool CustomActivate()
|
||||||
@@ -204,6 +207,41 @@ namespace PepperDash.Essentials.DM
|
|||||||
Dmps.DMInputChange += Dmps_DMInputChange;
|
Dmps.DMInputChange += Dmps_DMInputChange;
|
||||||
Dmps.DMOutputChange += Dmps_DMOutputChange;
|
Dmps.DMOutputChange += Dmps_DMOutputChange;
|
||||||
Dmps.DMSystemChange += Dmps_DMSystemChange;
|
Dmps.DMSystemChange += Dmps_DMSystemChange;
|
||||||
|
|
||||||
|
foreach (var x in VideoOutputFeedbacks)
|
||||||
|
{
|
||||||
|
x.Value.FireUpdate();
|
||||||
|
}
|
||||||
|
foreach (var x in AudioOutputFeedbacks)
|
||||||
|
{
|
||||||
|
x.Value.FireUpdate();
|
||||||
|
}
|
||||||
|
foreach (var x in VideoInputSyncFeedbacks)
|
||||||
|
{
|
||||||
|
x.Value.FireUpdate();
|
||||||
|
}
|
||||||
|
foreach (var x in InputEndpointOnlineFeedbacks)
|
||||||
|
{
|
||||||
|
x.Value.FireUpdate();
|
||||||
|
}
|
||||||
|
foreach (var x in InputNameFeedbacks)
|
||||||
|
{
|
||||||
|
x.Value.FireUpdate();
|
||||||
|
}
|
||||||
|
foreach (var x in OutputNameFeedbacks)
|
||||||
|
{
|
||||||
|
x.Value.FireUpdate();
|
||||||
|
}
|
||||||
|
foreach (var x in OutputEndpointOnlineFeedbacks)
|
||||||
|
{
|
||||||
|
x.Value.FireUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
SystemPowerOnFeedback.FireUpdate();
|
||||||
|
SystemPowerOffFeedback.FireUpdate();
|
||||||
|
|
||||||
|
FrontPanelLockOnFeedback.FireUpdate();
|
||||||
|
FrontPanelLockOffFeedback.FireUpdate();
|
||||||
|
|
||||||
return base.CustomActivate();
|
return base.CustomActivate();
|
||||||
}
|
}
|
||||||
@@ -241,20 +279,10 @@ namespace PepperDash.Essentials.DM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetPowerOn(bool a)
|
public void SetRoutingEnable(bool enable)
|
||||||
{
|
{
|
||||||
if (SystemControl is Dmps3SystemControl)
|
CrestronEnvironment.Sleep(1000);
|
||||||
{
|
EnableRouting = enable;
|
||||||
((Dmps3SystemControl)SystemControl).SystemPowerOn();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetPowerOff(bool a)
|
|
||||||
{
|
|
||||||
if (SystemControl is Dmps3SystemControl)
|
|
||||||
{
|
|
||||||
((Dmps3SystemControl)SystemControl).SystemPowerOff();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
|
||||||
@@ -277,20 +305,24 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
||||||
|
|
||||||
//Link up system
|
//Link up system power only for non-4k DMPS3
|
||||||
trilist.SetBoolSigAction(joinMap.SystemPowerOn.JoinNumber, SetPowerOn);
|
if (SystemControl is Dmps3SystemControl)
|
||||||
trilist.SetBoolSigAction(joinMap.SystemPowerOff.JoinNumber, SetPowerOff);
|
|
||||||
if (SystemPowerOnFeedback != null)
|
|
||||||
{
|
{
|
||||||
SystemPowerOnFeedback.LinkInputSig(
|
trilist.SetBoolSigAction(joinMap.SystemPowerOn.JoinNumber, a => { if (a) { ((Dmps3SystemControl)SystemControl).SystemPowerOn(); } });
|
||||||
trilist.BooleanInput[joinMap.SystemPowerOn.JoinNumber]);
|
trilist.SetBoolSigAction(joinMap.SystemPowerOff.JoinNumber, a => { if (a) { ((Dmps3SystemControl)SystemControl).SystemPowerOff(); } });
|
||||||
}
|
|
||||||
if (SystemPowerOffFeedback != null)
|
|
||||||
{
|
|
||||||
SystemPowerOffFeedback.LinkInputSig(
|
|
||||||
trilist.BooleanInput[joinMap.SystemPowerOff.JoinNumber]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SystemPowerOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.SystemPowerOn.JoinNumber]);
|
||||||
|
SystemPowerOffFeedback.LinkInputSig(trilist.BooleanInput[joinMap.SystemPowerOff.JoinNumber]);
|
||||||
|
|
||||||
|
trilist.SetBoolSigAction(joinMap.FrontPanelLockOn.JoinNumber, a => { if (a) {SystemControl.FrontPanelLockOn();}});
|
||||||
|
trilist.SetBoolSigAction(joinMap.FrontPanelLockOff.JoinNumber, a => { if (a) {SystemControl.FrontPanelLockOff();}});
|
||||||
|
|
||||||
|
FrontPanelLockOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.FrontPanelLockOn.JoinNumber]);
|
||||||
|
FrontPanelLockOffFeedback.LinkInputSig(trilist.BooleanInput[joinMap.FrontPanelLockOff.JoinNumber]);
|
||||||
|
|
||||||
|
trilist.SetBoolSigAction(joinMap.EnableRouting.JoinNumber, SetRoutingEnable);
|
||||||
|
|
||||||
// Link up outputs
|
// Link up outputs
|
||||||
LinkInputsToApi(trilist, joinMap);
|
LinkInputsToApi(trilist, joinMap);
|
||||||
LinkOutputsToApi(trilist, joinMap);
|
LinkOutputsToApi(trilist, joinMap);
|
||||||
@@ -351,6 +383,8 @@ namespace PepperDash.Essentials.DM
|
|||||||
if (OutputNameFeedbacks[ioSlot] != null)
|
if (OutputNameFeedbacks[ioSlot] != null)
|
||||||
{
|
{
|
||||||
OutputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputNames.JoinNumber + ioSlotJoin]);
|
OutputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputNames.JoinNumber + ioSlotJoin]);
|
||||||
|
OutputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputVideoNames.JoinNumber + ioSlotJoin]);
|
||||||
|
OutputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.OutputAudioNames.JoinNumber + ioSlotJoin]);
|
||||||
}
|
}
|
||||||
if (OutputVideoRouteNameFeedbacks[ioSlot] != null)
|
if (OutputVideoRouteNameFeedbacks[ioSlot] != null)
|
||||||
{
|
{
|
||||||
@@ -372,6 +406,14 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
private void LinkInputsToApi(BasicTriList trilist, DmpsRoutingControllerJoinMap joinMap)
|
private void LinkInputsToApi(BasicTriList trilist, DmpsRoutingControllerJoinMap joinMap)
|
||||||
{
|
{
|
||||||
|
if (Dmps4kType)
|
||||||
|
{
|
||||||
|
//DMPS-4K audio inputs 1-5 are aux inputs
|
||||||
|
for (uint i = 1; i <= 5; i++)
|
||||||
|
{
|
||||||
|
trilist.StringInput[joinMap.InputAudioNames.JoinNumber + i - 1].StringValue = String.Format("Aux Input {0}", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
for (uint i = 1; i <= Dmps.SwitcherInputs.Count; i++)
|
for (uint i = 1; i <= Dmps.SwitcherInputs.Count; i++)
|
||||||
{
|
{
|
||||||
Debug.Console(2, this, "Linking Input Card {0}", i);
|
Debug.Console(2, this, "Linking Input Card {0}", i);
|
||||||
@@ -379,15 +421,26 @@ namespace PepperDash.Essentials.DM
|
|||||||
var ioSlot = i;
|
var ioSlot = i;
|
||||||
var ioSlotJoin = ioSlot - 1;
|
var ioSlotJoin = ioSlot - 1;
|
||||||
|
|
||||||
if (VideoInputSyncFeedbacks[ioSlot] != null)
|
if (VideoInputSyncFeedbacks.ContainsKey(ioSlot) && VideoInputSyncFeedbacks[ioSlot] != null)
|
||||||
{
|
{
|
||||||
VideoInputSyncFeedbacks[ioSlot].LinkInputSig(
|
VideoInputSyncFeedbacks[ioSlot].LinkInputSig(
|
||||||
trilist.BooleanInput[joinMap.VideoSyncStatus.JoinNumber + ioSlotJoin]);
|
trilist.BooleanInput[joinMap.VideoSyncStatus.JoinNumber + ioSlotJoin]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (InputNameFeedbacks[ioSlot] != null)
|
if (InputNameFeedbacks.ContainsKey(ioSlot) && InputNameFeedbacks[ioSlot] != null)
|
||||||
{
|
{
|
||||||
InputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.InputNames.JoinNumber + ioSlotJoin]);
|
InputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.InputNames.JoinNumber + ioSlotJoin]);
|
||||||
|
InputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.InputVideoNames.JoinNumber + ioSlotJoin]);
|
||||||
|
|
||||||
|
if (Dmps4kType)
|
||||||
|
{
|
||||||
|
//DMPS-4K Audio Inputs are offset by 5
|
||||||
|
InputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.InputAudioNames.JoinNumber + ioSlotJoin + 5]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
InputNameFeedbacks[ioSlot].LinkInputSig(trilist.StringInput[joinMap.InputAudioNames.JoinNumber + ioSlotJoin]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trilist.SetStringSigAction(joinMap.InputNames.JoinNumber + ioSlotJoin, s =>
|
trilist.SetStringSigAction(joinMap.InputNames.JoinNumber + ioSlotJoin, s =>
|
||||||
@@ -412,7 +465,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (InputEndpointOnlineFeedbacks[ioSlot] != null)
|
if (InputEndpointOnlineFeedbacks.ContainsKey(ioSlot) && InputEndpointOnlineFeedbacks[ioSlot] != null)
|
||||||
{
|
{
|
||||||
InputEndpointOnlineFeedbacks[ioSlot].LinkInputSig(
|
InputEndpointOnlineFeedbacks[ioSlot].LinkInputSig(
|
||||||
trilist.BooleanInput[joinMap.InputEndpointOnline.JoinNumber + ioSlotJoin]);
|
trilist.BooleanInput[joinMap.InputEndpointOnline.JoinNumber + ioSlotJoin]);
|
||||||
@@ -463,7 +516,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
OutputNameFeedbacks[outputCard.Number] = new StringFeedback(() =>
|
OutputNameFeedbacks[outputCard.Number] = new StringFeedback(() =>
|
||||||
{
|
{
|
||||||
if (outputCard.NameFeedback != null && !string.IsNullOrEmpty(outputCard.NameFeedback.StringValue))
|
if (outputCard.NameFeedback != null && outputCard.NameFeedback != CrestronControlSystem.NullStringOutputSig && !string.IsNullOrEmpty(outputCard.NameFeedback.StringValue))
|
||||||
{
|
{
|
||||||
Debug.Console(2, this, "Output Card {0} Name: {1}", outputCard.Number, outputCard.NameFeedback.StringValue);
|
Debug.Console(2, this, "Output Card {0} Name: {1}", outputCard.Number, outputCard.NameFeedback.StringValue);
|
||||||
return outputCard.NameFeedback.StringValue;
|
return outputCard.NameFeedback.StringValue;
|
||||||
@@ -509,14 +562,14 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
InputEndpointOnlineFeedbacks[inputCard.Number] = new BoolFeedback(() => inputCard.EndpointOnlineFeedback);
|
InputEndpointOnlineFeedbacks[inputCard.Number] = new BoolFeedback(() => inputCard.EndpointOnlineFeedback);
|
||||||
|
|
||||||
if (inputCard.VideoDetectedFeedback != null)
|
if (inputCard.VideoDetectedFeedback != null && inputCard.VideoDetectedFeedback.Supported)
|
||||||
{
|
{
|
||||||
VideoInputSyncFeedbacks[inputCard.Number] = new BoolFeedback(() => inputCard.VideoDetectedFeedback.BoolValue);
|
VideoInputSyncFeedbacks[inputCard.Number] = new BoolFeedback(() => inputCard.VideoDetectedFeedback.BoolValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
InputNameFeedbacks[inputCard.Number] = new StringFeedback(() =>
|
InputNameFeedbacks[inputCard.Number] = new StringFeedback(() =>
|
||||||
{
|
{
|
||||||
if (inputCard.NameFeedback != null && !string.IsNullOrEmpty(inputCard.NameFeedback.StringValue))
|
if (inputCard.NameFeedback != null && inputCard.NameFeedback != CrestronControlSystem.NullStringOutputSig && !string.IsNullOrEmpty(inputCard.NameFeedback.StringValue))
|
||||||
{
|
{
|
||||||
Debug.Console(2, this, "Input Card {0} Name: {1}", inputCard.Number, inputCard.NameFeedback.StringValue);
|
Debug.Console(2, this, "Input Card {0} Name: {1}", inputCard.Number, inputCard.NameFeedback.StringValue);
|
||||||
return inputCard.NameFeedback.StringValue;
|
return inputCard.NameFeedback.StringValue;
|
||||||
@@ -665,7 +718,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
AddAudioOnlyOutputPort(number, "Program");
|
AddAudioOnlyOutputPort(number, "Program");
|
||||||
|
|
||||||
var programOutput = new DmpsAudioOutputController(string.Format("processor-programAudioOutput"), "Program Audio Output", outputCard as Card.Dmps3OutputBase);
|
var programOutput = new DmpsAudioOutputController(string.Format("processor-programAudioOutput"), "Program Audio Output", outputCard as Card.Dmps3ProgramOutput);
|
||||||
|
|
||||||
DeviceManager.AddDevice(programOutput);
|
DeviceManager.AddDevice(programOutput);
|
||||||
}
|
}
|
||||||
@@ -677,7 +730,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
AddAudioOnlyOutputPort(number, "Aux1");
|
AddAudioOnlyOutputPort(number, "Aux1");
|
||||||
|
|
||||||
var aux1Output = new DmpsAudioOutputController(string.Format("processor-aux1AudioOutput"), "Program Audio Output", outputCard as Card.Dmps3OutputBase);
|
var aux1Output = new DmpsAudioOutputController(string.Format("processor-aux1AudioOutput"), "Program Audio Output", outputCard as Card.Dmps3Aux1Output);
|
||||||
|
|
||||||
DeviceManager.AddDevice(aux1Output);
|
DeviceManager.AddDevice(aux1Output);
|
||||||
}
|
}
|
||||||
@@ -686,7 +739,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
AddAudioOnlyOutputPort(number, "Aux2");
|
AddAudioOnlyOutputPort(number, "Aux2");
|
||||||
|
|
||||||
var aux2Output = new DmpsAudioOutputController(string.Format("processor-aux2AudioOutput"), "Program Audio Output", outputCard as Card.Dmps3OutputBase);
|
var aux2Output = new DmpsAudioOutputController(string.Format("processor-aux2AudioOutput"), "Program Audio Output", outputCard as Card.Dmps3Aux2Output);
|
||||||
|
|
||||||
DeviceManager.AddDevice(aux2Output);
|
DeviceManager.AddDevice(aux2Output);
|
||||||
}
|
}
|
||||||
@@ -834,12 +887,17 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
Debug.Console(2, this, "DMOutputChange Output: {0} EventId: {1}", args.Number, args.EventId.ToString());
|
Debug.Console(2, this, "DMOutputChange Output: {0} EventId: {1}", args.Number, args.EventId.ToString());
|
||||||
|
|
||||||
|
if (args.EventId == DMOutputEventIds.OutputVuFeedBackEventId)
|
||||||
|
{
|
||||||
|
//Frequently called event that isn't needed
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var output = args.Number;
|
var output = args.Number;
|
||||||
|
|
||||||
DMOutput outputCard = Dmps.SwitcherOutputs[output] as DMOutput;
|
DMOutput outputCard = Dmps.SwitcherOutputs[output] as DMOutput;
|
||||||
|
|
||||||
if (args.EventId == DMOutputEventIds.VolumeEventId &&
|
if (args.EventId == DMOutputEventIds.VolumeEventId && VolumeControls.ContainsKey(output))
|
||||||
VolumeControls.ContainsKey(output))
|
|
||||||
{
|
{
|
||||||
VolumeControls[args.Number].VolumeEventFromChassis();
|
VolumeControls[args.Number].VolumeEventFromChassis();
|
||||||
}
|
}
|
||||||
@@ -904,15 +962,19 @@ namespace PepperDash.Essentials.DM
|
|||||||
switch (args.EventId)
|
switch (args.EventId)
|
||||||
{
|
{
|
||||||
case DMSystemEventIds.SystemPowerOnEventId:
|
case DMSystemEventIds.SystemPowerOnEventId:
|
||||||
{
|
|
||||||
SystemPowerOnFeedback.FireUpdate();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case DMSystemEventIds.SystemPowerOffEventId:
|
case DMSystemEventIds.SystemPowerOffEventId:
|
||||||
{
|
{
|
||||||
|
SystemPowerOnFeedback.FireUpdate();
|
||||||
SystemPowerOffFeedback.FireUpdate();
|
SystemPowerOffFeedback.FireUpdate();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case DMSystemEventIds.FrontPanelLockOnEventId:
|
||||||
|
case DMSystemEventIds.FrontPanelLockOffEventId:
|
||||||
|
{
|
||||||
|
FrontPanelLockOnFeedback.FireUpdate();
|
||||||
|
FrontPanelLockOffFeedback.FireUpdate();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -933,6 +995,10 @@ namespace PepperDash.Essentials.DM
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (EnableRouting == false)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Debug.Console(2, this, "Attempting a DM route from input {0} to output {1} {2}", inputSelector, outputSelector, sigType);
|
Debug.Console(2, this, "Attempting a DM route from input {0} to output {1} {2}", inputSelector, outputSelector, sigType);
|
||||||
|
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
Debug.Console(1, rmc, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
Debug.Console(1, rmc, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
||||||
|
|
||||||
rmc.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]);
|
rmc.IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]);
|
||||||
|
trilist.StringInput[joinMap.Name.JoinNumber].StringValue = rmc.Name;
|
||||||
if (rmc.VideoOutputResolutionFeedback != null)
|
if (rmc.VideoOutputResolutionFeedback != null)
|
||||||
rmc.VideoOutputResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentOutputResolution.JoinNumber]);
|
rmc.VideoOutputResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentOutputResolution.JoinNumber]);
|
||||||
if (rmc.EdidManufacturerFeedback != null)
|
if (rmc.EdidManufacturerFeedback != null)
|
||||||
|
|||||||
@@ -263,6 +263,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
tx.AnyVideoInput.VideoStatus.VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.VideoSyncStatus.JoinNumber]);
|
tx.AnyVideoInput.VideoStatus.VideoSyncFeedback.LinkInputSig(trilist.BooleanInput[joinMap.VideoSyncStatus.JoinNumber]);
|
||||||
tx.AnyVideoInput.VideoStatus.VideoResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentInputResolution.JoinNumber]);
|
tx.AnyVideoInput.VideoStatus.VideoResolutionFeedback.LinkInputSig(trilist.StringInput[joinMap.CurrentInputResolution.JoinNumber]);
|
||||||
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber].UShortValue = (ushort)tx.HdcpSupportCapability;
|
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber].UShortValue = (ushort)tx.HdcpSupportCapability;
|
||||||
|
trilist.StringInput[joinMap.Name.JoinNumber].StringValue = tx.Name;
|
||||||
|
|
||||||
bool hdcpTypeSimple;
|
bool hdcpTypeSimple;
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="AirMedia\AirMediaPropertiesConfig.cs" />
|
<Compile Include="AirMedia\AirMediaPropertiesConfig.cs" />
|
||||||
<Compile Include="AirMedia\AirMediaController.cs" />
|
<Compile Include="AirMedia\AirMediaController.cs" />
|
||||||
|
<Compile Include="Chassis\DmpsMicrophoneController.cs" />
|
||||||
<Compile Include="Chassis\DmBladeChassisController.cs" />
|
<Compile Include="Chassis\DmBladeChassisController.cs" />
|
||||||
<Compile Include="Chassis\DmCardAudioOutput.cs" />
|
<Compile Include="Chassis\DmCardAudioOutput.cs" />
|
||||||
<Compile Include="Chassis\DmChassisController.cs" />
|
<Compile Include="Chassis\DmChassisController.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user