Fixed connected enum; Call status header button

This commit is contained in:
Heath Volmer
2017-09-21 10:56:37 -06:00
parent ca3f6d4d14
commit 639e1810db
11 changed files with 36 additions and 28 deletions

View File

@@ -162,6 +162,14 @@ namespace PepperDash.Essentials.Core
tl.BooleanInput[sigNum].BoolValue = value;
}
/// <summary>
/// Helper method to set the value of a ushort Sig on TriList
/// </summary>
public static void SetUshort(this BasicTriList tl, uint sigNum, ushort value)
{
tl.UShortInput[sigNum].UShortValue = value;
}
/// <summary>
/// Helper method to set the value of a string Sig on TriList
/// </summary>

View File

@@ -22,17 +22,16 @@ namespace PepperDash.Essentials.Devices.Common.Codec
public object CallMetaData { get; set; }
/// <summary>
/// Returns true when this call is NOT status Unkown,
/// Disconnected, Disconnecting
/// Returns true when this call is any status other than
/// Unknown, Disconnected, Disconnecting
/// </summary>
public bool IsActiveCall
{
get
{
return
!(Status == eCodecCallStatus.Disconnected
return !(Status == eCodecCallStatus.Disconnected
|| Status == eCodecCallStatus.Disconnecting
|| Status ==eCodecCallStatus.Unknown);
|| Status == eCodecCallStatus.Unknown);
}
}
}

View File

@@ -8,6 +8,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec
{
public enum eCodecCallStatus
{
Unknown = 0,
Connected,
Connecting,
Dialing,
@@ -20,6 +21,5 @@ namespace PepperDash.Essentials.Devices.Common.Codec
Ringing,
Preserved,
RemotePreserved,
Unknown = 0
}
}

View File

@@ -22,7 +22,6 @@ namespace PepperDash.Essentials.Devices.Common.Codec
void RejectCall(CodecActiveCallItem item);
void SendDtmf(string digit);
//IntFeedback ActiveCallCountFeedback { get; }
BoolFeedback IncomingCallFeedback { get; }
}
}

View File

@@ -256,7 +256,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
SetNewCallStatusAndFireCallStatusChange(eCodecCallStatus.Incoming, call);
_IncomingCall = true;
IncomingCallFeedback.FireUpdate();
//ActiveCallCountFeedback.FireUpdate();
}
/// <summary>
@@ -271,7 +270,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
SetNewCallStatusAndFireCallStatusChange(eCodecCallStatus.Incoming, call);
_IncomingCall = true;
IncomingCallFeedback.FireUpdate();
//ActiveCallCountFeedback.FireUpdate();
}
/// <summary>
@@ -290,7 +288,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
{
var sb = new StringBuilder();
foreach (var c in ActiveCalls)
sb.AppendFormat("{0} {1} -- {2}\r", c.Id, c.Number, c.Name);
sb.AppendFormat("{0} {1} -- {2} {3}\r", c.Id, c.Number, c.Name, c.Status);
Debug.Console(1, "{0}", sb.ToString());
}

View File

@@ -55,7 +55,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
public VideoCodecBase(string key, string name)
: base(key, name)
{
//ActiveCallCountFeedback = new IntFeedback(ActiveCallCountFeedbackFunc);
IncomingCallFeedback = new BoolFeedback(IncomingCallFeedbackFunc);
PrivacyModeIsOnFeedback = new BoolFeedback(PrivacyModeIsOnFeedbackFunc);
VolumeLevelFeedback = new IntFeedback(VolumeLevelFeedbackFunc);
@@ -64,26 +63,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
InputPorts = new RoutingPortCollection<RoutingInputPort>();
//ActiveCallCountFeedback.OutputChange += new EventHandler<EventArgs>(ActiveCallCountFeedback_OutputChange);
ActiveCalls = new List<CodecActiveCallItem>();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
//void ActiveCallCountFeedback_OutputChange(object sender, EventArgs e)
//{
// if (UsageTracker != null)
// {
// if (IsInCall)
// UsageTracker.StartDeviceUsage();
// else
// UsageTracker.EndDeviceUsage();
// }
//}
#region IHasDialer Members
public abstract void Dial(string s);

View File

@@ -40,5 +40,10 @@
/// 3922
/// </summary>
public const uint PresentationListCaretMode = 3922;
/// <summary>
/// 15024 - Modes 0: On hook, 1: Phone, 2: Video
/// </summary>
public const uint CallHeaderButtonMode = 15024;
}
}

View File

@@ -155,6 +155,12 @@ namespace PepperDash.Essentials
//PowerOffTimeout = 30000;
//TriList.StringInput[UIStringJoin.StartActivityText].StringValue = "Tap an activity below";
// Reveal proper header buttons with/without lighting
if(false) // has lighting
TriList.SetBool(UIBoolJoin.CallLeftHeaderButtonVisible, true);
else
TriList.SetBool(UIBoolJoin.CallRightHeaderButtonVisible, true);
}
/// <summary>

View File

@@ -15,6 +15,10 @@ using PepperDash.Essentials.Devices.Common.VideoCodec;
namespace PepperDash.Essentials.UIDrivers.VC
{
#warning When InCall, keypad text should clear. Keypad becomes DTMF only. Delete is gone and disabled. Send keypresses immediately to SendDTMF. Queue them in disaply string.
#warning when Call ends, clear keypad text.
#warning FOR SPARK - (GFX also) we need a staging bar for in call state where there is no camera button
/// <summary>
/// This fella will likely need to interact with the room's source, although that is routed via the spark...
/// Probably needs event or FB to feed AV driver - to show two-mute volume when appropriate.
@@ -149,6 +153,13 @@ namespace PepperDash.Essentials.UIDrivers.VC
TriList.UShortInput[UIUshortJoin.VCStagingConnectButtonMode].UShortValue = (ushort)(Codec.IsInCall ? 1 : 0);
StagingBarInterlock.ShowInterlocked(Codec.IsInCall ?
UIBoolJoin.VCStagingActivePopoverVisible : UIBoolJoin.VCStagingInactivePopoverVisible);
// Set mode of header button
if (!Codec.IsInCall)
TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 0);
else if(Codec.ActiveCalls.Any(c => c.Type == eCodecCallType.Video))
TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 2);
else
TriList.SetUshort(UIUshortJoin.CallHeaderButtonMode, 1);
// Update list of calls
var activeList = Codec.ActiveCalls.Where(c => c.IsActiveCall).ToList();