diff --git a/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/GenericVersiportInputDevice.cs b/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/GenericVersiportInputDevice.cs
new file mode 100644
index 00000000..d9a60f6b
--- /dev/null
+++ b/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/GenericVersiportInputDevice.cs
@@ -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
+{
+ ///
+ /// Represents a generic digital input deviced tied to a versiport
+ ///
+ public class GenericVersiportInputDevice
+ {
+ //Versiport InputPort {get; private set;}
+
+ //BoolFeedback InputStateFeedback {get; private set;}
+
+ //Func 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();
+ //}
+ }
+}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/IDigitalInput.cs b/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/IDigitalInput.cs
new file mode 100644
index 00000000..7ed86822
--- /dev/null
+++ b/Essentials Core/PepperDashEssentialsBase/Crestron IO/Inputs/IDigitalInput.cs
@@ -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
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/Crestron IO/Relay/GenericRelayDevice.cs b/Essentials Core/PepperDashEssentialsBase/Crestron IO/Relay/GenericRelayDevice.cs
new file mode 100644
index 00000000..f4fc57f9
--- /dev/null
+++ b/Essentials Core/PepperDashEssentialsBase/Crestron IO/Relay/GenericRelayDevice.cs
@@ -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
+{
+ ///
+ /// Represents a generic device controlled by relays
+ ///
+ public class GenericRelayDevice
+ {
+ //Relay RelayOutput { get; private set; }
+
+ //public boolfeedback relaystatefeedback { get; private set; }
+
+ //func 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();
+ //}
+ }
+}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj
index 74ad5cf6..a3004a17 100644
--- a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj
+++ b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj
@@ -24,7 +24,7 @@
true
full
false
- bin\
+ ..\..\Release Package\
DEBUG;TRACE;
prompt
4
@@ -71,9 +71,9 @@
..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll
-
+
False
- ..\..\..\pepperdash-simplsharp-core\Pepperdash Core\CLZ Builds\PepperDash_Core.dll
+ ..\..\..\PepperDash.Core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.dll
False
@@ -103,6 +103,9 @@
+
+
+
diff --git a/Essentials Devices Common/Essentials Devices Common/Codec/iCodecInfo.cs b/Essentials Devices Common/Essentials Devices Common/Codec/iCodecInfo.cs
index 5b778f86..9a1ac600 100644
--- a/Essentials Devices Common/Essentials Devices Common/Codec/iCodecInfo.cs
+++ b/Essentials Devices Common/Essentials Devices Common/Codec/iCodecInfo.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; }
}
diff --git a/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs b/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
index 9503374f..83a6898f 100644
--- a/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
+++ b/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
@@ -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
{
diff --git a/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xConfiguration.cs b/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xConfiguration.cs
index 6c5f59da..60256e52 100644
--- a/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xConfiguration.cs
+++ b/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xConfiguration.cs
@@ -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 { get; set; }
+ //[JsonConverter(typeof(CameraConverter)), JsonProperty("Camera")]
+ //public List Camera { get; set; }
+ //[JsonProperty("SpeakerTrack")]
public SpeakerTrack SpeakerTrack { get; set; }
+
+ public Cameras()
+ {
+ //Camera = new List();
+ 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); // 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();
+ 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 { reader.Value as Camera };
+ }
+ }
+ catch (Exception e)
+ {
+ Debug.Console(1, "[xConfiguration]: Unable to convert JSON for camera objects: {0}", e);
+
+ return new List();
+ }
+ }
+
+ 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
diff --git a/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xStatus.cs b/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xStatus.cs
index 1982b83a..a55cc7ff 100644
--- a/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xStatus.cs
+++ b/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xStatus.cs
@@ -315,17 +315,70 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
public class Cameras
{
- //[JsonConverter(typeof(CameraConverter))]
- //public List Camera { get; set; }
+// [JsonConverter(typeof(CameraConverter))]
+ public List Camera { get; set; }
public SpeakerTrack SpeakerTrack { get; set; }
public Cameras()
{
- //Camera = new List();
+ Camera = new List();
SpeakerTrack = new SpeakerTrack();
}
}
+ //public class CameraConverter : JsonConverter
+ //{
+
+ // public override bool CanConvert(System.Type objectType)
+ // {
+ // return true; // objectType == typeof(Camera) || objectType == typeof(List); // 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();
+ // 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 { reader.Value as Camera };
+ // }
+ // }
+ // catch (Exception e)
+ // {
+ // Debug.Console(1, "[xStatus]: Unable to convert JSON for camera objects: {0}", e);
+
+ // return new List();
+ // }
+ // }
+
+ // 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; }
diff --git a/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs b/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs
index 803b64a8..a80f0cdf 100644
--- a/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs
+++ b/Essentials Devices Common/Essentials Devices Common/VideoCodec/MockVC/MockVC.cs
@@ -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"; }
}
diff --git a/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs b/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs
index 2d9b505a..f21ccd59 100644
--- a/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs
+++ b/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs
@@ -43,8 +43,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
public RoutingPortCollection OutputPorts { get; private set; }
- bool wasIsInCall;
-
///
/// Returns true when any call is not in state Unknown, Disconnecting, Disconnected
///
diff --git a/Essentials/PepperDashEssentials/PepperDashEssentials.csproj b/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
index 57d25952..fe29995d 100644
--- a/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
+++ b/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
@@ -79,9 +79,9 @@
False
..\..\..\pepperdash-portal-sync\SspPortalSync\SspPortalSync\bin\PepperDashCorePortalSync.dll
-
+
False
- ..\..\..\pepperdash-simplsharp-core\Pepperdash Core\CLZ Builds\PepperDash_Core.dll
+ ..\..\..\PepperDash.Core\Pepperdash Core\Pepperdash Core\bin\PepperDash_Core.dll
False
@@ -169,7 +169,7 @@
-
+
@@ -185,7 +185,7 @@
-
+
diff --git a/Essentials/PepperDashEssentials/Properties/AssemblyInfo.cs b/Essentials/PepperDashEssentials/Properties/AssemblyInfo.cs
index 866bf344..3fa06011 100644
--- a/Essentials/PepperDashEssentials/Properties/AssemblyInfo.cs
+++ b/Essentials/PepperDashEssentials/Properties/AssemblyInfo.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.*")]
diff --git a/Essentials/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs b/Essentials/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs
index 71afd3f1..b81e1f07 100644
--- a/Essentials/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs
+++ b/Essentials/PepperDashEssentials/Room/Types/EssentialsHuddleSpaceRoom.cs
@@ -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;
};
}
diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
index 69d3dea4..d82fd634 100644
--- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
+++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIStringlJoin.cs
@@ -118,10 +118,6 @@ namespace PepperDash.Essentials
///
public const uint RoomPhoneText = 3904;
///
- /// 3905 - SIP address for room header
- ///
- public const uint RoomSipText = 3905;
- ///
/// 3906 - The separator for verbose-header text on addresses
///
public const uint RoomAddressPipeText = 3906;
diff --git a/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsHuddlePanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs
similarity index 73%
rename from Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsHuddlePanelAvFunctionsDriver.cs
rename to Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs
index 0a59adca..6a70271f 100644
--- a/Essentials/PepperDashEssentials/UIDrivers/Essentials/EssentialsHuddlePanelAvFunctionsDriver.cs
+++ b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddle/EssentialsHuddlePanelAvFunctionsDriver.cs
@@ -1,969 +1,1135 @@
-using System;
-using System.Collections.Generic;
-using Crestron.SimplSharp;
-using Crestron.SimplSharpPro;
-using Crestron.SimplSharpPro.UI;
-
-using PepperDash.Core;
-using PepperDash.Essentials.Core;
-using PepperDash.Essentials.Core.SmartObjects;
-using PepperDash.Essentials.Core.PageManagers;
-
-namespace PepperDash.Essentials
-{
- ///
- ///
- ///
- public class EssentialsHuddlePanelAvFunctionsDriver : PanelDriverBase
- {
- CrestronTouchpanelPropertiesConfig Config;
-
- public enum UiDisplayMode
- {
- PresentationMode, AudioSetup
- }
-
- ///
- /// Whether volume ramping from this panel will show the volume
- /// gauge popup.
- ///
- public bool ShowVolumeGauge { get; set; }
-
- ///
- /// The amount of time that the volume buttons stays on screen, in ms
- ///
- public uint VolumeButtonPopupTimeout
- {
- get { return VolumeButtonsPopupFeedback.TimeoutMs; }
- set { VolumeButtonsPopupFeedback.TimeoutMs = value; }
- }
-
- ///
- /// The amount of time that the volume gauge stays on screen, in ms
- ///
- public uint VolumeGaugePopupTimeout
- {
- get { return VolumeGaugeFeedback.TimeoutMs; }
- set { VolumeGaugeFeedback.TimeoutMs = value; }
- }
-
- ///
- ///
- ///
- public uint PowerOffTimeout { get; set; }
-
- ///
- ///
- ///
- public string DefaultRoomKey
- {
- get { return _DefaultRoomKey; }
- set
- {
- _DefaultRoomKey = value;
- //CurrentRoom = DeviceManager.GetDeviceForKey(value) as EssentialsHuddleSpaceRoom;
- }
- }
- string _DefaultRoomKey;
-
- ///
- ///
- ///
- public EssentialsHuddleSpaceRoom CurrentRoom
- {
- get { return _CurrentRoom; }
- set
- {
- SetCurrentRoom(value);
- }
- }
- EssentialsHuddleSpaceRoom _CurrentRoom;
-
- ///
- ///
- ///
- //uint CurrentInterlockedModalJoin;
-
- ///
- /// For hitting feedback
- ///
- BoolInputSig ShareButtonSig;
- BoolInputSig EndMeetingButtonSig;
-
- ///
- /// Controls the extended period that the volume gauge shows on-screen,
- /// as triggered by Volume up/down operations
- ///
- BoolFeedbackPulseExtender VolumeGaugeFeedback;
-
- ///
- /// Controls the period that the volume buttons show on non-hard-button
- /// interfaces
- ///
- BoolFeedbackPulseExtender VolumeButtonsPopupFeedback;
-
- ///
- /// The parent driver for this
- ///
- PanelDriverBase Parent;
-
- ///
- /// All children attached to this driver. For hiding and showing as a group.
- ///
- List ChildDrivers = new List();
-
- List CurrentDisplayModeSigsInUse = new List();
-
- //// Important smart objects
-
- ///
- /// Smart Object 3200
- ///
- SubpageReferenceList SourcesSrl;
-
- ///
- /// Smart Object 15022
- ///
- SubpageReferenceList ActivityFooterSrl;
-
- ///
- /// Tracks which audio page group the UI is in
- ///
- UiDisplayMode CurrentDisplayMode;
-
- ///
- /// The AV page mangagers that have been used, to keep them alive for later
- ///
- Dictionary