mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 13:15:03 +00:00
Updates to work when there are multiple tie lines from codec inputs to sources and using ExternalSourceSwitching
This commit is contained in:
@@ -712,12 +712,17 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
var videoCodecWithExternalSwitching = VideoCodec as IHasExternalSourceSwitching;
|
var videoCodecWithExternalSwitching = VideoCodec as IHasExternalSourceSwitching;
|
||||||
|
|
||||||
if (videoCodecWithExternalSwitching == null)
|
if (videoCodecWithExternalSwitching == null || !videoCodecWithExternalSwitching.ExternalSourceListEnabled)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
string codecTieLine = ConfigReader.ConfigObject.TieLines.SingleOrDefault(x => x.DestinationKey == VideoCodec.Key).DestinationPort;
|
try
|
||||||
|
{
|
||||||
|
// Get the tie line that the external switcher is connected to
|
||||||
|
string codecInputConnectorName = ConfigReader.ConfigObject.TieLines.SingleOrDefault(
|
||||||
|
x => x.DestinationKey == VideoCodec.Key && x.DestinationPort == videoCodecWithExternalSwitching.ExternalSourceInputPort).DestinationPort;
|
||||||
|
|
||||||
videoCodecWithExternalSwitching.ClearExternalSources();
|
videoCodecWithExternalSwitching.ClearExternalSources();
|
||||||
videoCodecWithExternalSwitching.RunRouteAction = RunRouteAction;
|
videoCodecWithExternalSwitching.RunRouteAction = RunRouteAction;
|
||||||
var srcList = ConfigReader.ConfigObject.SourceLists.SingleOrDefault(x => x.Key == SourceListKey).Value.OrderBy(kv => kv.Value.Order); ;
|
var srcList = ConfigReader.ConfigObject.SourceLists.SingleOrDefault(x => x.Key == SourceListKey).Value.OrderBy(kv => kv.Value.Order); ;
|
||||||
@@ -728,14 +733,16 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
if (kvp.Key != DefaultCodecRouteString && kvp.Key != "roomOff")
|
if (kvp.Key != DefaultCodecRouteString && kvp.Key != "roomOff")
|
||||||
{
|
{
|
||||||
|
videoCodecWithExternalSwitching.AddExternalSource(codecInputConnectorName, kvp.Key, srcConfig.PreferredName, PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.eExternalSourceType.desktop);
|
||||||
videoCodecWithExternalSwitching.AddExternalSource(codecTieLine, kvp.Key, srcConfig.PreferredName, PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.eExternalSourceType.desktop);
|
|
||||||
videoCodecWithExternalSwitching.SetExternalSourceState(kvp.Key, PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.eExternalSourceMode.Ready);
|
videoCodecWithExternalSwitching.SetExternalSourceState(kvp.Key, PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.eExternalSourceMode.Ready);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.Console(2, this, "Error setting codec external sources: {0}", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void SetCodecBranding()
|
private void SetCodecBranding()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user