mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-06 00:05:05 +00:00
ecs-600; ecs-601; ecs-573
This commit is contained in:
@@ -261,8 +261,8 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
protected override void EndShutdown()
|
||||
{
|
||||
RunRouteAction("roomOff");
|
||||
VideoCodec.EndAllCalls();
|
||||
RunRouteAction("roomOff");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -166,7 +166,7 @@ namespace PepperDash.Essentials
|
||||
{
|
||||
var tsw = Panel as TswFt5ButtonSystem;
|
||||
// Wire up hard keys
|
||||
tsw.Power.UserObject = new Action<bool>(b => { if (!b) avDriver.PowerButtonPressed(); });
|
||||
tsw.Power.UserObject = new Action<bool>(b => { if (!b) avDriver.EndMeetingPress(); });
|
||||
//tsw.Home.UserObject = new Action<bool>(b => { if (!b) HomePressed(); });
|
||||
tsw.Up.UserObject = new Action<bool>(avDriver.VolumeUpPress);
|
||||
tsw.Down.UserObject = new Action<bool>(avDriver.VolumeDownPress);
|
||||
|
||||
@@ -557,11 +557,11 @@ namespace PepperDash.Essentials
|
||||
/// <summary>
|
||||
/// 15048 Dismisses the ribbon
|
||||
/// </summary>
|
||||
public const uint NextMeetingRibbonClosePress = 15048;
|
||||
public const uint NextMeetingModalClosePress = 15048;
|
||||
/// <summary>
|
||||
/// 15049
|
||||
/// </summary>
|
||||
public const uint NextMeetingRibbonVisible = 15049;
|
||||
public const uint NextMeetingModalVisible = 15049;
|
||||
/// <summary>
|
||||
/// 15051
|
||||
/// </summary>
|
||||
|
||||
@@ -296,7 +296,7 @@ namespace PepperDash.Essentials
|
||||
// power-related functions
|
||||
// Note: some of these are not directly-related to the huddle space UI, but are held over
|
||||
// in case
|
||||
TriList.SetSigFalseAction(UIBoolJoin.ShowPowerOffPress, PowerButtonPressed);
|
||||
TriList.SetSigFalseAction(UIBoolJoin.ShowPowerOffPress, EndMeetingPress);
|
||||
|
||||
TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () =>
|
||||
{
|
||||
@@ -453,8 +453,8 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
void ShowNextMeetingPopup()
|
||||
{
|
||||
TriList.SetSigFalseAction(UIBoolJoin.NextMeetingRibbonClosePress, HideNextMeetingPopup);
|
||||
TriList.SetBool(UIBoolJoin.NextMeetingRibbonVisible, true);
|
||||
TriList.SetSigFalseAction(UIBoolJoin.NextMeetingModalClosePress, HideNextMeetingPopup);
|
||||
TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -462,7 +462,7 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
void HideNextMeetingPopup()
|
||||
{
|
||||
TriList.SetBool(UIBoolJoin.NextMeetingRibbonVisible, false);
|
||||
TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -541,7 +541,7 @@ namespace PepperDash.Essentials
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 3,
|
||||
b => { if (!b) ActivityCallButtonPressed(); }));
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl, 4,
|
||||
b => { if (!b) PowerButtonPressed(); }));
|
||||
b => { if (!b) EndMeetingPress(); }));
|
||||
ActivityFooterSrl.Count = 3;
|
||||
TriList.SetUshort(UIUshortJoin.PresentationStagingCaretMode, 2); // center
|
||||
TriList.SetUshort(UIUshortJoin.CallStagingCaretMode, 0); // left -2
|
||||
@@ -562,20 +562,18 @@ namespace PepperDash.Essentials
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void ActivityCallButtonPressed()
|
||||
public void ActivityCallButtonPressed()
|
||||
{
|
||||
if (VCDriver.IsVisible)
|
||||
return;
|
||||
HideLogo();
|
||||
HideNextMeetingPopup();
|
||||
TriList.SetBool(UIBoolJoin.StartPageVisible, false);
|
||||
TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, false);
|
||||
TriList.SetBool(UIBoolJoin.SelectASourceVisible, false);
|
||||
if (CurrentSourcePageManager != null)
|
||||
CurrentSourcePageManager.Hide();
|
||||
if (!CurrentRoom.OnFeedback.BoolValue)
|
||||
{
|
||||
CurrentRoom.RunDefaultCallRoute();
|
||||
}
|
||||
PowerOnFromCall();
|
||||
CurrentMode = UiDisplayMode.Call;
|
||||
SetActivityFooterFeedbacks();
|
||||
VCDriver.Show();
|
||||
@@ -588,6 +586,7 @@ namespace PepperDash.Essentials
|
||||
{
|
||||
if (VCDriver.IsVisible)
|
||||
VCDriver.Hide();
|
||||
HideNextMeetingPopup();
|
||||
TriList.SetBool(UIBoolJoin.StartPageVisible, false);
|
||||
TriList.SetBool(UIBoolJoin.CallStagingBarVisible, false);
|
||||
TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, true);
|
||||
@@ -609,6 +608,17 @@ namespace PepperDash.Essentials
|
||||
SetActivityFooterFeedbacks();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Powers up the system to the codec route, if not already on.
|
||||
/// </summary>
|
||||
void PowerOnFromCall()
|
||||
{
|
||||
if (!CurrentRoom.OnFeedback.BoolValue)
|
||||
{
|
||||
CurrentRoom.RunDefaultCallRoute();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows all sigs that are in CurrentDisplayModeSigsInUse
|
||||
/// </summary>
|
||||
@@ -679,7 +689,7 @@ namespace PepperDash.Essentials
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public void PowerButtonPressed()
|
||||
public void EndMeetingPress()
|
||||
{
|
||||
if (!CurrentRoom.OnFeedback.BoolValue
|
||||
|| CurrentRoom.ShutdownPromptTimer.IsRunningFeedback.BoolValue)
|
||||
@@ -688,6 +698,16 @@ namespace PepperDash.Essentials
|
||||
CurrentRoom.StartShutdown(eShutdownType.Manual);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Puts away modals and things that might be up when call comes in
|
||||
/// </summary>
|
||||
public void PrepareForCodecIncomingCall()
|
||||
{
|
||||
if (PowerDownModal != null && PowerDownModal.ModalIsVisible)
|
||||
PowerDownModal.CancelDialog();
|
||||
PopupInterlock.Hide();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -842,7 +862,8 @@ namespace PepperDash.Essentials
|
||||
var config = ConfigReader.ConfigObject.SourceLists;
|
||||
if (config.ContainsKey(_CurrentRoom.SourceListKey))
|
||||
{
|
||||
var srcList = config[_CurrentRoom.SourceListKey];
|
||||
var srcList = config[_CurrentRoom.SourceListKey].OrderBy(kv => kv.Value.Order);
|
||||
|
||||
// Setup sources list
|
||||
uint i = 1; // counter for UI list
|
||||
foreach (var kvp in srcList)
|
||||
@@ -851,13 +872,6 @@ namespace PepperDash.Essentials
|
||||
if (!srcConfig.IncludeInSourceList) // Skip sources marked this way
|
||||
continue;
|
||||
|
||||
//var actualSource = DeviceManager.GetDeviceForKey(srcConfig.SourceKey) as Device;
|
||||
//if (actualSource == null)
|
||||
//{
|
||||
// Debug.Console(1, "Cannot assign missing source '{0}' to source UI list",
|
||||
// srcConfig.SourceKey);
|
||||
// continue;
|
||||
//}
|
||||
var routeKey = kvp.Key;
|
||||
var item = new SubpageReferenceListSourceItem(i++, SourceStagingSrl, srcConfig,
|
||||
b => { if (!b) UiSelectSource(routeKey); });
|
||||
@@ -1091,12 +1105,12 @@ namespace PepperDash.Essentials
|
||||
var value = _CurrentRoom.OnFeedback.BoolValue;
|
||||
TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value;
|
||||
|
||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = !value;
|
||||
|
||||
if (value) //ON
|
||||
{
|
||||
SetupActivityFooterWhenRoomOn();
|
||||
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
|
||||
//TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = true;
|
||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = true;
|
||||
|
||||
}
|
||||
@@ -1108,7 +1122,6 @@ namespace PepperDash.Essentials
|
||||
SetupActivityFooterWhenRoomOff();
|
||||
ShowLogo();
|
||||
SetActivityFooterFeedbacks();
|
||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
|
||||
TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false;
|
||||
}
|
||||
@@ -1338,5 +1351,13 @@ namespace PepperDash.Essentials
|
||||
void HideNotificationRibbon();
|
||||
void ComputeHeaderCallStatus(VideoCodecBase codec);
|
||||
SubpageReferenceList MeetingOrContactMethodModalSrl { get; }
|
||||
/// <summary>
|
||||
/// Exposes the ability to switch into call mode
|
||||
/// </summary>
|
||||
void ActivityCallButtonPressed();
|
||||
/// <summary>
|
||||
/// Allows the codec to trigger the main UI to clear up if call is coming in.
|
||||
/// </summary>
|
||||
void PrepareForCodecIncomingCall();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,10 +189,6 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
CallSharingInfoTextFeedback.LinkInputSig(triList.StringInput[UIStringJoin.CallSharedSourceNameText]);
|
||||
|
||||
TriList.SetSigFalseAction(UIBoolJoin.CallStopSharingPress, Codec.StopSharing);
|
||||
|
||||
|
||||
|
||||
// Address and number
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -260,7 +256,8 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
DialStringTextCheckEnables();
|
||||
Parent.ShowNotificationRibbon("Connected", 2000);
|
||||
StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress);
|
||||
VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible);
|
||||
ShowKeypad();
|
||||
//VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible);
|
||||
break;
|
||||
case eCodecCallStatus.Connecting:
|
||||
// fire at SRL item
|
||||
@@ -273,6 +270,7 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
if (!Codec.IsInCall)
|
||||
{
|
||||
KeypadMode = eKeypadMode.Dial;
|
||||
// show keypad if we're in call UI mode
|
||||
ShowKeypad();
|
||||
DialStringBuilder.Remove(0, DialStringBuilder.Length);
|
||||
DialStringFeedback.FireUpdate();
|
||||
@@ -302,15 +300,21 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
break;
|
||||
}
|
||||
TriList.UShortInput[UIUshortJoin.VCStagingConnectButtonMode].UShortValue = (ushort)(Codec.IsInCall ? 1 : 0);
|
||||
StagingBarsInterlock.ShowInterlocked(Codec.IsInCall ?
|
||||
UIBoolJoin.VCStagingActivePopoverVisible : UIBoolJoin.VCStagingInactivePopoverVisible);
|
||||
|
||||
|
||||
uint stageJoin;
|
||||
if (Codec.IsInCall)
|
||||
stageJoin = UIBoolJoin.VCStagingActivePopoverVisible;
|
||||
else
|
||||
stageJoin = UIBoolJoin.VCStagingInactivePopoverVisible;
|
||||
if (IsVisible)
|
||||
StagingBarsInterlock.ShowInterlocked(stageJoin);
|
||||
else
|
||||
StagingBarsInterlock.SetButDontShow(stageJoin);
|
||||
|
||||
Parent.ComputeHeaderCallStatus(Codec);
|
||||
|
||||
// Update active call list
|
||||
UpdateHeaderActiveCallList();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -344,6 +348,7 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
/// </summary>
|
||||
void ShowIncomingModal(CodecActiveCallItem call)
|
||||
{
|
||||
Parent.PrepareForCodecIncomingCall();
|
||||
IncomingCallModal = new ModalDialog(TriList);
|
||||
string msg;
|
||||
string icon;
|
||||
@@ -360,14 +365,23 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
IncomingCallModal.PresentModalDialog(2, "Incoming Call", icon, msg,
|
||||
"Ignore", "Accept", false, false, b =>
|
||||
{
|
||||
if (b == 1)
|
||||
Codec.RejectCall(call);
|
||||
else //2
|
||||
Codec.AcceptCall(call);
|
||||
if (b == 1)
|
||||
Codec.RejectCall(call);
|
||||
else //2
|
||||
AcceptIncomingCall(call);
|
||||
IncomingCallModal = null;
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void AcceptIncomingCall(CodecActiveCallItem call)
|
||||
{
|
||||
Parent.ActivityCallButtonPressed();
|
||||
Codec.AcceptCall(call);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -884,14 +898,15 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// shows the appropriate keypad depending on mode
|
||||
/// shows the appropriate keypad depending on mode and whether visible
|
||||
/// </summary>
|
||||
void ShowKeypad()
|
||||
{
|
||||
if(CodecHasFavorites)
|
||||
VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadWithFavoritesVisible);
|
||||
uint join = CodecHasFavorites ? UIBoolJoin.VCKeypadWithFavoritesVisible : UIBoolJoin.VCKeypadVisible;
|
||||
if (IsVisible)
|
||||
VCControlsInterlock.ShowInterlocked(join);
|
||||
else
|
||||
VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible);
|
||||
VCControlsInterlock.SetButDontShow(join);
|
||||
StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress);
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user