using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using PepperDash.Essentials.Core;
namespace PepperDash.Essentials.Bridges
{
[Obsolete("Please use version PepperDash.Essentials.Core.Bridges")]
public class DmChassisControllerJoinMap : JoinMapBase
{
#region Digital/Analogs
///
/// Analog input sets System ID, output reports current ID as feedback.
/// Digital input applies System ID, output is high when applying busy.
///
public uint SystemId { get; set; }
#endregion
#region Digitals
///
/// High when device is online
///
public uint IsOnline { get; set; }
///
/// Range reports video sync feedback for each input
///
public uint VideoSyncStatus { get; set; }
///
/// Range reports high if corresponding input's endpoint is online
///
public uint InputEndpointOnline { get; set; }
///
/// Range reports high if corresponding output's endpoint is online
///
public uint OutputEndpointOnline { get; set; }
///
/// Range reports high if corresponding input's transmitter supports bridging as a separate device for detailed AV switching, HDCP control, etc.
///
public uint TxAdvancedIsPresent { get; set; } // indicates that there is an attached transmitter that should be bridged to be interacted with
///
/// Range reports high if corresponding output is disabled by HDCP.
///
public uint OutputDisabledByHdcp { get; set; } // indicates that there is an attached transmitter that should be bridged to be interacted with
#endregion
#region Analogs
///
/// Range sets and reports the current video source for the corresponding output
///
public uint OutputVideo { get; set; }
///
/// Range sets and reports the current audio source for the corresponding output
///
public uint OutputAudio { get; set; }
///
/// Range sets and reports the current Usb source for the corresponding output
///
public uint OutputUsb { get; set; }
///
/// Range sets and reports the current Usb source for the corresponding input
///
public uint InputUsb { get; set; }
///
/// Range sets and reports the current HDCP state for the corresponding input card
///
public uint HdcpSupportState { get; set; }
///
/// Range reports the highest supported HDCP state level for the corresponding input card
///
public uint HdcpSupportCapability { get; set; }
///
/// DM Chassis Stream Input Start (1), Stop (2), Pause (3) with Feedback
///
public uint InputStreamCardStatus { get; set; }
///
/// DM Chassis Stream Output Start (1), Stop (2), Pause (3) with Feedback
///
public uint OutputStreamCardStatus { get; set; }
#endregion
#region Serials
///
/// Range sets and reports the name for the corresponding input card
///
public uint InputNames { get; set; }
///
/// Range sets and reports the name for the corresponding output card
///
public uint OutputNames { get; set; }
///
/// Range reports the name of the current video source for the corresponding output card
///
public uint OutputCurrentVideoInputNames { get; set; }
///
/// Range reports the name of the current audio source for the corresponding output card
///
public uint OutputCurrentAudioInputNames { get; set; }
///
/// Range reports the current input resolution for each corresponding input card
///
public uint InputCurrentResolution { get; set; }
#endregion
public DmChassisControllerJoinMap()
{
//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
InputEndpointOnline = 500; //501-699
OutputEndpointOnline = 700; //701-899
TxAdvancedIsPresent = 1000; //1001-1199
OutputDisabledByHdcp = 1200; //1201-1399
//Analog
OutputVideo = 100; //101-299
OutputAudio = 300; //301-499
OutputUsb = 500; //501-699
InputUsb = 700; //701-899
HdcpSupportState = 1000; //1001-1199
HdcpSupportCapability = 1200; //1201-1399
InputStreamCardStatus = 1500; //1501-1532
OutputStreamCardStatus = 1600; //1601-1632
//Serial
InputNames = 100; //101-299
OutputNames = 300; //301-499
OutputCurrentVideoInputNames = 2000; //2001-2199
OutputCurrentAudioInputNames = 2200; //2201-2399
InputCurrentResolution = 2400; // 2401-2599
}
public override void OffsetJoinNumbers(uint joinStart)
{
var joinOffset = joinStart - 1;
SystemId = SystemId + joinOffset;
IsOnline = IsOnline + joinOffset;
OutputVideo = OutputVideo + joinOffset;
OutputAudio = OutputAudio + joinOffset;
OutputUsb = OutputUsb + joinOffset;
InputUsb = InputUsb + joinOffset;
VideoSyncStatus = VideoSyncStatus + joinOffset;
InputNames = InputNames + joinOffset;
OutputNames = OutputNames + joinOffset;
OutputCurrentVideoInputNames = OutputCurrentVideoInputNames + joinOffset;
OutputCurrentAudioInputNames = OutputCurrentAudioInputNames + joinOffset;
InputCurrentResolution = InputCurrentResolution + joinOffset;
InputEndpointOnline = InputEndpointOnline + joinOffset;
OutputEndpointOnline = OutputEndpointOnline + joinOffset;
HdcpSupportState = HdcpSupportState + joinOffset;
HdcpSupportCapability = HdcpSupportCapability + joinOffset;
InputStreamCardStatus = InputStreamCardStatus + joinOffset;
OutputStreamCardStatus = OutputStreamCardStatus + joinOffset;
OutputDisabledByHdcp = OutputDisabledByHdcp + joinOffset;
TxAdvancedIsPresent = TxAdvancedIsPresent + joinOffset;
}
}
}