mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-14 20:24:57 +00:00
Merge branch 'development' into hotfix/SecretsManager-Add-Fix
This commit is contained in:
@@ -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
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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" />
|
||||||
|
|||||||
@@ -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]);
|
||||||
|
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user