mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 13:15:03 +00:00
Merge pull request #2 in PEC/essentials from feature/ecs-497 to development
* commit '8a9a8ac6a77201784c96996a5de1149ac589cb5f': Updated AssemblyVersion to 1.0.2.* Prep for merge into development for NYU deployment Updated PhoneNumber property name to SipPhoneNumber General code cleanup and updates to Huddle UI drivers to comply with Vtc1 changes
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
using Crestron.SimplSharpPro;
|
||||
|
||||
|
||||
namespace PepperDash.Essentials.Core.Crestron_IO
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a generic digital input deviced tied to a versiport
|
||||
/// </summary>
|
||||
public class GenericVersiportInputDevice
|
||||
{
|
||||
//Versiport InputPort {get; private set;}
|
||||
|
||||
//BoolFeedback InputStateFeedback {get; private set;}
|
||||
|
||||
//Func<bool> InputStateFeedbackFunc
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// return () => InputPort.DigitalIn;
|
||||
// }
|
||||
//}
|
||||
|
||||
//public GenericVersiportInputDevice(Versiport inputPort)
|
||||
//{
|
||||
// InputStateFeedback = new BoolFeedback(InputStateFeedbackFunc);
|
||||
|
||||
// InputPort = inputPort;
|
||||
|
||||
// InputPort.VersiportChange += new VersiportEventHandler(InputPort_VersiportChange);
|
||||
|
||||
//}
|
||||
|
||||
//void InputPort_VersiportChange(Versiport port, VersiportEventArgs args)
|
||||
//{
|
||||
// InputStateFeedback.FireUpdate();
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
|
||||
namespace PepperDash.Essentials.Core.Crestron_IO
|
||||
{
|
||||
public interface IDigitalInput
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
|
||||
using Crestron.SimplSharpPro;
|
||||
|
||||
namespace PepperDash.Essentials.Core.Crestron_IO
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a generic device controlled by relays
|
||||
/// </summary>
|
||||
public class GenericRelayDevice
|
||||
{
|
||||
//Relay RelayOutput { get; private set; }
|
||||
|
||||
//public boolfeedback relaystatefeedback { get; private set; }
|
||||
|
||||
//func<bool> relaystatefeedbackfunc
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// return () => relayoutput.state;
|
||||
// }
|
||||
//}
|
||||
|
||||
//public genericrelaydevice(relay relay)
|
||||
//{
|
||||
// relaystatefeedback = new boolfeedback(relaystatefeedbackfunc);
|
||||
|
||||
// if(relay.availableforuse)
|
||||
// relayoutput = relay;
|
||||
|
||||
// relayoutput.statechange += new relayeventhandler(relayoutput_statechange);
|
||||
//}
|
||||
|
||||
//void relayoutput_statechange(relay relay, relayeventargs args)
|
||||
//{
|
||||
// relaystatefeedback.fireupdate();
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<OutputPath>..\..\Release Package\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
@@ -71,9 +71,9 @@
|
||||
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="mscorlib" />
|
||||
<Reference Include="PepperDash_Core, Version=1.0.0.16459, Culture=neutral, processorArchitecture=MSIL">
|
||||
<Reference Include="PepperDash_Core, Version=1.0.1.26313, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\pepperdash-simplsharp-core\Pepperdash Core\CLZ Builds\PepperDash_Core.dll</HintPath>
|
||||
<HintPath>..\..\..\PepperDash.Core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@@ -103,6 +103,9 @@
|
||||
<Reference Include="System.Data" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Crestron IO\Inputs\GenericVersiportInputDevice.cs" />
|
||||
<Compile Include="Crestron IO\Inputs\IDigitalInput.cs" />
|
||||
<Compile Include="Crestron IO\Relay\GenericRelayDevice.cs" />
|
||||
<Compile Include="Devices\CodecInterfaces.cs" />
|
||||
<Compile Include="Global\JobTimer.cs" />
|
||||
<Compile Include="Ramps and Increments\ActionIncrementer.cs" />
|
||||
|
||||
@@ -21,7 +21,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
{
|
||||
public abstract bool MultiSiteOptionIsEnabled { get; }
|
||||
public abstract string IpAddress { get; }
|
||||
public abstract string PhoneNumber { get; }
|
||||
public abstract string SipPhoneNumber { get; }
|
||||
public abstract string E164Alias { get; }
|
||||
public abstract string H323Id { get; }
|
||||
public abstract string SipUri { get; }
|
||||
public abstract bool AutoAnswerEnabled { get; }
|
||||
}
|
||||
|
||||
@@ -1285,7 +1285,27 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
public override string PhoneNumber
|
||||
public override string E164Alias
|
||||
{
|
||||
get
|
||||
{
|
||||
if (CodecConfiguration.Configuration.H323.H323Alias.E164 != null)
|
||||
return CodecConfiguration.Configuration.H323.H323Alias.E164.Value;
|
||||
else
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
public override string H323Id
|
||||
{
|
||||
get
|
||||
{
|
||||
if (CodecConfiguration.Configuration.H323.H323Alias.ID != null)
|
||||
return CodecConfiguration.Configuration.H323.H323Alias.E164.Value;
|
||||
else
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
public override string SipPhoneNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
@@ -5,7 +5,10 @@ using System.Text;
|
||||
|
||||
using Crestron.SimplSharp;
|
||||
|
||||
using PepperDash.Core;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||
@@ -212,9 +215,16 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||
public Mode7 Mode { get; set; }
|
||||
}
|
||||
|
||||
public class Framerate
|
||||
{
|
||||
public string valueSpaceRef { get; set; }
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
public class Camera
|
||||
{
|
||||
public string id { get; set; }
|
||||
public Framerate Framerate { get; set; }
|
||||
public Backlight Backlight { get; set; }
|
||||
public Brightness Brightness { get; set; }
|
||||
public Focus Focus { get; set; }
|
||||
@@ -243,9 +253,68 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||
|
||||
public class Cameras
|
||||
{
|
||||
//[JsonConverter(typeof(CameraConverter))]
|
||||
//public List<Camera> Camera { get; set; }
|
||||
//[JsonConverter(typeof(CameraConverter)), JsonProperty("Camera")]
|
||||
//public List<Camera> Camera { get; set; }
|
||||
//[JsonProperty("SpeakerTrack")]
|
||||
public SpeakerTrack SpeakerTrack { get; set; }
|
||||
|
||||
public Cameras()
|
||||
{
|
||||
//Camera = new List<Camera>();
|
||||
SpeakerTrack = new SpeakerTrack();
|
||||
}
|
||||
}
|
||||
|
||||
public class CameraConverter : JsonConverter
|
||||
{
|
||||
// this is currently not working
|
||||
public override bool CanConvert(System.Type objectType)
|
||||
{
|
||||
return objectType == typeof(Camera) || objectType == typeof(List<Camera>); // This should not be called but is required for implmentation
|
||||
}
|
||||
|
||||
public override object ReadJson(JsonReader reader, System.Type objectType, object existingValue, JsonSerializer serializer)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (reader.TokenType == JsonToken.StartArray)
|
||||
{
|
||||
var l = new List<Camera>();
|
||||
reader.Read();
|
||||
while (reader.TokenType != JsonToken.EndArray)
|
||||
{
|
||||
l.Add(reader.Value as Camera);
|
||||
reader.Read();
|
||||
}
|
||||
Debug.Console(1, "[xConfiguration]: Cameras converted as list");
|
||||
return l;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Console(1, "[xConfiguration]: Camera converted as single object and added to list");
|
||||
return new List<Camera> { reader.Value as Camera };
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.Console(1, "[xConfiguration]: Unable to convert JSON for camera objects: {0}", e);
|
||||
|
||||
return new List<Camera>();
|
||||
}
|
||||
}
|
||||
|
||||
public override bool CanWrite
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
||||
{
|
||||
throw new NotImplementedException("Write not implemented");
|
||||
}
|
||||
}
|
||||
|
||||
public class Delay
|
||||
|
||||
@@ -315,17 +315,70 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||
|
||||
public class Cameras
|
||||
{
|
||||
//[JsonConverter(typeof(CameraConverter))]
|
||||
//public List<Camera> Camera { get; set; }
|
||||
// [JsonConverter(typeof(CameraConverter))]
|
||||
public List<Camera> Camera { get; set; }
|
||||
public SpeakerTrack SpeakerTrack { get; set; }
|
||||
|
||||
public Cameras()
|
||||
{
|
||||
//Camera = new List<Camera>();
|
||||
Camera = new List<Camera>();
|
||||
SpeakerTrack = new SpeakerTrack();
|
||||
}
|
||||
}
|
||||
|
||||
//public class CameraConverter : JsonConverter
|
||||
//{
|
||||
|
||||
// public override bool CanConvert(System.Type objectType)
|
||||
// {
|
||||
// return true; // objectType == typeof(Camera) || objectType == typeof(List<Camera>); // This should not be called but is required for implmentation
|
||||
// }
|
||||
|
||||
// public override object ReadJson(JsonReader reader, System.Type objectType, object existingValue, JsonSerializer serializer)
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// if (reader.TokenType == JsonToken.StartArray)
|
||||
// {
|
||||
// var l = new List<Camera>();
|
||||
// reader.Read();
|
||||
// while (reader.TokenType != JsonToken.EndArray)
|
||||
// {
|
||||
// l.Add(reader.Value as Camera);
|
||||
// reader.Read();
|
||||
// }
|
||||
// Debug.Console(1, "[xStatus]: Cameras converted as list");
|
||||
// return l;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// Debug.Console(1, "[xStatus]: Camera converted as single object and added to list");
|
||||
// return new List<Camera> { reader.Value as Camera };
|
||||
// }
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// Debug.Console(1, "[xStatus]: Unable to convert JSON for camera objects: {0}", e);
|
||||
|
||||
// return new List<Camera>();
|
||||
// }
|
||||
// }
|
||||
|
||||
// public override bool CanWrite
|
||||
// {
|
||||
// get
|
||||
// {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
||||
// {
|
||||
// throw new NotImplementedException("Write not implemented");
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
public class MaxActiveCalls
|
||||
{
|
||||
public string Value { get; set; }
|
||||
|
||||
@@ -402,12 +402,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public override string IpAddress
|
||||
public override string E164Alias
|
||||
{
|
||||
get { return "xx.xx.xx.xx"; }
|
||||
get { return "someE164alias"; }
|
||||
}
|
||||
|
||||
public override string PhoneNumber
|
||||
public override string H323Id
|
||||
{
|
||||
get { return "someH323Id"; }
|
||||
}
|
||||
|
||||
public override string IpAddress
|
||||
{
|
||||
get { return "xxx.xxx.xxx.xxx"; }
|
||||
}
|
||||
|
||||
public override string SipPhoneNumber
|
||||
{
|
||||
get { return "333-444-5555"; }
|
||||
}
|
||||
|
||||
@@ -43,8 +43,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
|
||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||
|
||||
bool wasIsInCall;
|
||||
|
||||
/// <summary>
|
||||
/// Returns true when any call is not in state Unknown, Disconnecting, Disconnected
|
||||
/// </summary>
|
||||
|
||||
@@ -79,9 +79,9 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\pepperdash-portal-sync\SspPortalSync\SspPortalSync\bin\PepperDashCorePortalSync.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PepperDash_Core, Version=1.0.0.18868, Culture=neutral, processorArchitecture=MSIL">
|
||||
<Reference Include="PepperDash_Core, Version=1.0.1.26313, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\pepperdash-simplsharp-core\Pepperdash Core\CLZ Builds\PepperDash_Core.dll</HintPath>
|
||||
<HintPath>..\..\..\PepperDash.Core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PepperDash_Essentials_Core, Version=1.0.0.18243, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
@@ -169,7 +169,7 @@
|
||||
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
|
||||
<Compile Include="UIDrivers\SigInterlock.cs" />
|
||||
<Compile Include="UIDrivers\EssentialsHuddleVTC\EssentialsHuddlePresentationUiDriver.cs" />
|
||||
<Compile Include="UIDrivers\EssentialsHuddleVTC\EssentialsHuddleTechPageDriver.cs" />
|
||||
<Compile Include="UIDrivers\EssentialsHuddle\EssentialsHuddleTechPageDriver.cs" />
|
||||
<Compile Include="UI\HttpLogoServer.cs" />
|
||||
<Compile Include="UI\SmartObjectHeaderButtonList.cs" />
|
||||
<Compile Include="UI\SubpageReferenceListCallStagingItem.cs" />
|
||||
@@ -185,7 +185,7 @@
|
||||
<Compile Include="UIDrivers\Page Drivers\SingleSubpageModalDriver.cs" />
|
||||
<Compile Include="UIDrivers\Essentials\EssentialsPanelMainInterfaceDriver.cs" />
|
||||
<Compile Include="UIDrivers\enums and base.cs" />
|
||||
<Compile Include="UIDrivers\Essentials\EssentialsHuddlePanelAvFunctionsDriver.cs" />
|
||||
<Compile Include="UIDrivers\EssentialsHuddle\EssentialsHuddlePanelAvFunctionsDriver.cs" />
|
||||
<Compile Include="UIDrivers\Page Drivers\SingleSubpageModalAndBackDriver.cs" />
|
||||
<Compile Include="UIDrivers\SmartObjectRoomsList.cs" />
|
||||
<Compile Include="UI\JoinConstants\UIBoolJoin.cs" />
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
[assembly: AssemblyCompany("PepperDash Technology Corp")]
|
||||
[assembly: AssemblyProduct("PepperDashEssentials")]
|
||||
[assembly: AssemblyCopyright("Copyright © PepperDash Technology Corp 2017")]
|
||||
[assembly: AssemblyVersion("1.0.1.*")]
|
||||
[assembly: AssemblyVersion("1.0.2.*")]
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@ namespace PepperDash.Essentials
|
||||
var disp = DefaultDisplay as DisplayBase;
|
||||
var val = CurrentSourceInfo != null
|
||||
&& CurrentSourceInfo.Type == eSourceListItemType.Route
|
||||
&& disp != null
|
||||
&& disp.PowerIsOnFeedback.BoolValue;
|
||||
&& disp != null;
|
||||
//&& disp.PowerIsOnFeedback.BoolValue;
|
||||
return val;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -118,10 +118,6 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
public const uint RoomPhoneText = 3904;
|
||||
/// <summary>
|
||||
/// 3905 - SIP address for room header
|
||||
/// </summary>
|
||||
public const uint RoomSipText = 3905;
|
||||
/// <summary>
|
||||
/// 3906 - The separator for verbose-header text on addresses
|
||||
/// </summary>
|
||||
public const uint RoomAddressPipeText = 3906;
|
||||
|
||||
@@ -66,6 +66,11 @@ namespace PepperDash.Essentials
|
||||
}
|
||||
string _DefaultRoomKey;
|
||||
|
||||
/// <summary>
|
||||
/// Indicates that the SetHeaderButtons method has completed successfully
|
||||
/// </summary>
|
||||
public bool HeaderButtonsAreSetUp { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
@@ -148,10 +153,28 @@ namespace PepperDash.Essentials
|
||||
|
||||
ModalDialog PowerDownModal;
|
||||
|
||||
ModalDialog WarmingCoolingModal;
|
||||
|
||||
JoinedSigInterlock PopupInterlock;
|
||||
|
||||
/// <summary>
|
||||
/// The driver for the tech page. Lazy getter for memory usage
|
||||
/// </summary>
|
||||
PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver TechDriver
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_TechDriver == null)
|
||||
_TechDriver = new PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver(TriList, CurrentRoom.Config.Tech);
|
||||
return _TechDriver;
|
||||
}
|
||||
}
|
||||
PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver _TechDriver;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Controls timeout of notification ribbon timer
|
||||
/// </summary>
|
||||
CTimer RibbonTimer;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
@@ -190,53 +213,80 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
public override void Show()
|
||||
{
|
||||
TriList.BooleanInput[UIBoolJoin.TopBarHabaneroVisible].BoolValue = true;
|
||||
if (CurrentRoom == null)
|
||||
{
|
||||
Debug.Console(1, "ERROR: AVUIFunctionsDriver, Cannot show. No room assigned");
|
||||
return;
|
||||
}
|
||||
|
||||
var roomConf = CurrentRoom.Config;
|
||||
|
||||
TriList.SetString(UIStringJoin.CurrentRoomName, CurrentRoom.Name);
|
||||
|
||||
if (Config.HeaderStyle.ToLower() == CrestronTouchpanelPropertiesConfig.Habanero)
|
||||
{
|
||||
TriList.SetSigFalseAction(UIBoolJoin.HeaderRoomButtonPress, () =>
|
||||
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.RoomHeaderPageVisible));
|
||||
}
|
||||
else if (Config.HeaderStyle.ToLower() == CrestronTouchpanelPropertiesConfig.Verbose)
|
||||
{
|
||||
// room name on join 1, concat phone and sip on join 2, no button method
|
||||
//var addr = roomConf.Addresses;
|
||||
//if (addr == null) // protect from missing values by using default empties
|
||||
// addr = new EssentialsRoomAddressPropertiesConfig();
|
||||
//// empty string when either missing, pipe when both showing
|
||||
//TriList.SetString(UIStringJoin.RoomAddressPipeText,
|
||||
// (string.IsNullOrEmpty(addr.PhoneNumber.Trim())
|
||||
// || string.IsNullOrEmpty(addr.SipAddress.Trim())) ? "" : " | ");
|
||||
//TriList.SetString(UIStringJoin.RoomPhoneText, addr.PhoneNumber);
|
||||
//TriList.SetString(UIStringJoin.RoomSipText, addr.SipAddress);
|
||||
}
|
||||
|
||||
TriList.SetBool(UIBoolJoin.DateAndTimeVisible, Config.ShowDate && Config.ShowTime);
|
||||
TriList.SetBool(UIBoolJoin.DateOnlyVisible, Config.ShowDate && !Config.ShowTime);
|
||||
TriList.SetBool(UIBoolJoin.TimeOnlyVisible, !Config.ShowDate && Config.ShowTime);
|
||||
|
||||
TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, true);
|
||||
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = true;
|
||||
|
||||
// Default to showing rooms/sources now.
|
||||
ShowMode(UiDisplayMode.PresentationMode);
|
||||
// Default to showing rooms/sources now.
|
||||
if (CurrentRoom.OnFeedback.BoolValue)
|
||||
{
|
||||
TriList.SetBool(UIBoolJoin.TapToBeginVisible, false);
|
||||
SetupActivityFooterWhenRoomOn();
|
||||
}
|
||||
else
|
||||
{
|
||||
TriList.SetBool(UIBoolJoin.StartPageVisible, true);
|
||||
TriList.SetBool(UIBoolJoin.TapToBeginVisible, true);
|
||||
SetupActivityFooterWhenRoomOff();
|
||||
}
|
||||
ShowCurrentDisplayModeSigsInUse();
|
||||
|
||||
// Attach actions
|
||||
TriList.SetSigFalseAction(UIBoolJoin.VolumeButtonPopupPress, VolumeButtonsTogglePress);
|
||||
|
||||
//Interlocked modals
|
||||
TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, PopupInterlock.HideAndClear);// HideCurrentInterlockedModal);
|
||||
TriList.SetSigFalseAction(UIBoolJoin.HelpPress, () =>
|
||||
{
|
||||
string message = null;
|
||||
var room = DeviceManager.GetDeviceForKey(Config.DefaultRoomKey)
|
||||
as EssentialsHuddleSpaceRoom;
|
||||
if (room != null)
|
||||
message = room.Config.HelpMessage;
|
||||
else
|
||||
message = "Sorry, no help message available. No room connected.";
|
||||
TriList.StringInput[UIStringJoin.HelpMessage].StringValue = message;
|
||||
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HelpPageVisible); // ShowInterlockedModal(UIBoolJoin.HelpPageVisible);
|
||||
});
|
||||
// Generic "close" button for popup modals
|
||||
TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, PopupInterlock.HideAndClear);
|
||||
|
||||
// Volume related things
|
||||
TriList.SetSigFalseAction(UIBoolJoin.VolumeDefaultPress, () => CurrentRoom.SetDefaultLevels());
|
||||
TriList.SetString(UIStringJoin.AdvancedVolumeSlider1Text, "Room");
|
||||
|
||||
//TriList.SetSigFalseAction(UIBoolJoin.RoomHeaderButtonPress, () =>
|
||||
// ShowInterlockedModal(UIBoolJoin.RoomHeaderPageVisible));
|
||||
|
||||
// Setup button
|
||||
TriList.SetSigHeldAction(UIBoolJoin.FIXFIX_HeaderGearButtonPress_FIXFIX, 2000,
|
||||
() => PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.TechPanelSetupVisible));// ShowInterlockedModal(UIBoolJoin.TechPanelSetupVisible));
|
||||
TriList.SetSigFalseAction(UIBoolJoin.TechExitButton, () =>
|
||||
PopupInterlock.HideAndClear()); // HideCurrentInterlockedModal());
|
||||
if(TriList is CrestronApp)
|
||||
TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = false;
|
||||
else
|
||||
TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = true;
|
||||
|
||||
//if(TriList is CrestronApp)
|
||||
// TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = false;
|
||||
//else
|
||||
// TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = true;
|
||||
|
||||
// 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.PowerOffMorePress, () =>
|
||||
{
|
||||
CancelPowerOffTimer();
|
||||
TriList.BooleanInput[UIBoolJoin.PowerOffStep1Visible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.PowerOffStep2Visible].BoolValue = true;
|
||||
});
|
||||
TriList.SetSigFalseAction(UIBoolJoin.ShowPowerOffPress, EndMeetingPress);
|
||||
|
||||
TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () =>
|
||||
{
|
||||
if (CurrentRoom != null && CurrentRoom.DefaultDisplay is IPower)
|
||||
@@ -246,13 +296,61 @@ namespace PepperDash.Essentials
|
||||
base.Show();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public void EndMeetingPress()
|
||||
{
|
||||
if (!CurrentRoom.OnFeedback.BoolValue
|
||||
|| CurrentRoom.ShutdownPromptTimer.IsRunningFeedback.BoolValue)
|
||||
return;
|
||||
|
||||
CurrentRoom.StartShutdown(eShutdownType.Manual);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reveals the tech page and puts away anything that's in the way.
|
||||
/// </summary>
|
||||
void ShowTech()
|
||||
{
|
||||
PopupInterlock.HideAndClear();
|
||||
TechDriver.Show();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void ShowLogo()
|
||||
{
|
||||
if (CurrentRoom.LogoUrl == null)
|
||||
{
|
||||
TriList.SetBool(UIBoolJoin.LogoDefaultVisible, true);
|
||||
TriList.SetBool(UIBoolJoin.LogoUrlVisible, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
TriList.SetBool(UIBoolJoin.LogoDefaultVisible, false);
|
||||
TriList.SetBool(UIBoolJoin.LogoUrlVisible, true);
|
||||
TriList.SetString(UIStringJoin.LogoUrl, _CurrentRoom.LogoUrl);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void HideLogo()
|
||||
{
|
||||
TriList.SetBool(UIBoolJoin.LogoDefaultVisible, false);
|
||||
TriList.SetBool(UIBoolJoin.LogoUrlVisible, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public override void Hide()
|
||||
{
|
||||
HideAndClearCurrentDisplayModeSigsInUse();
|
||||
TriList.BooleanInput[UIBoolJoin.TopBarHabaneroVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.TopBarHabaneroDynamicVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false;
|
||||
@@ -264,6 +362,40 @@ namespace PepperDash.Essentials
|
||||
base.Hide();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reveals a message on the notification ribbon until cleared
|
||||
/// </summary>
|
||||
/// <param name="message">Text to display</param>
|
||||
/// <param name="timeout">Time in ms to display. 0 to keep on screen</param>
|
||||
public void ShowNotificationRibbon(string message, int timeout)
|
||||
{
|
||||
TriList.SetString(UIStringJoin.NotificationRibbonText, message);
|
||||
TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, true);
|
||||
if (timeout > 0)
|
||||
{
|
||||
if (RibbonTimer != null)
|
||||
RibbonTimer.Stop();
|
||||
RibbonTimer = new CTimer(o =>
|
||||
{
|
||||
TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, false);
|
||||
RibbonTimer = null;
|
||||
}, timeout);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hides the notification ribbon
|
||||
/// </summary>
|
||||
public void HideNotificationRibbon()
|
||||
{
|
||||
TriList.SetBool(UIBoolJoin.NotificationRibbonVisible, false);
|
||||
if (RibbonTimer != null)
|
||||
{
|
||||
RibbonTimer.Stop();
|
||||
RibbonTimer = null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the various "modes" that this driver controls. Presentation, Setup page
|
||||
/// </summary>
|
||||
@@ -330,7 +462,7 @@ namespace PepperDash.Essentials
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl,
|
||||
0, null));
|
||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl,
|
||||
3, b => { if (!b) PowerButtonPressed(); }));
|
||||
4, b => { if (!b) PowerButtonPressed(); }));
|
||||
ActivityFooterSrl.Count = 2;
|
||||
TriList.UShortInput[UIUshortJoin.PresentationStagingCaretMode].UShortValue = 1;
|
||||
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1);
|
||||
@@ -351,34 +483,6 @@ namespace PepperDash.Essentials
|
||||
CurrentRoom.RunDefaultRoute();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hides a current modal if showing and then shows a new.
|
||||
/// </summary>
|
||||
/// <param name="join"></param>
|
||||
//void ShowInterlockedModal(uint join)
|
||||
//{
|
||||
// if (CurrentInterlockedModalJoin == join)
|
||||
// HideCurrentInterlockedModal();
|
||||
// else
|
||||
// {
|
||||
// // sets the sig true if the join is right
|
||||
// TriList.BooleanInput[UIBoolJoin.HelpPageVisible].BoolValue = join == UIBoolJoin.HelpPageVisible;
|
||||
// TriList.BooleanInput[UIBoolJoin.RoomHeaderPageVisible].BoolValue = join == UIBoolJoin.RoomHeaderPageVisible;
|
||||
// TriList.BooleanInput[UIBoolJoin.VolumesPageVisible].BoolValue = join == UIBoolJoin.VolumesPageVisible;
|
||||
// TriList.BooleanInput[UIBoolJoin.TechPanelSetupVisible].BoolValue = join == UIBoolJoin.TechPanelSetupVisible;
|
||||
// CurrentInterlockedModalJoin = join;
|
||||
// }
|
||||
//}
|
||||
|
||||
///// <summary>
|
||||
///// Helper to hide the current interlocked modal
|
||||
///// </summary>
|
||||
//void HideCurrentInterlockedModal()
|
||||
//{
|
||||
// TriList.BooleanInput[CurrentInterlockedModalJoin].BoolValue = false;
|
||||
// CurrentInterlockedModalJoin = 0;
|
||||
//}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Shows all sigs that are in CurrentDisplayModeSigsInUse
|
||||
@@ -493,13 +597,6 @@ namespace PepperDash.Essentials
|
||||
PowerDownModal = new ModalDialog(TriList);
|
||||
var message = string.Format("Meeting will end in {0} seconds", CurrentRoom.ShutdownPromptSeconds);
|
||||
|
||||
//// figure out a cleaner way to update gauge
|
||||
//var gauge = CurrentRoom.ShutdownPromptTimer.PercentFeedback;
|
||||
//EventHandler<EventArgs> gaugeHandler = null;
|
||||
//gaugeHandler = (o, a) => TriList.UShortInput[ModalDialog.TimerGaugeJoin].UShortValue =
|
||||
// (ushort)(gauge.UShortValue * 65535 / 100);
|
||||
//gauge.OutputChange += gaugeHandler;
|
||||
|
||||
// Attach timer things to modal
|
||||
CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange += ShutdownPromptTimer_TimeRemainingFeedback_OutputChange;
|
||||
CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange += ShutdownPromptTimer_PercentFeedback_OutputChange;
|
||||
@@ -710,7 +807,9 @@ namespace PepperDash.Essentials
|
||||
RefreshAudioDeviceConnections();
|
||||
_CurrentRoom.CurrentSingleSourceChange += CurrentRoom_SourceInfoChange;
|
||||
RefreshSourceInfo();
|
||||
}
|
||||
|
||||
SetupHeaderButtons();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Clear sigs that need to be
|
||||
@@ -718,6 +817,84 @@ namespace PepperDash.Essentials
|
||||
}
|
||||
}
|
||||
|
||||
void SetupHeaderButtons()
|
||||
{
|
||||
HeaderButtonsAreSetUp = false;
|
||||
|
||||
TriList.SetBool(UIBoolJoin.TopBarHabaneroDynamicVisible, true);
|
||||
|
||||
var roomConf = CurrentRoom.Config;
|
||||
|
||||
// Gear
|
||||
TriList.SetString(UIStringJoin.HeaderButtonIcon5, "Gear");
|
||||
TriList.SetSigHeldAction(UIBoolJoin.HeaderIcon5Press, 2000,
|
||||
ShowTech,
|
||||
null,
|
||||
() =>
|
||||
{
|
||||
if (CurrentRoom.OnFeedback.BoolValue)
|
||||
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.VolumesPageVisible);
|
||||
else
|
||||
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.VolumesPagePowerOffVisible);
|
||||
});
|
||||
TriList.SetSigFalseAction(UIBoolJoin.TechExitButton, () =>
|
||||
PopupInterlock.HideAndClear());
|
||||
|
||||
// Help button and popup
|
||||
if (CurrentRoom.Config.Help != null)
|
||||
{
|
||||
TriList.SetString(UIStringJoin.HelpMessage, roomConf.Help.Message);
|
||||
TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, roomConf.Help.ShowCallButton);
|
||||
TriList.SetString(UIStringJoin.HelpPageCallButtonText, roomConf.Help.CallButtonText);
|
||||
if (roomConf.Help.ShowCallButton)
|
||||
TriList.SetSigFalseAction(UIBoolJoin.HelpPageShowCallButtonPress, () => { }); // ************ FILL IN
|
||||
else
|
||||
TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress);
|
||||
}
|
||||
else // older config
|
||||
{
|
||||
TriList.SetString(UIStringJoin.HelpMessage, CurrentRoom.Config.HelpMessage);
|
||||
TriList.SetBool(UIBoolJoin.HelpPageShowCallButtonVisible, false);
|
||||
TriList.SetString(UIStringJoin.HelpPageCallButtonText, null);
|
||||
TriList.ClearBoolSigAction(UIBoolJoin.HelpPageShowCallButtonPress);
|
||||
}
|
||||
TriList.SetString(UIStringJoin.HeaderButtonIcon4, "Help");
|
||||
TriList.SetSigFalseAction(UIBoolJoin.HeaderIcon4Press, () =>
|
||||
{
|
||||
string message = null;
|
||||
var room = DeviceManager.GetDeviceForKey(Config.DefaultRoomKey)
|
||||
as EssentialsHuddleSpaceRoom;
|
||||
if (room != null)
|
||||
message = room.Config.HelpMessage;
|
||||
else
|
||||
message = "Sorry, no help message available. No room connected.";
|
||||
//TriList.StringInput[UIStringJoin.HelpMessage].StringValue = message;
|
||||
PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.HelpPageVisible);
|
||||
});
|
||||
uint nextJoin = 3953;
|
||||
|
||||
//// Calendar button
|
||||
//if (_CurrentRoom.ScheduleSource != null)
|
||||
//{
|
||||
// TriList.SetString(nextJoin, "Calendar");
|
||||
// TriList.SetSigFalseAction(nextJoin, CalendarPress);
|
||||
|
||||
// nextJoin--;
|
||||
//}
|
||||
|
||||
//nextJoin--;
|
||||
|
||||
// blank any that remain
|
||||
for (var i = nextJoin; i > 3950; i--)
|
||||
{
|
||||
TriList.SetString(i, "Blank");
|
||||
TriList.SetSigFalseAction(i, () => { });
|
||||
}
|
||||
|
||||
HeaderButtonsAreSetUp = true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// For room on/off changes
|
||||
/// </summary>
|
||||
@@ -744,6 +921,7 @@ namespace PepperDash.Essentials
|
||||
else
|
||||
{
|
||||
SetupActivityFooterWhenRoomOff();
|
||||
ShowLogo();
|
||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
|
||||
TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = false;
|
||||
TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false;
|
||||
@@ -755,38 +933,26 @@ namespace PepperDash.Essentials
|
||||
/// </summary>
|
||||
void CurrentRoom_IsWarmingFeedback_OutputChange(object sender, EventArgs e)
|
||||
{
|
||||
var value = CurrentRoom.IsWarmingUpFeedback.BoolValue;
|
||||
//Debug.Console(2, CurrentRoom, "UI: WARMING event={0}", value);
|
||||
|
||||
if (value)
|
||||
if (CurrentRoom.IsWarmingUpFeedback.BoolValue)
|
||||
{
|
||||
WarmingCoolingModal = new ModalDialog(TriList);
|
||||
WarmingCoolingModal.PresentModalDialog(0, "Powering Up", "Power", "<p>Room is powering up</p><p>Please wait</p>",
|
||||
"", "", false, false, null);
|
||||
ShowNotificationRibbon("Room is powering on. Please wait...", 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (WarmingCoolingModal != null)
|
||||
WarmingCoolingModal.CancelDialog();
|
||||
ShowNotificationRibbon("Room is powered on. Welcome.", 2000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void IsCoolingDownFeedback_OutputChange(object sender, EventArgs e)
|
||||
{
|
||||
var value = CurrentRoom.IsCoolingDownFeedback.BoolValue;
|
||||
//Debug.Console(2, CurrentRoom, "UI: Cooldown event={0}", value);
|
||||
|
||||
if (value)
|
||||
if (CurrentRoom.IsCoolingDownFeedback.BoolValue)
|
||||
{
|
||||
WarmingCoolingModal = new ModalDialog(TriList);
|
||||
WarmingCoolingModal.PresentModalDialog(0, "Shut Down", "Power", "<p>Room is shutting down</p><p>Please wait</p>",
|
||||
"", "", false, false, null);
|
||||
ShowNotificationRibbon("Room is powering off. Please wait.", 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (WarmingCoolingModal != null)
|
||||
WarmingCoolingModal.CancelDialog();
|
||||
HideNotificationRibbon();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,10 +37,6 @@ namespace PepperDash.Essentials.UIDrivers
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
IAVDriver Parent;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
JoinedSigInterlock PagesInterlock;
|
||||
|
||||
/// <summary>
|
||||
@@ -63,10 +59,9 @@ namespace PepperDash.Essentials.UIDrivers
|
||||
/// </summary>
|
||||
/// <param name="trilist"></param>
|
||||
/// <param name="parent"></param>
|
||||
public EssentialsHuddleTechPageDriver(BasicTriListWithSmartObject trilist, IAVDriver parent, EssentialsRoomTechConfig config)
|
||||
public EssentialsHuddleTechPageDriver(BasicTriListWithSmartObject trilist, EssentialsRoomTechConfig config)
|
||||
: base(trilist)
|
||||
{
|
||||
Parent = parent;
|
||||
Config = config;
|
||||
|
||||
PagesInterlock = new JoinedSigInterlock(trilist);
|
||||
@@ -164,7 +164,7 @@ namespace PepperDash.Essentials
|
||||
get
|
||||
{
|
||||
if (_TechDriver == null)
|
||||
_TechDriver = new PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver(TriList, this, CurrentRoom.Config.Tech);
|
||||
_TechDriver = new PepperDash.Essentials.UIDrivers.EssentialsHuddleTechPageDriver(TriList, CurrentRoom.Config.Tech);
|
||||
return _TechDriver;
|
||||
}
|
||||
}
|
||||
@@ -1244,15 +1244,10 @@ namespace PepperDash.Essentials
|
||||
if (CurrentRoom.IsWarmingUpFeedback.BoolValue)
|
||||
{
|
||||
ShowNotificationRibbon("Room is powering on. Please wait...", 0);
|
||||
//WarmingCoolingModal = new ModalDialog(TriList);
|
||||
//WarmingCoolingModal.PresentModalDialog(0, "Powering Up", "Power", "<p>Room is powering up</p><p>Please wait</p>",
|
||||
// "", "", false, false, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowNotificationRibbon("Room is powered on. Welcome.", 2000);
|
||||
//if (WarmingCoolingModal != null)
|
||||
// WarmingCoolingModal.CancelDialog();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1266,16 +1261,10 @@ namespace PepperDash.Essentials
|
||||
if (CurrentRoom.IsCoolingDownFeedback.BoolValue)
|
||||
{
|
||||
ShowNotificationRibbon("Room is powering off. Please wait.", 0);
|
||||
|
||||
//WarmingCoolingModal = new ModalDialog(TriList);
|
||||
//WarmingCoolingModal.PresentModalDialog(0, "Power Off", "Power", "<p>Room is powering off</p><p>Please wait</p>",
|
||||
// "", "", false, false, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
HideNotificationRibbon();
|
||||
//if (WarmingCoolingModal != null)
|
||||
// WarmingCoolingModal.CancelDialog();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1460,13 +1449,13 @@ namespace PepperDash.Essentials
|
||||
void ComputeHeaderCallStatus(VideoCodecBase codec);
|
||||
bool HeaderButtonsAreSetUp { 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();
|
||||
/// <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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,7 +175,6 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
|
||||
triList.SetSigFalseAction(UIBoolJoin.VCDirectorySearchTextPress, RevealKeyboard);
|
||||
|
||||
//TriList.SetSigFalseAction(UIBoolJoin.VCDirectoryBackspacePress, SearchKeypadBackspacePress);
|
||||
triList.SetSigHeldAction(UIBoolJoin.VCDirectoryBackspacePress, 500,
|
||||
StartSearchBackspaceRepeat, StopSearchBackspaceRepeat, SearchKeypadBackspacePress);
|
||||
|
||||
@@ -194,8 +193,13 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
||||
/// <param name="e"></param>
|
||||
void Codec_IsReady()
|
||||
{
|
||||
TriList.SetString(UIStringJoin.RoomPhoneText, GetFormattedPhoneNumber(Codec.CodecInfo.PhoneNumber));
|
||||
TriList.SetString(UIStringJoin.RoomSipText, Codec.CodecInfo.SipUri);
|
||||
string roomNumberSipUri = "";
|
||||
if (!string.IsNullOrEmpty(Codec.CodecInfo.SipUri)) // If both values are present, format the string with a pipe divider
|
||||
roomNumberSipUri = string.Format("{0} | {2}", GetFormattedPhoneNumber(Codec.CodecInfo.SipPhoneNumber), Codec.CodecInfo.SipUri);
|
||||
else // If only one value present, just show the phone number
|
||||
roomNumberSipUri = Codec.CodecInfo.SipPhoneNumber;
|
||||
|
||||
TriList.SetString(UIStringJoin.RoomPhoneText, roomNumberSipUri);
|
||||
|
||||
if(Parent.HeaderButtonsAreSetUp)
|
||||
Parent.ComputeHeaderCallStatus(Codec);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user