mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-13 19:54:59 +00:00
Resolves #467
Added new interface IRoutingNumericFeedback Added New Interface ITxRoutingWithFeedback Added New Interface IRmcRoutingWithFeedback Added new interface IRoutingNumericWithFeedback Implemented new interfaces in applicable classes
This commit is contained in:
@@ -20,13 +20,16 @@ namespace PepperDash.Essentials.DM
|
||||
/// Builds a controller for basic DM-RMCs with Com and IR ports and no control functions
|
||||
///
|
||||
/// </summary>
|
||||
[Description("Wrapper class for all DM-MD chassis variants from 8x8 to 32x32")]
|
||||
public class DmChassisController : CrestronGenericBridgeableBaseDevice, IDmSwitch, IRoutingNumeric
|
||||
[Description("Wrapper class for all DM-MD chassis variants from 8x8 to 32x32")]
|
||||
public class DmChassisController : CrestronGenericBridgeableBaseDevice, IDmSwitch, IRoutingNumericWithFeedback
|
||||
{
|
||||
public DMChassisPropertiesConfig PropertiesConfig { get; set; }
|
||||
|
||||
public Switch Chassis { get; private set; }
|
||||
|
||||
//IroutingNumericEvent
|
||||
public event EventHandler NumericSwitchChange;
|
||||
|
||||
// Feedbacks for EssentialDM
|
||||
public Dictionary<uint, IntFeedback> VideoOutputFeedbacks { get; private set; }
|
||||
public Dictionary<uint, IntFeedback> AudioOutputFeedbacks { get; private set; }
|
||||
@@ -905,6 +908,15 @@ namespace PepperDash.Essentials.DM
|
||||
{
|
||||
Debug.Console(2, this, Debug.ErrorLogLevel.Error, "Error in Chassis_DMInputChange: {0}", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Raise an event when the status of a switch object changes.
|
||||
/// </summary>
|
||||
/// <param name="e">Arguments defined as IKeyName sender, output, input, and eRoutingSignalType</param>
|
||||
public void OnSwitchChange(RoutingNumericEventArgs e)
|
||||
{
|
||||
if (NumericSwitchChange != null) NumericSwitchChange(this, e);
|
||||
}
|
||||
|
||||
///
|
||||
@@ -938,27 +950,35 @@ namespace PepperDash.Essentials.DM
|
||||
OutputEndpointOnlineFeedbacks[output].FireUpdate();
|
||||
break;
|
||||
}
|
||||
case DMOutputEventIds.VideoOutEventId:
|
||||
{
|
||||
if (Chassis.Outputs[output].VideoOutFeedback != null)
|
||||
Debug.Console(2, this, "DMSwitchVideo:{0} Routed Input:{1} Output:{2}'", this.Name, Chassis.Outputs[output].VideoOutFeedback.Number, output);
|
||||
|
||||
if (VideoOutputFeedbacks.ContainsKey(output))
|
||||
VideoOutputFeedbacks[output].FireUpdate();
|
||||
case DMOutputEventIds.VideoOutEventId:
|
||||
{
|
||||
if (Chassis.Outputs[output].VideoOutFeedback == null) return;
|
||||
|
||||
Debug.Console(2, this, "DMSwitchVideo:{0} Routed Input:{1} Output:{2}'", this.Name, Chassis.Outputs[output].VideoOutFeedback.Number, output);
|
||||
|
||||
if (VideoOutputFeedbacks.ContainsKey(output))
|
||||
{
|
||||
VideoOutputFeedbacks[output].FireUpdate();
|
||||
OnSwitchChange(new RoutingNumericEventArgs(output, Chassis.Outputs[output].VideoOutFeedback.Number, eRoutingSignalType.Video));
|
||||
}
|
||||
|
||||
if (OutputVideoRouteNameFeedbacks.ContainsKey(output))
|
||||
OutputVideoRouteNameFeedbacks[output].FireUpdate();
|
||||
|
||||
break;
|
||||
}
|
||||
case DMOutputEventIds.AudioOutEventId:
|
||||
{
|
||||
if (Chassis.Outputs[output].AudioOutFeedback != null)
|
||||
Debug.Console(2, this, "DMSwitchAudio:{0} Routed Input:{1} Output:{2}'", this.Name, Chassis.Outputs[output].AudioOutFeedback.Number, output);
|
||||
|
||||
if (AudioOutputFeedbacks.ContainsKey(output))
|
||||
AudioOutputFeedbacks[output].FireUpdate();
|
||||
case DMOutputEventIds.AudioOutEventId:
|
||||
{
|
||||
if (Chassis.Outputs[output].AudioOutFeedback == null) return;
|
||||
|
||||
Debug.Console(2, this, "DMSwitchAudio:{0} Routed Input:{1} Output:{2}'", this.Name, Chassis.Outputs[output].AudioOutFeedback.Number, output);
|
||||
|
||||
if (AudioOutputFeedbacks.ContainsKey(output))
|
||||
{
|
||||
AudioOutputFeedbacks[output].FireUpdate();
|
||||
OnSwitchChange(new RoutingNumericEventArgs(output, Chassis.Outputs[output].VideoOutFeedback.Number, eRoutingSignalType.Audio));
|
||||
}
|
||||
|
||||
if (OutputAudioRouteNameFeedbacks.ContainsKey(output))
|
||||
OutputAudioRouteNameFeedbacks[output].FireUpdate();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user