fix: videowall mode raw fb for dm-rmc-4kz-scaler-c

This commit is contained in:
Colin Denig
2024-07-11 15:42:25 -04:00
parent 192991cc65
commit 0eb2436fa0
2 changed files with 47 additions and 30 deletions

View File

@@ -276,13 +276,26 @@ namespace PepperDash.Essentials.DM
void Scaler_OutputChange(EndpointScalerOutput scalerOutput, ScalerOutputEventArgs args) void Scaler_OutputChange(EndpointScalerOutput scalerOutput, ScalerOutputEventArgs args)
{ {
if (scalerOutput == null)
{
Debug.Console(1, this, "Scaler Output object is null");
return;
}
if (args == null)
{
Debug.Console(1, this, "Scaler Output Args are null");
return;
}
Debug.Console(2, this, "Scaler Event ID: {0}", args.EventId);
switch (args.EventId) switch (args.EventId)
{ {
case ScalerOutputEventIds.WallModeFeedbackEventId: case ScalerOutputEventIds.WallModeFeedbackEventId:
VideoWallModeRawFeedback.FireUpdate(); VideoWallModeRawFeedback.FireUpdate();
break; break;
} default:
Debug.Console(2, this, "Scaler Default Unhandled Event ID: {0}", args.EventId);
break;
}
} }
} }

View File

@@ -26,9 +26,9 @@ namespace PepperDash.Essentials.DM
public StringFeedback EdidManufacturerFeedback { get; protected set; } public StringFeedback EdidManufacturerFeedback { get; protected set; }
public StringFeedback EdidNameFeedback { get; protected set; } public StringFeedback EdidNameFeedback { get; protected set; }
public StringFeedback EdidPreferredTimingFeedback { get; protected set; } public StringFeedback EdidPreferredTimingFeedback { get; protected set; }
public StringFeedback EdidSerialNumberFeedback { get; protected set; } public StringFeedback EdidSerialNumberFeedback { get; protected set; }
public IntFeedback VideoWallModeFeedback { get; protected set; } public IntFeedback VideoWallModeFeedback { get; protected set; }
public IntFeedback VideoWallModeRawFeedback { get; protected set; } public IntFeedback VideoWallModeRawFeedback { get; protected set; }
protected DmRmcControllerBase(string key, string name, EndpointReceiverBase device) protected DmRmcControllerBase(string key, string name, EndpointReceiverBase device)
@@ -62,8 +62,8 @@ namespace PepperDash.Essentials.DM
else else
{ {
Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device."); Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device.");
} }
LinkDmRmcToApi(rmc, trilist, joinMap); LinkDmRmcToApi(rmc, trilist, joinMap);
} }
@@ -145,18 +145,18 @@ namespace PepperDash.Essentials.DM
trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber].UShortValue = (ushort)hdcpCapability; trilist.UShortInput[joinMap.HdcpSupportCapability.JoinNumber].UShortValue = (ushort)hdcpCapability;
trilist.UShortInput[joinMap.HdcpInputPortCount.JoinNumber].UShortValue = (ushort)routing.InputPorts.Count; trilist.UShortInput[joinMap.HdcpInputPortCount.JoinNumber].UShortValue = (ushort)routing.InputPorts.Count;
var dmRmcScalerCBasicVideoMuteWithFeedback = rmc as IBasicVideoMuteWithFeedback; var dmRmcScalerCBasicVideoMuteWithFeedback = rmc as IBasicVideoMuteWithFeedback;
if (dmRmcScalerCBasicVideoMuteWithFeedback != null) if (dmRmcScalerCBasicVideoMuteWithFeedback != null)
{ {
Debug.Console(1, this, "Device is IBasicVideoMuteWithFeedback, linking video mute"); Debug.Console(1, this, "Device is IBasicVideoMuteWithFeedback, linking video mute");
trilist.SetSigTrueAction(joinMap.VideoMuteToggle.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteToggle()); trilist.SetSigTrueAction(joinMap.VideoMuteToggle.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteToggle());
trilist.SetSigTrueAction(joinMap.VideoMuteOn.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteOn()); trilist.SetSigTrueAction(joinMap.VideoMuteOn.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteOn());
trilist.SetSigTrueAction(joinMap.VideoMuteOff.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteOff()); trilist.SetSigTrueAction(joinMap.VideoMuteOff.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteOff());
dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteIsOn.LinkInputSig(trilist.BooleanInput[joinMap.VideoMuteOn.JoinNumber]); dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteIsOn.LinkInputSig(trilist.BooleanInput[joinMap.VideoMuteOn.JoinNumber]);
dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteIsOn.LinkComplementInputSig(trilist.BooleanInput[joinMap.VideoMuteOff.JoinNumber]); dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteIsOn.LinkComplementInputSig(trilist.BooleanInput[joinMap.VideoMuteOff.JoinNumber]);
} }
var routingWithFeedback = routing as IRmcRouting; var routingWithFeedback = routing as IRmcRouting;
@@ -168,17 +168,21 @@ namespace PepperDash.Essentials.DM
trilist.SetUShortSigAction(joinMap.AudioVideoSource.JoinNumber, trilist.SetUShortSigAction(joinMap.AudioVideoSource.JoinNumber,
a => routingWithFeedback.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo)); a => routingWithFeedback.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo));
var dmRmcScalerWithVideowall = rmc as DmRmc4kZScalerCController; var dmRmcScalerWithVideowall = rmc as DmRmc4kZScalerCController;
if (dmRmcScalerWithVideowall != null) if (dmRmcScalerWithVideowall != null)
{ {
trilist.SetUShortSigAction(joinMap.ScalerOutWallMode.JoinNumber, a => dmRmcScalerWithVideowall.SetWallMode(a)); trilist.SetUShortSigAction(joinMap.ScalerOutWallMode.JoinNumber, a => dmRmcScalerWithVideowall.SetWallMode(a));
trilist.SetUShortSigAction(joinMap.ScalerOutWallModeRaw.JoinNumber, a => dmRmcScalerWithVideowall.SetWallModeRaw(a)); trilist.SetUShortSigAction(joinMap.ScalerOutWallModeRaw.JoinNumber, a => dmRmcScalerWithVideowall.SetWallModeRaw(a));
if (rmc.VideoWallModeFeedback != null)
} rmc.VideoWallModeFeedback.LinkInputSig(trilist.UShortInput[joinMap.ScalerOutWallMode.JoinNumber]);
if (rmc.VideoWallModeRawFeedback != null)
rmc.VideoWallModeRawFeedback.LinkInputSig(trilist.UShortInput[joinMap.ScalerOutWallModeRaw.JoinNumber]);
}
} }