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