ecs-600; ecs-601; ecs-573

This commit is contained in:
Heath Volmer
2017-10-19 16:58:55 -06:00
parent 1d9490c46f
commit 8dfa05293c
7 changed files with 79 additions and 43 deletions

View File

@@ -261,8 +261,8 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
protected override void EndShutdown() protected override void EndShutdown()
{ {
RunRouteAction("roomOff");
VideoCodec.EndAllCalls(); VideoCodec.EndAllCalls();
RunRouteAction("roomOff");
} }
/// <summary> /// <summary>

View File

@@ -166,7 +166,7 @@ namespace PepperDash.Essentials
{ {
var tsw = Panel as TswFt5ButtonSystem; var tsw = Panel as TswFt5ButtonSystem;
// Wire up hard keys // 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.Home.UserObject = new Action<bool>(b => { if (!b) HomePressed(); });
tsw.Up.UserObject = new Action<bool>(avDriver.VolumeUpPress); tsw.Up.UserObject = new Action<bool>(avDriver.VolumeUpPress);
tsw.Down.UserObject = new Action<bool>(avDriver.VolumeDownPress); tsw.Down.UserObject = new Action<bool>(avDriver.VolumeDownPress);

View File

@@ -557,11 +557,11 @@ namespace PepperDash.Essentials
/// <summary> /// <summary>
/// 15048 Dismisses the ribbon /// 15048 Dismisses the ribbon
/// </summary> /// </summary>
public const uint NextMeetingRibbonClosePress = 15048; public const uint NextMeetingModalClosePress = 15048;
/// <summary> /// <summary>
/// 15049 /// 15049
/// </summary> /// </summary>
public const uint NextMeetingRibbonVisible = 15049; public const uint NextMeetingModalVisible = 15049;
/// <summary> /// <summary>
/// 15051 /// 15051
/// </summary> /// </summary>

View File

@@ -296,7 +296,7 @@ namespace PepperDash.Essentials
// power-related functions // power-related functions
// Note: some of these are not directly-related to the huddle space UI, but are held over // Note: some of these are not directly-related to the huddle space UI, but are held over
// in case // in case
TriList.SetSigFalseAction(UIBoolJoin.ShowPowerOffPress, PowerButtonPressed); TriList.SetSigFalseAction(UIBoolJoin.ShowPowerOffPress, EndMeetingPress);
TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () => TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () =>
{ {
@@ -453,8 +453,8 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
void ShowNextMeetingPopup() void ShowNextMeetingPopup()
{ {
TriList.SetSigFalseAction(UIBoolJoin.NextMeetingRibbonClosePress, HideNextMeetingPopup); TriList.SetSigFalseAction(UIBoolJoin.NextMeetingModalClosePress, HideNextMeetingPopup);
TriList.SetBool(UIBoolJoin.NextMeetingRibbonVisible, true); TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, true);
} }
/// <summary> /// <summary>
@@ -462,7 +462,7 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
void HideNextMeetingPopup() void HideNextMeetingPopup()
{ {
TriList.SetBool(UIBoolJoin.NextMeetingRibbonVisible, false); TriList.SetBool(UIBoolJoin.NextMeetingModalVisible, false);
} }
/// <summary> /// <summary>
@@ -541,7 +541,7 @@ namespace PepperDash.Essentials
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 3, ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl, 3,
b => { if (!b) ActivityCallButtonPressed(); })); b => { if (!b) ActivityCallButtonPressed(); }));
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl, 4, ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(3, ActivityFooterSrl, 4,
b => { if (!b) PowerButtonPressed(); })); b => { if (!b) EndMeetingPress(); }));
ActivityFooterSrl.Count = 3; ActivityFooterSrl.Count = 3;
TriList.SetUshort(UIUshortJoin.PresentationStagingCaretMode, 2); // center TriList.SetUshort(UIUshortJoin.PresentationStagingCaretMode, 2); // center
TriList.SetUshort(UIUshortJoin.CallStagingCaretMode, 0); // left -2 TriList.SetUshort(UIUshortJoin.CallStagingCaretMode, 0); // left -2
@@ -562,20 +562,18 @@ namespace PepperDash.Essentials
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
void ActivityCallButtonPressed() public void ActivityCallButtonPressed()
{ {
if (VCDriver.IsVisible) if (VCDriver.IsVisible)
return; return;
HideLogo(); HideLogo();
HideNextMeetingPopup();
TriList.SetBool(UIBoolJoin.StartPageVisible, false); TriList.SetBool(UIBoolJoin.StartPageVisible, false);
TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, false); TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, false);
TriList.SetBool(UIBoolJoin.SelectASourceVisible, false); TriList.SetBool(UIBoolJoin.SelectASourceVisible, false);
if (CurrentSourcePageManager != null) if (CurrentSourcePageManager != null)
CurrentSourcePageManager.Hide(); CurrentSourcePageManager.Hide();
if (!CurrentRoom.OnFeedback.BoolValue) PowerOnFromCall();
{
CurrentRoom.RunDefaultCallRoute();
}
CurrentMode = UiDisplayMode.Call; CurrentMode = UiDisplayMode.Call;
SetActivityFooterFeedbacks(); SetActivityFooterFeedbacks();
VCDriver.Show(); VCDriver.Show();
@@ -588,6 +586,7 @@ namespace PepperDash.Essentials
{ {
if (VCDriver.IsVisible) if (VCDriver.IsVisible)
VCDriver.Hide(); VCDriver.Hide();
HideNextMeetingPopup();
TriList.SetBool(UIBoolJoin.StartPageVisible, false); TriList.SetBool(UIBoolJoin.StartPageVisible, false);
TriList.SetBool(UIBoolJoin.CallStagingBarVisible, false); TriList.SetBool(UIBoolJoin.CallStagingBarVisible, false);
TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, true); TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, true);
@@ -609,6 +608,17 @@ namespace PepperDash.Essentials
SetActivityFooterFeedbacks(); SetActivityFooterFeedbacks();
} }
/// <summary>
/// Powers up the system to the codec route, if not already on.
/// </summary>
void PowerOnFromCall()
{
if (!CurrentRoom.OnFeedback.BoolValue)
{
CurrentRoom.RunDefaultCallRoute();
}
}
/// <summary> /// <summary>
/// Shows all sigs that are in CurrentDisplayModeSigsInUse /// Shows all sigs that are in CurrentDisplayModeSigsInUse
/// </summary> /// </summary>
@@ -679,7 +689,7 @@ namespace PepperDash.Essentials
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public void PowerButtonPressed() public void EndMeetingPress()
{ {
if (!CurrentRoom.OnFeedback.BoolValue if (!CurrentRoom.OnFeedback.BoolValue
|| CurrentRoom.ShutdownPromptTimer.IsRunningFeedback.BoolValue) || CurrentRoom.ShutdownPromptTimer.IsRunningFeedback.BoolValue)
@@ -688,6 +698,16 @@ namespace PepperDash.Essentials
CurrentRoom.StartShutdown(eShutdownType.Manual); 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>
/// ///
/// </summary> /// </summary>
@@ -842,7 +862,8 @@ namespace PepperDash.Essentials
var config = ConfigReader.ConfigObject.SourceLists; var config = ConfigReader.ConfigObject.SourceLists;
if (config.ContainsKey(_CurrentRoom.SourceListKey)) if (config.ContainsKey(_CurrentRoom.SourceListKey))
{ {
var srcList = config[_CurrentRoom.SourceListKey]; var srcList = config[_CurrentRoom.SourceListKey].OrderBy(kv => kv.Value.Order);
// Setup sources list // Setup sources list
uint i = 1; // counter for UI list uint i = 1; // counter for UI list
foreach (var kvp in srcList) foreach (var kvp in srcList)
@@ -851,13 +872,6 @@ namespace PepperDash.Essentials
if (!srcConfig.IncludeInSourceList) // Skip sources marked this way if (!srcConfig.IncludeInSourceList) // Skip sources marked this way
continue; 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 routeKey = kvp.Key;
var item = new SubpageReferenceListSourceItem(i++, SourceStagingSrl, srcConfig, var item = new SubpageReferenceListSourceItem(i++, SourceStagingSrl, srcConfig,
b => { if (!b) UiSelectSource(routeKey); }); b => { if (!b) UiSelectSource(routeKey); });
@@ -1091,12 +1105,12 @@ namespace PepperDash.Essentials
var value = _CurrentRoom.OnFeedback.BoolValue; var value = _CurrentRoom.OnFeedback.BoolValue;
TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value; TriList.BooleanInput[UIBoolJoin.RoomIsOn].BoolValue = value;
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = !value;
if (value) //ON if (value) //ON
{ {
SetupActivityFooterWhenRoomOn(); SetupActivityFooterWhenRoomOn();
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
//TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = true; TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = true;
} }
@@ -1108,7 +1122,6 @@ namespace PepperDash.Essentials
SetupActivityFooterWhenRoomOff(); SetupActivityFooterWhenRoomOff();
ShowLogo(); ShowLogo();
SetActivityFooterFeedbacks(); SetActivityFooterFeedbacks();
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.VolumeDualMute1Visible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false; TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false;
} }
@@ -1338,5 +1351,13 @@ namespace PepperDash.Essentials
void HideNotificationRibbon(); void HideNotificationRibbon();
void ComputeHeaderCallStatus(VideoCodecBase codec); void ComputeHeaderCallStatus(VideoCodecBase codec);
SubpageReferenceList MeetingOrContactMethodModalSrl { get; } 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();
} }
} }

View File

@@ -189,10 +189,6 @@ namespace PepperDash.Essentials.UIDrivers.VC
CallSharingInfoTextFeedback.LinkInputSig(triList.StringInput[UIStringJoin.CallSharedSourceNameText]); CallSharingInfoTextFeedback.LinkInputSig(triList.StringInput[UIStringJoin.CallSharedSourceNameText]);
TriList.SetSigFalseAction(UIBoolJoin.CallStopSharingPress, Codec.StopSharing); TriList.SetSigFalseAction(UIBoolJoin.CallStopSharingPress, Codec.StopSharing);
// Address and number
} }
/// <summary> /// <summary>
@@ -260,7 +256,8 @@ namespace PepperDash.Essentials.UIDrivers.VC
DialStringTextCheckEnables(); DialStringTextCheckEnables();
Parent.ShowNotificationRibbon("Connected", 2000); Parent.ShowNotificationRibbon("Connected", 2000);
StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress);
VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible); ShowKeypad();
//VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible);
break; break;
case eCodecCallStatus.Connecting: case eCodecCallStatus.Connecting:
// fire at SRL item // fire at SRL item
@@ -273,6 +270,7 @@ namespace PepperDash.Essentials.UIDrivers.VC
if (!Codec.IsInCall) if (!Codec.IsInCall)
{ {
KeypadMode = eKeypadMode.Dial; KeypadMode = eKeypadMode.Dial;
// show keypad if we're in call UI mode
ShowKeypad(); ShowKeypad();
DialStringBuilder.Remove(0, DialStringBuilder.Length); DialStringBuilder.Remove(0, DialStringBuilder.Length);
DialStringFeedback.FireUpdate(); DialStringFeedback.FireUpdate();
@@ -302,15 +300,21 @@ namespace PepperDash.Essentials.UIDrivers.VC
break; break;
} }
TriList.UShortInput[UIUshortJoin.VCStagingConnectButtonMode].UShortValue = (ushort)(Codec.IsInCall ? 1 : 0); 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); Parent.ComputeHeaderCallStatus(Codec);
// Update active call list // Update active call list
UpdateHeaderActiveCallList(); UpdateHeaderActiveCallList();
} }
/// <summary> /// <summary>
@@ -344,6 +348,7 @@ namespace PepperDash.Essentials.UIDrivers.VC
/// </summary> /// </summary>
void ShowIncomingModal(CodecActiveCallItem call) void ShowIncomingModal(CodecActiveCallItem call)
{ {
Parent.PrepareForCodecIncomingCall();
IncomingCallModal = new ModalDialog(TriList); IncomingCallModal = new ModalDialog(TriList);
string msg; string msg;
string icon; string icon;
@@ -360,14 +365,23 @@ namespace PepperDash.Essentials.UIDrivers.VC
IncomingCallModal.PresentModalDialog(2, "Incoming Call", icon, msg, IncomingCallModal.PresentModalDialog(2, "Incoming Call", icon, msg,
"Ignore", "Accept", false, false, b => "Ignore", "Accept", false, false, b =>
{ {
if (b == 1) if (b == 1)
Codec.RejectCall(call); Codec.RejectCall(call);
else //2 else //2
Codec.AcceptCall(call); AcceptIncomingCall(call);
IncomingCallModal = null; IncomingCallModal = null;
}); });
} }
/// <summary>
///
/// </summary>
void AcceptIncomingCall(CodecActiveCallItem call)
{
Parent.ActivityCallButtonPressed();
Codec.AcceptCall(call);
}
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@@ -884,14 +898,15 @@ namespace PepperDash.Essentials.UIDrivers.VC
} }
/// <summary> /// <summary>
/// shows the appropriate keypad depending on mode /// shows the appropriate keypad depending on mode and whether visible
/// </summary> /// </summary>
void ShowKeypad() void ShowKeypad()
{ {
if(CodecHasFavorites) uint join = CodecHasFavorites ? UIBoolJoin.VCKeypadWithFavoritesVisible : UIBoolJoin.VCKeypadVisible;
VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadWithFavoritesVisible); if (IsVisible)
VCControlsInterlock.ShowInterlocked(join);
else else
VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible); VCControlsInterlock.SetButDontShow(join);
StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress);
} }