Updated IHasCodecLayouts to implement Layout Position selection and feedback, updated bridge map to map Layout Position signals. Updated ZoomRoom to implement Layout Position selection and feedback.

This commit is contained in:
Jason DeVito
2021-06-07 22:22:00 -05:00
parent afe2046c81
commit 492e593263
3 changed files with 274 additions and 31 deletions

View File

@@ -31,7 +31,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
BoolFeedback LayoutViewIsOnLastPageFeedback { get; } // TODO: #697 [*] Consider modifying to report button visibility in func BoolFeedback LayoutViewIsOnLastPageFeedback { get; } // TODO: #697 [*] Consider modifying to report button visibility in func
BoolFeedback CanSwapContentWithThumbnailFeedback { get; } BoolFeedback CanSwapContentWithThumbnailFeedback { get; }
BoolFeedback ContentSwappedWithThumbnailFeedback { 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 LastSelectedLayout { get; }
ZoomRoom.zConfiguration.eLayoutStyle AvailableLayouts { get; } ZoomRoom.zConfiguration.eLayoutStyle AvailableLayouts { get; }
@@ -43,8 +44,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
void LayoutTurnNextPage(); void LayoutTurnNextPage();
void LayoutTurnPreviousPage(); void LayoutTurnPreviousPage();
void GetCurrentLayoutSize(); // TOOD: #714 [ ] Feature Layout Size void GetCurrentLayoutSize(); // TODO: #714 [ ] Feature Layout Size
void SetLayoutSize(ZoomRoom.zConfiguration.eLayoutSize layoutSize); // TOOD: #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 public class LayoutInfoChangedEventArgs : EventArgs

View File

@@ -126,6 +126,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
LocalLayoutFeedback = new StringFeedback(LocalLayoutFeedbackFunc); LocalLayoutFeedback = new StringFeedback(LocalLayoutFeedbackFunc);
// TODO: #714 [ ] Feature Layout Size
LayoutSizeFeedback = new StringFeedback(LayoutSizeFeedbackFunc);
LayoutPositionFeedback = new StringFeedback(LayoutPositionFeedbackFunc);
LayoutViewIsOnFirstPageFeedback = new BoolFeedback(LayoutViewIsOnFirstPageFeedbackFunc); LayoutViewIsOnFirstPageFeedback = new BoolFeedback(LayoutViewIsOnFirstPageFeedbackFunc);
LayoutViewIsOnLastPageFeedback = new BoolFeedback(LayoutViewIsOnLastPageFeedbackFunc); LayoutViewIsOnLastPageFeedback = new BoolFeedback(LayoutViewIsOnLastPageFeedbackFunc);
CanSwapContentWithThumbnailFeedback = new BoolFeedback(CanSwapContentWithThumbnailFeedbackFunc); CanSwapContentWithThumbnailFeedback = new BoolFeedback(CanSwapContentWithThumbnailFeedbackFunc);
@@ -1797,13 +1802,12 @@ 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 // TODO: #714 [ ] Feature Layout Size
trilist.SetSigFalseAction(joinMap.SetLayoutSizeOff.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Off)); trilist.SetSigFalseAction(joinMap.SetLayoutSizeOff.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Off));
trilist.SetSigFalseAction(joinMap.SetLayoutSize1.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size1)); trilist.SetSigFalseAction(joinMap.SetLayoutSize1.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size1));
trilist.SetSigFalseAction(joinMap.SetLayoutSize2.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size2)); trilist.SetSigFalseAction(joinMap.SetLayoutSize2.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size2));
trilist.SetSigFalseAction(joinMap.SetLayoutSize3.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size3)); trilist.SetSigFalseAction(joinMap.SetLayoutSize3.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Size3));
trilist.SetSigFalseAction(joinMap.SetLayoutSizeStrip.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Strip)); trilist.SetSigFalseAction(joinMap.SetLayoutSizeStrip.JoinNumber, () => layoutsCodec.SetLayoutSize(zConfiguration.eLayoutSize.Strip));
// TOOD: #714 [ ] Feature Layout Size
trilist.SetSigFalseAction(joinMap.GetSetCurrentLayoutSize.JoinNumber, layoutsCodec.GetCurrentLayoutSize); trilist.SetSigFalseAction(joinMap.GetSetCurrentLayoutSize.JoinNumber, layoutsCodec.GetCurrentLayoutSize);
trilist.SetStringSigAction(joinMap.GetSetCurrentLayoutSize.JoinNumber, (s) => 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); 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; var pinCodec = this as IHasParticipantPinUnpin;
@@ -2327,22 +2366,86 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
SendText("zCommand Call Layout TurnPage Forward: Off"); SendText("zCommand Call Layout TurnPage Forward: Off");
} }
// TOOD: #714 [ ] Feature Layout Size // TODO: #714 [ ] Feature Layout Size
/// <summary>
/// Stores last selected layout size
/// </summary>
public zConfiguration.eLayoutSize LastSelectedLayoutSize { get; private set; } public zConfiguration.eLayoutSize LastSelectedLayoutSize { get; private set; }
// TOOD: #714 [ ] Feature Layout Size // TODO: #714 [ ] Feature Layout Size
/// <summary>
/// Queries for current layout size
/// </summary>
public void GetCurrentLayoutSize() public void GetCurrentLayoutSize()
{ {
SendText("zConfiguration Call Layout Size"); SendText("zConfiguration Call Layout Size");
} }
// TOOD: #714 [ ] Feature Layout Size // TODO: #714 [ ] Feature Layout Size
/// <summary>
/// Sets selected layout size
/// </summary>
/// <param name="layoutSize">zConfiguration.eLayoutSize</param>
public void SetLayoutSize(zConfiguration.eLayoutSize layoutSize) public void SetLayoutSize(zConfiguration.eLayoutSize layoutSize)
{ {
LastSelectedLayoutSize = layoutSize; LastSelectedLayoutSize = layoutSize;
SendText(String.Format("zConfiguration Call Layout Size: {0}", layoutSize.ToString())); SendText(String.Format("zConfiguration Call Layout Size: {0}", layoutSize.ToString()));
} }
// TODO: #714 [ ] Feature Layout Size
private Func<string> LayoutSizeFeedbackFunc
{
get
{
return () => Configuration.Call.Layout.Size.ToString();
}
}
/// <summary>
/// Layout size feedback
/// </summary>
public StringFeedback LayoutSizeFeedback { get; private set; }
// TODO: #714 [ ] Feature Layout Size
/// <summary>
/// Stores last selected layout position
/// </summary>
public zConfiguration.eLayoutPosition LastSelectedLayoutPosition { get; private set; }
// TODO: #714 [ ] Feature Layout Size
/// <summary>
/// Queries for current layout position
/// </summary>
public void GetCurrentLayoutPosition()
{
SendText("zConfiguration Call Layout Position");
}
// TODO: #714 [ ] Feature Layout Size
/// <summary>
/// Sets selected layout position
/// </summary>
/// <param name="layoutPosition"></param>
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<string> LayoutPositionFeedbackFunc
{
get
{
return () => Configuration.Call.Layout.Position.ToString();
}
}
/// <summary>
/// Layout position feedback
/// </summary>
public StringFeedback LayoutPositionFeedback { get; private set; }
#endregion #endregion
#region IHasCodecLayouts Members #region IHasCodecLayouts Members

View File

@@ -162,24 +162,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Description = "FB Indicates if layout 'ShareAll' is available", Description = "FB Indicates if layout 'ShareAll' is available",
JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.DigitalSerial JoinType = eJoinType.DigitalSerial
}); });
// TOOD: #714 [ ] Feature Layout Size // TODO: #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")] [JoinName("SetLayoutSizeOff")]
public JoinDataComplete SetLayoutSizeOff = new JoinDataComplete( public JoinDataComplete SetLayoutSizeOff = new JoinDataComplete(
new JoinData new JoinData
@@ -194,7 +179,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TOOD: #714 [ ] Feature Layout Size // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSize1")] [JoinName("SetLayoutSize1")]
public JoinDataComplete SetLayoutSize1 = new JoinDataComplete( public JoinDataComplete SetLayoutSize1 = new JoinDataComplete(
new JoinData new JoinData
@@ -209,7 +194,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TOOD: #714 [ ] Feature Layout Size // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSize2")] [JoinName("SetLayoutSize2")]
public JoinDataComplete SetLayoutSize2 = new JoinDataComplete( public JoinDataComplete SetLayoutSize2 = new JoinDataComplete(
new JoinData new JoinData
@@ -224,7 +209,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TOOD: #714 [ ] Feature Layout Size // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSize3")] [JoinName("SetLayoutSize3")]
public JoinDataComplete SetLayoutSize3 = new JoinDataComplete( public JoinDataComplete SetLayoutSize3 = new JoinDataComplete(
new JoinData new JoinData
@@ -239,7 +224,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TOOD: #714 [ ] Feature Layout Size // TODO: #714 [ ] Feature Layout Size
[JoinName("SetLayoutSizeStrip")] [JoinName("SetLayoutSizeStrip")]
public JoinDataComplete SetLayoutSizeStrip = new JoinDataComplete( public JoinDataComplete SetLayoutSizeStrip = new JoinDataComplete(
new JoinData new JoinData
@@ -252,6 +237,141 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Description = "Sets layout size strip", Description = "Sets layout size strip",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital 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")] //[JoinName("ParticipantAudioMuteToggleStart")]
@@ -348,7 +468,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Serial JoinType = eJoinType.Serial
}); });
// TOOD: #714 [ ] Feature Layout Size // TODO: #714 [ ] Feature Layout Size
[JoinName("GetSetCurrentLayoutSize")] [JoinName("GetSetCurrentLayoutSize")]
public JoinDataComplete GetSetCurrentLayoutSize = new JoinDataComplete( public JoinDataComplete GetSetCurrentLayoutSize = new JoinDataComplete(
new JoinData new JoinData
@@ -363,6 +483,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.DigitalSerial 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 #endregion
public ZoomRoomJoinMap(uint joinStart) public ZoomRoomJoinMap(uint joinStart)