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 36499281..97ac35c5 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,7 +31,8 @@ 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
+ StringFeedback LayoutSizeFeedback { get; } // TODO: #714 [ ] Feature Layout Size
+ StringFeedback LayoutPositionFeedback { get; } // TODO: #714 [ ] Feature Layout Size
ZoomRoom.zConfiguration.eLayoutStyle LastSelectedLayout { get; }
ZoomRoom.zConfiguration.eLayoutStyle AvailableLayouts { get; }
@@ -43,8 +44,11 @@ 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
+ void GetCurrentLayoutSize(); // TODO: #714 [ ] Feature Layout Size
+ void SetLayoutSize(ZoomRoom.zConfiguration.eLayoutSize layoutSize); // TODO: #714 [ ] Feature Layout Size
+
+ void GetCurrentLayoutPosition(); // TODO: #714 [ ] Feature Layout Size
+ void SetLayoutPosition(ZoomRoom.zConfiguration.eLayoutPosition layoutPosition); // TODO: #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 ceead746..85de4dec 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
@@ -126,6 +126,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
LocalLayoutFeedback = new StringFeedback(LocalLayoutFeedbackFunc);
+ // TODO: #714 [ ] Feature Layout Size
+ LayoutSizeFeedback = new StringFeedback(LayoutSizeFeedbackFunc);
+ LayoutPositionFeedback = new StringFeedback(LayoutPositionFeedbackFunc);
+
+
LayoutViewIsOnFirstPageFeedback = new BoolFeedback(LayoutViewIsOnFirstPageFeedbackFunc);
LayoutViewIsOnLastPageFeedback = new BoolFeedback(LayoutViewIsOnLastPageFeedbackFunc);
CanSwapContentWithThumbnailFeedback = new BoolFeedback(CanSwapContentWithThumbnailFeedbackFunc);
@@ -1797,13 +1802,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
layoutsCodec.LocalLayoutFeedback.LinkInputSig(trilist.StringInput[joinMap.GetSetCurrentLayout.JoinNumber]);
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #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.SetLayoutSizeStrip.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Strip));
trilist.SetSigFalseAction(joinMap.GetSetCurrentLayoutSize.JoinNumber, layoutsCodec.GetCurrentLayoutSize);
trilist.SetStringSigAction(joinMap.GetSetCurrentLayoutSize.JoinNumber, (s) =>
{
@@ -1817,6 +1821,41 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Debug.Console(1, this, "Unable to parse '{0}' to zConfiguration.eLayoutSize: {1}", s, e);
}
});
+ layoutsCodec.LayoutSizeFeedback.LinkInputSig(trilist.StringInput[joinMap.GetSetCurrentLayoutSize.JoinNumber]);
+
+ // TODO: #714 [ ] Feature Layout Size
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionCenter.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.Center));
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionUp.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.Up));
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionRight.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.Right));
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionUpRight.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.UpRight));
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionDown.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.Down));
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionDownRight.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.DownRight));
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionLeft.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.Left));
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionUpLeft.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.UpLeft));
+ trilist.SetSigFalseAction(joinMap.SetLayoutPositionDownLeft.JoinNumber,
+ () => layoutsCodec.SetLayoutPosition(zConfiguration.eLayoutPosition.DownLeft));
+ trilist.SetSigFalseAction(joinMap.GetSetCurrentLayoutPosition.JoinNumber, layoutsCodec.GetCurrentLayoutPosition);
+ trilist.SetStringSigAction(joinMap.GetSetCurrentLayoutPosition.JoinNumber, (s) =>
+ {
+ try
+ {
+ var position = (zConfiguration.eLayoutPosition) Enum.Parse(typeof (zConfiguration.eLayoutPosition), s, true);
+ SetLayoutPosition(position);
+ }
+ catch (Exception e)
+ {
+ Debug.Console(1, this, "Unable to parse '{0}' to zConfiguration.eLayoutPosition: {1}", s, e);
+ }
+ });
+
}
var pinCodec = this as IHasParticipantPinUnpin;
@@ -2327,22 +2366,86 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
SendText("zCommand Call Layout TurnPage Forward: Off");
}
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #714 [ ] Feature Layout Size
+ ///
+ /// Stores last selected layout size
+ ///
public zConfiguration.eLayoutSize LastSelectedLayoutSize { get; private set; }
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #714 [ ] Feature Layout Size
+ ///
+ /// Queries for current layout size
+ ///
public void GetCurrentLayoutSize()
{
SendText("zConfiguration Call Layout Size");
}
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #714 [ ] Feature Layout Size
+ ///
+ /// Sets selected layout size
+ ///
+ /// zConfiguration.eLayoutSize
public void SetLayoutSize(zConfiguration.eLayoutSize layoutSize)
{
LastSelectedLayoutSize = layoutSize;
SendText(String.Format("zConfiguration Call Layout Size: {0}", layoutSize.ToString()));
}
+ // TODO: #714 [ ] Feature Layout Size
+ private Func LayoutSizeFeedbackFunc
+ {
+ get
+ {
+ return () => Configuration.Call.Layout.Size.ToString();
+ }
+ }
+
+ ///
+ /// Layout size feedback
+ ///
+ public StringFeedback LayoutSizeFeedback { get; private set; }
+
+ // TODO: #714 [ ] Feature Layout Size
+ ///
+ /// Stores last selected layout position
+ ///
+ public zConfiguration.eLayoutPosition LastSelectedLayoutPosition { get; private set; }
+
+ // TODO: #714 [ ] Feature Layout Size
+ ///
+ /// Queries for current layout position
+ ///
+ public void GetCurrentLayoutPosition()
+ {
+ SendText("zConfiguration Call Layout Position");
+ }
+
+ // TODO: #714 [ ] Feature Layout Size
+ ///
+ /// Sets selected layout position
+ ///
+ ///
+ public void SetLayoutPosition(zConfiguration.eLayoutPosition layoutPosition)
+ {
+ LastSelectedLayoutPosition = layoutPosition;
+ SendText(String.Format("zConfiguration Call Layout Position: {0}", layoutPosition.ToString()));
+ }
+
+ // TODO: #714 [ ] Feature Layout Size
+ private Func LayoutPositionFeedbackFunc
+ {
+ get
+ {
+ return () => Configuration.Call.Layout.Position.ToString();
+ }
+ }
+
+ ///
+ /// Layout position feedback
+ ///
+ public StringFeedback LayoutPositionFeedback { get; private set; }
+
#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 24cf65e8..fe9e0691 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
@@ -162,24 +162,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Description = "FB Indicates if layout 'ShareAll' is available",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
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
+ // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSizeOff")]
public JoinDataComplete SetLayoutSizeOff = new JoinDataComplete(
new JoinData
@@ -194,7 +179,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSize1")]
public JoinDataComplete SetLayoutSize1 = new JoinDataComplete(
new JoinData
@@ -209,7 +194,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSize2")]
public JoinDataComplete SetLayoutSize2 = new JoinDataComplete(
new JoinData
@@ -224,7 +209,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSize3")]
public JoinDataComplete SetLayoutSize3 = new JoinDataComplete(
new JoinData
@@ -239,7 +224,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSizeStrip")]
public JoinDataComplete SetLayoutSizeStrip = new JoinDataComplete(
new JoinData
@@ -252,6 +237,141 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Description = "Sets layout size strip",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionCenter")]
+ public JoinDataComplete SetLayoutPositionCenter = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 241,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position to center",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionUp")]
+ public JoinDataComplete SetLayoutPositionUp = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 242,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position to up",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionRight")]
+ public JoinDataComplete SetLayoutPositionRight = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 243,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position to right",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionUpRight")]
+ public JoinDataComplete SetLayoutPositionUpRight = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 244,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position to up right",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionDown")]
+ public JoinDataComplete SetLayoutPositionDown = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 245,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position to down",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionDownRight")]
+ public JoinDataComplete SetLayoutPositionDownRight = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 246,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position to down right",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionLeft")]
+ public JoinDataComplete SetLayoutPositionLeft = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 247,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position todown left",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionUpLeft")]
+ public JoinDataComplete SetLayoutPositionUpLeft = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 248,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position to up left",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
+ });
+
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("SetLayoutPositionDownLeft")]
+ public JoinDataComplete SetLayoutPositionDownLeft = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 249,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets layout position to down left",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.Digital
});
//[JoinName("ParticipantAudioMuteToggleStart")]
@@ -348,7 +468,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Serial
});
- // TOOD: #714 [ ] Feature Layout Size
+ // TODO: #714 [ ] Feature Layout Size
[JoinName("GetSetCurrentLayoutSize")]
public JoinDataComplete GetSetCurrentLayoutSize = new JoinDataComplete(
new JoinData
@@ -363,6 +483,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.DigitalSerial
});
+ // TODO: #714 [ ] Feature Layout Size
+ [JoinName("GetSetCurrentLayoutPosition")]
+ public JoinDataComplete GetSetCurrentLayoutPosition = new JoinDataComplete(
+ new JoinData
+ {
+ JoinNumber = 240,
+ JoinSpan = 1
+ },
+ new JoinMetadata
+ {
+ Description = "Sets and reports the current layout position.",
+ JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
+ JoinType = eJoinType.DigitalSerial
+ });
+
+
#endregion
public ZoomRoomJoinMap(uint joinStart)