From 59234274dc1f687a0700a5ba581f550209c7cbf8 Mon Sep 17 00:00:00 2001 From: Heath Volmer Date: Mon, 25 Feb 2019 17:51:17 -0700 Subject: [PATCH] Source-none confirmed; camera selects and FB --- .../Messengers/Ddvc01VtcMessenger.cs | 55 ++++++++++++++----- .../RoomBridges/CotijaDdvc01RoomBridge.cs | 41 ++++++++++++-- 2 files changed, 77 insertions(+), 19 deletions(-) diff --git a/PepperDashEssentials/AppServer/Messengers/Ddvc01VtcMessenger.cs b/PepperDashEssentials/AppServer/Messengers/Ddvc01VtcMessenger.cs index 00aceeae..d6f20ab4 100644 --- a/PepperDashEssentials/AppServer/Messengers/Ddvc01VtcMessenger.cs +++ b/PepperDashEssentials/AppServer/Messengers/Ddvc01VtcMessenger.cs @@ -122,17 +122,15 @@ namespace PepperDash.Essentials.AppServer.Messengers /// 833 /// const uint BCameraModeOff = 833; - /// - /// 836 - /// - const uint BCameraNearEnd = 836; - /// - /// 837 - /// - const uint BCameraFarEnd = 837; + + /********* Ushorts *********/ /// + /// 760 + /// + const uint UCameraNumberSelect = 760; + /// /// 801 /// const uint UDirectorySelectRow = 801; @@ -141,6 +139,8 @@ namespace PepperDash.Essentials.AppServer.Messengers /// const uint UDirectoryRowCount = 801; + + /********* Strings *********/ /// /// 701 @@ -170,6 +170,7 @@ namespace PepperDash.Essentials.AppServer.Messengers /// 752 /// const uint SIncomingCallNumber = 752; + /// /// 800 /// @@ -329,8 +330,8 @@ namespace PepperDash.Essentials.AppServer.Messengers EISC.SetSigTrueAction(BCameraModeManual, () => PostCameraMode()); EISC.SetSigTrueAction(BCameraModeOff, () => PostCameraMode()); - EISC.SetSigTrueAction(BCameraNearEnd, PostSelectedCamera); - EISC.SetSigTrueAction(BCameraFarEnd, PostSelectedCamera); + EISC.SetUShortSigAction(UCameraNumberSelect, (u) => PostSelectedCamera()); + // Add press and holds using helper action Action addPHAction = (s, u) => @@ -355,9 +356,8 @@ namespace PepperDash.Essentials.AppServer.Messengers addAction("/cameraModeAuto", BCameraModeAuto); addAction("/cameraModeManual", BCameraModeManual); addAction("/cameraModeOff", BCameraModeOff); - addAction("/cameraFarEnd", BCameraFarEnd); - addAction("/cameraNearEnd", BCameraNearEnd); + asc.AddAction("/cameraSelect", new Action(SelectCamera)); // camera presets for(uint i = 0; i < 6; i++) @@ -369,7 +369,8 @@ namespace PepperDash.Essentials.AppServer.Messengers // Get status asc.AddAction(MessagePath + "/fullStatus", new Action(PostFullStatus)); // Dial on string - asc.AddAction(MessagePath + "/dial", new Action(s => EISC.SetString(SCurrentDialString, s))); + asc.AddAction(MessagePath + "/dial", new Action(s => + EISC.SetString(SCurrentDialString, s))); // Pulse DTMF asc.AddAction(MessagePath + "/dtmf", new Action(s => { @@ -531,9 +532,16 @@ namespace PepperDash.Essentials.AppServer.Messengers /// string GetSelectedCamera() { + var num = EISC.GetUshort(UCameraNumberSelect); string m; - if (EISC.GetBool(BCameraNearEnd)) m = "camera1"; - else m = "cameraFar"; + if (num == 100) + { + m = "cameraFar"; + } + else + { + m = "camera" + num; + } return m; } @@ -559,6 +567,23 @@ namespace PepperDash.Essentials.AppServer.Messengers }); } + /// + /// + /// + /// + void SelectCamera(string s) + { + var cam = s.Substring(6); + if (cam.ToLower() == "far") + { + EISC.SetUshort(UCameraNumberSelect, 100); + } + else + { + EISC.SetUshort(UCameraNumberSelect, UInt16.Parse(cam)); + } + } + /// /// Turns the /// diff --git a/PepperDashEssentials/AppServer/RoomBridges/CotijaDdvc01RoomBridge.cs b/PepperDashEssentials/AppServer/RoomBridges/CotijaDdvc01RoomBridge.cs index b6c7f7f7..fdd73989 100644 --- a/PepperDashEssentials/AppServer/RoomBridges/CotijaDdvc01RoomBridge.cs +++ b/PepperDashEssentials/AppServer/RoomBridges/CotijaDdvc01RoomBridge.cs @@ -184,8 +184,14 @@ namespace PepperDash.Essentials.Room.Cotija /// 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; } /// @@ -525,7 +531,7 @@ namespace PepperDash.Essentials.Room.Cotija newSl.Add("Source-None", codecOsd); } // add sources... - for (uint i = 0; i<= 19; i++) + for (uint i = 0; i <= 19; i++) { var name = EISC.StringOutput[StringJoin.SourceNameJoinStart + i].StringValue; if(string.IsNullOrEmpty(name)) @@ -622,9 +628,36 @@ namespace PepperDash.Essentials.Room.Cotija }); } + + + // cameras + var camsProps = new List(); + for (uint i = 0; i < 9; i++) + { + var name = EISC.GetString(i + StringJoin.CameraNearNameStart); + if (!string.IsNullOrEmpty(name)) + { + camsProps.Add(new + { + name = name, + selector = "camera" + (i + 1), + }); + } + } + var farName = EISC.GetString(StringJoin.CameraFarName); + if (!string.IsNullOrEmpty(farName)) + { + camsProps.Add(new + { + name = farName, + selector = "cameraFar", + }); + } + var props = new { - favorites = favs + favorites = favs, + cameras = camsProps, }; var str = "videoCodec"; var conf = new DeviceConfig()