diff --git a/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs b/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
index d1fb6697..1a127000 100644
--- a/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
+++ b/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs
@@ -61,6 +61,7 @@ namespace PepperDash.Essentials
+
// Audio Conference
///
/// 1101
@@ -766,10 +767,10 @@ namespace PepperDash.Essentials
/// 15044 Close button for source modal overlay
///
public const uint SourceBackgroundOverlayClosePress = 15044;
- /////
- ///// 15045 - Visibility for the bar containing call navigation button list
- /////
- //public const uint CallStagingBarVisible = 15045;
+ ///
+ /// 15045
+ ///
+ public const uint ZoomRoomContentSharingVisible = 15045;
///
/// 15046
///
diff --git a/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs b/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
index 45a2d3ea..38a86fbb 100644
--- a/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
+++ b/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
@@ -42,7 +42,12 @@ namespace PepperDash.Essentials
///
/// 1008
///
- public const uint MeetingNameText = 1008;
+ public const uint MeetingLeaveText = 1008;
+ ///
+ /// 1009
+ ///
+ public const uint MeetingNameText = 1009;
+
diff --git a/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs b/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
index 7ff0e7f5..3eb78613 100644
--- a/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
+++ b/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/EssentialsHuddleVtc1PanelAvFunctionsDriver.cs
@@ -181,6 +181,8 @@ namespace PepperDash.Essentials
private UiDisplayMode _currentMode;
+ private uint _sourceListCount;
+
///
/// The mode showing. Presentation or call.
///
@@ -647,9 +649,24 @@ namespace PepperDash.Essentials
TriList.SetBool(StartPageVisibleJoin, startMode ? true : false);
- TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, presentationMode ? true : false);
+ if (presentationMode && CurrentRoom.VideoCodec is IHasMeetingInfo && _sourceListCount < 2)
+ {
+ // For now, if this is a Zoom Room and there are no shareable sources just display the informational subpage
+ TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, false);
+ TriList.SetBool(UIBoolJoin.ZoomRoomContentSharingVisible, true);
+ }
+ else
+ {
+ // Otherwise, show the staging bar
+ TriList.SetBool(UIBoolJoin.ZoomRoomContentSharingVisible, false);
+ TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, presentationMode ? true : false);
+
+ }
if (!presentationMode)
+ {
+ TriList.SetBool(UIBoolJoin.ZoomRoomContentSharingVisible, false);
TriList.SetBool(UIBoolJoin.SelectASourceVisible, false);
+ }
CallButtonSig.BoolValue = callMode
&& CurrentRoom.ShutdownType == eShutdownType.None;
@@ -1049,6 +1066,8 @@ namespace PepperDash.Essentials
TriList.SetBool(UIBoolJoin.MeetingPasswordVisible, string.IsNullOrEmpty(e.Info.Password) ? false : true);
TriList.SetString(UIStringJoin.CallSharedSourceNameText, e.Info.ShareStatus);
+
+ TriList.SetString(UIStringJoin.MeetingLeaveText, e.Info.IsHost ? "End Meeting" : "Leave Meeting");
}
void SetCurrentRoom(IEssentialsHuddleVtc1Room room)
@@ -1164,7 +1183,8 @@ namespace PepperDash.Essentials
Debug.Console(1, "**** KEY {0}", kvp.Key);
}
- SourceStagingSrl.Count = (ushort)(i - 1);
+ _sourceListCount = (i - 1);
+ SourceStagingSrl.Count = (ushort)_sourceListCount;
}
}
diff --git a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
index ac0611d6..7ec44346 100644
--- a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
+++ b/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs
@@ -534,6 +534,28 @@ namespace PepperDash.Essentials.UIDrivers.VC
Parent.PopupInterlock.HideAndClear();
Codec.EndAllCalls();
});
+
+ var meetingInfoCodec = Codec as IHasMeetingInfo;
+ if (meetingInfoCodec != null)
+ {
+ TriList.SetSigFalseAction(UIBoolJoin.MeetingLeavePress, () =>
+ {
+ Parent.PopupInterlock.HideAndClear();
+
+ if (meetingInfoCodec.MeetingInfo.IsHost)
+ {
+ Codec.EndAllCalls();
+ }
+ else
+ {
+ var startMeetingCodec = Codec as IHasStartMeeting;
+ if (startMeetingCodec != null)
+ {
+ startMeetingCodec.LeaveMeeting();
+ }
+ }
+ });
+ }
}
void SetupCameraControls()
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasMeetingInfo.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasMeetingInfo.cs
index a2d08a34..236fde80 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasMeetingInfo.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasMeetingInfo.cs
@@ -44,7 +44,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
Host = host;
Password = password;
ShareStatus = shareStatus;
- IsHost = IsHost;
+ IsHost = isHost;
}
}