diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/VideoCodecControllerJoinMap.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/VideoCodecControllerJoinMap.cs
index 943ecc20..e208e371 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/VideoCodecControllerJoinMap.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/JoinMaps/VideoCodecControllerJoinMap.cs
@@ -792,44 +792,16 @@ namespace PepperDash.Essentials.Core.Bridges.JoinMaps
JoinType = eJoinType.Digital
});
- [JoinName("DialMeeting1")]
- public JoinDataComplete DialMeeting1 = new JoinDataComplete(
+ [JoinName("DialMeetingStart")]
+ public JoinDataComplete DialMeetingStart = new JoinDataComplete(
new JoinData
{
JoinNumber = 161,
- JoinSpan = 1
+ JoinSpan = 10
},
new JoinMetadata
{
- Description = "Join first 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",
+ Description = "Join meeting",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Digital
});
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IPasswordPrompt.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IPasswordPrompt.cs
index 6ecdd775..6b3bae57 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IPasswordPrompt.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IPasswordPrompt.cs
@@ -20,7 +20,12 @@ namespace PepperDash.Essentials.Core
/// Submits the password
///
///
- void SubmitPassword(string password);
+ void SubmitPassword(string password);
+
+ ///
+ /// Cancels the password submission
+ ///
+ void CancelPasswordPrompt();
}
public class PasswordPromptEventArgs : EventArgs
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj
index af6ab740..a1cc37f2 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj
@@ -185,6 +185,7 @@
+
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs
index e86751d3..9fae1a99 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs
@@ -224,6 +224,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
handler(this, new CodecCallStatusItemChangeEventArgs(item));
}
+ PrivacyModeIsOnFeedback.FireUpdate();
+
if (AutoShareContentWhileInCall)
{
StartSharing();
@@ -809,35 +811,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
codec.CodecSchedule.MeetingWarningMinutes = i;
});
- trilist.SetSigFalseAction(joinMap.DialMeeting1.JoinNumber, () =>
- {
- var mtg = 1;
- var index = mtg - 1;
- Debug.Console(1, this, "Meeting {0} Selected (EISC dig-o{1}) > _currentMeetings[{2}].Id: {3}, Title: {4}",
- mtg, joinMap.DialMeeting1.JoinNumber, index, _currentMeetings[index].Id, _currentMeetings[index].Title);
- if (_currentMeetings[index] != null)
- Dial(_currentMeetings[index]);
- });
-
- trilist.SetSigFalseAction(joinMap.DialMeeting2.JoinNumber, () =>
- {
- var mtg = 2;
- var index = mtg - 1;
- 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]);
- });
+
+ for (uint i = 0; i < joinMap.DialMeetingStart.JoinSpan; i++)
+ {
+ Debug.Console(1, this, "Setting action to Dial Meeting {0} to digital join {1}", i + 1, joinMap.DialMeetingStart.JoinNumber + i);
+ var joinNumber = joinMap.DialMeetingStart.JoinNumber + i;
+ var mtg = i + 1;
+ var index = (int)i;
+
+ trilist.SetSigFalseAction(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);
+ if (_currentMeetings[index] != null)
+ Dial(_currentMeetings[index]);
+ });
+ }
codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap);
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);
MeetingsToDisplayFeedback.LinkInputSig(trilist.UShortInput[joinMap.MeetingsToDisplay.JoinNumber]);
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/IZoomWirelessShareInstructions.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/IZoomWirelessShareInstructions.cs
new file mode 100644
index 00000000..58690d3b
--- /dev/null
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/IZoomWirelessShareInstructions.cs
@@ -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 ShareInfoChanged;
+
+ zStatus.Sharing SharingState { get; }
+ }
+}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ResponseObjects.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ResponseObjects.cs
index b5296410..66b7fb1e 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ResponseObjects.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ResponseObjects.cs
@@ -434,9 +434,16 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
public bool supports_Web_Settings_Push { get; set; }
}
+ public enum eDisplayState
+ {
+ None,
+ Laptop,
+ IOS,
+ }
+
public class Sharing : NotifiableObject
{
- private string _dispState;
+ private eDisplayState _dispState;
private string _password;
private bool _isAirHostClientConnected;
private bool _isSharingBlackMagic;
@@ -448,7 +455,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
/// Laptop client sharing key
///
public string directPresentationSharingKey { get; set; }
- public string dispState
+ public eDisplayState dispState
{
get
{
@@ -506,8 +513,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
}
}
-
-
///
/// IOS Airplay code
///
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
index 32415d1d..d491fa59 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
@@ -27,7 +27,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMuteWithUnmuteReqeust, IHasCameraAutoMode,
IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin,
IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting, IHasMeetingInfo, IHasPresentationOnlyMeeting,
- IHasMeetingLock, IHasMeetingRecordingWithPrompt
+ IHasMeetingLock, IHasMeetingRecordingWithPrompt, IZoomWirelessShareInstructions
{
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 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 CrestronQueue _receiveQueue;
-
-
- //private readonly Thread _receiveThread;
private readonly ZoomRoomSyncState _syncState;
public bool CommDebuggingIsOn;
@@ -64,6 +59,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
private CameraBase _selectedCamera;
private string _lastDialedMeetingNumber;
+
private readonly ZoomRoomPropertiesConfig _props;
public ZoomRoom(DeviceConfig config, IBasicCommunication comm)
@@ -214,7 +210,23 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
protected override Func 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 StandbyIsOnFeedbackFunc
@@ -224,7 +236,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
protected override Func 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 SharingContentIsOnFeedbackFunc
@@ -727,15 +750,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Status.Sharing.PropertyChanged += (o, a) =>
{
+ OnShareInfoChanged(Status.Sharing);
+ SharingSourceFeedback.FireUpdate();
switch (a.PropertyName)
{
- case "dispState":
- SharingSourceFeedback.FireUpdate();
- break;
case "password":
break;
- case "isAirHostClientConnected":
- case "isDirectPresentationConnected":
case "isSharingBlackMagic":
{
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.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.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) =>
{
+ 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)
{
- trilist.SetBool(joinMap.ShowPasswordPrompt.JoinNumber, false);
+ trilist.SetBool(joinMap.MeetingPasswordRequired.JoinNumber, false);
return;
}
@@ -2515,7 +2547,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
}
trilist.SetBool(joinMap.PasswordIncorrect.JoinNumber, args.LastAttemptWasIncorrect);
- trilist.SetBool(joinMap.ShowPasswordPrompt.JoinNumber, true);
+ trilist.SetBool(joinMap.MeetingPasswordRequired.JoinNumber, true);
};
trilist.OnlineStatusChange += (device, args) =>
@@ -2531,8 +2563,31 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
pinCodec.NumberOfScreensFeedback.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)
{
var action = selector as Action;
@@ -3357,6 +3412,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{
Debug.Console(2, this, "Password Submitted: {0}", 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)
@@ -3492,6 +3553,29 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
}
#endregion
+
+ #region IZoomWirelessShareInstructions Members
+
+ public event EventHandler 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
}
///
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs
index 48b2c039..c377a664 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoomJoinMap.cs
@@ -8,9 +8,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{
#region Digital
- // TODO [ ] Issue #868
- [JoinName("ShowPasswordPrompt")]
- public JoinDataComplete ShowPasswordPrompt = new JoinDataComplete(
+ [JoinName("CancelJoinAttempt")]
+ public JoinDataComplete CancelJoinAttempt = 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
{
JoinNumber = 6,
@@ -23,7 +36,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TODO [ ] Issue #868
[JoinName("PasswordIncorrect")]
public JoinDataComplete PasswordIncorrect = new JoinDataComplete(
new JoinData
@@ -38,8 +50,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TODO [ ] Issue #868
- [JoinName("PassowrdLoginFailed")]
+ [JoinName("PasswordLoginFailed")]
public JoinDataComplete PasswordLoginFailed = new JoinDataComplete(
new JoinData
{
@@ -53,7 +64,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TODO [ ] Issue #868
[JoinName("WaitingForHost")]
public JoinDataComplete WaitingForHost = new JoinDataComplete(
new JoinData
@@ -68,7 +78,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TODO [ ] Issue #868
[JoinName("IsHost")]
public JoinDataComplete IsHost = new JoinDataComplete(
new JoinData
@@ -83,7 +92,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TODO [ ] Issue #868
[JoinName("StartMeetingNow")]
public JoinDataComplete StartMeetingNow = new JoinDataComplete(
new JoinData
@@ -98,7 +106,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TODO [ ] Issue #868
[JoinName("ShareOnlyMeeting")]
public JoinDataComplete ShareOnlyMeeting = new JoinDataComplete(
new JoinData
@@ -113,7 +120,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
JoinType = eJoinType.Digital
});
- // TODO [ ] Issue #868
[JoinName("StartNormalMeetingFromSharingOnlyMeeting")]
public JoinDataComplete StartNormalMeetingFromSharingOnlyMeeting = new JoinDataComplete(
new JoinData
@@ -367,6 +373,40 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
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")]
//public JoinDataComplete ParticipantAudioMuteToggleStart = new JoinDataComplete(
// new JoinData
@@ -551,6 +591,92 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
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. ",
+ 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
public ZoomRoomJoinMap(uint joinStart)