mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-13 19:54:59 +00:00
refactor: GetCecPort method to handle exceptions
This commit is contained in:
@@ -115,39 +115,54 @@ namespace PepperDash.Essentials.Core
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static ICec GetCecPort(ControlPropertiesConfig config)
|
public static ICec GetCecPort(ControlPropertiesConfig config)
|
||||||
{
|
{
|
||||||
var dev = DeviceManager.GetDeviceForKey(config.ControlPortDevKey);
|
try
|
||||||
|
|
||||||
Debug.Console(0, "GetCecPort: device '{0}' {1}", config.ControlPortDevKey, dev == null
|
|
||||||
? "is not valid, failed to create build cec port"
|
|
||||||
: "found in device manager, attempting to build cec port");
|
|
||||||
|
|
||||||
if (dev == null)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
if (String.IsNullOrEmpty(config.ControlPortName))
|
|
||||||
{
|
{
|
||||||
Debug.Console(0, "GetCecPort: '{0}' - Configuration missing 'ControlPortName'", config.ControlPortDevKey);
|
var dev = DeviceManager.GetDeviceForKey(config.ControlPortDevKey);
|
||||||
return null;
|
|
||||||
|
Debug.Console(0, "GetCecPort: device '{0}' {1}", config.ControlPortDevKey, dev == null
|
||||||
|
? "is not valid, failed to get cec port"
|
||||||
|
: "found in device manager, attempting to get cec port");
|
||||||
|
|
||||||
|
if (dev == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
if (String.IsNullOrEmpty(config.ControlPortName))
|
||||||
|
{
|
||||||
|
Debug.Console(0, "GetCecPort: '{0}' - Configuration missing 'ControlPortName'", config.ControlPortDevKey);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var inputsOutputs = dev as IRoutingInputsOutputs;
|
||||||
|
if (inputsOutputs == null)
|
||||||
|
{
|
||||||
|
Debug.Console(0, "GetCecPort: Device '{0}' does not support IRoutingInputsOutputs, failed to get CEC port called '{1}'",
|
||||||
|
config.ControlPortDevKey, config.ControlPortName);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var inputPort = inputsOutputs.InputPorts[config.ControlPortName];
|
||||||
|
if (inputPort != null && inputPort.Port is ICec)
|
||||||
|
return inputPort.Port as ICec;
|
||||||
|
|
||||||
|
|
||||||
|
var outputPort = inputsOutputs.OutputPorts[config.ControlPortName];
|
||||||
|
if (outputPort != null && outputPort.Port is ICec)
|
||||||
|
return outputPort.Port as ICec;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.Console(1, "GetCecPort Exception Message: {0}", ex.Message);
|
||||||
|
Debug.Console(2, "GetCecPort Exception StackTrace: {0}", ex.StackTrace);
|
||||||
|
if (ex.InnerException != null)
|
||||||
|
Debug.Console(0, "GetCecPort Exception InnerException: {0}", ex.InnerException);
|
||||||
}
|
}
|
||||||
|
|
||||||
var inputPort = (dev as IRoutingInputsOutputs).InputPorts[config.ControlPortName];
|
Debug.Console(0, "GetCecPort: Device '{0}' does not have a CEC port called '{1}'",
|
||||||
if (inputPort != null)
|
|
||||||
{
|
|
||||||
if (inputPort.Port is ICec)
|
|
||||||
return inputPort.Port as ICec;
|
|
||||||
}
|
|
||||||
|
|
||||||
var outputPort = (dev as IRoutingInputsOutputs).OutputPorts[config.ControlPortName];
|
|
||||||
if (outputPort != null)
|
|
||||||
{
|
|
||||||
if (outputPort.Port is ICec)
|
|
||||||
return outputPort.Port as ICec;
|
|
||||||
}
|
|
||||||
|
|
||||||
Debug.Console(0, "GetCecPort: Device '{0}' does not have a CEC port called: '{1}'",
|
|
||||||
config.ControlPortDevKey, config.ControlPortName);
|
config.ControlPortDevKey, config.ControlPortName);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user