From c9178aef7698c83d5113f5932f48abcdd05be0ad Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Fri, 28 Aug 2020 00:12:01 -0600 Subject: [PATCH] Everything working except the actions to select cameras --- .../UI/JoinConstants/UISmartObjectJoin.cs | 2 +- .../VC/EssentialsVideoCodecUiDriver.cs | 58 ++++++++++++++++--- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs b/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs index b66a471a..b48d78c9 100644 --- a/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs +++ b/PepperDashEssentials/UI/JoinConstants/UISmartObjectJoin.cs @@ -44,7 +44,7 @@ public const uint VCCameraDpad = 1207; /// - /// 1207 VC Camera Mode Dpad + /// 1208 VC Camera Select /// public const uint VCCameraSelect = 1208; diff --git a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs index fcbfff94..8b0f5ef4 100644 --- a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs +++ b/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs @@ -178,7 +178,6 @@ namespace PepperDash.Essentials.UIDrivers.VC SetupDirectoryList(); - SetupCameraControls(); SearchStringBackspaceVisibleFeedback = new BoolFeedback(() => SearchStringBuilder.Length > 0); SearchStringBackspaceVisibleFeedback.LinkInputSig(triList.BooleanInput[UIBoolJoin.VCDirectoryBackspaceVisible]); @@ -215,6 +214,8 @@ namespace PepperDash.Essentials.UIDrivers.VC if(HeaderDriver.HeaderButtonsAreSetUp) HeaderDriver.ComputeHeaderCallStatus(Codec); + + SetupCameraControls(); } void SetupAddresses() @@ -580,11 +581,31 @@ namespace PepperDash.Essentials.UIDrivers.VC if(camerasCodec != null) { - TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].UShortInput["Set Number of Items"].UShortValue = (ushort)camerasCodec.Cameras.Count; - TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].UShortOutput["Item Clicked"].SetUShortSigAction( - (u) => camerasCodec.SelectCamera(camerasCodec.Cameras[u - 1].Key)); + //CameraSelectList = new SmartObjectDynamicList(TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect], true, 0); + + + for (uint i = 1; i <= camerasCodec.Cameras.Count; i++) + { + var cameraKey = camerasCodec.Cameras[(int)i - 1].Key; + Debug.Console(1, "Setting up action for Camera {0} with Key: {1}", i, cameraKey); + + //TODO: Fix camera selection action. For some reson this action doesn't execute when the buttons are pressed + TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].BooleanOutput[string.Format("Item {0} Pressed", i)].SetSigFalseAction( + () => + { + camerasCodec.SelectCamera(cameraKey); + }); + } + + TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].UShortInput["Set Number of Items"].UShortValue = (ushort)camerasCodec.Cameras.Count; + //TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].UShortOutput["Item Clicked"].SetUShortSigAction( + // (u) => + // { + // var cameraKey = camerasCodec.Cameras[u - 1].Key; + // Debug.Console(1, "Selecting Camera {0} with Key: {1}", u, cameraKey); + // camerasCodec.SelectCamera(cameraKey); + // }); - //TODO: Fix camera selection and labels // Set the names for the cameras for (int i = 1; i <= camerasCodec.Cameras.Count; i++) @@ -592,7 +613,7 @@ namespace PepperDash.Essentials.UIDrivers.VC TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].StringInput[string.Format("Set Item {0} Text", i)].StringValue = camerasCodec.Cameras[i - 1].Name; } - + SetCameraSelectedFeedback(); camerasCodec.CameraSelected += new EventHandler(camerasCodec_CameraSelected); MapCameraActions(); } @@ -637,9 +658,32 @@ namespace PepperDash.Essentials.UIDrivers.VC } - void camerasCodec_CameraSelected(object sender, CameraSelectedEventArgs e) + void camerasCodec_CameraSelected(object sender, CameraSelectedEventArgs e) { MapCameraActions(); + + SetCameraSelectedFeedback(); + } + + /// + /// Set the feedback for the button of the selected camera + /// + void SetCameraSelectedFeedback() + { + var camerasCodec = Codec as IHasCameras; + + for (int i = 1; i <= camerasCodec.Cameras.Count; i++) + { + var cameraSelected = camerasCodec.SelectedCameraFeedback.StringValue; + var state = false; + if (cameraSelected == camerasCodec.Cameras[i - 1].Key) + { + state = true; + } + + TriList.SmartObjects[UISmartObjectJoin.VCCameraSelect].BooleanInput[string.Format("Item {0} Selected", i)].BoolValue = state; + } + } void SetupPresets()