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 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

View File

@@ -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
/// <summary>
/// Stores last selected layout size
/// </summary>
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()
{
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)
{
LastSelectedLayoutSize = layoutSize;
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
#region IHasCodecLayouts Members

View File

@@ -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)