mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 20:54:55 +00:00
Merge pull request #1010 from PepperDash/hotfix/zoomroom-default-layout
Hotfix/zoomroom default layout
This commit is contained in:
@@ -1,61 +1,56 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Crestron.SimplSharp;
|
using Crestron.SimplSharp;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Core
|
namespace PepperDash.Essentials.Core
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Describes the functionality required to prompt a user to enter a password
|
/// Describes the functionality required to prompt a user to enter a password
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IPasswordPrompt
|
public interface IPasswordPrompt
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Notifies when a password is required or is entered incorrectly
|
/// Notifies when a password is required or is entered incorrectly
|
||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<PasswordPromptEventArgs> PasswordRequired;
|
event EventHandler<PasswordPromptEventArgs> PasswordRequired;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Submits the password
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="password"></param>
|
|
||||||
void SubmitPassword(string password);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Cancels the password submission
|
/// Submits the password
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void CancelPasswordPrompt();
|
/// <param name="password"></param>
|
||||||
}
|
void SubmitPassword(string password);
|
||||||
|
}
|
||||||
public class PasswordPromptEventArgs : EventArgs
|
|
||||||
{
|
public class PasswordPromptEventArgs : EventArgs
|
||||||
/// <summary>
|
{
|
||||||
/// Indicates if the last submitted password was incorrect
|
/// <summary>
|
||||||
/// </summary>
|
/// Indicates if the last submitted password was incorrect
|
||||||
public bool LastAttemptWasIncorrect { get; private set; }
|
/// </summary>
|
||||||
|
public bool LastAttemptWasIncorrect { get; private set; }
|
||||||
/// <summary>
|
|
||||||
/// Indicates that the login attempt has failed
|
/// <summary>
|
||||||
/// </summary>
|
/// Indicates that the login attempt has failed
|
||||||
public bool LoginAttemptFailed { get; private set; }
|
/// </summary>
|
||||||
|
public bool LoginAttemptFailed { get; private set; }
|
||||||
/// <summary>
|
|
||||||
/// Indicates that the process was cancelled and the prompt should be dismissed
|
/// <summary>
|
||||||
/// </summary>
|
/// Indicates that the process was cancelled and the prompt should be dismissed
|
||||||
public bool LoginAttemptCancelled { get; private set; }
|
/// </summary>
|
||||||
|
public bool LoginAttemptCancelled { get; private set; }
|
||||||
/// <summary>
|
|
||||||
/// A message to be displayed to the user
|
/// <summary>
|
||||||
/// </summary>
|
/// A message to be displayed to the user
|
||||||
public string Message { get; private set; }
|
/// </summary>
|
||||||
|
public string Message { get; private set; }
|
||||||
public PasswordPromptEventArgs(bool lastAttemptIncorrect, bool loginFailed, bool loginCancelled, string message)
|
|
||||||
{
|
public PasswordPromptEventArgs(bool lastAttemptIncorrect, bool loginFailed, bool loginCancelled, string message)
|
||||||
LastAttemptWasIncorrect = lastAttemptIncorrect;
|
{
|
||||||
LoginAttemptFailed = loginFailed;
|
LastAttemptWasIncorrect = lastAttemptIncorrect;
|
||||||
LoginAttemptCancelled = loginCancelled;
|
LoginAttemptFailed = loginFailed;
|
||||||
Message = message;
|
LoginAttemptCancelled = loginCancelled;
|
||||||
}
|
Message = message;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -283,9 +283,10 @@ namespace PepperDash.Essentials.Core
|
|||||||
foreach (var join in joins)
|
foreach (var join in joins)
|
||||||
{
|
{
|
||||||
Debug.Console(0,
|
Debug.Console(0,
|
||||||
@"Join Number: {0} | JoinSpan: '{1}' | Description: '{2}' | Type: '{3}' | Capabilities: '{4}'",
|
@"Join Number: {0} | JoinSpan: '{1}' | JoinName: {2} | Description: '{3}' | Type: '{4}' | Capabilities: '{5}'",
|
||||||
join.Value.JoinNumber,
|
join.Value.JoinNumber,
|
||||||
join.Value.JoinSpan,
|
join.Value.JoinSpan,
|
||||||
|
join.Key,
|
||||||
String.IsNullOrEmpty(join.Value.AttributeName) ? join.Value.Metadata.Label : join.Value.AttributeName,
|
String.IsNullOrEmpty(join.Value.AttributeName) ? join.Value.Metadata.Label : join.Value.AttributeName,
|
||||||
join.Value.Metadata.JoinType.ToString(),
|
join.Value.Metadata.JoinType.ToString(),
|
||||||
join.Value.Metadata.JoinCapabilities.ToString());
|
join.Value.Metadata.JoinCapabilities.ToString());
|
||||||
|
|||||||
@@ -43,10 +43,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
|||||||
[JsonProperty("isLocked", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("isLocked", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public Boolean IsLocked { get; private set; }
|
public Boolean IsLocked { get; private set; }
|
||||||
[JsonProperty("isRecording", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("isRecording", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public Boolean IsRecording { get; private set; }
|
public Boolean IsRecording { get; private set; }
|
||||||
|
[JsonProperty("canRecord", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
|
public Boolean CanRecord { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
public MeetingInfo(string id, string name, string host, string password, string shareStatus, bool isHost, bool isSharingMeeting, bool waitingForHost, bool isLocked, bool isRecording)
|
public MeetingInfo(string id, string name, string host, string password, string shareStatus, bool isHost, bool isSharingMeeting, bool waitingForHost, bool isLocked, bool isRecording, bool canRecord)
|
||||||
{
|
{
|
||||||
Id = id;
|
Id = id;
|
||||||
Name = name;
|
Name = name;
|
||||||
@@ -57,7 +59,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
|||||||
IsSharingMeeting = isSharingMeeting;
|
IsSharingMeeting = isSharingMeeting;
|
||||||
WaitingForHost = waitingForHost;
|
WaitingForHost = waitingForHost;
|
||||||
IsLocked = isLocked;
|
IsLocked = isLocked;
|
||||||
IsRecording = isRecording;
|
IsRecording = isRecording;
|
||||||
|
CanRecord = CanRecord;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
public interface IHasPresentationOnlyMeeting
|
public interface IHasPresentationOnlyMeeting
|
||||||
{
|
{
|
||||||
void StartSharingOnlyMeeting();
|
void StartSharingOnlyMeeting();
|
||||||
void StartSharingOnlyMeeting(eSharingMeetingMode mode);
|
void StartSharingOnlyMeeting(eSharingMeetingMode displayMode);
|
||||||
void StartSharingOnlyMeeting(eSharingMeetingMode mode, ushort duration);
|
void StartSharingOnlyMeeting(eSharingMeetingMode displayMode, uint duration);
|
||||||
void StartSharingOnlyMeeting(eSharingMeetingMode mode, ushort duration, string password);
|
void StartSharingOnlyMeeting(eSharingMeetingMode displayMode, uint duration, string password);
|
||||||
void StartNormalMeetingFromSharingOnlyMeeting();
|
void StartNormalMeetingFromSharingOnlyMeeting();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -448,6 +448,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
private bool _isAirHostClientConnected;
|
private bool _isAirHostClientConnected;
|
||||||
private bool _isSharingBlackMagic;
|
private bool _isSharingBlackMagic;
|
||||||
private bool _isDirectPresentationConnected;
|
private bool _isDirectPresentationConnected;
|
||||||
|
private bool _isBlackMagicConnected;
|
||||||
|
|
||||||
|
|
||||||
public string directPresentationPairingCode { get; set; }
|
public string directPresentationPairingCode { get; set; }
|
||||||
@@ -484,7 +485,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool isBlackMagicConnected { get; set; }
|
public bool isBlackMagicConnected
|
||||||
|
{
|
||||||
|
get { return _isBlackMagicConnected; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value != _isBlackMagicConnected)
|
||||||
|
{
|
||||||
|
_isBlackMagicConnected = value;
|
||||||
|
NotifyPropertyChanged("isBlackMagicConnected");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
public bool isBlackMagicDataAvailable { get; set; }
|
public bool isBlackMagicDataAvailable { get; set; }
|
||||||
|
|
||||||
public bool isDirectPresentationConnected
|
public bool isDirectPresentationConnected
|
||||||
@@ -627,6 +639,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
// backer variables
|
// backer variables
|
||||||
private bool _can_Switch_Speaker_View;
|
private bool _can_Switch_Speaker_View;
|
||||||
private bool _can_Switch_Wall_View;
|
private bool _can_Switch_Wall_View;
|
||||||
|
private bool _can_Switch_Strip_View;
|
||||||
private bool _can_Switch_Share_On_All_Screens;
|
private bool _can_Switch_Share_On_All_Screens;
|
||||||
private bool _can_Switch_Floating_Share_Content;
|
private bool _can_Switch_Floating_Share_Content;
|
||||||
private bool _is_In_First_Page;
|
private bool _is_In_First_Page;
|
||||||
@@ -714,6 +727,23 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[JsonProperty("can_Switch_Strip_View")]
|
||||||
|
public bool can_Switch_Strip_View
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _can_Switch_Strip_View;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value != _can_Switch_Strip_View)
|
||||||
|
{
|
||||||
|
_can_Switch_Strip_View = value;
|
||||||
|
NotifyPropertyChanged("can_Switch_Strip_View");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[JsonProperty("is_In_First_Page")]
|
[JsonProperty("is_In_First_Page")]
|
||||||
public bool is_In_First_Page
|
public bool is_In_First_Page
|
||||||
{
|
{
|
||||||
@@ -775,11 +805,43 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
public class CallRecordInfo : NotifiableObject
|
public class CallRecordInfo : NotifiableObject
|
||||||
{
|
{
|
||||||
private bool _meetingIsBeingRecorded;
|
private bool _meetingIsBeingRecorded;
|
||||||
|
private bool _canRecord;
|
||||||
|
private bool _emailRequired;
|
||||||
|
|
||||||
public bool canRecord { get; set; }
|
|
||||||
public bool emailRequired { get; set; }
|
|
||||||
public bool amIRecording { get; set; }
|
public bool amIRecording { get; set; }
|
||||||
|
|
||||||
|
public bool canRecord
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _canRecord;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value != _canRecord)
|
||||||
|
{
|
||||||
|
_canRecord = value;
|
||||||
|
NotifyPropertyChanged("canRecord");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool emailRequired
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _emailRequired;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value != _emailRequired)
|
||||||
|
{
|
||||||
|
_emailRequired = value;
|
||||||
|
NotifyPropertyChanged("emailRequired");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public bool meetingIsBeingRecorded
|
public bool meetingIsBeingRecorded
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -798,6 +860,17 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates if recording is allowed (when meeting capable and and email is not required to be entered by the user)
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowRecord
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return canRecord && !emailRequired;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public CallRecordInfo()
|
public CallRecordInfo()
|
||||||
{
|
{
|
||||||
Debug.Console(2, Debug.ErrorLogLevel.Notice, "********************************************* CallRecordInfo() ******************************************");
|
Debug.Console(2, Debug.ErrorLogLevel.Notice, "********************************************* CallRecordInfo() ******************************************");
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
protected override Func<bool> SharingContentIsOnFeedbackFunc
|
protected override Func<bool> SharingContentIsOnFeedbackFunc
|
||||||
{
|
{
|
||||||
get { return () => Status.Call.Sharing.IsSharing; }
|
get { return () => Status.Sharing.isAirHostClientConnected || Status.Sharing.isDirectPresentationConnected || Status.Sharing.isSharingBlackMagic; }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Func<bool> FarEndIsSharingContentFeedbackFunc
|
protected Func<bool> FarEndIsSharingContentFeedbackFunc
|
||||||
@@ -529,6 +529,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void SetUpCallFeedbackActions()
|
private void SetUpCallFeedbackActions()
|
||||||
{
|
{
|
||||||
|
Status.Sharing.PropertyChanged -= HandleSharingStateUpdate;
|
||||||
|
Status.Sharing.PropertyChanged += HandleSharingStateUpdate;
|
||||||
|
|
||||||
Status.Call.Sharing.PropertyChanged -= HandleSharingStateUpdate;
|
Status.Call.Sharing.PropertyChanged -= HandleSharingStateUpdate;
|
||||||
Status.Call.Sharing.PropertyChanged += HandleSharingStateUpdate;
|
Status.Call.Sharing.PropertyChanged += HandleSharingStateUpdate;
|
||||||
|
|
||||||
@@ -541,7 +544,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
private void HandleCallRecordInfoStateUpdate(object sender, PropertyChangedEventArgs a)
|
private void HandleCallRecordInfoStateUpdate(object sender, PropertyChangedEventArgs a)
|
||||||
{
|
{
|
||||||
if (a.PropertyName == "meetingIsBeingRecorded")
|
if (a.PropertyName == "meetingIsBeingRecorded" || a.PropertyName == "emailRequired" || a.PropertyName == "canRecord")
|
||||||
{
|
{
|
||||||
MeetingIsRecordingFeedback.FireUpdate();
|
MeetingIsRecordingFeedback.FireUpdate();
|
||||||
|
|
||||||
@@ -554,7 +557,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
MeetingInfo.IsSharingMeeting,
|
MeetingInfo.IsSharingMeeting,
|
||||||
MeetingInfo.WaitingForHost,
|
MeetingInfo.WaitingForHost,
|
||||||
MeetingIsLockedFeedback.BoolValue,
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
MeetingIsRecordingFeedback.BoolValue);
|
MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
MeetingInfo = meetingInfo;
|
MeetingInfo = meetingInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -580,10 +583,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
private void HandleSharingStateUpdate(object sender, PropertyChangedEventArgs a)
|
private void HandleSharingStateUpdate(object sender, PropertyChangedEventArgs a)
|
||||||
{
|
{
|
||||||
if (a.PropertyName != "State")
|
//if (a.PropertyName != "State")
|
||||||
{
|
//{
|
||||||
return;
|
// return;
|
||||||
}
|
//}
|
||||||
|
|
||||||
SharingContentIsOnFeedback.FireUpdate();
|
SharingContentIsOnFeedback.FireUpdate();
|
||||||
ReceivingContent.FireUpdate();
|
ReceivingContent.FireUpdate();
|
||||||
@@ -593,21 +596,19 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
// Update the share status of the meeting info
|
// Update the share status of the meeting info
|
||||||
if (MeetingInfo == null)
|
if (MeetingInfo == null)
|
||||||
{
|
{
|
||||||
var sharingStatus = GetSharingStatus();
|
MeetingInfo = new MeetingInfo("", "", "", "", GetSharingStatus(), GetIsHostMyself(), true, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
|
|
||||||
MeetingInfo = new MeetingInfo("", "", "", "", sharingStatus, GetIsHostMyself(), true, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var meetingInfo = new MeetingInfo(MeetingInfo.Id, MeetingInfo.Name, Participants.Host != null ? Participants.Host.Name : "None",
|
var meetingInfo = new MeetingInfo(MeetingInfo.Id, MeetingInfo.Name, Participants.Host != null ? Participants.Host.Name : "None",
|
||||||
MeetingInfo.Password, GetSharingStatus(), GetIsHostMyself(), MeetingInfo.IsSharingMeeting, MeetingInfo.WaitingForHost, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
MeetingInfo.Password, GetSharingStatus(), GetIsHostMyself(), MeetingInfo.IsSharingMeeting, MeetingInfo.WaitingForHost, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
MeetingInfo = meetingInfo;
|
MeetingInfo = meetingInfo;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.Console(1, this, "Error processing state property update. {0}", e.Message);
|
Debug.Console(1, this, "Error processing state property update. {0}", e.Message);
|
||||||
Debug.Console(2, this, e.StackTrace);
|
Debug.Console(2, this, e.StackTrace);
|
||||||
MeetingInfo = new MeetingInfo("", "", "", "", "None", false, false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
MeetingInfo = new MeetingInfo("", "", "", "", "None", false, false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -714,7 +715,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
MeetingInfo.IsSharingMeeting,
|
MeetingInfo.IsSharingMeeting,
|
||||||
MeetingInfo.WaitingForHost,
|
MeetingInfo.WaitingForHost,
|
||||||
MeetingIsLockedFeedback.BoolValue,
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
MeetingIsRecordingFeedback.BoolValue
|
MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -776,7 +777,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
MeetingInfo.IsSharingMeeting,
|
MeetingInfo.IsSharingMeeting,
|
||||||
MeetingInfo.WaitingForHost,
|
MeetingInfo.WaitingForHost,
|
||||||
MeetingIsLockedFeedback.BoolValue,
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
MeetingIsRecordingFeedback.BoolValue);
|
MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
MeetingInfo = meetingInfo;
|
MeetingInfo = meetingInfo;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -810,8 +811,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
Debug.Console(1, this, "Status.Layout.PropertyChanged a.PropertyName: {0}", a.PropertyName);
|
Debug.Console(1, this, "Status.Layout.PropertyChanged a.PropertyName: {0}", a.PropertyName);
|
||||||
switch (a.PropertyName.ToLower())
|
switch (a.PropertyName.ToLower())
|
||||||
{
|
{
|
||||||
case "can_switch_speaker_view":
|
case "can_Switch_speaker_view":
|
||||||
case "can_switch_wall_view":
|
case "can_switch_wall_view":
|
||||||
|
case "can_switch_strip_view":
|
||||||
|
case "video_type":
|
||||||
case "can_switch_share_on_all_screens":
|
case "can_switch_share_on_all_screens":
|
||||||
{
|
{
|
||||||
ComputeAvailableLayouts();
|
ComputeAvailableLayouts();
|
||||||
@@ -827,7 +830,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
LayoutViewIsOnLastPageFeedback.FireUpdate();
|
LayoutViewIsOnLastPageFeedback.FireUpdate();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "can_Switch_Floating_Share_Content":
|
case "can_switch_floating_share_content":
|
||||||
{
|
{
|
||||||
CanSwapContentWithThumbnailFeedback.FireUpdate();
|
CanSwapContentWithThumbnailFeedback.FireUpdate();
|
||||||
break;
|
break;
|
||||||
@@ -1468,13 +1471,15 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
MeetingInfo.Id,
|
MeetingInfo.Id,
|
||||||
MeetingInfo.Name,
|
MeetingInfo.Name,
|
||||||
Participants.Host.Name,
|
Participants.Host.Name,
|
||||||
MeetingInfo.Password,
|
MeetingInfo.Password,
|
||||||
MeetingInfo.ShareStatus,
|
GetSharingStatus(),
|
||||||
GetIsHostMyself(),
|
GetIsHostMyself(),
|
||||||
MeetingInfo.IsSharingMeeting,
|
MeetingInfo.IsSharingMeeting,
|
||||||
MeetingInfo.WaitingForHost,
|
MeetingInfo.WaitingForHost,
|
||||||
MeetingIsLockedFeedback.BoolValue,
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
MeetingIsRecordingFeedback.BoolValue);
|
MeetingIsRecordingFeedback.BoolValue,
|
||||||
|
Status.Call.CallRecordInfo.AllowRecord
|
||||||
|
);
|
||||||
MeetingInfo = meetingInfo;
|
MeetingInfo = meetingInfo;
|
||||||
|
|
||||||
PrintCurrentCallParticipants();
|
PrintCurrentCallParticipants();
|
||||||
@@ -1559,7 +1564,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
{
|
{
|
||||||
JsonConvert.PopulateObject(responseObj.ToString(), Status.Call.Sharing);
|
JsonConvert.PopulateObject(responseObj.ToString(), Status.Call.Sharing);
|
||||||
|
|
||||||
SetLayout();
|
SetDefaultLayout();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1689,14 +1694,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
if (MeetingInfo == null)
|
if (MeetingInfo == null)
|
||||||
{
|
{
|
||||||
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
||||||
GetSharingStatus(), false, false, true, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
GetSharingStatus(), false, false, true, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
|
|
||||||
UpdateCallStatus();
|
UpdateCallStatus();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
||||||
GetSharingStatus(), false, false, true, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
GetSharingStatus(), false, false, true, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
|
|
||||||
UpdateCallStatus();
|
UpdateCallStatus();
|
||||||
|
|
||||||
@@ -1706,12 +1711,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
if (MeetingInfo == null)
|
if (MeetingInfo == null)
|
||||||
{
|
{
|
||||||
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
||||||
GetSharingStatus(), false, false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
GetSharingStatus(), false, false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
MeetingInfo = new MeetingInfo(MeetingInfo.Id, MeetingInfo.Name, MeetingInfo.Host, MeetingInfo.Password,
|
MeetingInfo = new MeetingInfo(MeetingInfo.Id, MeetingInfo.Name, MeetingInfo.Host, MeetingInfo.Password,
|
||||||
GetSharingStatus(), GetIsHostMyself(), false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
GetSharingStatus(), GetIsHostMyself(), false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1801,7 +1806,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
if (result.Success)
|
if (result.Success)
|
||||||
{
|
{
|
||||||
MeetingInfo = new MeetingInfo("", "", "", "", "", true, true, MeetingInfo.WaitingForHost, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
MeetingInfo = new MeetingInfo("", "", "", "", GetSharingStatus(), true, true, MeetingInfo.WaitingForHost, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1935,7 +1940,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetLayout()
|
private void SetDefaultLayout()
|
||||||
{
|
{
|
||||||
if (!_props.AutoDefaultLayouts) return;
|
if (!_props.AutoDefaultLayouts) return;
|
||||||
|
|
||||||
@@ -1948,8 +1953,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SendText(String.Format("zconfiguration call layout style: {0}",
|
if (_props.DefaultCallLayout == (_props.DefaultCallLayout & AvailableLayouts))
|
||||||
_props.DefaultCallLayout));
|
{
|
||||||
|
SendText(String.Format("zconfiguration call layout style: {0}",
|
||||||
|
_props.DefaultCallLayout));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Debug.Console(0, this, "Unable to set default Layout. {0} not currently an available layout based on meeting state", _props.DefaultCallLayout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2147,10 +2157,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
!String.Equals(Status.Call.Info.meeting_type,"NORMAL"),
|
!String.Equals(Status.Call.Info.meeting_type,"NORMAL"),
|
||||||
false,
|
false,
|
||||||
MeetingIsLockedFeedback.BoolValue,
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
MeetingIsRecordingFeedback.BoolValue
|
MeetingIsRecordingFeedback.BoolValue, Status.Call.CallRecordInfo.AllowRecord
|
||||||
);
|
);
|
||||||
|
|
||||||
|
SetDefaultLayout();
|
||||||
}
|
}
|
||||||
// TODO [ ] Issue #868
|
|
||||||
else if (item.Status == eCodecCallStatus.Disconnected)
|
else if (item.Status == eCodecCallStatus.Disconnected)
|
||||||
{
|
{
|
||||||
MeetingInfo = new MeetingInfo(
|
MeetingInfo = new MeetingInfo(
|
||||||
@@ -2163,7 +2175,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false
|
false, Status.Call.CallRecordInfo.AllowRecord
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2171,11 +2183,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
Debug.Console(1, this, "[OnCallStatusChange] Current Call Status: {0}",
|
Debug.Console(1, this, "[OnCallStatusChange] Current Call Status: {0}",
|
||||||
Status.Call != null ? Status.Call.Status.ToString() : "no call");
|
Status.Call != null ? Status.Call.Status.ToString() : "no call");
|
||||||
|
|
||||||
if (_props.AutoDefaultLayouts)
|
|
||||||
{
|
|
||||||
SetLayout();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetSharingStatus()
|
private string GetSharingStatus()
|
||||||
@@ -2243,6 +2250,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Starts sharing HDMI source
|
||||||
|
/// </summary>
|
||||||
public override void StartSharing()
|
public override void StartSharing()
|
||||||
{
|
{
|
||||||
SendText("zCommand Call Sharing HDMI Start");
|
SendText("zCommand Call Sharing HDMI Start");
|
||||||
@@ -2388,6 +2398,20 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
/// <param name="joinMap"></param>
|
/// <param name="joinMap"></param>
|
||||||
public void LinkZoomRoomToApi(BasicTriList trilist, ZoomRoomJoinMap joinMap)
|
public void LinkZoomRoomToApi(BasicTriList trilist, ZoomRoomJoinMap joinMap)
|
||||||
{
|
{
|
||||||
|
var meetingInfoCodec = this as IHasMeetingInfo;
|
||||||
|
if (meetingInfoCodec != null)
|
||||||
|
{
|
||||||
|
if (meetingInfoCodec.MeetingInfo != null)
|
||||||
|
{
|
||||||
|
trilist.SetBool(joinMap.MeetingCanRecord.JoinNumber, meetingInfoCodec.MeetingInfo.CanRecord);
|
||||||
|
}
|
||||||
|
|
||||||
|
meetingInfoCodec.MeetingInfoChanged += (o, a) =>
|
||||||
|
{
|
||||||
|
trilist.SetBool(joinMap.MeetingCanRecord.JoinNumber, a.Info.CanRecord);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
var recordingCodec = this as IHasMeetingRecordingWithPrompt;
|
var recordingCodec = this as IHasMeetingRecordingWithPrompt;
|
||||||
if (recordingCodec != null)
|
if (recordingCodec != null)
|
||||||
{
|
{
|
||||||
@@ -2502,13 +2526,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
//trilist.SetString(joinMap.CurrentSource.JoinNumber, args.Info.ShareStatus);
|
//trilist.SetString(joinMap.CurrentSource.JoinNumber, args.Info.ShareStatus);
|
||||||
};
|
};
|
||||||
|
|
||||||
trilist.SetSigTrueAction(joinMap.StartMeetingNow.JoinNumber, () => StartMeeting(0));
|
trilist.SetSigFalseAction(joinMap.StartMeetingNow.JoinNumber, () => StartMeeting(0));
|
||||||
trilist.SetSigTrueAction(joinMap.ShareOnlyMeeting.JoinNumber, StartSharingOnlyMeeting);
|
trilist.SetSigFalseAction(joinMap.ShareOnlyMeeting.JoinNumber, StartSharingOnlyMeeting);
|
||||||
trilist.SetSigTrueAction(joinMap.StartNormalMeetingFromSharingOnlyMeeting.JoinNumber, StartNormalMeetingFromSharingOnlyMeeting);
|
trilist.SetSigFalseAction(joinMap.StartNormalMeetingFromSharingOnlyMeeting.JoinNumber, StartNormalMeetingFromSharingOnlyMeeting);
|
||||||
|
|
||||||
trilist.SetStringSigAction(joinMap.SubmitPassword.JoinNumber, SubmitPassword);
|
trilist.SetStringSigAction(joinMap.SubmitPassword.JoinNumber, SubmitPassword);
|
||||||
//trilist.SetSigFalseAction(joinMap.CancelPasswordPrompt.JoinNumber, () =>
|
|
||||||
// OnPasswordRequired(false, false, true, ""));
|
|
||||||
|
|
||||||
// Subscribe to call status to clear ShowPasswordPrompt when in meeting
|
// Subscribe to call status to clear ShowPasswordPrompt when in meeting
|
||||||
this.CallStatusChange += (o, a) =>
|
this.CallStatusChange += (o, a) =>
|
||||||
@@ -2567,7 +2589,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
var wirelessInfoCodec = this as IZoomWirelessShareInstructions;
|
var wirelessInfoCodec = this as IZoomWirelessShareInstructions;
|
||||||
if (wirelessInfoCodec != null)
|
if (wirelessInfoCodec != null)
|
||||||
{
|
{
|
||||||
SetSharingStateJoins(Status.Sharing, trilist, joinMap);
|
if (Status != null && Status.Sharing != null)
|
||||||
|
{
|
||||||
|
SetSharingStateJoins(Status.Sharing, trilist, joinMap);
|
||||||
|
}
|
||||||
|
|
||||||
wirelessInfoCodec.ShareInfoChanged += (o, a) =>
|
wirelessInfoCodec.ShareInfoChanged += (o, a) =>
|
||||||
{
|
{
|
||||||
@@ -3264,7 +3289,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
// There is no property that directly reports if strip mode is valid, but API stipulates
|
// There is no property that directly reports if strip mode is valid, but API stipulates
|
||||||
// that strip mode is available if the number of screens is 1
|
// that strip mode is available if the number of screens is 1
|
||||||
if (Status.NumberOfScreens.NumOfScreens == 1)
|
if (Status.NumberOfScreens.NumOfScreens == 1 || Status.Layout.can_Switch_Strip_View || Status.Layout.video_type.ToLower() == "strip")
|
||||||
{
|
{
|
||||||
availableLayouts |= zConfiguration.eLayoutStyle.Strip;
|
availableLayouts |= zConfiguration.eLayoutStyle.Strip;
|
||||||
}
|
}
|
||||||
@@ -3279,10 +3304,15 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
var handler = LayoutInfoChanged;
|
var handler = LayoutInfoChanged;
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var currentLayout = zConfiguration.eLayoutStyle.None;
|
||||||
|
|
||||||
|
currentLayout = (zConfiguration.eLayoutStyle)Enum.Parse(typeof(zConfiguration.eLayoutStyle), string.IsNullOrEmpty(LocalLayoutFeedback.StringValue) ? "None" : LocalLayoutFeedback.StringValue, true);
|
||||||
|
|
||||||
handler(this, new LayoutInfoChangedEventArgs()
|
handler(this, new LayoutInfoChangedEventArgs()
|
||||||
{
|
{
|
||||||
AvailableLayouts = AvailableLayouts,
|
AvailableLayouts = AvailableLayouts,
|
||||||
CurrentSelectedLayout = (zConfiguration.eLayoutStyle)Enum.Parse(typeof(zConfiguration.eLayoutStyle),string.IsNullOrEmpty(LocalLayoutFeedback.StringValue) ? "None" : LocalLayoutFeedback.StringValue , true),
|
CurrentSelectedLayout = currentLayout,
|
||||||
LayoutViewIsOnFirstPage = LayoutViewIsOnFirstPageFeedback.BoolValue,
|
LayoutViewIsOnFirstPage = LayoutViewIsOnFirstPageFeedback.BoolValue,
|
||||||
LayoutViewIsOnLastPage = LayoutViewIsOnLastPageFeedback.BoolValue,
|
LayoutViewIsOnLastPage = LayoutViewIsOnLastPageFeedback.BoolValue,
|
||||||
CanSwapContentWithThumbnail = CanSwapContentWithThumbnailFeedback.BoolValue,
|
CanSwapContentWithThumbnail = CanSwapContentWithThumbnailFeedback.BoolValue,
|
||||||
@@ -3415,11 +3445,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
//OnPasswordRequired(false, false, true, "");
|
//OnPasswordRequired(false, false, true, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CancelPasswordPrompt()
|
|
||||||
{
|
|
||||||
OnPasswordRequired(false, false, true, "Login Cancelled");
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnPasswordRequired(bool lastAttemptIncorrect, bool loginFailed, bool loginCancelled, string message)
|
void OnPasswordRequired(bool lastAttemptIncorrect, bool loginFailed, bool loginCancelled, string message)
|
||||||
{
|
{
|
||||||
var handler = PasswordRequired;
|
var handler = PasswordRequired;
|
||||||
@@ -3464,19 +3489,19 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
StartSharingOnlyMeeting(eSharingMeetingMode.None, 30, String.Empty);
|
StartSharingOnlyMeeting(eSharingMeetingMode.None, 30, String.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartSharingOnlyMeeting(eSharingMeetingMode mode)
|
public void StartSharingOnlyMeeting(eSharingMeetingMode displayMode)
|
||||||
{
|
{
|
||||||
StartSharingOnlyMeeting(mode, 30, String.Empty);
|
StartSharingOnlyMeeting(displayMode, DefaultMeetingDurationMin, String.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartSharingOnlyMeeting(eSharingMeetingMode mode, ushort duration)
|
public void StartSharingOnlyMeeting(eSharingMeetingMode displayMode, uint duration)
|
||||||
{
|
{
|
||||||
StartSharingOnlyMeeting(mode, duration, String.Empty);
|
StartSharingOnlyMeeting(displayMode, duration, String.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartSharingOnlyMeeting(eSharingMeetingMode mode, ushort duration, string password)
|
public void StartSharingOnlyMeeting(eSharingMeetingMode displayMode, uint duration, string password)
|
||||||
{
|
{
|
||||||
SendText(String.Format("zCommand Dial Sharing Duration: {0} DisplayState: {1} Password: {2}", duration, mode, password));
|
SendText(String.Format("zCommand Dial Sharing Duration: {0} DisplayState: {1} Password: {2}", duration, displayMode, password));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartNormalMeetingFromSharingOnlyMeeting()
|
public void StartNormalMeetingFromSharingOnlyMeeting()
|
||||||
@@ -3568,6 +3593,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
void OnShareInfoChanged(zStatus.Sharing status)
|
void OnShareInfoChanged(zStatus.Sharing status)
|
||||||
{
|
{
|
||||||
|
Debug.Console(2, this,
|
||||||
|
@"ShareInfoChanged:
|
||||||
|
isSharingHDMI: {0}
|
||||||
|
isSharingAirplay: {1}
|
||||||
|
AirplayPassword: {2}
|
||||||
|
OSD Display State: {3}
|
||||||
|
",
|
||||||
|
status.isSharingBlackMagic,
|
||||||
|
status.isAirHostClientConnected,
|
||||||
|
status.password,
|
||||||
|
status.dispState);
|
||||||
|
|
||||||
var handler = ShareInfoChanged;
|
var handler = ShareInfoChanged;
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
},
|
},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "FB Indicates the password prompt is active",
|
Description = "Pulse to start an ad-hoc meeting with the default duration",
|
||||||
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
@@ -373,6 +373,20 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
|
[JoinName("MeetingCanRecord")]
|
||||||
|
public JoinDataComplete MeetingCanRecord = new JoinDataComplete(
|
||||||
|
new JoinData
|
||||||
|
{
|
||||||
|
JoinNumber = 246,
|
||||||
|
JoinSpan = 1
|
||||||
|
},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "When high, indicated that the current meeting can be recorded",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
#region Sharing Status
|
#region Sharing Status
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using Crestron.SimplSharp;
|
using Crestron.SimplSharp;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Converters;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
|
|
||||||
@@ -29,11 +30,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
/* This layout will be selected when Sharing starts (either from Far end or locally)*/
|
/* This layout will be selected when Sharing starts (either from Far end or locally)*/
|
||||||
[JsonProperty("defaultSharingLayout")]
|
[JsonProperty("defaultSharingLayout")]
|
||||||
public string DefaultSharingLayout { get; set; }
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
|
public zConfiguration.eLayoutStyle DefaultSharingLayout { get; set; }
|
||||||
|
|
||||||
//This layout will be selected when a call is connected and no content is being shared
|
//This layout will be selected when a call is connected and no content is being shared
|
||||||
[JsonProperty("defaultCallLayout")]
|
[JsonProperty("defaultCallLayout")]
|
||||||
public string DefaultCallLayout { get; set; }
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
|
public zConfiguration.eLayoutStyle DefaultCallLayout { get; set; }
|
||||||
|
|
||||||
[JsonProperty("minutesBeforeMeetingStart")]
|
[JsonProperty("minutesBeforeMeetingStart")]
|
||||||
public int MinutesBeforeMeetingStart { get; set; }
|
public int MinutesBeforeMeetingStart { get; set; }
|
||||||
|
|||||||
Reference in New Issue
Block a user