mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-29 20:34:51 +00:00
feat(essentials): adds IHasMeetingRecording and implements on ZoomRoom
This commit is contained in:
@@ -122,6 +122,7 @@
|
||||
<Compile Include="Display\PanasonicThDisplay.cs" />
|
||||
<Compile Include="VideoCodec\Interfaces\IHasMeetingInfo.cs" />
|
||||
<Compile Include="VideoCodec\Interfaces\IHasMeetingLock.cs" />
|
||||
<Compile Include="VideoCodec\Interfaces\IHasMeetingRecording.cs" />
|
||||
<Compile Include="VideoCodec\Interfaces\IHasParticipants.cs" />
|
||||
<Compile Include="VideoCodec\Interfaces\IHasPresentationOnlyMeeting.cs" />
|
||||
<Compile Include="VideoCodec\Interfaces\IHasSelfviewPosition.cs" />
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
using PepperDash.Essentials.Core;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||
{
|
||||
public interface IHasMeetingRecording
|
||||
{
|
||||
BoolFeedback MeetingIsRecordingFeedback { get; }
|
||||
|
||||
void StartRecording();
|
||||
void StopRecording();
|
||||
void ToggleRecording();
|
||||
}
|
||||
}
|
||||
@@ -744,12 +744,29 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
||||
}
|
||||
}
|
||||
|
||||
public class CallRecordInfo
|
||||
public class CallRecordInfo : NotifiableObject
|
||||
{
|
||||
private bool _meetingIsBeingRecorded;
|
||||
|
||||
public bool canRecord { get; set; }
|
||||
public bool emailRequired { get; set; }
|
||||
public bool amIRecording { get; set; }
|
||||
public bool meetingIsBeingRecorded { get; set; }
|
||||
|
||||
public bool meetingIsBeingRecorded
|
||||
{
|
||||
get
|
||||
{
|
||||
return _meetingIsBeingRecorded;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value != _meetingIsBeingRecorded)
|
||||
{
|
||||
_meetingIsBeingRecorded = value;
|
||||
NotifyPropertyChanged("meetingIsBeingRecorded");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
||||
IRouting,
|
||||
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMute, IHasCameraAutoMode,
|
||||
IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin,
|
||||
IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting, IHasMeetingInfo, IHasPresentationOnlyMeeting, IHasMeetingLock
|
||||
IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting, IHasMeetingInfo, IHasPresentationOnlyMeeting,
|
||||
IHasMeetingLock, IHasMeetingRecording
|
||||
{
|
||||
private const long MeetingRefreshTimer = 60000;
|
||||
public uint DefaultMeetingDurationMin { get; private set; }
|
||||
@@ -149,6 +150,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
||||
NumberOfScreensFeedback = new IntFeedback(NumberOfScreensFeedbackFunc);
|
||||
|
||||
MeetingIsLockedFeedback = new BoolFeedback(() => Configuration.Call.Lock.Enable );
|
||||
|
||||
MeetingIsRecordingFeedback = new BoolFeedback(() => Status.Call.CallRecordInfo.meetingIsBeingRecorded );
|
||||
}
|
||||
|
||||
public CommunicationGather PortGather { get; private set; }
|
||||
@@ -651,6 +654,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
||||
}
|
||||
};
|
||||
|
||||
Status.Call.CallRecordInfo.PropertyChanged += (o, a) =>
|
||||
{
|
||||
if (a.PropertyName == "meetingIsBeingRecorded")
|
||||
{
|
||||
MeetingIsRecordingFeedback.FireUpdate();
|
||||
}
|
||||
};
|
||||
|
||||
Status.Sharing.PropertyChanged += (o, a) =>
|
||||
{
|
||||
switch (a.PropertyName)
|
||||
@@ -3137,6 +3148,34 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region IHasMeetingRecording Members
|
||||
|
||||
public BoolFeedback MeetingIsRecordingFeedback { get; private set; }
|
||||
|
||||
public void StartRecording()
|
||||
{
|
||||
SendText(string.Format("Command Call Record Enable: on"));
|
||||
}
|
||||
|
||||
public void StopRecording()
|
||||
{
|
||||
SendText(string.Format("Command Call Record Enable: off"));
|
||||
}
|
||||
|
||||
public void ToggleRecording()
|
||||
{
|
||||
if (MeetingIsRecordingFeedback.BoolValue)
|
||||
{
|
||||
StopRecording();
|
||||
}
|
||||
else
|
||||
{
|
||||
StartRecording();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user