Removed all references to "Cotija" and replaced with "MobileControl". Progress on multi display routing in room logic and Mobile Control bridging.

This commit is contained in:
Neil Dorin
2019-11-15 22:03:45 -07:00
parent 405677a3df
commit c0b59c375e
35 changed files with 1027 additions and 1053 deletions

View File

@@ -6,11 +6,11 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Core; using PepperDash.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public static class IChannelExtensions public static class IChannelExtensions
{ {
public static void LinkActions(this IChannel dev, CotijaSystemController controller) public static void LinkActions(this IChannel dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
@@ -22,7 +22,7 @@ namespace PepperDash.Essentials.Room.Cotija
controller.AddAction(prefix + "exit", new PressAndHoldAction(dev.Exit)); controller.AddAction(prefix + "exit", new PressAndHoldAction(dev.Exit));
} }
public static void UnlinkActions(this IChannel dev, CotijaSystemController controller) public static void UnlinkActions(this IChannel dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);

View File

@@ -6,11 +6,11 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Core; using PepperDash.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public static class IColorExtensions public static class IColorExtensions
{ {
public static void LinkActions(this IColor dev, CotijaSystemController controller) public static void LinkActions(this IColor dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
@@ -20,7 +20,7 @@ namespace PepperDash.Essentials.Room.Cotija
controller.AddAction(prefix + "blue", new PressAndHoldAction(dev.Blue)); controller.AddAction(prefix + "blue", new PressAndHoldAction(dev.Blue));
} }
public static void UnlinkActions(this IColor dev, CotijaSystemController controller) public static void UnlinkActions(this IColor dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);

View File

@@ -6,11 +6,11 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Core; using PepperDash.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public static class IDPadExtensions public static class IDPadExtensions
{ {
public static void LinkActions(this IDPad dev, CotijaSystemController controller) public static void LinkActions(this IDPad dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
@@ -23,7 +23,7 @@ namespace PepperDash.Essentials.Room.Cotija
controller.AddAction(prefix + "exit", new PressAndHoldAction(dev.Exit)); controller.AddAction(prefix + "exit", new PressAndHoldAction(dev.Exit));
} }
public static void UnlinkActions(this IDPad dev, CotijaSystemController controller) public static void UnlinkActions(this IDPad dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);

View File

@@ -6,11 +6,11 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Core; using PepperDash.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public static class IDvrExtensions public static class IDvrExtensions
{ {
public static void LinkActions(this IDvr dev, CotijaSystemController controller) public static void LinkActions(this IDvr dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
@@ -18,7 +18,7 @@ namespace PepperDash.Essentials.Room.Cotija
controller.AddAction(prefix + "record", new PressAndHoldAction(dev.Record)); controller.AddAction(prefix + "record", new PressAndHoldAction(dev.Record));
} }
public static void UnlinkActions(this IDvr dev, CotijaSystemController controller) public static void UnlinkActions(this IDvr dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);

View File

@@ -6,11 +6,11 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Core; using PepperDash.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public static class INumericExtensions public static class INumericExtensions
{ {
public static void LinkActions(this INumericKeypad dev, CotijaSystemController controller) public static void LinkActions(this INumericKeypad dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
@@ -29,7 +29,7 @@ namespace PepperDash.Essentials.Room.Cotija
// Deal with the Accessory functions on the numpad later // Deal with the Accessory functions on the numpad later
} }
public static void UnlinkActions(this INumericKeypad dev, CotijaSystemController controller) public static void UnlinkActions(this INumericKeypad dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);

View File

@@ -6,11 +6,11 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Core; using PepperDash.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public static class IPowerExtensions public static class IPowerExtensions
{ {
public static void LinkActions(this IPower dev, CotijaSystemController controller) public static void LinkActions(this IPower dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
@@ -19,7 +19,7 @@ namespace PepperDash.Essentials.Room.Cotija
controller.AddAction(prefix + "powerToggle", new Action(dev.PowerToggle)); controller.AddAction(prefix + "powerToggle", new Action(dev.PowerToggle));
} }
public static void UnlinkActions(this IPower dev, CotijaSystemController controller) public static void UnlinkActions(this IPower dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);

View File

@@ -6,11 +6,11 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Core; using PepperDash.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public static class ISetTopBoxControlsExtensions public static class ISetTopBoxControlsExtensions
{ {
public static void LinkActions(this ISetTopBoxControls dev, CotijaSystemController controller) public static void LinkActions(this ISetTopBoxControls dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
@@ -18,7 +18,7 @@ namespace PepperDash.Essentials.Room.Cotija
controller.AddAction(prefix + "replay", new PressAndHoldAction(dev.Replay)); controller.AddAction(prefix + "replay", new PressAndHoldAction(dev.Replay));
} }
public static void UnlinkActions(this ISetTopBoxControls dev, CotijaSystemController controller) public static void UnlinkActions(this ISetTopBoxControls dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);

View File

@@ -6,11 +6,11 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Core; using PepperDash.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public static class ITransportExtensions public static class ITransportExtensions
{ {
public static void LinkActions(this ITransport dev, CotijaSystemController controller) public static void LinkActions(this ITransport dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
@@ -24,7 +24,7 @@ namespace PepperDash.Essentials.Room.Cotija
controller.AddAction(prefix + "record", new PressAndHoldAction(dev.Record)); controller.AddAction(prefix + "record", new PressAndHoldAction(dev.Record));
} }
public static void UnlinkActions(this ITransport dev, CotijaSystemController controller) public static void UnlinkActions(this ITransport dev, MobileControlSystemController controller)
{ {
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key); var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);

View File

@@ -6,7 +6,7 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
/// <summary> /// <summary>
/// Represents a room whose configuration is derived from runtime data, /// Represents a room whose configuration is derived from runtime data,

View File

@@ -39,7 +39,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
} }
protected override void CustomRegisterWithAppServer(CotijaSystemController appServerController) protected override void CustomRegisterWithAppServer(MobileControlSystemController appServerController)
{ {
appServerController.AddAction(MessagePath + "/fullStatus", new Action(SendAtcFullMessageObject)); appServerController.AddAction(MessagePath + "/fullStatus", new Action(SendAtcFullMessageObject));
appServerController.AddAction(MessagePath + "/dial", new Action<string>(s => Codec.Dial(s))); appServerController.AddAction(MessagePath + "/dial", new Action<string>(s => Codec.Dial(s)));

View File

@@ -27,7 +27,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
PostUpdateStatus(e.UpdateStatus.ToString()); PostUpdateStatus(e.UpdateStatus.ToString());
} }
protected override void CustomRegisterWithAppServer(CotijaSystemController appServerController) protected override void CustomRegisterWithAppServer(MobileControlSystemController appServerController)
{ {
appServerController.AddAction(MessagePath + "/updateConfig", new Action<string>(s => GetConfigFile(s))); appServerController.AddAction(MessagePath + "/updateConfig", new Action<string>(s => GetConfigFile(s)));
} }

View File

@@ -127,7 +127,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
/// ///
/// </summary> /// </summary>
/// <param name="appServerController"></param> /// <param name="appServerController"></param>
protected override void CustomRegisterWithAppServer(CotijaSystemController appServerController) protected override void CustomRegisterWithAppServer(MobileControlSystemController appServerController)
{ {
//EISC.SetStringSigAction(SCurrentDialString, s => PostStatusMessage(new { currentDialString = s })); //EISC.SetStringSigAction(SCurrentDialString, s => PostStatusMessage(new { currentDialString = s }));

View File

@@ -253,7 +253,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
/// ///
/// </summary> /// </summary>
/// <param name="appServerController"></param> /// <param name="appServerController"></param>
protected override void CustomRegisterWithAppServer(CotijaSystemController appServerController) protected override void CustomRegisterWithAppServer(MobileControlSystemController appServerController)
{ {
var asc = appServerController; var asc = appServerController;
EISC.SetStringSigAction(SHookState, s => EISC.SetStringSigAction(SHookState, s =>

View File

@@ -24,7 +24,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public CotijaSystemController AppServerController { get; private set; } public MobileControlSystemController AppServerController { get; private set; }
public string MessagePath { get; private set; } public string MessagePath { get; private set; }
@@ -47,7 +47,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
/// Registers this messenger with appserver controller /// Registers this messenger with appserver controller
/// </summary> /// </summary>
/// <param name="appServerController"></param> /// <param name="appServerController"></param>
public void RegisterWithAppServer(CotijaSystemController appServerController) public void RegisterWithAppServer(MobileControlSystemController appServerController)
{ {
if (appServerController == null) if (appServerController == null)
throw new ArgumentNullException("appServerController"); throw new ArgumentNullException("appServerController");
@@ -60,7 +60,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
/// Implemented in extending classes. Wire up API calls and feedback here /// Implemented in extending classes. Wire up API calls and feedback here
/// </summary> /// </summary>
/// <param name="appServerController"></param> /// <param name="appServerController"></param>
abstract protected void CustomRegisterWithAppServer(CotijaSystemController appServerController); abstract protected void CustomRegisterWithAppServer(MobileControlSystemController appServerController);
/// <summary> /// <summary>
/// Helper for posting status message /// Helper for posting status message

View File

@@ -86,7 +86,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
}); });
} }
protected override void CustomRegisterWithAppServer(CotijaSystemController appServerController) protected override void CustomRegisterWithAppServer(MobileControlSystemController appServerController)
{ {
AppServerController.AddAction(MessagePath + "/fullStatus", new Action(SendFullStatusMessage)); AppServerController.AddAction(MessagePath + "/fullStatus", new Action(SendFullStatusMessage));
} }

View File

@@ -160,7 +160,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
/// Called from base's RegisterWithAppServer method /// Called from base's RegisterWithAppServer method
/// </summary> /// </summary>
/// <param name="appServerController"></param> /// <param name="appServerController"></param>
protected override void CustomRegisterWithAppServer(CotijaSystemController appServerController) protected override void CustomRegisterWithAppServer(MobileControlSystemController appServerController)
{ {
appServerController.AddAction("/device/videoCodec/isReady", new Action(SendIsReady)); appServerController.AddAction("/device/videoCodec/isReady", new Action(SendIsReady));
appServerController.AddAction("/device/videoCodec/fullStatus", new Action(SendVtcFullMessageObject)); appServerController.AddAction("/device/videoCodec/fullStatus", new Action(SendVtcFullMessageObject));

View File

@@ -13,7 +13,7 @@ namespace PepperDash.Essentials
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public class CotijaConfig public class MobileControlConfig
{ {
[JsonProperty("serverUrl")] [JsonProperty("serverUrl")]
public string ServerUrl { get; set; } public string ServerUrl { get; set; }
@@ -25,7 +25,7 @@ namespace PepperDash.Essentials
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public class CotijaDdvc01RoomBridgePropertiesConfig public class MobileControlDdvc01RoomBridgePropertiesConfig
{ {
[JsonProperty("eiscId")] [JsonProperty("eiscId")]
public string EiscId { get; set; } public string EiscId { get; set; }

View File

@@ -8,19 +8,19 @@ using Crestron.SimplSharpPro.EthernetCommunication;
using PepperDash.Core; using PepperDash.Core;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
/// <summary> /// <summary>
/// Represents a generic device connection through to and EISC for DDVC01 /// Represents a generic device connection through to and EISC for DDVC01
/// </summary> /// </summary>
public class CotijaDdvc01DeviceBridge : Device, IChannel, INumericKeypad public class MobileControlDdvc01DeviceBridge : Device, IChannel, INumericKeypad
{ {
/// <summary> /// <summary>
/// EISC used to talk to Simpl /// EISC used to talk to Simpl
/// </summary> /// </summary>
ThreeSeriesTcpIpEthernetIntersystemCommunications EISC; ThreeSeriesTcpIpEthernetIntersystemCommunications EISC;
public CotijaDdvc01DeviceBridge(string key, string name, ThreeSeriesTcpIpEthernetIntersystemCommunications eisc) public MobileControlDdvc01DeviceBridge(string key, string name, ThreeSeriesTcpIpEthernetIntersystemCommunications eisc)
: base(key, name) : base(key, name)
{ {
EISC = eisc; EISC = eisc;

View File

@@ -16,12 +16,12 @@ using Newtonsoft.Json.Linq;
using PepperDash.Core; using PepperDash.Core;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config; using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Room.Cotija; using PepperDash.Essentials.Room.MobileControl;
using PepperDash.Essentials.AppServer.Messengers; using PepperDash.Essentials.AppServer.Messengers;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
public class CotijaSystemController : Device public class MobileControlSystemController : Device
{ {
WebSocketClient WSClient; WebSocketClient WSClient;
@@ -34,7 +34,7 @@ namespace PepperDash.Essentials
CEvent RegisterLockEvent = new CEvent(true, true); CEvent RegisterLockEvent = new CEvent(true, true);
public CotijaConfig Config { get; private set; } public MobileControlConfig Config { get; private set; }
Dictionary<string, Object> ActionDictionary = new Dictionary<string, Object>(StringComparer.InvariantCultureIgnoreCase); Dictionary<string, Object> ActionDictionary = new Dictionary<string, Object>(StringComparer.InvariantCultureIgnoreCase);
@@ -54,7 +54,7 @@ namespace PepperDash.Essentials
public string SystemUuid; public string SystemUuid;
List<CotijaBridgeBase> RoomBridges = new List<CotijaBridgeBase>(); List<MobileControlBridgeBase> RoomBridges = new List<MobileControlBridgeBase>();
long ButtonHeartbeatInterval = 1000; long ButtonHeartbeatInterval = 1000;
@@ -69,7 +69,7 @@ namespace PepperDash.Essentials
/// <param name="key"></param> /// <param name="key"></param>
/// <param name="name"></param> /// <param name="name"></param>
/// <param name="config"></param> /// <param name="config"></param>
public CotijaSystemController(string key, string name, CotijaConfig config) : base(key, name) public MobileControlSystemController(string key, string name, MobileControlConfig config) : base(key, name)
{ {
Config = config; Config = config;
@@ -78,7 +78,7 @@ namespace PepperDash.Essentials
Debug.Console(0, this, "Mobile UI controller initializing for server:{0}", config.ServerUrl); Debug.Console(0, this, "Mobile UI controller initializing for server:{0}", config.ServerUrl);
CrestronConsole.AddNewConsoleCommand(AuthorizeSystem, CrestronConsole.AddNewConsoleCommand(AuthorizeSystem,
"mobileauth", "Authorizes system to talk to cotija server", ConsoleAccessLevelEnum.AccessOperator); "mobileauth", "Authorizes system to talk to Mobile Control server", ConsoleAccessLevelEnum.AccessOperator);
CrestronConsole.AddNewConsoleCommand(s => ShowInfo(), CrestronConsole.AddNewConsoleCommand(s => ShowInfo(),
"mobileinfo", "Shows information for current mobile control session", ConsoleAccessLevelEnum.AccessOperator); "mobileinfo", "Shows information for current mobile control session", ConsoleAccessLevelEnum.AccessOperator);
CrestronConsole.AddNewConsoleCommand(s => { CrestronConsole.AddNewConsoleCommand(s => {
@@ -196,7 +196,7 @@ namespace PepperDash.Essentials
/// ///
/// </summary> /// </summary>
/// <param name="bridge"></param> /// <param name="bridge"></param>
public void AddBridge(CotijaBridgeBase bridge) public void AddBridge(MobileControlBridgeBase bridge)
{ {
RoomBridges.Add(bridge); RoomBridges.Add(bridge);
var b = bridge as IDelayedConfiguration; var b = bridge as IDelayedConfiguration;

View File

@@ -12,15 +12,15 @@ namespace PepperDash.Essentials
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
public abstract class CotijaBridgeBase: Device public abstract class MobileControlBridgeBase: Device
{ {
public CotijaSystemController Parent { get; private set; } public MobileControlSystemController Parent { get; private set; }
public string UserCode { get; private set; } public string UserCode { get; private set; }
public abstract string RoomName { get; } public abstract string RoomName { get; }
public CotijaBridgeBase(string key, string name) public MobileControlBridgeBase(string key, string name)
: base(key, name) : base(key, name)
{ {
} }
@@ -30,7 +30,7 @@ namespace PepperDash.Essentials
/// as adding actions to parent /// as adding actions to parent
/// </summary> /// </summary>
/// <param name="parent"></param> /// <param name="parent"></param>
public virtual void AddParent(CotijaSystemController parent) public virtual void AddParent(MobileControlSystemController parent)
{ {
Parent = parent; Parent = parent;
} }

View File

@@ -16,9 +16,9 @@ using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Room.Config; using PepperDash.Essentials.Room.Config;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public class CotijaDdvc01RoomBridge : CotijaBridgeBase, IDelayedConfiguration public class MobileControlDdvc01RoomBridge : MobileControlBridgeBase, IDelayedConfiguration
{ {
public class BoolJoin public class BoolJoin
{ {
@@ -236,7 +236,7 @@ namespace PepperDash.Essentials.Room.Cotija
} }
} }
CotijaDdvc01DeviceBridge SourceBridge; MobileControlDdvc01DeviceBridge SourceBridge;
Ddvc01AtcMessenger AtcMessenger; Ddvc01AtcMessenger AtcMessenger;
Ddvc01VtcMessenger VtcMessenger; Ddvc01VtcMessenger VtcMessenger;
@@ -248,7 +248,7 @@ namespace PepperDash.Essentials.Room.Cotija
/// <param name="key"></param> /// <param name="key"></param>
/// <param name="name"></param> /// <param name="name"></param>
/// <param name="ipId"></param> /// <param name="ipId"></param>
public CotijaDdvc01RoomBridge(string key, string name, uint ipId) public MobileControlDdvc01RoomBridge(string key, string name, uint ipId)
: base(key, name) : base(key, name)
{ {
try try
@@ -258,7 +258,7 @@ namespace PepperDash.Essentials.Room.Cotija
if (reg != Crestron.SimplSharpPro.eDeviceRegistrationUnRegistrationResponse.Success) if (reg != Crestron.SimplSharpPro.eDeviceRegistrationUnRegistrationResponse.Success)
Debug.Console(0, this, "Cannot connect EISC at IPID {0}: \r{1}", ipId, reg); Debug.Console(0, this, "Cannot connect EISC at IPID {0}: \r{1}", ipId, reg);
SourceBridge = new CotijaDdvc01DeviceBridge(key + "-sourceBridge", "DDVC01 source bridge", EISC); SourceBridge = new MobileControlDdvc01DeviceBridge(key + "-sourceBridge", "DDVC01 source bridge", EISC);
DeviceManager.AddDevice(SourceBridge); DeviceManager.AddDevice(SourceBridge);
} }
catch (Exception) catch (Exception)
@@ -590,7 +590,7 @@ namespace PepperDash.Essentials.Room.Cotija
// rmProps.VolumeSliderNames.Add(EISC.StringInput[i].StringValue); // rmProps.VolumeSliderNames.Add(EISC.StringInput[i].StringValue);
//} //}
// There should be cotija devices in here, I think... // There should be Mobile Control devices in here, I think...
if(co.Devices == null) if(co.Devices == null)
co.Devices = new List<DeviceConfig>(); co.Devices = new List<DeviceConfig>();

View File

@@ -9,14 +9,14 @@ using Newtonsoft.Json.Linq;
using PepperDash.Core; using PepperDash.Core;
using PepperDash.Essentials.AppServer.Messengers; using PepperDash.Essentials.AppServer.Messengers;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Essentials.Room.Cotija; using PepperDash.Essentials.Room.MobileControl;
using PepperDash.Essentials.Devices.Common.Codec; using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec; using PepperDash.Essentials.Devices.Common.VideoCodec;
using PepperDash.Essentials.Devices.Common.AudioCodec; using PepperDash.Essentials.Devices.Common.AudioCodec;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
public class CotijaEssentialsHuddleSpaceRoomBridge : CotijaBridgeBase public class MobileConrolEssentialsHuddleSpaceRoomBridge : MobileControlBridgeBase
{ {
public EssentialsRoomBase Room { get; private set; } public EssentialsRoomBase Room { get; private set; }
@@ -42,7 +42,7 @@ namespace PepperDash.Essentials
/// </summary> /// </summary>
/// <param name="parent"></param> /// <param name="parent"></param>
/// <param name="room"></param> /// <param name="room"></param>
public CotijaEssentialsHuddleSpaceRoomBridge(EssentialsRoomBase room): public MobileConrolEssentialsHuddleSpaceRoomBridge(EssentialsRoomBase room):
base("mobileControlBridge-essentialsHuddle", "Essentials Mobile Control Bridge-Huddle") base("mobileControlBridge-essentialsHuddle", "Essentials Mobile Control Bridge-Huddle")
{ {
Room = room; Room = room;
@@ -52,7 +52,7 @@ namespace PepperDash.Essentials
/// Override of base: calls base to add parent and then registers actions and events. /// Override of base: calls base to add parent and then registers actions and events.
/// </summary> /// </summary>
/// <param name="parent"></param> /// <param name="parent"></param>
public override void AddParent(CotijaSystemController parent) public override void AddParent(MobileControlSystemController parent)
{ {
base.AddParent(parent); base.AddParent(parent);
@@ -169,19 +169,6 @@ namespace PepperDash.Essentials
}); });
} }
///// <summary>
///// Handler for codec changes
///// </summary>
//void codec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e)
//{
// PostStatusMessage(new
// {
// calls = GetCallsMessageObject(),
// //vtc = GetVtcCallsMessageObject()
// });
//}
/// <summary> /// <summary>
/// Helper for posting status message /// Helper for posting status message
/// </summary> /// </summary>
@@ -435,45 +422,6 @@ namespace PepperDash.Essentials
volumes = volumes volumes = volumes
}); });
} }
///// <summary>
///// Helper to return a anonymous object with the call data for JSON message
///// </summary>
///// <returns></returns>
//object GetCallsMessageObject()
//{
// var callRm = Room as IHasVideoCodec;
// if (callRm == null)
// return null;
// return new
// {
// activeCalls = callRm.VideoCodec.ActiveCalls,
// callType = callRm.CallTypeFeedback.IntValue,
// inCall = callRm.InCallFeedback.BoolValue,
// isSharing = callRm.IsSharingFeedback.BoolValue,
// privacyModeIsOn = callRm.PrivacyModeIsOnFeedback.BoolValue
// };
//}
///// <summary>
///// Helper method to build call status for vtc
///// </summary>
///// <returns></returns>
//object GetVtcCallsMessageObject()
//{
// var callRm = Room as IHasVideoCodec;
// object vtc = null;
// if (callRm != null)
// {
// var codec = callRm.VideoCodec;
// vtc = new
// {
// isInCall = codec.IsInCall,
// calls = codec.ActiveCalls
// };
// }
// return vtc;
//}
} }
/// <summary> /// <summary>

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using Crestron.SimplSharp; using Crestron.SimplSharp;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
/// <summary> /// <summary>

View File

@@ -6,7 +6,7 @@ using Crestron.SimplSharp;
using Newtonsoft.Json; using Newtonsoft.Json;
namespace PepperDash.Essentials.Room.Cotija namespace PepperDash.Essentials.Room.MobileControl
{ {
public class Volumes public class Volumes
{ {

View File

@@ -15,7 +15,7 @@ using PepperDash.Essentials.Devices.Common;
using PepperDash.Essentials.DM; using PepperDash.Essentials.DM;
using PepperDash.Essentials.Fusion; using PepperDash.Essentials.Fusion;
using PepperDash.Essentials.Room.Config; using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Room.Cotija; using PepperDash.Essentials.Room.MobileControl;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
@@ -40,8 +40,11 @@ namespace PepperDash.Essentials
{ {
DeterminePlatform(); DeterminePlatform();
//if (Debug.DoNotLoadOnNextBoot)
//{
// CrestronConsole.AddNewConsoleCommand(s => GoWithLoad(), "go", "Loads configuration file", // CrestronConsole.AddNewConsoleCommand(s => GoWithLoad(), "go", "Loads configuration file",
// ConsoleAccessLevelEnum.AccessOperator); // ConsoleAccessLevelEnum.AccessOperator);
//}
// CrestronConsole.AddNewConsoleCommand(S => { ConfigWriter.WriteConfigFile(null); }, "writeconfig", "writes the current config to a file", ConsoleAccessLevelEnum.AccessOperator); // CrestronConsole.AddNewConsoleCommand(S => { ConfigWriter.WriteConfigFile(null); }, "writeconfig", "writes the current config to a file", ConsoleAccessLevelEnum.AccessOperator);
CrestronConsole.AddNewConsoleCommand(s => CrestronConsole.AddNewConsoleCommand(s =>
@@ -71,6 +74,7 @@ namespace PepperDash.Essentials
"Template URL: {1}", ConfigReader.ConfigObject.SystemUrl, ConfigReader.ConfigObject.TemplateUrl); "Template URL: {1}", ConfigReader.ConfigObject.SystemUrl, ConfigReader.ConfigObject.TemplateUrl);
}, "portalinfo", "Shows portal URLS from configuration", ConsoleAccessLevelEnum.AccessOperator); }, "portalinfo", "Shows portal URLS from configuration", ConsoleAccessLevelEnum.AccessOperator);
//if(!Debug.DoNotLoadOnNextBoot)
GoWithLoad(); GoWithLoad();
} }
@@ -80,6 +84,8 @@ namespace PepperDash.Essentials
/// Sets Global.FilePathPrefix based on platform /// Sets Global.FilePathPrefix based on platform
/// </summary> /// </summary>
public void DeterminePlatform() public void DeterminePlatform()
{
try
{ {
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Determining Platform...."); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Determining Platform....");
@@ -133,6 +139,11 @@ namespace PepperDash.Essentials
Global.SetFilePathPrefix(filePathPrefix); Global.SetFilePathPrefix(filePathPrefix);
} }
catch (Exception e)
{
Debug.Console(0, "Unable to Determine Platform due to Exception: {0}", e.Message);
}
}
/// <summary> /// <summary>
/// Do it, yo /// Do it, yo
@@ -141,6 +152,8 @@ namespace PepperDash.Essentials
{ {
try try
{ {
//Debug.SetDoNotLoadOnNextBoot(false);
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Starting Essentials load from configuration"); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Starting Essentials load from configuration");
var filesReady = SetupFilesystem(); var filesReady = SetupFilesystem();
@@ -335,7 +348,7 @@ namespace PepperDash.Essentials
{ {
var sysMon = DeviceManager.GetDeviceForKey("systemMonitor") as PepperDash.Essentials.Core.Monitoring.SystemMonitorController; var sysMon = DeviceManager.GetDeviceForKey("systemMonitor") as PepperDash.Essentials.Core.Monitoring.SystemMonitorController;
var appServer = DeviceManager.GetDeviceForKey("appServer") as CotijaSystemController; var appServer = DeviceManager.GetDeviceForKey("appServer") as MobileControlSystemController;
if (sysMon != null && appServer != null) if (sysMon != null && appServer != null)
@@ -489,13 +502,13 @@ namespace PepperDash.Essentials
DeviceManager.AddDevice(new Core.Fusion.EssentialsHuddleSpaceFusionSystemControllerBase((EssentialsHuddleSpaceRoom)room, 0xf1)); DeviceManager.AddDevice(new Core.Fusion.EssentialsHuddleSpaceFusionSystemControllerBase((EssentialsHuddleSpaceRoom)room, 0xf1));
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Cotija Bridge..."); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Mobile Control Bridge...");
// Cotija bridge // Mobile Control bridge
var bridge = new CotijaEssentialsHuddleSpaceRoomBridge(room as EssentialsHuddleSpaceRoom); var bridge = new MobileConrolEssentialsHuddleSpaceRoomBridge(room as EssentialsHuddleSpaceRoom);
AddBridgePostActivationHelper(bridge); // Lets things happen later when all devices are present AddBridgePostActivationHelper(bridge); // Lets things happen later when all devices are present
DeviceManager.AddDevice(bridge); DeviceManager.AddDevice(bridge);
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Cotija Bridge Added..."); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Mobile Control Bridge Added...");
} }
else if (room is EssentialsHuddleVtc1Room) else if (room is EssentialsHuddleVtc1Room)
{ {
@@ -504,9 +517,9 @@ namespace PepperDash.Essentials
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Room is EssentialsHuddleVtc1Room, attempting to add to DeviceManager with Fusion"); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Room is EssentialsHuddleVtc1Room, attempting to add to DeviceManager with Fusion");
DeviceManager.AddDevice(new EssentialsHuddleVtc1FusionController((EssentialsHuddleVtc1Room)room, 0xf1)); DeviceManager.AddDevice(new EssentialsHuddleVtc1FusionController((EssentialsHuddleVtc1Room)room, 0xf1));
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Cotija Bridge..."); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Mobile Control Bridge...");
// Cotija bridge // Mobile Control bridge
var bridge = new CotijaEssentialsHuddleSpaceRoomBridge(room); var bridge = new MobileConrolEssentialsHuddleSpaceRoomBridge(room);
AddBridgePostActivationHelper(bridge); // Lets things happen later when all devices are present AddBridgePostActivationHelper(bridge); // Lets things happen later when all devices are present
DeviceManager.AddDevice(bridge); DeviceManager.AddDevice(bridge);
} }
@@ -529,11 +542,11 @@ namespace PepperDash.Essentials
/// Helps add the post activation steps that link bridges to main controller /// Helps add the post activation steps that link bridges to main controller
/// </summary> /// </summary>
/// <param name="bridge"></param> /// <param name="bridge"></param>
void AddBridgePostActivationHelper(CotijaBridgeBase bridge) void AddBridgePostActivationHelper(MobileControlBridgeBase bridge)
{ {
bridge.AddPostActivationAction(() => bridge.AddPostActivationAction(() =>
{ {
var parent = DeviceManager.AllDevices.FirstOrDefault(d => d.Key == "appServer") as CotijaSystemController; var parent = DeviceManager.AllDevices.FirstOrDefault(d => d.Key == "appServer") as MobileControlSystemController;
if (parent == null) if (parent == null)
{ {
Debug.Console(0, bridge, "ERROR: Cannot connect app server room bridge. System controller not present"); Debug.Console(0, bridge, "ERROR: Cannot connect app server room bridge. System controller not present");

View File

@@ -61,18 +61,18 @@ namespace PepperDash.Essentials
else if (typeName == "appserver") else if (typeName == "appserver")
{ {
var props = JsonConvert.DeserializeObject<CotijaConfig>(properties.ToString()); var props = JsonConvert.DeserializeObject<MobileControlConfig>(properties.ToString());
return new CotijaSystemController(key, name, props); return new MobileControlSystemController(key, name, props);
} }
else if (typeName == "mobilecontrolbridge-ddvc01") else if (typeName == "mobilecontrolbridge-ddvc01")
{ {
var comm = CommFactory.GetControlPropertiesConfig(dc); var comm = CommFactory.GetControlPropertiesConfig(dc);
var bridge = new PepperDash.Essentials.Room.Cotija.CotijaDdvc01RoomBridge(key, name, comm.IpIdInt); var bridge = new PepperDash.Essentials.Room.MobileControl.MobileControlDdvc01RoomBridge(key, name, comm.IpIdInt);
bridge.AddPreActivationAction(() => bridge.AddPreActivationAction(() =>
{ {
var parent = DeviceManager.AllDevices.FirstOrDefault(d => d.Key == "appServer") as CotijaSystemController; var parent = DeviceManager.AllDevices.FirstOrDefault(d => d.Key == "appServer") as MobileControlSystemController;
if (parent == null) if (parent == null)
{ {
Debug.Console(0, bridge, "ERROR: Cannot connect bridge. System controller not present"); Debug.Console(0, bridge, "ERROR: Cannot connect bridge. System controller not present");

View File

@@ -184,12 +184,12 @@
<Compile Include="Room\Config\EssentialsHuddleRoomPropertiesConfig.cs" /> <Compile Include="Room\Config\EssentialsHuddleRoomPropertiesConfig.cs" />
<Compile Include="Room\Config\EssentialsHuddleVtc1PropertiesConfig.cs" /> <Compile Include="Room\Config\EssentialsHuddleVtc1PropertiesConfig.cs" />
<Compile Include="Room\Config\EssentialsRoomEmergencyConfig.cs" /> <Compile Include="Room\Config\EssentialsRoomEmergencyConfig.cs" />
<Compile Include="AppServer\CotijaConfig.cs" /> <Compile Include="AppServer\MobileControlConfig.cs" />
<Compile Include="AppServer\CotijaDdvc01DeviceBridge.cs" /> <Compile Include="AppServer\MobileControlDdvc01DeviceBridge.cs" />
<Compile Include="AppServer\Interfaces.cs" /> <Compile Include="AppServer\Interfaces.cs" />
<Compile Include="AppServer\RoomBridges\CotijaBridgeBase.cs" /> <Compile Include="AppServer\RoomBridges\MobileControlBridgeBase.cs" />
<Compile Include="AppServer\RoomBridges\CotijaDdvc01RoomBridge.cs" /> <Compile Include="AppServer\RoomBridges\MobileControlDdvc01RoomBridge.cs" />
<Compile Include="AppServer\RoomBridges\CotijaEssentialsHuddleSpaceRoomBridge.cs" /> <Compile Include="AppServer\RoomBridges\MobileControlEssentialsHuddleSpaceRoomBridge.cs" />
<Compile Include="AppServer\DeviceTypeInterfaces\IChannelExtensions.cs" /> <Compile Include="AppServer\DeviceTypeInterfaces\IChannelExtensions.cs" />
<Compile Include="AppServer\DeviceTypeInterfaces\IColorExtensions.cs" /> <Compile Include="AppServer\DeviceTypeInterfaces\IColorExtensions.cs" />
<Compile Include="AppServer\DeviceTypeInterfaces\IDPadExtensions.cs" /> <Compile Include="AppServer\DeviceTypeInterfaces\IDPadExtensions.cs" />
@@ -238,7 +238,7 @@
<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" />
<Compile Include="AppServer\CotijaSystemController.cs" /> <Compile Include="AppServer\MobileControlSystemController.cs" />
<Compile Include="UI\DualDisplaySourceSRLController.cs" /> <Compile Include="UI\DualDisplaySourceSRLController.cs" />
<Compile Include="UI\SubpageReferenceListActivityItem.cs" /> <Compile Include="UI\SubpageReferenceListActivityItem.cs" />
<Compile Include="FOR REFERENCE UI\Panels\REMOVE UiCue.cs" /> <Compile Include="FOR REFERENCE UI\Panels\REMOVE UiCue.cs" />

View File

@@ -38,6 +38,12 @@ namespace PepperDash.Essentials.Room.Config
{ {
return new Device(roomConfig.Key, roomConfig.Name); // placeholder device that does nothing. return new Device(roomConfig.Key, roomConfig.Name); // placeholder device that does nothing.
} }
else if (typeName == "dualdisplay")
{
var rm = new EssentialsDualDisplayRoom(roomConfig);
return rm;
}
return null; return null;
} }

View File

@@ -15,7 +15,7 @@ using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec; using PepperDash.Essentials.Devices.Common.VideoCodec;
using PepperDash.Essentials.Devices.Common.AudioCodec; using PepperDash.Essentials.Devices.Common.AudioCodec;
namespace PepperDash.Essentials.Room.Types namespace PepperDash.Essentials
{ {
public class EssentialsDualDisplayRoom : EssentialsNDisplayRoomBase, IHasCurrentVolumeControls, public class EssentialsDualDisplayRoom : EssentialsNDisplayRoomBase, IHasCurrentVolumeControls,
IRunRouteAction, IPrivacy, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasInCallFeedback IRunRouteAction, IPrivacy, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasInCallFeedback
@@ -174,9 +174,11 @@ namespace PepperDash.Essentials.Room.Types
var leftDisp = PropertiesConfig.Displays[eSourceListItemDestinationTypes.leftDisplay]; var leftDisp = PropertiesConfig.Displays[eSourceListItemDestinationTypes.leftDisplay];
if (leftDisp != null) if (leftDisp != null)
{ {
if (!string.IsNullOrEmpty(leftDisp.Key)) if (!string.IsNullOrEmpty(leftDisp.Key))
{
LeftDisplay = DeviceManager.GetDeviceForKey(leftDisp.Key) as IRoutingSinkWithSwitching; LeftDisplay = DeviceManager.GetDeviceForKey(leftDisp.Key) as IRoutingSinkWithSwitching;
Displays.Add(eSourceListItemDestinationTypes.leftDisplay, LeftDisplay);
}
else else
Debug.Console(0, this, "Unable to get LeftDisplay for Room"); Debug.Console(0, this, "Unable to get LeftDisplay for Room");
} }
@@ -184,9 +186,11 @@ namespace PepperDash.Essentials.Room.Types
var rightDisp = PropertiesConfig.Displays[eSourceListItemDestinationTypes.rightDisplay]; var rightDisp = PropertiesConfig.Displays[eSourceListItemDestinationTypes.rightDisplay];
if (rightDisp != null) if (rightDisp != null)
{ {
if (!string.IsNullOrEmpty(rightDisp.Key)) if (!string.IsNullOrEmpty(rightDisp.Key))
{
LeftDisplay = DeviceManager.GetDeviceForKey(rightDisp.Key) as IRoutingSinkWithSwitching; LeftDisplay = DeviceManager.GetDeviceForKey(rightDisp.Key) as IRoutingSinkWithSwitching;
Displays.Add(eSourceListItemDestinationTypes.rightDisplay, RightDisplay);
}
else else
Debug.Console(0, this, "Unable to get LeftDisplay for Room"); Debug.Console(0, this, "Unable to get LeftDisplay for Room");
} }

View File

@@ -12,21 +12,21 @@ using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.Config; using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Room.Config; using PepperDash.Essentials.Room.Config;
namespace PepperDash.Essentials.Room.Types namespace PepperDash.Essentials
{ {
/// <summary> /// <summary>
/// Base class for rooms with more than a single display /// Base class for rooms with more than a single display
/// </summary> /// </summary>
public abstract class EssentialsNDisplayRoomBase : EssentialsRoomBase public abstract class EssentialsNDisplayRoomBase : EssentialsRoomBase, IHasMultipleDisplays
{ {
//public event SourceInfoChangeHandler CurrentSingleSourceChange; //public event SourceInfoChangeHandler CurrentSingleSourceChange;
public Dictionary<eSourceListItemDestinationTypes, IRoutingSinkWithSwitching> Displays { get; protected set;}
public EssentialsNDisplayRoomBase(DeviceConfig config) public EssentialsNDisplayRoomBase(DeviceConfig config)
: base (config) : base (config)
{ {
Displays = new Dictionary<eSourceListItemDestinationTypes, IRoutingSinkWithSwitching>();
var propertiesConfig = JsonConvert.DeserializeObject<EssentialsNDisplayRoomPropertiesConfig>(config.Properties.ToString());
} }
} }

View File

@@ -21,8 +21,6 @@ namespace PepperDash.Essentials.Core.Config
public string TemplateUrl { get; set; } public string TemplateUrl { get; set; }
//public CotijaConfig Cotija { get; private set; }
[JsonProperty("systemUuid")] [JsonProperty("systemUuid")]
public string SystemUuid public string SystemUuid
{ {

View File

@@ -22,6 +22,14 @@ namespace PepperDash.Essentials.Core
IRoutingSinkWithSwitching DefaultDisplay { get; } IRoutingSinkWithSwitching DefaultDisplay { get; }
} }
/// <summary>
/// For rooms with multiple displays
/// </summary>
public interface IHasMultipleDisplays
{
Dictionary<eSourceListItemDestinationTypes, IRoutingSinkWithSwitching> Displays { get; }
}
/// <summary> /// <summary>
/// For rooms with routing /// For rooms with routing
/// </summary> /// </summary>
@@ -30,8 +38,6 @@ namespace PepperDash.Essentials.Core
void RunRouteAction(string routeKey); void RunRouteAction(string routeKey);
void RunRouteAction(string routeKey, Action successCallback); void RunRouteAction(string routeKey, Action successCallback);
} }
/// <summary> /// <summary>

View File

@@ -31,7 +31,6 @@ namespace PepperDash.Essentials.Core
event SourceInfoChangeHandler CurrentSourceChange; event SourceInfoChangeHandler CurrentSourceChange;
} }
/// <summary> /// <summary>
/// Defines a class that has a collection of RoutingInputPorts /// Defines a class that has a collection of RoutingInputPorts
/// </summary> /// </summary>

View File

@@ -33,9 +33,9 @@ namespace PepperDash.Essentials.Core
{ {
Audio = 1, Audio = 1,
Video = 2, Video = 2,
//AudioVideo = 4, AudioVideo = 4,
UsbOutput = 4, UsbOutput = 8,
UsbInput = 8 UsbInput = 16
} }
public enum eRoutingPortConnectionType public enum eRoutingPortConnectionType