Merge branch 'development' into hotfix/SecretsManager-Add-Fix

This commit is contained in:
Trevor Payne
2022-09-27 13:03:25 -05:00
committed by GitHub
8 changed files with 310 additions and 101 deletions

View File

@@ -792,44 +792,16 @@ namespace PepperDash.Essentials.Core.Bridges.JoinMaps
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
[JoinName("DialMeeting1")] [JoinName("DialMeetingStart")]
public JoinDataComplete DialMeeting1 = new JoinDataComplete( public JoinDataComplete DialMeetingStart = new JoinDataComplete(
new JoinData new JoinData
{ {
JoinNumber = 161, JoinNumber = 161,
JoinSpan = 1 JoinSpan = 10
}, },
new JoinMetadata new JoinMetadata
{ {
Description = "Join first meeting", Description = "Join meeting",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});
[JoinName("DialMeeting2")]
public JoinDataComplete DialMeeting2 = new JoinDataComplete(
new JoinData
{
JoinNumber = 162,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Join second meeting",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});
[JoinName("DialMeeting3")]
public JoinDataComplete DialMeeting3 = new JoinDataComplete(
new JoinData
{
JoinNumber = 163,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Join third meeting",
JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });

View File

@@ -20,7 +20,12 @@ namespace PepperDash.Essentials.Core
/// Submits the password /// Submits the password
/// </summary> /// </summary>
/// <param name="password"></param> /// <param name="password"></param>
void SubmitPassword(string password); void SubmitPassword(string password);
/// <summary>
/// Cancels the password submission
/// </summary>
void CancelPasswordPrompt();
} }
public class PasswordPromptEventArgs : EventArgs public class PasswordPromptEventArgs : EventArgs

View File

@@ -185,6 +185,7 @@
<Compile Include="VideoCodec\MockVC\MockVC.cs" /> <Compile Include="VideoCodec\MockVC\MockVC.cs" />
<Compile Include="VideoCodec\CiscoCodec\xStatus.cs" /> <Compile Include="VideoCodec\CiscoCodec\xStatus.cs" />
<Compile Include="VideoCodec\VideoCodecBase.cs" /> <Compile Include="VideoCodec\VideoCodecBase.cs" />
<Compile Include="VideoCodec\ZoomRoom\IZoomWirelessShareInstructions.cs" />
<Compile Include="VideoCodec\ZoomRoom\ResponseObjects.cs" /> <Compile Include="VideoCodec\ZoomRoom\ResponseObjects.cs" />
<Compile Include="VideoCodec\ZoomRoom\ZoomRoom.cs" /> <Compile Include="VideoCodec\ZoomRoom\ZoomRoom.cs" />
<Compile Include="VideoCodec\ZoomRoom\ZoomRoomCamera.cs" /> <Compile Include="VideoCodec\ZoomRoom\ZoomRoomCamera.cs" />

View File

@@ -224,6 +224,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
handler(this, new CodecCallStatusItemChangeEventArgs(item)); handler(this, new CodecCallStatusItemChangeEventArgs(item));
} }
PrivacyModeIsOnFeedback.FireUpdate();
if (AutoShareContentWhileInCall) if (AutoShareContentWhileInCall)
{ {
StartSharing(); StartSharing();
@@ -809,35 +811,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
codec.CodecSchedule.MeetingWarningMinutes = i; codec.CodecSchedule.MeetingWarningMinutes = i;
}); });
trilist.SetSigFalseAction(joinMap.DialMeeting1.JoinNumber, () =>
{ for (uint i = 0; i < joinMap.DialMeetingStart.JoinSpan; i++)
var mtg = 1; {
var index = mtg - 1; Debug.Console(1, this, "Setting action to Dial Meeting {0} to digital join {1}", i + 1, joinMap.DialMeetingStart.JoinNumber + i);
Debug.Console(1, this, "Meeting {0} Selected (EISC dig-o{1}) > _currentMeetings[{2}].Id: {3}, Title: {4}", var joinNumber = joinMap.DialMeetingStart.JoinNumber + i;
mtg, joinMap.DialMeeting1.JoinNumber, index, _currentMeetings[index].Id, _currentMeetings[index].Title); var mtg = i + 1;
if (_currentMeetings[index] != null) var index = (int)i;
Dial(_currentMeetings[index]);
}); trilist.SetSigFalseAction(joinNumber, () =>
{
trilist.SetSigFalseAction(joinMap.DialMeeting2.JoinNumber, () => Debug.Console(1, this, "Meeting {0} Selected (EISC dig-o{1}) > _currentMeetings[{2}].Id: {3}, Title: {4}",
{ mtg, joinMap.DialMeetingStart.JoinNumber + i, index, _currentMeetings[index].Id, _currentMeetings[index].Title);
var mtg = 2; if (_currentMeetings[index] != null)
var index = mtg - 1; Dial(_currentMeetings[index]);
Debug.Console(1, this, "Meeting {0} Selected (EISC dig-o{1}) > _currentMeetings[{2}].Id: {3}, Title: {4}", });
mtg, joinMap.DialMeeting2.JoinNumber, index, _currentMeetings[index].Id, _currentMeetings[index].Title); }
if (_currentMeetings[index] != null)
Dial(_currentMeetings[index]);
});
trilist.SetSigFalseAction(joinMap.DialMeeting3.JoinNumber, () =>
{
var mtg = 3;
var index = mtg - 1;
Debug.Console(1, this, "Meeting {0} Selected (EISC dig-o{1}) > _currentMeetings[{2}].Id: {3}, Title: {4}",
mtg, joinMap.DialMeeting3.JoinNumber, index, _currentMeetings[index].Id, _currentMeetings[index].Title);
if (_currentMeetings[index] != null)
Dial(_currentMeetings[index]);
});
codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap); codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap);
codec.CodecSchedule.MeetingEventChange += (sender, args) => codec.CodecSchedule.MeetingEventChange += (sender, args) =>
@@ -848,7 +837,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
} }
}; };
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
trilist.SetUShortSigAction(joinMap.MeetingsToDisplay.JoinNumber, m => MeetingsToDisplay = m); trilist.SetUShortSigAction(joinMap.MeetingsToDisplay.JoinNumber, m => MeetingsToDisplay = m);
MeetingsToDisplayFeedback.LinkInputSig(trilist.UShortInput[joinMap.MeetingsToDisplay.JoinNumber]); MeetingsToDisplayFeedback.LinkInputSig(trilist.UShortInput[joinMap.MeetingsToDisplay.JoinNumber]);

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{
public class ShareInfoEventArgs : EventArgs
{
public zStatus.Sharing SharingStatus { get; private set; }
public ShareInfoEventArgs(zStatus.Sharing status)
{
SharingStatus = status;
}
}
public interface IZoomWirelessShareInstructions
{
event EventHandler<ShareInfoEventArgs> ShareInfoChanged;
zStatus.Sharing SharingState { get; }
}
}

View File

@@ -434,9 +434,16 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
public bool supports_Web_Settings_Push { get; set; } public bool supports_Web_Settings_Push { get; set; }
} }
public enum eDisplayState
{
None,
Laptop,
IOS,
}
public class Sharing : NotifiableObject public class Sharing : NotifiableObject
{ {
private string _dispState; private eDisplayState _dispState;
private string _password; private string _password;
private bool _isAirHostClientConnected; private bool _isAirHostClientConnected;
private bool _isSharingBlackMagic; private bool _isSharingBlackMagic;
@@ -448,7 +455,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
/// Laptop client sharing key /// Laptop client sharing key
/// </summary> /// </summary>
public string directPresentationSharingKey { get; set; } public string directPresentationSharingKey { get; set; }
public string dispState public eDisplayState dispState
{ {
get get
{ {
@@ -506,8 +513,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
} }
} }
/// <summary> /// <summary>
/// IOS Airplay code /// IOS Airplay code
/// </summary> /// </summary>

View File

@@ -27,7 +27,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMuteWithUnmuteReqeust, IHasCameraAutoMode, IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMuteWithUnmuteReqeust, IHasCameraAutoMode,
IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin, IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin,
IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting, IHasMeetingInfo, IHasPresentationOnlyMeeting, IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting, IHasMeetingInfo, IHasPresentationOnlyMeeting,
IHasMeetingLock, IHasMeetingRecordingWithPrompt IHasMeetingLock, IHasMeetingRecordingWithPrompt, IZoomWirelessShareInstructions
{ {
public event EventHandler VideoUnmuteRequested; public event EventHandler VideoUnmuteRequested;
@@ -47,12 +47,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
private const string JsonDelimiter = "\x0D\x0A\x7D\x0D\x0A"; private const string JsonDelimiter = "\x0D\x0A\x7D\x0D\x0A";
private string[] Delimiters = new string[] { EchoDelimiter, JsonDelimiter, "OK\x0D\x0A", "end\x0D\x0A" }; private string[] Delimiters = new string[] { EchoDelimiter, JsonDelimiter, "OK\x0D\x0A", "end\x0D\x0A" };
//"echo off\x0D\x0A\x0A\x0D\x0A"
private readonly GenericQueue _receiveQueue; private readonly GenericQueue _receiveQueue;
//private readonly CrestronQueue<string> _receiveQueue;
//private readonly Thread _receiveThread;
private readonly ZoomRoomSyncState _syncState; private readonly ZoomRoomSyncState _syncState;
public bool CommDebuggingIsOn; public bool CommDebuggingIsOn;
@@ -64,6 +59,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
private CameraBase _selectedCamera; private CameraBase _selectedCamera;
private string _lastDialedMeetingNumber; private string _lastDialedMeetingNumber;
private readonly ZoomRoomPropertiesConfig _props; private readonly ZoomRoomPropertiesConfig _props;
public ZoomRoom(DeviceConfig config, IBasicCommunication comm) public ZoomRoom(DeviceConfig config, IBasicCommunication comm)
@@ -214,7 +210,23 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
protected override Func<bool> PrivacyModeIsOnFeedbackFunc protected override Func<bool> PrivacyModeIsOnFeedbackFunc
{ {
get { return () => Configuration.Call.Microphone.Mute; } get
{
return () =>
{
//Debug.Console(2, this, "PrivacyModeIsOnFeedbackFunc. IsInCall: {0} muteState: {1}", IsInCall, Configuration.Call.Microphone.Mute);
if (IsInCall)
{
//Debug.Console(2, this, "reporting muteState: ", Configuration.Call.Microphone.Mute);
return Configuration.Call.Microphone.Mute;
}
else
{
//Debug.Console(2, this, "muteState: true", IsInCall);
return false;
}
};
}
} }
protected override Func<bool> StandbyIsOnFeedbackFunc protected override Func<bool> StandbyIsOnFeedbackFunc
@@ -224,7 +236,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
protected override Func<string> SharingSourceFeedbackFunc protected override Func<string> SharingSourceFeedbackFunc
{ {
get { return () => Status.Sharing.dispState; } get
{
return () =>
{
if (Status.Sharing.isAirHostClientConnected)
return "Airplay";
else if (Status.Sharing.isDirectPresentationConnected || Status.Sharing.isBlackMagicConnected)
return "Laptop";
else return "None";
};
}
} }
protected override Func<bool> SharingContentIsOnFeedbackFunc protected override Func<bool> SharingContentIsOnFeedbackFunc
@@ -727,15 +750,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Status.Sharing.PropertyChanged += (o, a) => Status.Sharing.PropertyChanged += (o, a) =>
{ {
OnShareInfoChanged(Status.Sharing);
SharingSourceFeedback.FireUpdate();
switch (a.PropertyName) switch (a.PropertyName)
{ {
case "dispState":
SharingSourceFeedback.FireUpdate();
break;
case "password": case "password":
break; break;
case "isAirHostClientConnected":
case "isDirectPresentationConnected":
case "isSharingBlackMagic": case "isSharingBlackMagic":
{ {
Debug.Console(2, this, "Updating sharing status: {0}", a.PropertyName); Debug.Console(2, this, "Updating sharing status: {0}", a.PropertyName);
@@ -2486,20 +2506,32 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
trilist.SetSigTrueAction(joinMap.ShareOnlyMeeting.JoinNumber, StartSharingOnlyMeeting); trilist.SetSigTrueAction(joinMap.ShareOnlyMeeting.JoinNumber, StartSharingOnlyMeeting);
trilist.SetSigTrueAction(joinMap.StartNormalMeetingFromSharingOnlyMeeting.JoinNumber, StartNormalMeetingFromSharingOnlyMeeting); trilist.SetSigTrueAction(joinMap.StartNormalMeetingFromSharingOnlyMeeting.JoinNumber, StartNormalMeetingFromSharingOnlyMeeting);
// not sure if this would be needed here, should be handled by VideoCodecBase.cs LinkToApi methods
//DirectoryResultReturned += (device, args) =>
//{
// // add logic here if necessary when event fires
//};
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
this.CallStatusChange += (o, a) =>
{
if (a.CallItem.Status == eCodecCallStatus.Connected || a.CallItem.Status == eCodecCallStatus.Disconnected)
{
trilist.SetBool(joinMap.MeetingPasswordRequired.JoinNumber, false);
}
};
trilist.SetSigFalseAction(joinMap.CancelJoinAttempt.JoinNumber, () => {
trilist.SetBool(joinMap.MeetingPasswordRequired.JoinNumber, false);
EndAllCalls();
});
PasswordRequired += (devices, args) => PasswordRequired += (devices, args) =>
{ {
Debug.Console(0, this, "***********************************PaswordRequired. Message: {0} Cancelled: {1} Last Incorrect: {2} Failed: {3}", args.Message, args.LoginAttemptCancelled, args.LastAttemptWasIncorrect, args.LoginAttemptFailed);
if (args.LoginAttemptCancelled) if (args.LoginAttemptCancelled)
{ {
trilist.SetBool(joinMap.ShowPasswordPrompt.JoinNumber, false); trilist.SetBool(joinMap.MeetingPasswordRequired.JoinNumber, false);
return; return;
} }
@@ -2515,7 +2547,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
} }
trilist.SetBool(joinMap.PasswordIncorrect.JoinNumber, args.LastAttemptWasIncorrect); trilist.SetBool(joinMap.PasswordIncorrect.JoinNumber, args.LastAttemptWasIncorrect);
trilist.SetBool(joinMap.ShowPasswordPrompt.JoinNumber, true); trilist.SetBool(joinMap.MeetingPasswordRequired.JoinNumber, true);
}; };
trilist.OnlineStatusChange += (device, args) => trilist.OnlineStatusChange += (device, args) =>
@@ -2531,8 +2563,31 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
pinCodec.NumberOfScreensFeedback.FireUpdate(); pinCodec.NumberOfScreensFeedback.FireUpdate();
layoutSizeCodec.SelfviewPipSizeFeedback.FireUpdate(); layoutSizeCodec.SelfviewPipSizeFeedback.FireUpdate();
}; };
var wirelessInfoCodec = this as IZoomWirelessShareInstructions;
if (wirelessInfoCodec != null)
{
SetSharingStateJoins(Status.Sharing, trilist, joinMap);
wirelessInfoCodec.ShareInfoChanged += (o, a) =>
{
SetSharingStateJoins(a.SharingStatus, trilist, joinMap);
};
}
} }
void SetSharingStateJoins(zStatus.Sharing state, BasicTriList trilist, ZoomRoomJoinMap joinMap)
{
trilist.SetBool(joinMap.IsSharingAirplay.JoinNumber, state.isAirHostClientConnected);
trilist.SetBool(joinMap.IsSharingHdmi.JoinNumber, state.isBlackMagicConnected || state.isDirectPresentationConnected);
trilist.SetString(joinMap.DisplayState.JoinNumber, state.dispState.ToString());
trilist.SetString(joinMap.AirplayShareCode.JoinNumber, state.password);
trilist.SetString(joinMap.LaptopShareKey.JoinNumber, state.directPresentationSharingKey);
trilist.SetString(joinMap.WifiName.JoinNumber, state.wifiName);
trilist.SetString(joinMap.ServerName.JoinNumber, state.serverName);
}
public override void ExecuteSwitch(object selector) public override void ExecuteSwitch(object selector)
{ {
var action = selector as Action; var action = selector as Action;
@@ -3357,6 +3412,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{ {
Debug.Console(2, this, "Password Submitted: {0}", password); Debug.Console(2, this, "Password Submitted: {0}", password);
Dial(_lastDialedMeetingNumber, password); Dial(_lastDialedMeetingNumber, password);
//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)
@@ -3492,6 +3553,29 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
} }
#endregion #endregion
#region IZoomWirelessShareInstructions Members
public event EventHandler<ShareInfoEventArgs> ShareInfoChanged;
public zStatus.Sharing SharingState
{
get
{
return Status.Sharing;
}
}
void OnShareInfoChanged(zStatus.Sharing status)
{
var handler = ShareInfoChanged;
if (handler != null)
{
handler(this, new ShareInfoEventArgs(status));
}
}
#endregion
} }
/// <summary> /// <summary>

View File

@@ -8,9 +8,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{ {
#region Digital #region Digital
// TODO [ ] Issue #868 [JoinName("CancelJoinAttempt")]
[JoinName("ShowPasswordPrompt")] public JoinDataComplete CancelJoinAttempt = new JoinDataComplete(
public JoinDataComplete ShowPasswordPrompt = new JoinDataComplete( new JoinData
{
JoinNumber = 5,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Pulse to hide the password prompt",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});
[JoinName("MeetingPasswordRequired")]
public JoinDataComplete MeetingPasswordRequired = new JoinDataComplete(
new JoinData new JoinData
{ {
JoinNumber = 6, JoinNumber = 6,
@@ -23,7 +36,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TODO [ ] Issue #868
[JoinName("PasswordIncorrect")] [JoinName("PasswordIncorrect")]
public JoinDataComplete PasswordIncorrect = new JoinDataComplete( public JoinDataComplete PasswordIncorrect = new JoinDataComplete(
new JoinData new JoinData
@@ -38,8 +50,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TODO [ ] Issue #868 [JoinName("PasswordLoginFailed")]
[JoinName("PassowrdLoginFailed")]
public JoinDataComplete PasswordLoginFailed = new JoinDataComplete( public JoinDataComplete PasswordLoginFailed = new JoinDataComplete(
new JoinData new JoinData
{ {
@@ -53,7 +64,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TODO [ ] Issue #868
[JoinName("WaitingForHost")] [JoinName("WaitingForHost")]
public JoinDataComplete WaitingForHost = new JoinDataComplete( public JoinDataComplete WaitingForHost = new JoinDataComplete(
new JoinData new JoinData
@@ -68,7 +78,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TODO [ ] Issue #868
[JoinName("IsHost")] [JoinName("IsHost")]
public JoinDataComplete IsHost = new JoinDataComplete( public JoinDataComplete IsHost = new JoinDataComplete(
new JoinData new JoinData
@@ -83,7 +92,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TODO [ ] Issue #868
[JoinName("StartMeetingNow")] [JoinName("StartMeetingNow")]
public JoinDataComplete StartMeetingNow = new JoinDataComplete( public JoinDataComplete StartMeetingNow = new JoinDataComplete(
new JoinData new JoinData
@@ -98,7 +106,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TODO [ ] Issue #868
[JoinName("ShareOnlyMeeting")] [JoinName("ShareOnlyMeeting")]
public JoinDataComplete ShareOnlyMeeting = new JoinDataComplete( public JoinDataComplete ShareOnlyMeeting = new JoinDataComplete(
new JoinData new JoinData
@@ -113,7 +120,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
// TODO [ ] Issue #868
[JoinName("StartNormalMeetingFromSharingOnlyMeeting")] [JoinName("StartNormalMeetingFromSharingOnlyMeeting")]
public JoinDataComplete StartNormalMeetingFromSharingOnlyMeeting = new JoinDataComplete( public JoinDataComplete StartNormalMeetingFromSharingOnlyMeeting = new JoinDataComplete(
new JoinData new JoinData
@@ -367,6 +373,40 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
#region Sharing Status
[JoinName("IsSharingAirplay")]
public JoinDataComplete IsSharingAirplay = new JoinDataComplete(
new JoinData
{
JoinNumber = 250,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Indicates an Airplay source is sharing",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Digital
});
[JoinName("IsSharingHdmi")]
public JoinDataComplete IsSharingHdmi = new JoinDataComplete(
new JoinData
{
JoinNumber = 251,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Indicates an HDMI source is sharing",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Digital
});
#endregion
//[JoinName("ParticipantAudioMuteToggleStart")] //[JoinName("ParticipantAudioMuteToggleStart")]
//public JoinDataComplete ParticipantAudioMuteToggleStart = new JoinDataComplete( //public JoinDataComplete ParticipantAudioMuteToggleStart = new JoinDataComplete(
// new JoinData // new JoinData
@@ -551,6 +591,92 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.DigitalSerial JoinType = eJoinType.DigitalSerial
}); });
[JoinName("DisplayState")]
public JoinDataComplete DisplayState = new JoinDataComplete(
new JoinData
{
JoinNumber = 250,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Reports the instructions the ZoomRoom is displaying on the monitor. <None | Laptop | IOS>",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});
[JoinName("AirplayShareCode")]
public JoinDataComplete AirplayShareCode = new JoinDataComplete(
new JoinData
{
JoinNumber = 251,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Reports the current code for Airplay Sharing.",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});
[JoinName("LaptopShareKey")]
public JoinDataComplete LaptopShareKey = new JoinDataComplete(
new JoinData
{
JoinNumber = 252,
JoinSpan = 1
},
new JoinMetadata
{
Description = "The alpha-only sharing key that users type into a laptop client to share with the Zoom Room.",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});
[JoinName("LaptopSharePairingCode")]
public JoinDataComplete LaptopSharePairingCode = new JoinDataComplete(
new JoinData
{
JoinNumber = 253,
JoinSpan = 1
},
new JoinMetadata
{
Description = "This is the paring code that is broadcast via an ultrasonic signal from the ZRC. It is different than the user-supplied paring code. The ZRC uses a Zoom-proprietary method of advertizing the ultrasonic pairing code, so it\'s not possible to advertize it using commonly available libraries.",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});
[JoinName("WifiName")]
public JoinDataComplete WifiName = new JoinDataComplete(
new JoinData
{
JoinNumber = 254,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Reports the Wifi SSID used by the ZoomRoom.",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});
[JoinName("ServerName")]
public JoinDataComplete ServerName = new JoinDataComplete(
new JoinData
{
JoinNumber = 255,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Reports the namne of the the ZoomRoom.",
JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial
});
#endregion #endregion
public ZoomRoomJoinMap(uint joinStart) public ZoomRoomJoinMap(uint joinStart)