Updates object structure to deal with a bug in ZoomRoom 5.6.3 that responds with an incorrect object structure for the layout style property

This commit is contained in:
Neil Dorin
2021-05-11 17:23:26 -06:00
parent c14193f9ac
commit 63853739f3
2 changed files with 48 additions and 1 deletions

View File

@@ -1202,6 +1202,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{
public string appVersion { get; set; }
public string deviceSystem { get; set; }
// This doesn't belong here, but there's a bug in the object structure of Zoom Room 5.6.3 that puts it here
public zConfiguration.Call Call { get; set; }
public Client()
{
Call = new zConfiguration.Call();
}
}
}

View File

@@ -515,6 +515,33 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
}
};
// This is to deal with incorrect object structure coming back from the Zoom Room on v 5.6.3
Configuration.Client.Call.Layout.PropertyChanged += (o,a) =>
{
switch (a.PropertyName)
{
case "Position":
{
ComputeSelfviewPipStatus();
SelfviewPipPositionFeedback.FireUpdate();
break;
}
case "ShareThumb":
{
ContentSwappedWithThumbnailFeedback.FireUpdate();
break;
}
case "Style":
{
LocalLayoutFeedback.FireUpdate();
break;
}
}
};
Status.Call.Sharing.PropertyChanged += (o, a) =>
{
if (a.PropertyName == "State")
@@ -2283,7 +2310,19 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
#region IHasCodecLayouts Members
private Func<string> LocalLayoutFeedbackFunc { get { return () => Configuration.Call.Layout.Style.ToString(); } }
private Func<string> LocalLayoutFeedbackFunc
{
get
{
return () =>
{
if (Configuration.Call.Layout.Style != zConfiguration.eLayoutStyle.None)
return Configuration.Call.Layout.Style.ToString();
else
return Configuration.Client.Call.Layout.Style.ToString();
};
}
}
public StringFeedback LocalLayoutFeedback { get; private set; }