mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 05:05:00 +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>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>bin\</OutputPath>
|
<OutputPath>..\..\Release Package\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE;</DefineConstants>
|
<DefineConstants>DEBUG;TRACE;</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
@@ -71,9 +71,9 @@
|
|||||||
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
|
<HintPath>..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="mscorlib" />
|
<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>
|
<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>
|
||||||
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
@@ -103,6 +103,9 @@
|
|||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<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="Devices\CodecInterfaces.cs" />
|
||||||
<Compile Include="Global\JobTimer.cs" />
|
<Compile Include="Global\JobTimer.cs" />
|
||||||
<Compile Include="Ramps and Increments\ActionIncrementer.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 bool MultiSiteOptionIsEnabled { get; }
|
||||||
public abstract string IpAddress { 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 string SipUri { get; }
|
||||||
public abstract bool AutoAnswerEnabled { get; }
|
public abstract bool AutoAnswerEnabled { get; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1285,7 +1285,27 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
return string.Empty;
|
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
|
get
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ using System.Text;
|
|||||||
|
|
||||||
using Crestron.SimplSharp;
|
using Crestron.SimplSharp;
|
||||||
|
|
||||||
|
using PepperDash.Core;
|
||||||
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||||
@@ -212,9 +215,16 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
public Mode7 Mode { get; set; }
|
public Mode7 Mode { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class Framerate
|
||||||
|
{
|
||||||
|
public string valueSpaceRef { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class Camera
|
public class Camera
|
||||||
{
|
{
|
||||||
public string id { get; set; }
|
public string id { get; set; }
|
||||||
|
public Framerate Framerate { get; set; }
|
||||||
public Backlight Backlight { get; set; }
|
public Backlight Backlight { get; set; }
|
||||||
public Brightness Brightness { get; set; }
|
public Brightness Brightness { get; set; }
|
||||||
public Focus Focus { get; set; }
|
public Focus Focus { get; set; }
|
||||||
@@ -243,9 +253,68 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
public class Cameras
|
public class Cameras
|
||||||
{
|
{
|
||||||
//[JsonConverter(typeof(CameraConverter))]
|
//[JsonConverter(typeof(CameraConverter)), JsonProperty("Camera")]
|
||||||
//public List<Camera> Camera { get; set; }
|
//public List<Camera> Camera { get; set; }
|
||||||
|
//[JsonProperty("SpeakerTrack")]
|
||||||
public SpeakerTrack SpeakerTrack { get; set; }
|
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
|
public class Delay
|
||||||
|
|||||||
@@ -316,16 +316,69 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
public class Cameras
|
public class Cameras
|
||||||
{
|
{
|
||||||
// [JsonConverter(typeof(CameraConverter))]
|
// [JsonConverter(typeof(CameraConverter))]
|
||||||
//public List<Camera> Camera { get; set; }
|
public List<Camera> Camera { get; set; }
|
||||||
public SpeakerTrack SpeakerTrack { get; set; }
|
public SpeakerTrack SpeakerTrack { get; set; }
|
||||||
|
|
||||||
public Cameras()
|
public Cameras()
|
||||||
{
|
{
|
||||||
//Camera = new List<Camera>();
|
Camera = new List<Camera>();
|
||||||
SpeakerTrack = new SpeakerTrack();
|
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 class MaxActiveCalls
|
||||||
{
|
{
|
||||||
public string Value { get; set; }
|
public string Value { get; set; }
|
||||||
|
|||||||
@@ -402,12 +402,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
get { return true; }
|
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"; }
|
get { return "333-444-5555"; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,8 +43,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
|
|
||||||
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
|
||||||
|
|
||||||
bool wasIsInCall;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns true when any call is not in state Unknown, Disconnecting, Disconnected
|
/// Returns true when any call is not in state Unknown, Disconnecting, Disconnected
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -79,9 +79,9 @@
|
|||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\..\..\pepperdash-portal-sync\SspPortalSync\SspPortalSync\bin\PepperDashCorePortalSync.dll</HintPath>
|
<HintPath>..\..\..\pepperdash-portal-sync\SspPortalSync\SspPortalSync\bin\PepperDashCorePortalSync.dll</HintPath>
|
||||||
</Reference>
|
</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>
|
<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>
|
||||||
<Reference Include="PepperDash_Essentials_Core, Version=1.0.0.18243, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="PepperDash_Essentials_Core, Version=1.0.0.18243, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
|
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
|
||||||
<Compile Include="UIDrivers\SigInterlock.cs" />
|
<Compile Include="UIDrivers\SigInterlock.cs" />
|
||||||
<Compile Include="UIDrivers\EssentialsHuddleVTC\EssentialsHuddlePresentationUiDriver.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\HttpLogoServer.cs" />
|
||||||
<Compile Include="UI\SmartObjectHeaderButtonList.cs" />
|
<Compile Include="UI\SmartObjectHeaderButtonList.cs" />
|
||||||
<Compile Include="UI\SubpageReferenceListCallStagingItem.cs" />
|
<Compile Include="UI\SubpageReferenceListCallStagingItem.cs" />
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
<Compile Include="UIDrivers\Page Drivers\SingleSubpageModalDriver.cs" />
|
<Compile Include="UIDrivers\Page Drivers\SingleSubpageModalDriver.cs" />
|
||||||
<Compile Include="UIDrivers\Essentials\EssentialsPanelMainInterfaceDriver.cs" />
|
<Compile Include="UIDrivers\Essentials\EssentialsPanelMainInterfaceDriver.cs" />
|
||||||
<Compile Include="UIDrivers\enums and base.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\Page Drivers\SingleSubpageModalAndBackDriver.cs" />
|
||||||
<Compile Include="UIDrivers\SmartObjectRoomsList.cs" />
|
<Compile Include="UIDrivers\SmartObjectRoomsList.cs" />
|
||||||
<Compile Include="UI\JoinConstants\UIBoolJoin.cs" />
|
<Compile Include="UI\JoinConstants\UIBoolJoin.cs" />
|
||||||
|
|||||||
@@ -4,5 +4,5 @@
|
|||||||
[assembly: AssemblyCompany("PepperDash Technology Corp")]
|
[assembly: AssemblyCompany("PepperDash Technology Corp")]
|
||||||
[assembly: AssemblyProduct("PepperDashEssentials")]
|
[assembly: AssemblyProduct("PepperDashEssentials")]
|
||||||
[assembly: AssemblyCopyright("Copyright © PepperDash Technology Corp 2017")]
|
[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 disp = DefaultDisplay as DisplayBase;
|
||||||
var val = CurrentSourceInfo != null
|
var val = CurrentSourceInfo != null
|
||||||
&& CurrentSourceInfo.Type == eSourceListItemType.Route
|
&& CurrentSourceInfo.Type == eSourceListItemType.Route
|
||||||
&& disp != null
|
&& disp != null;
|
||||||
&& disp.PowerIsOnFeedback.BoolValue;
|
//&& disp.PowerIsOnFeedback.BoolValue;
|
||||||
return val;
|
return val;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,10 +118,6 @@ namespace PepperDash.Essentials
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const uint RoomPhoneText = 3904;
|
public const uint RoomPhoneText = 3904;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 3905 - SIP address for room header
|
|
||||||
/// </summary>
|
|
||||||
public const uint RoomSipText = 3905;
|
|
||||||
/// <summary>
|
|
||||||
/// 3906 - The separator for verbose-header text on addresses
|
/// 3906 - The separator for verbose-header text on addresses
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const uint RoomAddressPipeText = 3906;
|
public const uint RoomAddressPipeText = 3906;
|
||||||
|
|||||||
@@ -66,6 +66,11 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
string _DefaultRoomKey;
|
string _DefaultRoomKey;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates that the SetHeaderButtons method has completed successfully
|
||||||
|
/// </summary>
|
||||||
|
public bool HeaderButtonsAreSetUp { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -148,10 +153,28 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
ModalDialog PowerDownModal;
|
ModalDialog PowerDownModal;
|
||||||
|
|
||||||
ModalDialog WarmingCoolingModal;
|
|
||||||
|
|
||||||
JoinedSigInterlock PopupInterlock;
|
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>
|
/// <summary>
|
||||||
/// Constructor
|
/// Constructor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -190,53 +213,80 @@ namespace PepperDash.Essentials
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public override void Show()
|
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;
|
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = true;
|
||||||
|
|
||||||
// Default to showing rooms/sources now.
|
// Default to showing rooms/sources now.
|
||||||
ShowMode(UiDisplayMode.PresentationMode);
|
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
|
// Attach actions
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.VolumeButtonPopupPress, VolumeButtonsTogglePress);
|
TriList.SetSigFalseAction(UIBoolJoin.VolumeButtonPopupPress, VolumeButtonsTogglePress);
|
||||||
|
|
||||||
//Interlocked modals
|
// Generic "close" button for popup modals
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, PopupInterlock.HideAndClear);// HideCurrentInterlockedModal);
|
TriList.SetSigFalseAction(UIBoolJoin.InterlockedModalClosePress, PopupInterlock.HideAndClear);
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.HelpPress, () =>
|
|
||||||
{
|
// Volume related things
|
||||||
string message = null;
|
TriList.SetSigFalseAction(UIBoolJoin.VolumeDefaultPress, () => CurrentRoom.SetDefaultLevels());
|
||||||
var room = DeviceManager.GetDeviceForKey(Config.DefaultRoomKey)
|
TriList.SetString(UIStringJoin.AdvancedVolumeSlider1Text, "Room");
|
||||||
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);
|
|
||||||
});
|
|
||||||
|
|
||||||
//TriList.SetSigFalseAction(UIBoolJoin.RoomHeaderButtonPress, () =>
|
//TriList.SetSigFalseAction(UIBoolJoin.RoomHeaderButtonPress, () =>
|
||||||
// ShowInterlockedModal(UIBoolJoin.RoomHeaderPageVisible));
|
// ShowInterlockedModal(UIBoolJoin.RoomHeaderPageVisible));
|
||||||
|
|
||||||
// Setup button
|
|
||||||
TriList.SetSigHeldAction(UIBoolJoin.FIXFIX_HeaderGearButtonPress_FIXFIX, 2000,
|
//if(TriList is CrestronApp)
|
||||||
() => PopupInterlock.ShowInterlockedWithToggle(UIBoolJoin.TechPanelSetupVisible));// ShowInterlockedModal(UIBoolJoin.TechPanelSetupVisible));
|
// TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = false;
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.TechExitButton, () =>
|
//else
|
||||||
PopupInterlock.HideAndClear()); // HideCurrentInterlockedModal());
|
// 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
|
// 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.PowerOffMorePress, () =>
|
|
||||||
{
|
|
||||||
CancelPowerOffTimer();
|
|
||||||
TriList.BooleanInput[UIBoolJoin.PowerOffStep1Visible].BoolValue = false;
|
|
||||||
TriList.BooleanInput[UIBoolJoin.PowerOffStep2Visible].BoolValue = true;
|
|
||||||
});
|
|
||||||
TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () =>
|
TriList.SetSigFalseAction(UIBoolJoin.DisplayPowerTogglePress, () =>
|
||||||
{
|
{
|
||||||
if (CurrentRoom != null && CurrentRoom.DefaultDisplay is IPower)
|
if (CurrentRoom != null && CurrentRoom.DefaultDisplay is IPower)
|
||||||
@@ -246,13 +296,61 @@ namespace PepperDash.Essentials
|
|||||||
base.Show();
|
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>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public override void Hide()
|
public override void Hide()
|
||||||
{
|
{
|
||||||
HideAndClearCurrentDisplayModeSigsInUse();
|
HideAndClearCurrentDisplayModeSigsInUse();
|
||||||
TriList.BooleanInput[UIBoolJoin.TopBarHabaneroVisible].BoolValue = false;
|
TriList.BooleanInput[UIBoolJoin.TopBarHabaneroDynamicVisible].BoolValue = false;
|
||||||
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false;
|
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false;
|
||||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
|
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
|
||||||
TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false;
|
TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false;
|
||||||
@@ -264,6 +362,40 @@ namespace PepperDash.Essentials
|
|||||||
base.Hide();
|
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>
|
/// <summary>
|
||||||
/// Shows the various "modes" that this driver controls. Presentation, Setup page
|
/// Shows the various "modes" that this driver controls. Presentation, Setup page
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -330,7 +462,7 @@ namespace PepperDash.Essentials
|
|||||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl,
|
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(1, ActivityFooterSrl,
|
||||||
0, null));
|
0, null));
|
||||||
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl,
|
ActivityFooterSrl.AddItem(new SubpageReferenceListActivityItem(2, ActivityFooterSrl,
|
||||||
3, b => { if (!b) PowerButtonPressed(); }));
|
4, b => { if (!b) PowerButtonPressed(); }));
|
||||||
ActivityFooterSrl.Count = 2;
|
ActivityFooterSrl.Count = 2;
|
||||||
TriList.UShortInput[UIUshortJoin.PresentationStagingCaretMode].UShortValue = 1;
|
TriList.UShortInput[UIUshortJoin.PresentationStagingCaretMode].UShortValue = 1;
|
||||||
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1);
|
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1);
|
||||||
@@ -351,34 +483,6 @@ namespace PepperDash.Essentials
|
|||||||
CurrentRoom.RunDefaultRoute();
|
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>
|
/// <summary>
|
||||||
/// Shows all sigs that are in CurrentDisplayModeSigsInUse
|
/// Shows all sigs that are in CurrentDisplayModeSigsInUse
|
||||||
@@ -493,13 +597,6 @@ namespace PepperDash.Essentials
|
|||||||
PowerDownModal = new ModalDialog(TriList);
|
PowerDownModal = new ModalDialog(TriList);
|
||||||
var message = string.Format("Meeting will end in {0} seconds", CurrentRoom.ShutdownPromptSeconds);
|
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
|
// Attach timer things to modal
|
||||||
CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange += ShutdownPromptTimer_TimeRemainingFeedback_OutputChange;
|
CurrentRoom.ShutdownPromptTimer.TimeRemainingFeedback.OutputChange += ShutdownPromptTimer_TimeRemainingFeedback_OutputChange;
|
||||||
CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange += ShutdownPromptTimer_PercentFeedback_OutputChange;
|
CurrentRoom.ShutdownPromptTimer.PercentFeedback.OutputChange += ShutdownPromptTimer_PercentFeedback_OutputChange;
|
||||||
@@ -710,6 +807,8 @@ namespace PepperDash.Essentials
|
|||||||
RefreshAudioDeviceConnections();
|
RefreshAudioDeviceConnections();
|
||||||
_CurrentRoom.CurrentSingleSourceChange += CurrentRoom_SourceInfoChange;
|
_CurrentRoom.CurrentSingleSourceChange += CurrentRoom_SourceInfoChange;
|
||||||
RefreshSourceInfo();
|
RefreshSourceInfo();
|
||||||
|
|
||||||
|
SetupHeaderButtons();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -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>
|
/// <summary>
|
||||||
/// For room on/off changes
|
/// For room on/off changes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -744,6 +921,7 @@ namespace PepperDash.Essentials
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetupActivityFooterWhenRoomOff();
|
SetupActivityFooterWhenRoomOff();
|
||||||
|
ShowLogo();
|
||||||
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
|
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
|
||||||
TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = false;
|
TriList.BooleanInput[UIBoolJoin.VolumeSingleMute1Visible].BoolValue = false;
|
||||||
TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false;
|
TriList.BooleanInput[UIBoolJoin.SourceStagingBarVisible].BoolValue = false;
|
||||||
@@ -755,38 +933,26 @@ namespace PepperDash.Essentials
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void CurrentRoom_IsWarmingFeedback_OutputChange(object sender, EventArgs e)
|
void CurrentRoom_IsWarmingFeedback_OutputChange(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var value = CurrentRoom.IsWarmingUpFeedback.BoolValue;
|
if (CurrentRoom.IsWarmingUpFeedback.BoolValue)
|
||||||
//Debug.Console(2, CurrentRoom, "UI: WARMING event={0}", value);
|
|
||||||
|
|
||||||
if (value)
|
|
||||||
{
|
{
|
||||||
WarmingCoolingModal = new ModalDialog(TriList);
|
ShowNotificationRibbon("Room is powering on. Please wait...", 0);
|
||||||
WarmingCoolingModal.PresentModalDialog(0, "Powering Up", "Power", "<p>Room is powering up</p><p>Please wait</p>",
|
|
||||||
"", "", false, false, null);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (WarmingCoolingModal != null)
|
ShowNotificationRibbon("Room is powered on. Welcome.", 2000);
|
||||||
WarmingCoolingModal.CancelDialog();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void IsCoolingDownFeedback_OutputChange(object sender, EventArgs e)
|
void IsCoolingDownFeedback_OutputChange(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var value = CurrentRoom.IsCoolingDownFeedback.BoolValue;
|
if (CurrentRoom.IsCoolingDownFeedback.BoolValue)
|
||||||
//Debug.Console(2, CurrentRoom, "UI: Cooldown event={0}", value);
|
|
||||||
|
|
||||||
if (value)
|
|
||||||
{
|
{
|
||||||
WarmingCoolingModal = new ModalDialog(TriList);
|
ShowNotificationRibbon("Room is powering off. Please wait.", 0);
|
||||||
WarmingCoolingModal.PresentModalDialog(0, "Shut Down", "Power", "<p>Room is shutting down</p><p>Please wait</p>",
|
|
||||||
"", "", false, false, null);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (WarmingCoolingModal != null)
|
HideNotificationRibbon();
|
||||||
WarmingCoolingModal.CancelDialog();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,10 +37,6 @@ namespace PepperDash.Essentials.UIDrivers
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
IAVDriver Parent;
|
|
||||||
/// <summary>
|
|
||||||
///
|
|
||||||
/// </summary>
|
|
||||||
JoinedSigInterlock PagesInterlock;
|
JoinedSigInterlock PagesInterlock;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -63,10 +59,9 @@ namespace PepperDash.Essentials.UIDrivers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="trilist"></param>
|
/// <param name="trilist"></param>
|
||||||
/// <param name="parent"></param>
|
/// <param name="parent"></param>
|
||||||
public EssentialsHuddleTechPageDriver(BasicTriListWithSmartObject trilist, IAVDriver parent, EssentialsRoomTechConfig config)
|
public EssentialsHuddleTechPageDriver(BasicTriListWithSmartObject trilist, EssentialsRoomTechConfig config)
|
||||||
: base(trilist)
|
: base(trilist)
|
||||||
{
|
{
|
||||||
Parent = parent;
|
|
||||||
Config = config;
|
Config = config;
|
||||||
|
|
||||||
PagesInterlock = new JoinedSigInterlock(trilist);
|
PagesInterlock = new JoinedSigInterlock(trilist);
|
||||||
@@ -164,7 +164,7 @@ namespace PepperDash.Essentials
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (_TechDriver == null)
|
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;
|
return _TechDriver;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1244,15 +1244,10 @@ namespace PepperDash.Essentials
|
|||||||
if (CurrentRoom.IsWarmingUpFeedback.BoolValue)
|
if (CurrentRoom.IsWarmingUpFeedback.BoolValue)
|
||||||
{
|
{
|
||||||
ShowNotificationRibbon("Room is powering on. Please wait...", 0);
|
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
|
else
|
||||||
{
|
{
|
||||||
ShowNotificationRibbon("Room is powered on. Welcome.", 2000);
|
ShowNotificationRibbon("Room is powered on. Welcome.", 2000);
|
||||||
//if (WarmingCoolingModal != null)
|
|
||||||
// WarmingCoolingModal.CancelDialog();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1266,16 +1261,10 @@ namespace PepperDash.Essentials
|
|||||||
if (CurrentRoom.IsCoolingDownFeedback.BoolValue)
|
if (CurrentRoom.IsCoolingDownFeedback.BoolValue)
|
||||||
{
|
{
|
||||||
ShowNotificationRibbon("Room is powering off. Please wait.", 0);
|
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
|
else
|
||||||
{
|
{
|
||||||
HideNotificationRibbon();
|
HideNotificationRibbon();
|
||||||
//if (WarmingCoolingModal != null)
|
|
||||||
// WarmingCoolingModal.CancelDialog();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -175,7 +175,6 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
|
|
||||||
triList.SetSigFalseAction(UIBoolJoin.VCDirectorySearchTextPress, RevealKeyboard);
|
triList.SetSigFalseAction(UIBoolJoin.VCDirectorySearchTextPress, RevealKeyboard);
|
||||||
|
|
||||||
//TriList.SetSigFalseAction(UIBoolJoin.VCDirectoryBackspacePress, SearchKeypadBackspacePress);
|
|
||||||
triList.SetSigHeldAction(UIBoolJoin.VCDirectoryBackspacePress, 500,
|
triList.SetSigHeldAction(UIBoolJoin.VCDirectoryBackspacePress, 500,
|
||||||
StartSearchBackspaceRepeat, StopSearchBackspaceRepeat, SearchKeypadBackspacePress);
|
StartSearchBackspaceRepeat, StopSearchBackspaceRepeat, SearchKeypadBackspacePress);
|
||||||
|
|
||||||
@@ -194,8 +193,13 @@ namespace PepperDash.Essentials.UIDrivers.VC
|
|||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
void Codec_IsReady()
|
void Codec_IsReady()
|
||||||
{
|
{
|
||||||
TriList.SetString(UIStringJoin.RoomPhoneText, GetFormattedPhoneNumber(Codec.CodecInfo.PhoneNumber));
|
string roomNumberSipUri = "";
|
||||||
TriList.SetString(UIStringJoin.RoomSipText, Codec.CodecInfo.SipUri);
|
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)
|
if(Parent.HeaderButtonsAreSetUp)
|
||||||
Parent.ComputeHeaderCallStatus(Codec);
|
Parent.ComputeHeaderCallStatus(Codec);
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user