mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 04:34:56 +00:00
fix(essentials): Updates to deal with sharing status and adds a property to notify if meeting can be recorded
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -793,11 +793,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
|
||||||
@@ -816,6 +848,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() ******************************************");
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -1470,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();
|
||||||
@@ -1691,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();
|
||||||
|
|
||||||
@@ -1708,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;
|
||||||
}
|
}
|
||||||
@@ -1803,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2154,7 +2157,7 @@ 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();
|
SetDefaultLayout();
|
||||||
@@ -2172,7 +2175,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false
|
false, Status.Call.CallRecordInfo.AllowRecord
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2392,6 +2395,17 @@ 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)
|
||||||
|
{
|
||||||
|
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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user