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..c2014b67 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 @@ -25,7 +25,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec /// public interface IHasZoomRoomLayouts : IHasCodecLayouts { - event EventHandler AvailableLayoutsChanged; + event EventHandler LayoutInfoChanged; BoolFeedback LayoutViewIsOnFirstPageFeedback { get; } // TODO: #697 [*] Consider modifying to report button visibility in func BoolFeedback LayoutViewIsOnLastPageFeedback { get; } // TODO: #697 [*] Consider modifying to report button visibility in func @@ -46,5 +46,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec public class LayoutInfoChangedEventArgs : EventArgs { public ZoomRoom.zConfiguration.eLayoutStyle AvailableLayouts { get; set; } + public ZoomRoom.zConfiguration.eLayoutStyle LastSelectedLayout { get; set; } + public bool CanSwapContentWithThumbnail { get; set; } + public bool ContentSwappedWithThumbnail { get; set; } + public bool LayoutViewIsOnFirstPage { get; set; } + public bool LayoutViewIsOnLastPage { get; set; } } } \ No newline at end of file diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ResponseObjects.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ResponseObjects.cs index 3b6066d1..f6355d63 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ResponseObjects.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ResponseObjects.cs @@ -618,13 +618,31 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom private bool _can_Switch_Speaker_View; private bool _can_Switch_Wall_View; private bool _can_Switch_Share_On_All_Screens; + private bool _can_Switch_Floating_Share_Content; private bool _is_In_First_Page; private bool _is_In_Last_Page; private string _video_type; public bool can_Adjust_Floating_Video { get; set; } - public bool can_Switch_Floating_Share_Content { get; set; } + + + public bool can_Switch_Floating_Share_Content + { + get + { + return _can_Switch_Floating_Share_Content; + } + set + { + if (value != _can_Switch_Floating_Share_Content) + { + _can_Switch_Floating_Share_Content = value; + NotifyPropertyChanged("can_Switch_Floating_Share_Content"); + } + } + } + /// /// [on/off] // Set to On if it is possible to invoke zConfiguration Call Layout Style: ShareAll, to switch to the ShareAll mode, where the content sharing is shown full screen on all monitors. 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 f556fa94..7c21e6dd 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 @@ -583,11 +583,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom case "ShareThumb": { ContentSwappedWithThumbnailFeedback.FireUpdate(); + OnLayoutInfoChanged(); break; } case "Style": { LocalLayoutFeedback.FireUpdate(); + OnLayoutInfoChanged(); break; } case "Size": @@ -626,11 +628,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom case "ShareThumb": { ContentSwappedWithThumbnailFeedback.FireUpdate(); + OnLayoutInfoChanged(); break; } case "Style": { LocalLayoutFeedback.FireUpdate(); + OnLayoutInfoChanged(); break; } } @@ -735,13 +739,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom LayoutViewIsOnLastPageFeedback.FireUpdate(); break; } - //case "video_type": - // { - // It appears as though the actual value we want to watch is Configuration.Call.Layout.Style - // LocalLayoutFeedback.FireUpdate(); - // break; - // } + case "can_Switch_Floating_Share_Content": + { + CanSwapContentWithThumbnailFeedback.FireUpdate(); + break; + } } + OnLayoutInfoChanged(); }; Status.NumberOfScreens.PropertyChanged += (o, a) => @@ -2153,7 +2157,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom var layoutsCodec = this as IHasZoomRoomLayouts; if (layoutsCodec != null) { - layoutsCodec.AvailableLayoutsChanged += (o, a) => + layoutsCodec.LayoutInfoChanged += (o, a) => { trilist.SetBool(joinMap.LayoutGalleryIsAvailable.JoinNumber, zConfiguration.eLayoutStyle.Gallery == @@ -2856,7 +2860,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom #region IHasZoomRoomLayouts Members - public event EventHandler AvailableLayoutsChanged; + public event EventHandler LayoutInfoChanged; private Func LayoutViewIsOnFirstPageFeedbackFunc { @@ -2922,15 +2926,26 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom Debug.Console(1, this, "availablelayouts: {0}", availableLayouts); - var handler = AvailableLayoutsChanged; - if (handler != null) - { - handler(this, new LayoutInfoChangedEventArgs() {AvailableLayouts = availableLayouts}); - } - AvailableLayouts = availableLayouts; } + private void OnLayoutInfoChanged() + { + var handler = LayoutInfoChanged; + if (handler != null) + { + handler(this, new LayoutInfoChangedEventArgs() + { + AvailableLayouts = AvailableLayouts, + LastSelectedLayout = (zConfiguration.eLayoutStyle)Enum.Parse(typeof(zConfiguration.eLayoutStyle),LocalLayoutFeedback.StringValue, true), + LayoutViewIsOnFirstPage = LayoutViewIsOnFirstPageFeedback.BoolValue, + LayoutViewIsOnLastPage = LayoutViewIsOnLastPageFeedback.BoolValue, + CanSwapContentWithThumbnail = CanSwapContentWithThumbnailFeedback.BoolValue, + ContentSwappedWithThumbnail = ContentSwappedWithThumbnailFeedback.BoolValue, + }); + } + } + public void GetAvailableLayouts() { SendText("zStatus Call Layout");