From 08d6090bc52b48994c89e3ce766c02ca7e416810 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Wed, 18 Dec 2019 16:37:37 -0700 Subject: [PATCH] Finished converting MobileControlSIMPLRoomBridge to use new MobileControlSIMPLRoomJoinMap --- .../Messengers/SIMPLCameraMessenger.cs | 209 ++++++----- .../MobileControlSIMPLRoomBridge.cs | 345 ++++-------------- .../MobileControlSIMPLRoomJoinMap.cs | 12 +- .../JoinMaps/CameraControllerJoinMap.cs | 25 +- .../JoinMaps/JoinMapBase.cs | 12 + 5 files changed, 234 insertions(+), 369 deletions(-) diff --git a/PepperDashEssentials/AppServer/Messengers/SIMPLCameraMessenger.cs b/PepperDashEssentials/AppServer/Messengers/SIMPLCameraMessenger.cs index bbf16cea..468331d6 100644 --- a/PepperDashEssentials/AppServer/Messengers/SIMPLCameraMessenger.cs +++ b/PepperDashEssentials/AppServer/Messengers/SIMPLCameraMessenger.cs @@ -8,6 +8,7 @@ using Crestron.SimplSharpPro.EthernetCommunication; using PepperDash.Core; using PepperDash.Essentials.Core; +using PepperDash.Essentials.Bridges; using PepperDash.Essentials.Devices.Common.Cameras; namespace PepperDash.Essentials.AppServer.Messengers @@ -16,92 +17,96 @@ namespace PepperDash.Essentials.AppServer.Messengers { BasicTriList EISC; - uint JoinStart; + CameraControllerJoinMap JoinMap; - public class BoolJoin - { - /// - /// 1 - /// - public const uint CameraControlUp = 1; - /// - /// 2 - /// - public const uint CameraControlDown = 2; - /// - /// 3 - /// - public const uint CameraControlLeft = 3; - /// - /// 4 - /// - public const uint CameraControlRight = 4; - /// - /// 5 - /// - public const uint CameraControlZoomIn = 5; - /// - /// 6 - /// - public const uint CameraControlZoomOut = 6; - /// - /// 10 - /// - public const uint CameraHasPresets = 10; - /// - /// 11 - 20 - /// - public const uint CameraPresetStart = 10; + //public class BoolJoin + //{ + // /// + // /// 1 + // /// + // public const uint CameraControlUp = 1; + // /// + // /// 2 + // /// + // public const uint CameraControlDown = 2; + // /// + // /// 3 + // /// + // public const uint CameraControlLeft = 3; + // /// + // /// 4 + // /// + // public const uint CameraControlRight = 4; + // /// + // /// 5 + // /// + // public const uint CameraControlZoomIn = 5; + // /// + // /// 6 + // /// + // public const uint CameraControlZoomOut = 6; + // /// + // /// 10 + // /// + // public const uint CameraHasPresets = 10; + // /// + // /// 11 - 20 + // /// + // public const uint CameraPresetStart = 10; - /// - /// 21 - /// - public const uint CameraModeAuto = 21; - /// - /// 22 - /// - public const uint CameraModeManual = 22; - /// - /// 23 - /// - public const uint CameraModeOff = 23; - /// - /// 24 - /// - public const uint CameraSupportsModeAuto = 24; - /// - /// 25 - /// - public const uint CameraSupportsModeOff = 25; - } + // /// + // /// 21 + // /// + // public const uint CameraModeAuto = 21; + // /// + // /// 22 + // /// + // public const uint CameraModeManual = 22; + // /// + // /// 23 + // /// + // public const uint CameraModeOff = 23; + // /// + // /// 24 + // /// + // public const uint CameraSupportsModeAuto = 24; + // /// + // /// 25 + // /// + // public const uint CameraSupportsModeOff = 25; + //} - public class UshortJoin - { - /// - /// 10 - /// - public const uint CameraPresetCount = 10; - } + //public class UshortJoin + //{ + // /// + // /// 10 + // /// + // public const uint CameraPresetCount = 10; + //} - public class StringJoin - { - /// - /// 11-20 - /// - public const uint CameraPresetNameStart = 10; - } + //public class StringJoin + //{ + // /// + // /// 11-20 + // /// + // public const uint CameraPresetNameStart = 10; + //} public SIMPLCameraMessenger(string key, BasicTriList eisc, string messagePath, uint joinStart) : base(key, messagePath) { EISC = eisc; - JoinStart = joinStart - 1; + //JoinStart = joinStart - 1; + JoinMap = new CameraControllerJoinMap(); - EISC.SetUShortSigAction(UshortJoin.CameraPresetCount + JoinStart, (u) => SendCameraFullMessageObject()); + JoinMap.OffsetJoinNumbers(joinStart); - EISC.SetBoolSigAction(BoolJoin.CameraModeAuto, (b) => PostCameraMode()); - EISC.SetBoolSigAction(BoolJoin.CameraModeManual, (b) => PostCameraMode()); - EISC.SetBoolSigAction(BoolJoin.CameraModeOff, (b) => PostCameraMode()); + + EISC.SetUShortSigAction(JoinMap.GetJoinForKey(CameraControllerJoinMap.NumberOfPresets), (u) => SendCameraFullMessageObject()); + + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeAuto), (b) => PostCameraMode()); + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeManual), (b) => PostCameraMode()); + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeOff), (b) => PostCameraMode()); } @@ -114,24 +119,29 @@ namespace PepperDash.Essentials.AppServer.Messengers // Add press and holds using helper action Action addPHAction = (s, u) => asc.AddAction(MessagePath + s, new PressAndHoldAction(b => EISC.SetBool(u, b))); - addPHAction("/cameraUp", BoolJoin.CameraControlUp + JoinStart); - addPHAction("/cameraDown", BoolJoin.CameraControlDown + JoinStart); - addPHAction("/cameraLeft", BoolJoin.CameraControlLeft + JoinStart); - addPHAction("/cameraRight", BoolJoin.CameraControlRight + JoinStart); - addPHAction("/cameraZoomIn", BoolJoin.CameraControlZoomIn + JoinStart); - addPHAction("/cameraZoomOut", BoolJoin.CameraControlZoomOut + JoinStart); + addPHAction("/cameraUp", JoinMap.GetJoinForKey(CameraControllerJoinMap.TiltUp)); + addPHAction("/cameraDown", JoinMap.GetJoinForKey(CameraControllerJoinMap.TiltDown)); + addPHAction("/cameraLeft", JoinMap.GetJoinForKey(CameraControllerJoinMap.PanLeft)); + addPHAction("/cameraRight", JoinMap.GetJoinForKey(CameraControllerJoinMap.PanRight)); + addPHAction("/cameraZoomIn", JoinMap.GetJoinForKey(CameraControllerJoinMap.ZoomIn)); + addPHAction("/cameraZoomOut", JoinMap.GetJoinForKey(CameraControllerJoinMap.ZoomOut)); Action addAction = (s, u) => asc.AddAction(MessagePath + s, new Action(() => EISC.PulseBool(u, 100))); - addAction("/cameraModeAuto", BoolJoin.CameraModeAuto); - addAction("/cameraModeManual", BoolJoin.CameraModeManual); - addAction("/cameraModeOff", BoolJoin.CameraModeOff); + addAction("/cameraModeAuto", JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeAuto)); + addAction("/cameraModeManual", JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeManual)); + addAction("/cameraModeOff", JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeOff)); + var presetStart = JoinMap.GetJoinForKey(CameraControllerJoinMap.PresetRecallStart); + var presetEnd = JoinMap.GetJoinForKey(CameraControllerJoinMap.PresetRecallStart) + JoinMap.GetJoinSpanForKey(CameraControllerJoinMap.PresetRecallStart); + + int presetId = 1; // camera presets - for (uint i = 1; i <= 6; i++) + for (uint i = presetStart; i <= presetEnd; i++) { - addAction("/cameraPreset" + (i), BoolJoin.CameraPresetStart + i + JoinStart); + addAction("/cameraPreset" + (presetId), i); + presetId++; } } @@ -149,11 +159,11 @@ namespace PepperDash.Essentials.AppServer.Messengers appServerController.RemoveAction(MessagePath + "/cameraModeManual"); appServerController.RemoveAction(MessagePath + "/cameraModeOff"); - EISC.SetUShortSigAction(UshortJoin.CameraPresetCount + JoinStart, null); + EISC.SetUShortSigAction(JoinMap.GetJoinForKey(CameraControllerJoinMap.NumberOfPresets), null); - EISC.SetBoolSigAction(BoolJoin.CameraModeAuto, null); - EISC.SetBoolSigAction(BoolJoin.CameraModeManual, null); - EISC.SetBoolSigAction(BoolJoin.CameraModeOff, null); + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeAuto), null); + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeManual), null); + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeOff), null); } /// @@ -164,20 +174,25 @@ namespace PepperDash.Essentials.AppServer.Messengers var presetList = new List(); // Build a list of camera presets based on the names and count - if (EISC.GetBool(JoinStart + BoolJoin.CameraHasPresets)) + if (EISC.GetBool(JoinMap.GetJoinForKey(CameraControllerJoinMap.SupportsPresets))) { - for (uint i = 1; i <= EISC.GetUshort(UshortJoin.CameraPresetCount); i++) + var presetStart = JoinMap.GetJoinForKey(CameraControllerJoinMap.PresetLabelStart); + var presetEnd = JoinMap.GetJoinForKey(CameraControllerJoinMap.PresetLabelStart) + JoinMap.GetJoinForKey(CameraControllerJoinMap.NumberOfPresets); + + var presetId = 1; + for (uint i = presetStart; i < presetEnd; i++) { - var presetName = EISC.GetString(StringJoin.CameraPresetNameStart + i + JoinStart); - var preset = new CameraPreset((int)i, presetName, string.IsNullOrEmpty(presetName), true); + var presetName = EISC.GetString(i); + var preset = new CameraPreset(presetId, presetName, string.IsNullOrEmpty(presetName), true); presetList.Add(preset); + presetId++; } } PostStatusMessage(new { cameraMode = GetCameraMode(), - hasPresets = EISC.GetBool(BoolJoin.CameraHasPresets), + hasPresets = EISC.GetBool(JoinMap.GetJoinForKey(CameraControllerJoinMap.SupportsPresets)), presets = presetList }); } @@ -200,8 +215,8 @@ namespace PepperDash.Essentials.AppServer.Messengers string GetCameraMode() { string m; - if (EISC.GetBool(BoolJoin.CameraModeAuto)) m = eCameraControlMode.Auto.ToString().ToLower(); - else if (EISC.GetBool(BoolJoin.CameraModeManual)) m = eCameraControlMode.Manual.ToString().ToLower(); + if (EISC.GetBool(JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeAuto))) m = eCameraControlMode.Auto.ToString().ToLower(); + else if (EISC.GetBool(JoinMap.GetJoinForKey(CameraControllerJoinMap.CameraModeManual))) m = eCameraControlMode.Manual.ToString().ToLower(); else m = eCameraControlMode.Off.ToString().ToLower(); return m; } diff --git a/PepperDashEssentials/AppServer/RoomBridges/MobileControlSIMPLRoomBridge.cs b/PepperDashEssentials/AppServer/RoomBridges/MobileControlSIMPLRoomBridge.cs index d93da71c..45f0e709 100644 --- a/PepperDashEssentials/AppServer/RoomBridges/MobileControlSIMPLRoomBridge.cs +++ b/PepperDashEssentials/AppServer/RoomBridges/MobileControlSIMPLRoomBridge.cs @@ -21,199 +21,6 @@ namespace PepperDash.Essentials.Room.MobileControl { public class MobileControlSIMPLRoomBridge : MobileControlBridgeBase, IDelayedConfiguration { - public class BoolJoin - { - - /// - /// 1 - /// - public const uint ConfigIsInEssentials = 100; - - /// - /// 301 - /// - public const uint RoomIsOn = 301; - - /// - /// 12 - /// - public const uint PrivacyMute = 12; - - /// - /// 41 - /// - public const uint PromptForCode = 41; - /// - /// 42 - /// - public const uint ClientJoined = 42; - /// - /// 51 - /// - public const uint ActivityShare = 51; - /// - /// 52 - /// - public const uint ActivityPhoneCall = 52; - /// - /// 53 - /// - public const uint ActivityVideoCall = 53; - - /// - /// 1 - /// - public const uint MasterVolumeIsMuted = 1; - /// - /// 1 - /// - public const uint MasterVolumeMuteToggle = 1; - /// - /// 1 - /// - public const uint VolumeMutesJoinStart = 1; - /// - /// 61 - /// - public const uint ShutdownCancel = 61; - /// - /// 62 - /// - public const uint ShutdownEnd = 62; - /// - /// 63 - /// - public const uint ShutdownStart = 63; - /// - /// 72 - /// - public const uint SourceHasChanged = 71; - - /// - /// 261 - The start of the range of speed dial visibles - /// - public const uint SpeedDialVisibleStartJoin = 261; - /// - /// 501 - /// - public const uint ConfigIsReady = 501; - /// - /// 502 - /// - public const uint HideVideoConfRecents = 502; - /// - /// 503 - /// - public const uint ShowCameraWhenNotInCall = 503; - /// - /// 504 - /// - public const uint UseSourceEnabled = 504; - /// - /// 601 - /// - public const uint SourceShareDisableJoinStart = 601; - /// - /// 621 - /// - public const uint SourceIsEnabledJoinStart = 621; - } - - public class UshortJoin - { - /// - /// 1 - /// - public const uint MasterVolumeLevel = 1; - /// - /// 1 - /// - public const uint VolumeSlidersJoinStart = 1; - /// - /// 61 - /// - public const uint ShutdownPromptDuration = 61; - /// - /// 101 - /// - public const uint NumberOfAuxFaders = 101; - } - - public class StringJoin - { - /// - /// 1 - /// - public const uint VolumeSliderNamesJoinStart = 1; - /// - /// 71 - /// - public const uint SelectedSourceKey = 71; - - /// - /// 241 - /// - public const uint SpeedDialNameStartJoin = 241; - - /// - /// 251 - /// - public const uint SpeedDialNumberStartJoin = 251; - - /// - /// 501 - /// - public const uint ConfigRoomName = 501; - /// - /// 502 - /// - public const uint ConfigHelpMessage = 502; - /// - /// 503 - /// - public const uint ConfigHelpNumber = 503; - /// - /// 504 - /// - public const uint ConfigRoomPhoneNumber = 504; - /// - /// 505 - /// - public const uint ConfigRoomURI = 505; - /// - /// 401 - /// - public const uint UserCodeToSystem = 401; - /// - /// 402 - /// - public const uint ServerUrl = 402; - /// - /// 601 - /// - public const uint SourceNameJoinStart = 601; - /// - /// 621 - /// - public const uint SourceIconJoinStart = 621; - /// - /// 641 - /// - public const uint SourceKeyJoinStart = 641; - /// - /// 661 - /// - public const uint SourceTypeJoinStart = 661; - /// - /// 761 - /// - public const uint CameraNearNameStart = 761; - /// - /// 770 - presence of this name on the input will cause the camera to be added - /// - public const uint CameraFarName = 770; - } - /// /// Fires when config is ready to go /// @@ -231,7 +38,7 @@ namespace PepperDash.Essentials.Room.MobileControl public override string RoomName { get { - var name = EISC.StringOutput[StringJoin.ConfigRoomName].StringValue; + var name = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigRoomName)].StringValue; return string.IsNullOrEmpty(name) ? "Not Loaded" : name; } } @@ -260,9 +67,7 @@ namespace PepperDash.Essentials.Room.MobileControl JoinMap = new MobileControlSIMPLRoomJoinMap(); - // TODO: Possibly set up alternate constructor or take in joinMapKey and joinStart properties in constructor - - + // TODO: Possibly set up alternate constructor or take in joinMapKey and joinStart properties in constructor JoinMap.OffsetJoinNumbers(1); SourceBridge = new MobileControlDdvc01DeviceBridge(key + "-sourceBridge", "DDVC01 source bridge", EISC); @@ -300,19 +105,19 @@ namespace PepperDash.Essentials.Room.MobileControl EISC.OnlineStatusChange += (o, a) => { Debug.Console(1, this, "DDVC EISC online={0}. Config is ready={1}. Use Essentials Config={2}", - a.DeviceOnLine, EISC.BooleanOutput[BoolJoin.ConfigIsReady].BoolValue, EISC.BooleanOutput[BoolJoin.ConfigIsInEssentials].BoolValue); + a.DeviceOnLine, EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigIsReady)].BoolValue, EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigIsLocal)].BoolValue); - if (a.DeviceOnLine && EISC.BooleanOutput[BoolJoin.ConfigIsReady].BoolValue) + if (a.DeviceOnLine && EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigIsReady)].BoolValue) LoadConfigValues(); - if (a.DeviceOnLine && EISC.BooleanOutput[BoolJoin.ConfigIsInEssentials].BoolValue) + if (a.DeviceOnLine && EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigIsLocal)].BoolValue) UseEssentialsConfig(); }; // load config if it's already there - if (EISC.IsOnline && EISC.BooleanOutput[BoolJoin.ConfigIsReady].BoolValue) // || EISC.BooleanInput[BoolJoin.ConfigIsReady].BoolValue) + if (EISC.IsOnline && EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigIsReady)].BoolValue) // || EISC.BooleanInput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigIsReady].BoolValue) LoadConfigValues(); - if (EISC.IsOnline && EISC.BooleanOutput[BoolJoin.ConfigIsInEssentials].BoolValue) + if (EISC.IsOnline && EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigIsLocal)].BoolValue) { UseEssentialsConfig(); } @@ -364,35 +169,38 @@ namespace PepperDash.Essentials.Room.MobileControl /// void SetupFunctions() { - Parent.AddAction(@"/room/room1/promptForCode", new Action(() => EISC.PulseBool(BoolJoin.PromptForCode))); - Parent.AddAction(@"/room/room1/clientJoined", new Action(() => EISC.PulseBool(BoolJoin.ClientJoined))); + Parent.AddAction(@"/room/room1/promptForCode", new Action(() => EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.PromptForCode)))); + Parent.AddAction(@"/room/room1/clientJoined", new Action(() => EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ClientJoined)))); Parent.AddAction(@"/room/room1/status", new Action(SendFullStatus)); Parent.AddAction(@"/room/room1/source", new Action(c => { - EISC.SetString(StringJoin.SelectedSourceKey, c.SourceListItem); - EISC.PulseBool(BoolJoin.SourceHasChanged); + EISC.SetString(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SelectedSourceKey), c.SourceListItem); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SourceHasChanged)); })); Parent.AddAction(@"/room/room1/defaultsource", new Action(() => - EISC.PulseBool(BoolJoin.ActivityShare))); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityShare)))); Parent.AddAction(@"/room/room1/activityPhone", new Action(() => - EISC.PulseBool(BoolJoin.ActivityPhoneCall))); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityPhoneCall)))); Parent.AddAction(@"/room/room1/activityVideo", new Action(() => - EISC.PulseBool(BoolJoin.ActivityVideoCall))); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityVideoCall)))); Parent.AddAction(@"/room/room1/volumes/master/level", new Action(u => - EISC.SetUshort(UshortJoin.MasterVolumeLevel, u))); + EISC.SetUshort(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.MasterVolume), u))); Parent.AddAction(@"/room/room1/volumes/master/muteToggle", new Action(() => - EISC.PulseBool(BoolJoin.MasterVolumeIsMuted))); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.MasterVolume)))); Parent.AddAction(@"/room/room1/volumes/master/privacyMuteToggle", new Action(() => - EISC.PulseBool(BoolJoin.PrivacyMute))); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.PrivacyMute)))); // /xyzxyz/volumes/master/muteToggle ---> BoolInput[1] - for (uint i = 2; i <= 7; i++) + var volumeStart = JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart); + var volumeEnd = JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart) + JoinMap.GetJoinSpanForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart); + + for (uint i = volumeStart; i <= volumeEnd; i++) { var index = i; Parent.AddAction(string.Format(@"/room/room1/volumes/level-{0}/level", index), new Action(u => @@ -402,11 +210,11 @@ namespace PepperDash.Essentials.Room.MobileControl } Parent.AddAction(@"/room/room1/shutdownStart", new Action(() => - EISC.PulseBool(BoolJoin.ShutdownStart))); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ShutdownStart)))); Parent.AddAction(@"/room/room1/shutdownEnd", new Action(() => - EISC.PulseBool(BoolJoin.ShutdownEnd))); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ShutdownEnd)))); Parent.AddAction(@"/room/room1/shutdownCancel", new Action(() => - EISC.PulseBool(BoolJoin.ShutdownCancel))); + EISC.PulseBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ShutdownCancel)))); } @@ -436,21 +244,21 @@ namespace PepperDash.Essentials.Room.MobileControl void SetupFeedbacks() { // Power - EISC.SetBoolSigAction(BoolJoin.RoomIsOn, b => + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.RoomIsOn), b => PostStatusMessage(new { isOn = b })); // Source change things - EISC.SetSigTrueAction(BoolJoin.SourceHasChanged, () => + EISC.SetSigTrueAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SourceHasChanged), () => PostStatusMessage(new { - selectedSourceKey = EISC.StringOutput[StringJoin.SelectedSourceKey].StringValue + selectedSourceKey = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SelectedSourceKey)].StringValue })); // Volume things - EISC.SetUShortSigAction(UshortJoin.MasterVolumeLevel, u => + EISC.SetUShortSigAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.MasterVolume), u => PostStatusMessage(new { volumes = new @@ -465,7 +273,7 @@ namespace PepperDash.Essentials.Room.MobileControl // map MasterVolumeIsMuted join -> status/volumes/master/muted // - EISC.SetBoolSigAction(BoolJoin.MasterVolumeIsMuted, b => + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.MasterVolume), b => PostStatusMessage(new { volumes = new @@ -476,7 +284,7 @@ namespace PepperDash.Essentials.Room.MobileControl } } })); - EISC.SetBoolSigAction(BoolJoin.PrivacyMute, b => + EISC.SetBoolSigAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.PrivacyMute), b => PostStatusMessage(new { volumes = new @@ -488,7 +296,10 @@ namespace PepperDash.Essentials.Room.MobileControl } })); - for (uint i = 2; i <= 7; i++) + var volumeStart = JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart); + var volumeEnd = JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart) + JoinMap.GetJoinSpanForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart); + + for (uint i = volumeStart; i <= volumeEnd; i++) { var index = i; // local scope for lambdas EISC.SetUShortSigAction(index, u => // start at join 2 @@ -519,7 +330,7 @@ namespace PepperDash.Essentials.Room.MobileControl }); } - EISC.SetUShortSigAction(UshortJoin.NumberOfAuxFaders, u => + EISC.SetUShortSigAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.NumberOfAuxFaders), u => PostStatusMessage(new { volumes = new { numberOfAuxFaders = u, @@ -527,30 +338,30 @@ namespace PepperDash.Essentials.Room.MobileControl })); // shutdown things - EISC.SetSigTrueAction(BoolJoin.ShutdownCancel, new Action(() => + EISC.SetSigTrueAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ShutdownCancel), new Action(() => PostMessage("/room/shutdown/", new { state = "wasCancelled" }))); - EISC.SetSigTrueAction(BoolJoin.ShutdownEnd, new Action(() => + EISC.SetSigTrueAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ShutdownEnd), new Action(() => PostMessage("/room/shutdown/", new { state = "hasFinished" }))); - EISC.SetSigTrueAction(BoolJoin.ShutdownStart, new Action(() => + EISC.SetSigTrueAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ShutdownStart), new Action(() => PostMessage("/room/shutdown/", new { state = "hasStarted", - duration = EISC.UShortOutput[UshortJoin.ShutdownPromptDuration].UShortValue + duration = EISC.UShortOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ShutdownPromptDuration)].UShortValue }))); // Config things - EISC.SetSigTrueAction(BoolJoin.ConfigIsReady, LoadConfigValues); + EISC.SetSigTrueAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigIsReady), LoadConfigValues); // Activity modes - EISC.SetSigTrueAction(BoolJoin.ActivityShare, () => UpdateActivity(1)); - EISC.SetSigTrueAction(BoolJoin.ActivityPhoneCall, () => UpdateActivity(2)); - EISC.SetSigTrueAction(BoolJoin.ActivityVideoCall, () => UpdateActivity(3)); + EISC.SetSigTrueAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityShare), () => UpdateActivity(1)); + EISC.SetSigTrueAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityPhoneCall), () => UpdateActivity(2)); + EISC.SetSigTrueAction(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityVideoCall), () => UpdateActivity(3)); } @@ -594,7 +405,7 @@ namespace PepperDash.Essentials.Room.MobileControl Debug.Console(0, this, "Replacing Room[0] in config"); co.Rooms[0] = rm; } - rm.Name = EISC.StringOutput[StringJoin.ConfigRoomName].StringValue; + rm.Name = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigRoomName)].StringValue; rm.Key = "room1"; rm.Type = "ddvc01"; @@ -605,13 +416,13 @@ namespace PepperDash.Essentials.Room.MobileControl rmProps = JsonConvert.DeserializeObject(rm.Properties.ToString()); rmProps.Help = new EssentialsHelpPropertiesConfig(); - rmProps.Help.CallButtonText = EISC.StringOutput[StringJoin.ConfigHelpNumber].StringValue; - rmProps.Help.Message = EISC.StringOutput[StringJoin.ConfigHelpMessage].StringValue; + rmProps.Help.CallButtonText = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigHelpNumber)].StringValue; + rmProps.Help.Message = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigHelpMessage)].StringValue; rmProps.Environment = new EssentialsEnvironmentPropertiesConfig(); // enabled defaults to false - rmProps.RoomPhoneNumber = EISC.StringOutput[StringJoin.ConfigRoomPhoneNumber].StringValue; - rmProps.RoomURI = EISC.StringOutput[StringJoin.ConfigRoomURI].StringValue; + rmProps.RoomPhoneNumber = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigRoomPhoneNumber)].StringValue; + rmProps.RoomURI = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ConfigRoomURI)].StringValue; rmProps.SpeedDials = new List(); // This MAY need a check @@ -619,7 +430,7 @@ namespace PepperDash.Essentials.Room.MobileControl rmProps.VideoCodecKey = "videoCodec"; // volume control names - var volCount = EISC.UShortOutput[UshortJoin.NumberOfAuxFaders].UShortValue; + var volCount = EISC.UShortOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.NumberOfAuxFaders)].UShortValue; //// use Volumes object or? //rmProps.VolumeSliderNames = new List(); @@ -664,18 +475,18 @@ namespace PepperDash.Essentials.Room.MobileControl // add sources... for (uint i = 0; i <= 19; i++) { - var name = EISC.StringOutput[StringJoin.SourceNameJoinStart + i].StringValue; - if (EISC.BooleanOutput[BoolJoin.UseSourceEnabled].BoolValue - && !EISC.BooleanOutput[BoolJoin.SourceIsEnabledJoinStart + i].BoolValue) + var name = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SourceNameJoinStart) + i].StringValue; + if (EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.UseSourceEnabled)].BoolValue + && !EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SourceIsEnabledJoinStart) + i].BoolValue) { continue; } - else if(!EISC.BooleanOutput[BoolJoin.UseSourceEnabled].BoolValue && string.IsNullOrEmpty(name)) + else if(!EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.UseSourceEnabled)].BoolValue && string.IsNullOrEmpty(name)) break; - var icon = EISC.StringOutput[StringJoin.SourceIconJoinStart + i].StringValue; - var key = EISC.StringOutput[StringJoin.SourceKeyJoinStart + i].StringValue; - var type = EISC.StringOutput[StringJoin.SourceTypeJoinStart + i].StringValue; - var disableShare = EISC.BooleanOutput[BoolJoin.SourceShareDisableJoinStart + i].BoolValue; + var icon = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SourceIconJoinStart) + i].StringValue; + var key = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SourceKeyJoinStart) + i].StringValue; + var type = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SourceTypeJoinStart) + i].StringValue; + var disableShare = EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SourceShareDisableJoinStart) + i].BoolValue; Debug.Console(0, this, "Adding source {0} '{1}'", key, name); var newSLI = new SourceListItem{ @@ -717,14 +528,14 @@ namespace PepperDash.Essentials.Room.MobileControl var acFavs = new List(); for (uint i = 0; i < 4; i++) { - if (!EISC.GetBool(BoolJoin.SpeedDialVisibleStartJoin + i)) + if (!EISC.GetBool(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SpeedDialVisibleStartJoin) + i)) { break; } acFavs.Add(new PepperDash.Essentials.Devices.Common.Codec.CodecActiveCallItem() { - Name = EISC.GetString(StringJoin.SpeedDialNameStartJoin + i), - Number = EISC.GetString(StringJoin.SpeedDialNumberStartJoin + i), + Name = EISC.GetString(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SpeedDialNameStartJoin) + i), + Number = EISC.GetString(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SpeedDialNumberStartJoin) + i), Type = PepperDash.Essentials.Devices.Common.Codec.eCodecCallType.Audio }); } @@ -756,7 +567,7 @@ namespace PepperDash.Essentials.Room.MobileControl var camsProps = new List(); for (uint i = 0; i < 9; i++) { - var name = EISC.GetString(i + StringJoin.CameraNearNameStart); + var name = EISC.GetString(i + JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.CameraNearNameStart)); if (!string.IsNullOrEmpty(name)) { camsProps.Add(new @@ -766,7 +577,7 @@ namespace PepperDash.Essentials.Room.MobileControl }); } } - var farName = EISC.GetString(StringJoin.CameraFarName); + var farName = EISC.GetString(JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.CameraFarName)); if (!string.IsNullOrEmpty(farName)) { camsProps.Add(new @@ -874,7 +685,7 @@ namespace PepperDash.Essentials.Room.MobileControl { if (ConfigIsLoaded) { - var count = EISC.UShortOutput[UshortJoin.NumberOfAuxFaders].UShortValue; + var count = EISC.UShortOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.NumberOfAuxFaders)].UShortValue; Debug.Console(1, this, "The Fader Count is : {0}", count); @@ -882,7 +693,11 @@ namespace PepperDash.Essentials.Room.MobileControl // Create auxFaders var auxFaderDict = new Dictionary(); - for (uint i = 2; i <= count; i++) + + var volumeStart = JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart); + var volumeEnd = JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart) + JoinMap.GetJoinSpanForKey(MobileControlSIMPLRoomJoinMap.VolumeJoinStart); + + for (uint i = volumeStart; i <= count; i++) { auxFaderDict.Add("level-" + i, new Volume("level-" + i, @@ -896,22 +711,22 @@ namespace PepperDash.Essentials.Room.MobileControl var volumes = new Volumes(); volumes.Master = new Volume("master", - EISC.UShortOutput[UshortJoin.MasterVolumeLevel].UShortValue, - EISC.BooleanOutput[BoolJoin.MasterVolumeIsMuted].BoolValue, - EISC.StringOutput[1].StringValue, + EISC.UShortOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.MasterVolume)].UShortValue, + EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.MasterVolume)].BoolValue, + EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.MasterVolume)].StringValue, true, "something.png"); volumes.Master.HasPrivacyMute = true; - volumes.Master.PrivacyMuted = EISC.BooleanOutput[BoolJoin.PrivacyMute].BoolValue; + volumes.Master.PrivacyMuted = EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.PrivacyMute)].BoolValue; volumes.AuxFaders = auxFaderDict; - volumes.NumberOfAuxFaders = EISC.UShortInput[UshortJoin.NumberOfAuxFaders].UShortValue; + volumes.NumberOfAuxFaders = EISC.UShortInput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.NumberOfAuxFaders)].UShortValue; PostStatusMessage(new { activityMode = GetActivityMode(), - isOn = EISC.BooleanOutput[BoolJoin.RoomIsOn].BoolValue, - selectedSourceKey = EISC.StringOutput[StringJoin.SelectedSourceKey].StringValue, + isOn = EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.RoomIsOn)].BoolValue, + selectedSourceKey = EISC.StringOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.SelectedSourceKey)].StringValue, volumes = volumes }); } @@ -930,9 +745,9 @@ namespace PepperDash.Essentials.Room.MobileControl /// int GetActivityMode() { - if (EISC.BooleanOutput[BoolJoin.ActivityPhoneCall].BoolValue) return 2; - else if (EISC.BooleanOutput[BoolJoin.ActivityShare].BoolValue) return 1; - else if (EISC.BooleanOutput[BoolJoin.ActivityVideoCall].BoolValue) return 3; + if (EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityPhoneCall)].BoolValue) return 2; + else if (EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityShare)].BoolValue) return 1; + else if (EISC.BooleanOutput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ActivityVideoCall)].BoolValue) return 3; return 0; } @@ -1009,8 +824,8 @@ namespace PepperDash.Essentials.Room.MobileControl protected override void UserCodeChange() { Debug.Console(1, this, "Server user code changed: {0}", UserCode); - EISC.StringInput[StringJoin.UserCodeToSystem].StringValue = UserCode; - EISC.StringInput[StringJoin.ServerUrl].StringValue = Parent.Config.ClientAppUrl; + EISC.StringInput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.UserCodeToSystem)].StringValue = UserCode; + EISC.StringInput[JoinMap.GetJoinForKey(MobileControlSIMPLRoomJoinMap.ServerUrl)].StringValue = Parent.Config.ClientAppUrl; } } } \ No newline at end of file diff --git a/PepperDashEssentials/AppServer/SIMPLJoinMaps/MobileControlSIMPLRoomJoinMap.cs b/PepperDashEssentials/AppServer/SIMPLJoinMaps/MobileControlSIMPLRoomJoinMap.cs index bcea7845..2544c94f 100644 --- a/PepperDashEssentials/AppServer/SIMPLJoinMaps/MobileControlSIMPLRoomJoinMap.cs +++ b/PepperDashEssentials/AppServer/SIMPLJoinMaps/MobileControlSIMPLRoomJoinMap.cs @@ -18,7 +18,7 @@ namespace PepperDash.Essentials.AppServer public const string ClientJoined = "ClientJoined"; public const string ActivityShare = "ActivityShare"; public const string ActivityPhoneCall = "ActivityPhoneCall"; - public const string ActivtyVideoCall = "ActivityVideoCall"; + public const string ActivityVideoCall = "ActivityVideoCall"; public const string MasterVolume = "MasterVolumeMute"; public const string VolumeJoinStart = "VolumeMutesJoinStart"; public const string ShutdownCancel = "ShutdownCancel"; @@ -67,15 +67,16 @@ namespace PepperDash.Essentials.AppServer Joins.Add(ClientJoined, new JoinMetadata() { JoinNumber = 42, Label = "Client Joined", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(ActivityShare, new JoinMetadata() { JoinNumber = 51, Label = "Activity Share", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(ActivityPhoneCall, new JoinMetadata() { JoinNumber = 52, Label = "Activity Phone Call", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); - Joins.Add(ActivtyVideoCall, new JoinMetadata() { JoinNumber = 53, Label = "Activity Video Call", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(ActivityVideoCall, new JoinMetadata() { JoinNumber = 53, Label = "Activity Video Call", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(MasterVolume, new JoinMetadata() { JoinNumber = 1, Label = "Master Volume Mute Toggle/FB/Level/Label", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.DigitalAnalogSerial }); - Joins.Add(VolumeJoinStart, new JoinMetadata() { JoinNumber = 2, Label = "Volume Mute Toggle/FB/Level/Label", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 9, JoinType = eJoinType.DigitalAnalogSerial }); + Joins.Add(VolumeJoinStart, new JoinMetadata() { JoinNumber = 2, Label = "Volume Mute Toggle/FB/Level/Label", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 8, JoinType = eJoinType.DigitalAnalogSerial }); Joins.Add(ShutdownCancel, new JoinMetadata() { JoinNumber = 61, Label = "Shutdown Cancel", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(ShutdownEnd, new JoinMetadata() { JoinNumber = 62, Label = "Shutdown End", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(ShutdownStart, new JoinMetadata() { JoinNumber = 63, Label = "ShutdownStart", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(SourceHasChanged, new JoinMetadata() { JoinNumber = 71, Label = "Source Changed", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); // Possibly move these to Audio Codec Messenger Joins.Add(SpeedDialVisibleStartJoin, new JoinMetadata() { JoinNumber = 261, Label = "Speed Dial Visible", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 10, JoinType = eJoinType.Digital }); + // Joins.Add(ConfigIsReady, new JoinMetadata() { JoinNumber = 501, Label = "Config info from SIMPL is ready", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(HideVideoConfRecents, new JoinMetadata() { JoinNumber = 502, Label = "Hide Video Conference Recents", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(ShowCameraWhenNotInCall, new JoinMetadata() { JoinNumber = 503, Label = "Show camera when not in call", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); @@ -93,6 +94,7 @@ namespace PepperDash.Essentials.AppServer // Possibly move these to Audio Codec Messenger Joins.Add(SpeedDialNameStartJoin, new JoinMetadata() { JoinNumber = 241, Label = "Speed Dial names", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 10, JoinType = eJoinType.Serial }); Joins.Add(SpeedDialNumberStartJoin, new JoinMetadata() { JoinNumber = 251, Label = "Speed Dial numbers", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 10, JoinType = eJoinType.Serial }); + // Joins.Add(UserCodeToSystem, new JoinMetadata() { JoinNumber = 401, Label = "User Ccde", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinSpan = 1, JoinType = eJoinType.Serial }); Joins.Add(ServerUrl, new JoinMetadata() { JoinNumber = 402, Label = "Server URL", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinSpan = 1, JoinType = eJoinType.Serial }); Joins.Add(ConfigRoomName, new JoinMetadata() { JoinNumber = 501, Label = "Room Nnme", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Serial }); @@ -105,8 +107,10 @@ namespace PepperDash.Essentials.AppServer Joins.Add(SourceKeyJoinStart, new JoinMetadata() { JoinNumber = 641, Label = "Source Keys", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 20, JoinType = eJoinType.Serial }); Joins.Add(SourceTypeJoinStart, new JoinMetadata() { JoinNumber = 661, Label = "Source Types", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 20, JoinType = eJoinType.Serial }); + // Possibly move these to Audio Codec Messenger Joins.Add(CameraNearNameStart, new JoinMetadata() { JoinNumber = 761, Label = "Near End Camera Names", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 10, JoinType = eJoinType.Serial }); - Joins.Add(CameraNearNameStart, new JoinMetadata() { JoinNumber = 770, Label = "Far End Camera Name", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Serial }); + Joins.Add(CameraFarName, new JoinMetadata() { JoinNumber = 770, Label = "Far End Camera Name", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Serial }); + // } public override void OffsetJoinNumbers(uint joinStart) diff --git a/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs index aa86b96d..ce4594bc 100644 --- a/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs +++ b/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs @@ -26,13 +26,19 @@ namespace PepperDash.Essentials.Bridges public const string PresetSaveStart = "PresetSaveStart"; public const string PresetLabelStart = "PresetReacllStgart"; public const string NumberOfPresets = "NumberOfPresets"; + public const string CameraModeAuto = "CameraModeAuto"; + public const string CameraModeManual = "CameraModeManual"; + public const string CameraModeOff = "CameraModeOff"; + public const string SupportsCameraModeAuto = "SupportsCameraModeAuto"; + public const string SupportsCameraModeOff = "SupportsCameraModeOff"; + public const string SupportsPresets = "SupportsPresets"; public CameraControllerJoinMap() { - Joins.Add(TiltUp, new JoinMetadata() - { JoinNumber = 1, Label = "Tilt Up", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(TiltDown, new JoinMetadata() - { JoinNumber = 2, Label = "TiltDown", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); + { JoinNumber = 1, Label = "Tilt Up", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(TiltDown, new JoinMetadata() + { JoinNumber = 2, Label = "Tilt Down", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(PanLeft, new JoinMetadata() { JoinNumber = 3, Label = "Pan Left", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); Joins.Add(PanRight, new JoinMetadata() @@ -60,6 +66,19 @@ namespace PepperDash.Essentials.Bridges Joins.Add(NumberOfPresets, new JoinMetadata() { JoinNumber = 11, Label = "Number of Presets", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Analog }); + Joins.Add(CameraModeAuto, new JoinMetadata() + { JoinNumber = 51, Label = "Camera Mode Auto", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(CameraModeManual, new JoinMetadata() + { JoinNumber = 52, Label = "Camera Mode Manual", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(CameraModeOff, new JoinMetadata() + { JoinNumber = 53, Label = "Camera Mode Off", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); + + Joins.Add(SupportsCameraModeAuto, new JoinMetadata() + { JoinNumber = 55, Label = "Supports Camera Mode Auto", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(SupportsCameraModeOff, new JoinMetadata() + { JoinNumber = 56, Label = "Supports Camera Mode Off", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(SupportsPresets, new JoinMetadata() + { JoinNumber = 57, Label = "Supports Presets", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinSpan = 1, JoinType = eJoinType.Digital }); } public override void OffsetJoinNumbers(uint joinStart) diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/JoinMaps/JoinMapBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/JoinMaps/JoinMapBase.cs index 6a8dc7ce..620e3b14 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/JoinMaps/JoinMapBase.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/JoinMaps/JoinMapBase.cs @@ -111,6 +111,18 @@ namespace PepperDash.Essentials.Core else return 0; } + /// + /// Returns the join span for the join with the specified key + /// + /// + /// + public uint GetJoinSpanForKey(string key) + { + if (Joins.ContainsKey(key)) + return Joins[key].JoinSpan; + + else return 0; + } }