From afe2046c812f34f92c977a27cd24d95aa3030bc6 Mon Sep 17 00:00:00 2001 From: Jason DeVito Date: Mon, 7 Jun 2021 14:45:40 -0500 Subject: [PATCH] Added methods to select Call Layout Size. --- .../VideoCodec/Interfaces/IHasCodecLayouts.cs | 4 + .../VideoCodec/ZoomRoom/ZoomRoom.cs | 39 ++++++- .../VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs | 107 +++++++++++++++++- 3 files changed, 148 insertions(+), 2 deletions(-) diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasCodecLayouts.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasCodecLayouts.cs index a8805a21..36499281 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasCodecLayouts.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasCodecLayouts.cs @@ -31,6 +31,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec BoolFeedback LayoutViewIsOnLastPageFeedback { get; } // TODO: #697 [*] Consider modifying to report button visibility in func BoolFeedback CanSwapContentWithThumbnailFeedback { get; } BoolFeedback ContentSwappedWithThumbnailFeedback { get; } + //StringFeedback LayoutSizeFeedback { get; } // TOOD: #714 [ ] Feature Layout Size ZoomRoom.zConfiguration.eLayoutStyle LastSelectedLayout { get; } ZoomRoom.zConfiguration.eLayoutStyle AvailableLayouts { get; } @@ -41,6 +42,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec void LayoutTurnNextPage(); void LayoutTurnPreviousPage(); + + void GetCurrentLayoutSize(); // TOOD: #714 [ ] Feature Layout Size + void SetLayoutSize(ZoomRoom.zConfiguration.eLayoutSize layoutSize); // TOOD: #714 [ ] Feature Layout Size } public class LayoutInfoChangedEventArgs : EventArgs diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs index 2301e544..ceead746 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs @@ -1795,7 +1795,28 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom } }); - layoutsCodec.LocalLayoutFeedback.LinkInputSig(trilist.StringInput[joinMap.GetSetCurrentLayout.JoinNumber]); + layoutsCodec.LocalLayoutFeedback.LinkInputSig(trilist.StringInput[joinMap.GetSetCurrentLayout.JoinNumber]); + + // TOOD: #714 [ ] Feature Layout Size + trilist.SetSigFalseAction(joinMap.SetLayoutSizeOff.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Off)); + trilist.SetSigFalseAction(joinMap.SetLayoutSize1.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size1)); + trilist.SetSigFalseAction(joinMap.SetLayoutSize2.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size2)); + trilist.SetSigFalseAction(joinMap.SetLayoutSize3.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size3)); + trilist.SetSigFalseAction(joinMap.SetLayoutSizeStrip.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Strip)); + // TOOD: #714 [ ] Feature Layout Size + trilist.SetSigFalseAction(joinMap.GetSetCurrentLayoutSize.JoinNumber, layoutsCodec.GetCurrentLayoutSize); + trilist.SetStringSigAction(joinMap.GetSetCurrentLayoutSize.JoinNumber, (s) => + { + try + { + var size = (zConfiguration.eLayoutSize)Enum.Parse(typeof(zConfiguration.eLayoutSize), s, true); + SetLayoutSize(size); + } + catch (Exception e) + { + Debug.Console(1, this, "Unable to parse '{0}' to zConfiguration.eLayoutSize: {1}", s, e); + } + }); } var pinCodec = this as IHasParticipantPinUnpin; @@ -2306,6 +2327,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom SendText("zCommand Call Layout TurnPage Forward: Off"); } + // TOOD: #714 [ ] Feature Layout Size + public zConfiguration.eLayoutSize LastSelectedLayoutSize { get; private set; } + + // TOOD: #714 [ ] Feature Layout Size + public void GetCurrentLayoutSize() + { + SendText("zConfiguration Call Layout Size"); + } + + // TOOD: #714 [ ] Feature Layout Size + public void SetLayoutSize(zConfiguration.eLayoutSize layoutSize) + { + LastSelectedLayoutSize = layoutSize; + SendText(String.Format("zConfiguration Call Layout Size: {0}", layoutSize.ToString())); + } + #endregion #region IHasCodecLayouts Members diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs index 07265d20..24cf65e8 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs @@ -164,6 +164,96 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom JoinType = eJoinType.DigitalSerial }); + // TOOD: #714 [ ] Feature Layout Size + //[JoinName("GetCurrentLayoutSize")] + //public JoinDataComplete GetCurrentLayoutSize = new JoinDataComplete( + // new JoinData + // { + // JoinNumber = 230, + // JoinSpan = 1 + // }, + // new JoinMetadata + // { + // Description = "Poll for the current layout size", + // JoinCapabilities = eJoinCapabilities.FromSIMPL, + // JoinType = eJoinType.Digital + // }); + + // TOOD: #714 [ ] Feature Layout Size + [JoinName("SetLayoutSizeOff")] + public JoinDataComplete SetLayoutSizeOff = new JoinDataComplete( + new JoinData + { + JoinNumber = 231, + JoinSpan = 1 + }, + new JoinMetadata + { + Description = "Sets layout size off", + JoinCapabilities = eJoinCapabilities.ToFromSIMPL, + JoinType = eJoinType.Digital + }); + + // TOOD: #714 [ ] Feature Layout Size + [JoinName("SetLayoutSize1")] + public JoinDataComplete SetLayoutSize1 = new JoinDataComplete( + new JoinData + { + JoinNumber = 232, + JoinSpan = 1 + }, + new JoinMetadata + { + Description = "Sets layout size 1", + JoinCapabilities = eJoinCapabilities.ToFromSIMPL, + JoinType = eJoinType.Digital + }); + + // TOOD: #714 [ ] Feature Layout Size + [JoinName("SetLayoutSize2")] + public JoinDataComplete SetLayoutSize2 = new JoinDataComplete( + new JoinData + { + JoinNumber = 233, + JoinSpan = 1 + }, + new JoinMetadata + { + Description = "Sets layout size 2", + JoinCapabilities = eJoinCapabilities.ToFromSIMPL, + JoinType = eJoinType.Digital + }); + + // TOOD: #714 [ ] Feature Layout Size + [JoinName("SetLayoutSize3")] + public JoinDataComplete SetLayoutSize3 = new JoinDataComplete( + new JoinData + { + JoinNumber = 234, + JoinSpan = 1 + }, + new JoinMetadata + { + Description = "Sets layout size 3", + JoinCapabilities = eJoinCapabilities.ToFromSIMPL, + JoinType = eJoinType.Digital + }); + + // TOOD: #714 [ ] Feature Layout Size + [JoinName("SetLayoutSizeStrip")] + public JoinDataComplete SetLayoutSizeStrip = new JoinDataComplete( + new JoinData + { + JoinNumber = 235, + JoinSpan = 1 + }, + new JoinMetadata + { + Description = "Sets layout size strip", + JoinCapabilities = eJoinCapabilities.ToFromSIMPL, + JoinType = eJoinType.Digital + }); + //[JoinName("ParticipantAudioMuteToggleStart")] //public JoinDataComplete ParticipantAudioMuteToggleStart = new JoinDataComplete( // new JoinData @@ -256,7 +346,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom Description = "Sets and reports the current layout. Use the LayoutXXXXIsAvailable signals to determine valid layouts", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Serial - }); + }); + + // TOOD: #714 [ ] Feature Layout Size + [JoinName("GetSetCurrentLayoutSize")] + public JoinDataComplete GetSetCurrentLayoutSize = new JoinDataComplete( + new JoinData + { + JoinNumber = 230, + JoinSpan = 1 + }, + new JoinMetadata + { + Description = "Sets and reports the current layout size.", + JoinCapabilities = eJoinCapabilities.ToFromSIMPL, + JoinType = eJoinType.DigitalSerial + }); #endregion