mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 20:54:55 +00:00
fix HDCP state feedback to link to endpoint
This commit is contained in:
@@ -47,7 +47,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
public BoolFeedback EnableAudioBreakawayFeedback { get; private set; }
|
public BoolFeedback EnableAudioBreakawayFeedback { get; private set; }
|
||||||
public BoolFeedback EnableUsbBreakawayFeedback { get; private set; }
|
public BoolFeedback EnableUsbBreakawayFeedback { get; private set; }
|
||||||
|
|
||||||
public Dictionary<uint, IntFeedback> InputCardHdcpCapabilityFeedbacks { get; private set; }
|
public Dictionary<uint, IntFeedback> InputCardHdcpStateFeedbacks { get; private set; }
|
||||||
|
|
||||||
public Dictionary<uint, eHdcpCapabilityType> InputCardHdcpCapabilityTypes { get; private set; }
|
public Dictionary<uint, eHdcpCapabilityType> InputCardHdcpCapabilityTypes { get; private set; }
|
||||||
|
|
||||||
@@ -219,7 +219,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
EnableUsbBreakawayFeedback =
|
EnableUsbBreakawayFeedback =
|
||||||
new BoolFeedback(() => (Chassis as DmMDMnxn).EnableUSBBreakawayFeedback.BoolValue);
|
new BoolFeedback(() => (Chassis as DmMDMnxn).EnableUSBBreakawayFeedback.BoolValue);
|
||||||
|
|
||||||
InputCardHdcpCapabilityFeedbacks = new Dictionary<uint, IntFeedback>();
|
InputCardHdcpStateFeedbacks = new Dictionary<uint, IntFeedback>();
|
||||||
InputCardHdcpCapabilityTypes = new Dictionary<uint, eHdcpCapabilityType>();
|
InputCardHdcpCapabilityTypes = new Dictionary<uint, eHdcpCapabilityType>();
|
||||||
|
|
||||||
for (uint x = 1; x <= Chassis.NumberOfOutputs; x++)
|
for (uint x = 1; x <= Chassis.NumberOfOutputs; x++)
|
||||||
@@ -329,7 +329,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
InputEndpointOnlineFeedbacks[tempX] = new BoolFeedback(() => { return Chassis.Inputs[tempX].EndpointOnlineFeedback; });
|
InputEndpointOnlineFeedbacks[tempX] = new BoolFeedback(() => { return Chassis.Inputs[tempX].EndpointOnlineFeedback; });
|
||||||
|
|
||||||
InputCardHdcpCapabilityFeedbacks[tempX] = new IntFeedback(() => {
|
InputCardHdcpStateFeedbacks[tempX] = new IntFeedback(() => {
|
||||||
var inputCard = Chassis.Inputs[tempX];
|
var inputCard = Chassis.Inputs[tempX];
|
||||||
|
|
||||||
if (inputCard.Card is DmcHd)
|
if (inputCard.Card is DmcHd)
|
||||||
@@ -839,10 +839,10 @@ namespace PepperDash.Essentials.DM
|
|||||||
case DMInputEventIds.HdcpCapabilityFeedbackEventId:
|
case DMInputEventIds.HdcpCapabilityFeedbackEventId:
|
||||||
{
|
{
|
||||||
Debug.Console(2, this, "DM Input {0} HdcpCapabilityFeedbackEventId", args.Number);
|
Debug.Console(2, this, "DM Input {0} HdcpCapabilityFeedbackEventId", args.Number);
|
||||||
if (InputCardHdcpCapabilityFeedbacks[args.Number] != null)
|
if (InputCardHdcpStateFeedbacks[args.Number] != null)
|
||||||
InputCardHdcpCapabilityFeedbacks[args.Number].FireUpdate();
|
InputCardHdcpStateFeedbacks[args.Number].FireUpdate();
|
||||||
else
|
else
|
||||||
Debug.Console(1, this, "No index of {0} found in InputCardHdcpCapabilityFeedbacks");
|
Debug.Console(1, this, "No index of {0} found in InputCardHdcpStateFeedbacks");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@@ -1169,7 +1169,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
trilist);
|
trilist);
|
||||||
}
|
}
|
||||||
|
|
||||||
InputCardHdcpCapabilityFeedbacks[ioSlot].LinkInputSig(
|
InputCardHdcpStateFeedbacks[ioSlot].LinkInputSig(
|
||||||
trilist.UShortInput[joinMap.HdcpSupportState.JoinNumber + ioSlotJoin]);
|
trilist.UShortInput[joinMap.HdcpSupportState.JoinNumber + ioSlotJoin]);
|
||||||
|
|
||||||
if (InputCardHdcpCapabilityTypes.ContainsKey(ioSlot))
|
if (InputCardHdcpCapabilityTypes.ContainsKey(ioSlot))
|
||||||
@@ -1265,7 +1265,7 @@ namespace PepperDash.Essentials.DM
|
|||||||
SetHdcpStateAction(supportsHdcp2, dmInPortWCec,
|
SetHdcpStateAction(supportsHdcp2, dmInPortWCec,
|
||||||
joinMap.HdcpSupportState.JoinNumber + ioSlotJoin, trilist);
|
joinMap.HdcpSupportState.JoinNumber + ioSlotJoin, trilist);
|
||||||
|
|
||||||
InputCardHdcpCapabilityFeedbacks[ioSlot].LinkInputSig(
|
InputCardHdcpStateFeedbacks[ioSlot].LinkInputSig(
|
||||||
trilist.UShortInput[joinMap.HdcpSupportState.JoinNumber + ioSlotJoin]);
|
trilist.UShortInput[joinMap.HdcpSupportState.JoinNumber + ioSlotJoin]);
|
||||||
|
|
||||||
if (InputCardHdcpCapabilityTypes.ContainsKey(ioSlot))
|
if (InputCardHdcpCapabilityTypes.ContainsKey(ioSlot))
|
||||||
@@ -1313,18 +1313,20 @@ namespace PepperDash.Essentials.DM
|
|||||||
|
|
||||||
SetHdcpStateAction(supportsHdcp2, inputPorts, joinMap.HdcpSupportState.JoinNumber + ioSlotJoin, trilist);
|
SetHdcpStateAction(supportsHdcp2, inputPorts, joinMap.HdcpSupportState.JoinNumber + ioSlotJoin, trilist);
|
||||||
|
|
||||||
InputCardHdcpCapabilityFeedbacks[ioSlot].LinkInputSig(
|
if (transmitter.HdcpStateFeedback != null)
|
||||||
trilist.UShortInput[joinMap.HdcpSupportState.JoinNumber + ioSlotJoin]);
|
|
||||||
|
|
||||||
if (InputCardHdcpCapabilityTypes.ContainsKey(ioSlot))
|
|
||||||
{
|
{
|
||||||
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue =
|
transmitter.HdcpStateFeedback.LinkInputSig(
|
||||||
(ushort)InputCardHdcpCapabilityTypes[ioSlot];
|
trilist.UShortInput[joinMap.HdcpSupportState.JoinNumber + ioSlotJoin]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue = 1;
|
Debug.Console(2, this, "Transmitter Hdcp Feedback null. Linking to card's feedback");
|
||||||
|
InputCardHdcpStateFeedbacks[ioSlot].LinkInputSig(
|
||||||
|
trilist.UShortInput[joinMap.HdcpSupportState.JoinNumber + ioSlotJoin]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber + ioSlotJoin].UShortValue =
|
||||||
|
(ushort) transmitter.HdcpSupportCapability;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LinkTxOnlineFeedbackToApi(BasicTriList trilist, uint ioSlot, DmChassisControllerJoinMap joinMap,
|
private void LinkTxOnlineFeedbackToApi(BasicTriList trilist, uint ioSlot, DmChassisControllerJoinMap joinMap,
|
||||||
@@ -1444,9 +1446,9 @@ namespace PepperDash.Essentials.DM
|
|||||||
return joinMap;
|
return joinMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetHdcpStateAction(bool hdcpTypeSimple, HdmiInputWithCEC port, uint join, BasicTriList trilist)
|
private void SetHdcpStateAction(bool supportsHdcp2, HdmiInputWithCEC port, uint join, BasicTriList trilist)
|
||||||
{
|
{
|
||||||
if (hdcpTypeSimple)
|
if (!supportsHdcp2)
|
||||||
{
|
{
|
||||||
trilist.SetUShortSigAction(join,
|
trilist.SetUShortSigAction(join,
|
||||||
s =>
|
s =>
|
||||||
@@ -1471,9 +1473,9 @@ namespace PepperDash.Essentials.DM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetHdcpStateAction(bool hdcpTypeSimple, EndpointHdmiInput port, uint join, BasicTriList trilist)
|
private void SetHdcpStateAction(bool supportsHdcp2, EndpointHdmiInput port, uint join, BasicTriList trilist)
|
||||||
{
|
{
|
||||||
if (hdcpTypeSimple)
|
if (!supportsHdcp2)
|
||||||
{
|
{
|
||||||
trilist.SetUShortSigAction(join,
|
trilist.SetUShortSigAction(join,
|
||||||
s =>
|
s =>
|
||||||
@@ -1498,10 +1500,10 @@ namespace PepperDash.Essentials.DM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetHdcpStateAction(bool hdcpTypeSimple, List<RoutingInputPort> ports, uint join,
|
private void SetHdcpStateAction(bool supportsHdcp2, List<RoutingInputPort> ports, uint join,
|
||||||
BasicTriList triList)
|
BasicTriList triList)
|
||||||
{
|
{
|
||||||
if (hdcpTypeSimple)
|
if (!supportsHdcp2)
|
||||||
{
|
{
|
||||||
triList.SetUShortSigAction(join, a =>
|
triList.SetUShortSigAction(join, a =>
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user