refactors several RMC controller Classes

This commit is contained in:
Andrew Welker
2020-05-06 08:33:56 -06:00
parent 122fe24701
commit 649e2658d2
5 changed files with 117 additions and 145 deletions

View File

@@ -15,19 +15,20 @@ namespace PepperDash.Essentials.DM
public class DmRmc150SController : DmRmcControllerBase, IRoutingInputsOutputs, public class DmRmc150SController : DmRmcControllerBase, IRoutingInputsOutputs,
IIROutputPorts, IComPorts, ICec IIROutputPorts, IComPorts, ICec
{ {
public DmRmc150S Rmc { get; private set; } private readonly DmRmc150S _rmc;
public RoutingInputPort DmIn { get; private set; } public RoutingInputPort DmIn { get; private set; }
public RoutingOutputPort HdmiOut { get; private set; } public RoutingOutputPort HdmiOut { get; private set; }
public RoutingPortCollection<RoutingInputPort> InputPorts public RoutingPortCollection<RoutingInputPort> InputPorts
{ {
get { return new RoutingPortCollection<RoutingInputPort> { DmIn }; } get; private set;
} }
public RoutingPortCollection<RoutingOutputPort> OutputPorts public RoutingPortCollection<RoutingOutputPort> OutputPorts
{ {
get { return new RoutingPortCollection<RoutingOutputPort> { HdmiOut }; } get;
private set ;
} }
/// <summary> /// <summary>
@@ -36,78 +37,62 @@ namespace PepperDash.Essentials.DM
public DmRmc150SController(string key, string name, DmRmc150S rmc) public DmRmc150SController(string key, string name, DmRmc150S rmc)
: base(key, name, rmc) : base(key, name, rmc)
{ {
Rmc = rmc; _rmc = rmc;
DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.Audio | eRoutingSignalType.Video, DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.AudioVideo,
eRoutingPortConnectionType.DmCat, 0, this); eRoutingPortConnectionType.DmCat, 0, this);
HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video, HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.AudioVideo,
eRoutingPortConnectionType.Hdmi, null, this); eRoutingPortConnectionType.Hdmi, null, this);
EdidManufacturerFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue); EdidManufacturerFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue);
EdidNameFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.Name.StringValue); EdidNameFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Name.StringValue);
EdidPreferredTimingFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue); EdidPreferredTimingFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue);
EdidSerialNumberFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue); EdidSerialNumberFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue);
//VideoOutputResolutionFeedback = new StringFeedback(() => Rmc.HdmiOutput.GetVideoResolutionString()); InputPorts = new RoutingPortCollection<RoutingInputPort> {DmIn};
OutputPorts = new RoutingPortCollection<RoutingOutputPort> {HdmiOut};
//Rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange; _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;
Rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;
// Set Ports for CEC // Set Ports for CEC
HdmiOut.Port = Rmc.HdmiOutput; HdmiOut.Port = _rmc.HdmiOutput;
} }
//void HdmiOutput_OutputStreamChange(EndpointOutputStream outputStream, EndpointOutputStreamEventArgs args)
//{
// if (args.EventId == EndpointOutputStreamEventIds.HorizontalResolutionFeedbackEventId || args.EventId == EndpointOutputStreamEventIds.VerticalResolutionFeedbackEventId ||
// args.EventId == EndpointOutputStreamEventIds.FramesPerSecondFeedbackEventId)
// {
// VideoOutputResolutionFeedback.FireUpdate();
// }
//}
void ConnectedDevice_DeviceInformationChange(ConnectedDeviceInformation connectedDevice, ConnectedDeviceEventArgs args) void ConnectedDevice_DeviceInformationChange(ConnectedDeviceInformation connectedDevice, ConnectedDeviceEventArgs args)
{ {
if (args.EventId == ConnectedDeviceEventIds.ManufacturerEventId) switch (args.EventId)
{ {
case ConnectedDeviceEventIds.ManufacturerEventId:
EdidManufacturerFeedback.FireUpdate(); EdidManufacturerFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.NameEventId) case ConnectedDeviceEventIds.NameEventId:
{
EdidNameFeedback.FireUpdate(); EdidNameFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.PreferredTimingEventId) case ConnectedDeviceEventIds.PreferredTimingEventId:
{
EdidPreferredTimingFeedback.FireUpdate(); EdidPreferredTimingFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.SerialNumberEventId) case ConnectedDeviceEventIds.SerialNumberEventId:
{
EdidSerialNumberFeedback.FireUpdate(); EdidSerialNumberFeedback.FireUpdate();
break;
} }
} }
public override bool CustomActivate()
{
// Base does register and sets up comm monitoring.
return base.CustomActivate();
}
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDmRmcToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDmRmcToApi(this, trilist, joinStart, joinMapKey, bridge);
} }
#region IIROutputPorts Members #region IIROutputPorts Members
public CrestronCollection<IROutputPort> IROutputPorts { get { return Rmc.IROutputPorts; } } public CrestronCollection<IROutputPort> IROutputPorts { get { return _rmc.IROutputPorts; } }
public int NumberOfIROutputPorts { get { return Rmc.NumberOfIROutputPorts; } } public int NumberOfIROutputPorts { get { return _rmc.NumberOfIROutputPorts; } }
#endregion #endregion
#region IComPorts Members #region IComPorts Members
public CrestronCollection<ComPort> ComPorts { get { return Rmc.ComPorts; } } public CrestronCollection<ComPort> ComPorts { get { return _rmc.ComPorts; } }
public int NumberOfComPorts { get { return Rmc.NumberOfComPorts; } } public int NumberOfComPorts { get { return _rmc.NumberOfComPorts; } }
#endregion #endregion
#region ICec Members #region ICec Members
public Cec StreamCec { get { return Rmc.HdmiOutput.StreamCec; } } public Cec StreamCec { get { return _rmc.HdmiOutput.StreamCec; } }
#endregion #endregion
} }
} }

View File

@@ -16,19 +16,19 @@ namespace PepperDash.Essentials.DM
public class DmRmc200CController : DmRmcControllerBase, IRoutingInputsOutputs, public class DmRmc200CController : DmRmcControllerBase, IRoutingInputsOutputs,
IIROutputPorts, IComPorts, ICec IIROutputPorts, IComPorts, ICec
{ {
public DmRmc200C Rmc { get; private set; } private readonly DmRmc200C _rmc;
public RoutingInputPort DmIn { get; private set; } public RoutingInputPort DmIn { get; private set; }
public RoutingOutputPort HdmiOut { get; private set; } public RoutingOutputPort HdmiOut { get; private set; }
public RoutingPortCollection<RoutingInputPort> InputPorts public RoutingPortCollection<RoutingInputPort> InputPorts
{ {
get { return new RoutingPortCollection<RoutingInputPort> { DmIn }; } get; private set;
} }
public RoutingPortCollection<RoutingOutputPort> OutputPorts public RoutingPortCollection<RoutingOutputPort> OutputPorts
{ {
get { return new RoutingPortCollection<RoutingOutputPort> { HdmiOut }; } get; private set;
} }
/// <summary> /// <summary>
@@ -37,24 +37,27 @@ namespace PepperDash.Essentials.DM
public DmRmc200CController(string key, string name, DmRmc200C rmc) public DmRmc200CController(string key, string name, DmRmc200C rmc)
: base(key, name, rmc) : base(key, name, rmc)
{ {
Rmc = rmc; _rmc = rmc;
DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.Audio | eRoutingSignalType.Video, DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.AudioVideo,
eRoutingPortConnectionType.DmCat, 0, this); eRoutingPortConnectionType.DmCat, 0, this);
HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video, HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.AudioVideo,
eRoutingPortConnectionType.Hdmi, null, this); eRoutingPortConnectionType.Hdmi, null, this);
EdidManufacturerFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue); EdidManufacturerFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue);
EdidNameFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.Name.StringValue); EdidNameFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Name.StringValue);
EdidPreferredTimingFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue); EdidPreferredTimingFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue);
EdidSerialNumberFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue); EdidSerialNumberFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue);
VideoOutputResolutionFeedback = new StringFeedback(() => Rmc.HdmiOutput.GetVideoResolutionString()); VideoOutputResolutionFeedback = new StringFeedback(() => _rmc.HdmiOutput.GetVideoResolutionString());
Rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange; _rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange;
Rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange; _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;
InputPorts = new RoutingPortCollection<RoutingInputPort> {DmIn};
OutputPorts = new RoutingPortCollection<RoutingOutputPort> {HdmiOut};
// Set Ports for CEC // Set Ports for CEC
HdmiOut.Port = Rmc.HdmiOutput; HdmiOut.Port = _rmc.HdmiOutput;
} }
void HdmiOutput_OutputStreamChange(EndpointOutputStream outputStream, EndpointOutputStreamEventArgs args) void HdmiOutput_OutputStreamChange(EndpointOutputStream outputStream, EndpointOutputStreamEventArgs args)
@@ -68,47 +71,40 @@ namespace PepperDash.Essentials.DM
void ConnectedDevice_DeviceInformationChange(ConnectedDeviceInformation connectedDevice, ConnectedDeviceEventArgs args) void ConnectedDevice_DeviceInformationChange(ConnectedDeviceInformation connectedDevice, ConnectedDeviceEventArgs args)
{ {
if (args.EventId == ConnectedDeviceEventIds.ManufacturerEventId) switch (args.EventId)
{ {
case ConnectedDeviceEventIds.ManufacturerEventId:
EdidManufacturerFeedback.FireUpdate(); EdidManufacturerFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.NameEventId) case ConnectedDeviceEventIds.NameEventId:
{
EdidNameFeedback.FireUpdate(); EdidNameFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.PreferredTimingEventId) case ConnectedDeviceEventIds.PreferredTimingEventId:
{
EdidPreferredTimingFeedback.FireUpdate(); EdidPreferredTimingFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.SerialNumberEventId) case ConnectedDeviceEventIds.SerialNumberEventId:
{
EdidSerialNumberFeedback.FireUpdate(); EdidSerialNumberFeedback.FireUpdate();
break;
} }
} }
public override bool CustomActivate()
{
// Base does register and sets up comm monitoring.
return base.CustomActivate();
}
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDmRmcToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDmRmcToApi(this, trilist, joinStart, joinMapKey, bridge);
} }
#region IIROutputPorts Members #region IIROutputPorts Members
public CrestronCollection<IROutputPort> IROutputPorts { get { return Rmc.IROutputPorts; } } public CrestronCollection<IROutputPort> IROutputPorts { get { return _rmc.IROutputPorts; } }
public int NumberOfIROutputPorts { get { return Rmc.NumberOfIROutputPorts; } } public int NumberOfIROutputPorts { get { return _rmc.NumberOfIROutputPorts; } }
#endregion #endregion
#region IComPorts Members #region IComPorts Members
public CrestronCollection<ComPort> ComPorts { get { return Rmc.ComPorts; } } public CrestronCollection<ComPort> ComPorts { get { return _rmc.ComPorts; } }
public int NumberOfComPorts { get { return Rmc.NumberOfComPorts; } } public int NumberOfComPorts { get { return _rmc.NumberOfComPorts; } }
#endregion #endregion
#region ICec Members #region ICec Members
public Cec StreamCec { get { return Rmc.HdmiOutput.StreamCec; } } public Cec StreamCec { get { return _rmc.HdmiOutput.StreamCec; } }
#endregion #endregion
} }
} }

View File

@@ -16,20 +16,14 @@ namespace PepperDash.Essentials.DM
public class DmRmc200S2Controller : DmRmcControllerBase, IRoutingInputsOutputs, public class DmRmc200S2Controller : DmRmcControllerBase, IRoutingInputsOutputs,
IIROutputPorts, IComPorts, ICec IIROutputPorts, IComPorts, ICec
{ {
public DmRmc200S2 Rmc { get; private set; } private readonly DmRmc200S2 _rmc;
public RoutingInputPort DmIn { get; private set; } public RoutingInputPort DmIn { get; private set; }
public RoutingOutputPort HdmiOut { get; private set; } public RoutingOutputPort HdmiOut { get; private set; }
public RoutingPortCollection<RoutingInputPort> InputPorts public RoutingPortCollection<RoutingInputPort> InputPorts { get; private set; }
{
get { return new RoutingPortCollection<RoutingInputPort> { DmIn }; }
}
public RoutingPortCollection<RoutingOutputPort> OutputPorts public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
{
get { return new RoutingPortCollection<RoutingOutputPort> { HdmiOut }; }
}
/// <summary> /// <summary>
/// Make a Crestron RMC and put it in here /// Make a Crestron RMC and put it in here
@@ -37,24 +31,27 @@ namespace PepperDash.Essentials.DM
public DmRmc200S2Controller(string key, string name, DmRmc200S2 rmc) public DmRmc200S2Controller(string key, string name, DmRmc200S2 rmc)
: base(key, name, rmc) : base(key, name, rmc)
{ {
Rmc = rmc; _rmc = rmc;
DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.Audio | eRoutingSignalType.Video, DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.Audio | eRoutingSignalType.Video,
eRoutingPortConnectionType.DmCat, 0, this); eRoutingPortConnectionType.DmCat, 0, this);
HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video, HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
eRoutingPortConnectionType.Hdmi, null, this); eRoutingPortConnectionType.Hdmi, null, this);
EdidManufacturerFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue); EdidManufacturerFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue);
EdidNameFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.Name.StringValue); EdidNameFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Name.StringValue);
EdidPreferredTimingFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue); EdidPreferredTimingFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue);
EdidSerialNumberFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue); EdidSerialNumberFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue);
VideoOutputResolutionFeedback = new StringFeedback(() => Rmc.HdmiOutput.GetVideoResolutionString()); VideoOutputResolutionFeedback = new StringFeedback(() => _rmc.HdmiOutput.GetVideoResolutionString());
Rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange; _rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange;
Rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange; _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;
InputPorts = new RoutingPortCollection<RoutingInputPort> {DmIn};
OutputPorts = new RoutingPortCollection<RoutingOutputPort> {HdmiOut};
// Set Ports for CEC // Set Ports for CEC
HdmiOut.Port = Rmc.HdmiOutput; HdmiOut.Port = _rmc.HdmiOutput;
} }
void HdmiOutput_OutputStreamChange(EndpointOutputStream outputStream, EndpointOutputStreamEventArgs args) void HdmiOutput_OutputStreamChange(EndpointOutputStream outputStream, EndpointOutputStreamEventArgs args)
@@ -68,47 +65,40 @@ namespace PepperDash.Essentials.DM
void ConnectedDevice_DeviceInformationChange(ConnectedDeviceInformation connectedDevice, ConnectedDeviceEventArgs args) void ConnectedDevice_DeviceInformationChange(ConnectedDeviceInformation connectedDevice, ConnectedDeviceEventArgs args)
{ {
if (args.EventId == ConnectedDeviceEventIds.ManufacturerEventId) switch (args.EventId)
{ {
case ConnectedDeviceEventIds.ManufacturerEventId:
EdidManufacturerFeedback.FireUpdate(); EdidManufacturerFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.NameEventId) case ConnectedDeviceEventIds.NameEventId:
{
EdidNameFeedback.FireUpdate(); EdidNameFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.PreferredTimingEventId) case ConnectedDeviceEventIds.PreferredTimingEventId:
{
EdidPreferredTimingFeedback.FireUpdate(); EdidPreferredTimingFeedback.FireUpdate();
} break;
else if (args.EventId == ConnectedDeviceEventIds.SerialNumberEventId) case ConnectedDeviceEventIds.SerialNumberEventId:
{
EdidSerialNumberFeedback.FireUpdate(); EdidSerialNumberFeedback.FireUpdate();
break;
} }
} }
public override bool CustomActivate()
{
// Base does register and sets up comm monitoring.
return base.CustomActivate();
}
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{ {
LinkDmRmcToApi(this, trilist, joinStart, joinMapKey, bridge); LinkDmRmcToApi(this, trilist, joinStart, joinMapKey, bridge);
} }
#region IIROutputPorts Members #region IIROutputPorts Members
public CrestronCollection<IROutputPort> IROutputPorts { get { return Rmc.IROutputPorts; } } public CrestronCollection<IROutputPort> IROutputPorts { get { return _rmc.IROutputPorts; } }
public int NumberOfIROutputPorts { get { return Rmc.NumberOfIROutputPorts; } } public int NumberOfIROutputPorts { get { return _rmc.NumberOfIROutputPorts; } }
#endregion #endregion
#region IComPorts Members #region IComPorts Members
public CrestronCollection<ComPort> ComPorts { get { return Rmc.ComPorts; } } public CrestronCollection<ComPort> ComPorts { get { return _rmc.ComPorts; } }
public int NumberOfComPorts { get { return Rmc.NumberOfComPorts; } } public int NumberOfComPorts { get { return _rmc.NumberOfComPorts; } }
#endregion #endregion
#region ICec Members #region ICec Members
public Cec StreamCec { get { return Rmc.HdmiOutput.StreamCec; } } public Cec StreamCec { get { return _rmc.HdmiOutput.StreamCec; } }
#endregion #endregion
} }
} }

View File

@@ -16,7 +16,7 @@ namespace PepperDash.Essentials.DM
public class DmRmc200SController : DmRmcControllerBase, IRoutingInputsOutputs, public class DmRmc200SController : DmRmcControllerBase, IRoutingInputsOutputs,
IIROutputPorts, IComPorts, ICec IIROutputPorts, IComPorts, ICec
{ {
public DmRmc200S Rmc { get; private set; } private readonly DmRmc200S _rmc;
public RoutingInputPort DmIn { get; private set; } public RoutingInputPort DmIn { get; private set; }
public RoutingOutputPort HdmiOut { get; private set; } public RoutingOutputPort HdmiOut { get; private set; }
@@ -37,24 +37,24 @@ namespace PepperDash.Essentials.DM
public DmRmc200SController(string key, string name, DmRmc200S rmc) public DmRmc200SController(string key, string name, DmRmc200S rmc)
: base(key, name, rmc) : base(key, name, rmc)
{ {
Rmc = rmc; _rmc = rmc;
DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.Audio | eRoutingSignalType.Video, DmIn = new RoutingInputPort(DmPortName.DmIn, eRoutingSignalType.Audio | eRoutingSignalType.Video,
eRoutingPortConnectionType.DmCat, 0, this); eRoutingPortConnectionType.DmCat, 0, this);
HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video, HdmiOut = new RoutingOutputPort(DmPortName.HdmiOut, eRoutingSignalType.Audio | eRoutingSignalType.Video,
eRoutingPortConnectionType.Hdmi, null, this); eRoutingPortConnectionType.Hdmi, null, this);
EdidManufacturerFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue); EdidManufacturerFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Manufacturer.StringValue);
EdidNameFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.Name.StringValue); EdidNameFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.Name.StringValue);
EdidPreferredTimingFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue); EdidPreferredTimingFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.PreferredTiming.StringValue);
EdidSerialNumberFeedback = new StringFeedback(() => Rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue); EdidSerialNumberFeedback = new StringFeedback(() => _rmc.HdmiOutput.ConnectedDevice.SerialNumber.StringValue);
VideoOutputResolutionFeedback = new StringFeedback(() => Rmc.HdmiOutput.GetVideoResolutionString()); VideoOutputResolutionFeedback = new StringFeedback(() => _rmc.HdmiOutput.GetVideoResolutionString());
Rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange; _rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange;
Rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange; _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;
// Set Ports for CEC // Set Ports for CEC
HdmiOut.Port = Rmc.HdmiOutput; HdmiOut.Port = _rmc.HdmiOutput;
} }
void HdmiOutput_OutputStreamChange(EndpointOutputStream outputStream, EndpointOutputStreamEventArgs args) void HdmiOutput_OutputStreamChange(EndpointOutputStream outputStream, EndpointOutputStreamEventArgs args)
@@ -98,17 +98,17 @@ namespace PepperDash.Essentials.DM
} }
#region IIROutputPorts Members #region IIROutputPorts Members
public CrestronCollection<IROutputPort> IROutputPorts { get { return Rmc.IROutputPorts; } } public CrestronCollection<IROutputPort> IROutputPorts { get { return _rmc.IROutputPorts; } }
public int NumberOfIROutputPorts { get { return Rmc.NumberOfIROutputPorts; } } public int NumberOfIROutputPorts { get { return _rmc.NumberOfIROutputPorts; } }
#endregion #endregion
#region IComPorts Members #region IComPorts Members
public CrestronCollection<ComPort> ComPorts { get { return Rmc.ComPorts; } } public CrestronCollection<ComPort> ComPorts { get { return _rmc.ComPorts; } }
public int NumberOfComPorts { get { return Rmc.NumberOfComPorts; } } public int NumberOfComPorts { get { return _rmc.NumberOfComPorts; } }
#endregion #endregion
#region ICec Members #region ICec Members
public Cec StreamCec { get { return Rmc.HdmiOutput.StreamCec; } } public Cec StreamCec { get { return _rmc.HdmiOutput.StreamCec; } }
#endregion #endregion
} }
} }

View File

@@ -26,6 +26,7 @@ namespace PepperDash.Essentials.DM
: base(key, name, device) : base(key, name, device)
{ {
Rmc = device; Rmc = device;
// if wired to a chassis, skip registration step in base class // if wired to a chassis, skip registration step in base class
PreventRegistration = device.DMOutput != null; PreventRegistration = device.DMOutput != null;