diff --git a/Essentials Core/PepperDashEssentialsBase/SmartObjects/SmartObjectHelperBase.cs b/Essentials Core/PepperDashEssentialsBase/SmartObjects/SmartObjectHelperBase.cs index 741eec45..6fadf491 100644 --- a/Essentials Core/PepperDashEssentialsBase/SmartObjects/SmartObjectHelperBase.cs +++ b/Essentials Core/PepperDashEssentialsBase/SmartObjects/SmartObjectHelperBase.cs @@ -6,6 +6,8 @@ using Crestron.SimplSharp; using Crestron.SimplSharpPro; using Crestron.SimplSharpPro.DeviceSupport; +using PepperDash.Core; + namespace PepperDash.Essentials.Core.SmartObjects { public class SmartObjectHelperBase @@ -33,13 +35,37 @@ namespace PepperDash.Essentials.Core.SmartObjects SmartObject.SigChange -= this.SmartObject_SigChange; } + /// + /// Helper to get a sig name with debugging when fail + /// + /// + /// public BoolOutputSig GetBoolOutputNamed(string name) { if (SmartObject.BooleanOutput.Contains(name)) return SmartObject.BooleanOutput[name]; + else + Debug.Console(0, "WARNING: Cannot get signal. Smart object {0} on trilist {1:x2} does not contain signal '{2}'", + SmartObject.ID, SmartObject.Device.ID, name); return null; } + /// + /// Sets action on signal after checking for existence. + /// + /// + /// + public void SetBoolAction(string name, Action a) + { + if (SmartObject.BooleanOutput.Contains(name)) + SmartObject.BooleanOutput[name].UserObject = a; + else + { + Debug.Console(0, "WARNING: Cannot set action. Smart object {0} on trilist {1:x2} does not contain signal '{2}'", + SmartObject.ID, SmartObject.Device.ID, name); + } + } + /// /// Standard Action listener /// diff --git a/Essentials Core/PepperDashEssentialsBase/SmartObjects/SmartObjectNumeric.cs b/Essentials Core/PepperDashEssentialsBase/SmartObjects/SmartObjectNumeric.cs index 5d234634..7e574242 100644 --- a/Essentials Core/PepperDashEssentialsBase/SmartObjects/SmartObjectNumeric.cs +++ b/Essentials Core/PepperDashEssentialsBase/SmartObjects/SmartObjectNumeric.cs @@ -10,6 +10,14 @@ namespace PepperDash.Essentials.Core.SmartObjects { public class SmartObjectNumeric : SmartObjectHelperBase { + /// + /// Defaults to "Misc_1". The name of the button in VTPro (Usually the text) + /// + public string Misc1SigName { get; set; } + /// + /// Defaults to "Misc_2". The name of the button in VTPro (Usually the text) + /// + public string Misc2SigName { get; set; } public BoolOutputSig Digit1 { get { return GetBoolOutputNamed("1"); } } public BoolOutputSig Digit2 { get { return GetBoolOutputNamed("2"); } } @@ -21,11 +29,13 @@ namespace PepperDash.Essentials.Core.SmartObjects public BoolOutputSig Digit8 { get { return GetBoolOutputNamed("8"); } } public BoolOutputSig Digit9 { get { return GetBoolOutputNamed("9"); } } public BoolOutputSig Digit0 { get { return GetBoolOutputNamed("0"); } } - public BoolOutputSig Misc1 { get { return GetBoolOutputNamed("Misc_1"); } } - public BoolOutputSig Misc2 { get { return GetBoolOutputNamed("Misc_2"); } } + public BoolOutputSig Misc1 { get { return GetBoolOutputNamed(Misc1SigName); } } + public BoolOutputSig Misc2 { get { return GetBoolOutputNamed(Misc2SigName); } } public SmartObjectNumeric(SmartObject so, bool useUserObjectHandler) : base(so, useUserObjectHandler) { + Misc1SigName = "Misc_1"; + Misc2SigName = "Misc_2"; } } } \ No newline at end of file diff --git a/Essentials Core/PepperDashEssentialsBase/Touchpanels/TriListExtensions.cs b/Essentials Core/PepperDashEssentialsBase/Touchpanels/TriListExtensions.cs index 26bed9c0..be666c5f 100644 --- a/Essentials Core/PepperDashEssentialsBase/Touchpanels/TriListExtensions.cs +++ b/Essentials Core/PepperDashEssentialsBase/Touchpanels/TriListExtensions.cs @@ -17,7 +17,8 @@ namespace PepperDash.Essentials.Core public static class SigAndTriListExtensions { /// - /// Attaches Action to Sig's user object and returns the same Sig. + /// Attaches Action to Sig's user object and returns the same Sig. This provides no protection + /// from null sigs /// /// The BoolOutputSig to attach the Action to /// An action to run when sig is pressed and when released diff --git a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs index f226f95d..b54e40f6 100644 --- a/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs +++ b/Essentials/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs @@ -139,6 +139,10 @@ namespace PepperDash.Essentials /// 1234 /// public const uint VCStagingConnectPress = 1234; + /// + /// 1235 + /// + public const uint VCStagingCameraPress = 1235; //****************************************************** // Keyboard diff --git a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/HuddleVTCPanelAvFunctionsDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/HuddleVTCPanelAvFunctionsDriver.cs index 893d21e0..cb05d1b5 100644 --- a/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/HuddleVTCPanelAvFunctionsDriver.cs +++ b/Essentials/PepperDashEssentials/UIDrivers/EssentialsHuddleVTC/HuddleVTCPanelAvFunctionsDriver.cs @@ -385,36 +385,7 @@ namespace PepperDash.Essentials EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(3, 1); ShareButtonSig.BoolValue = CurrentRoom.OnFeedback.BoolValue; - } - - ///// - ///// Builds the call stage - ///// - //void SetupCallStagingSrl() - //{ - // CallStagingSrl = new SubpageReferenceList(TriList, UISmartObjectJoin.CallStagingSrl, 3, 3, 3); - // var c = CallStagingSrl; - // c.AddItem(new SubpageReferenceListButtonAndModeItem(1, c, 1, b => { if (!b) { } })); //************ Camera - // c.AddItem(new SubpageReferenceListButtonAndModeItem(2, c, 2, b => { if (!b) { } })); //************ Directory - // c.AddItem(new SubpageReferenceListButtonAndModeItem(3, c, 3, b => { if (!b) { } })); //************ Keypad - // c.AddItem(new SubpageReferenceListButtonAndModeItem(4, c, 4, b => { if (!b) { } })); //************ End Call - // c.Count = 3; - //} - - /// - /// This may need to be part of an event handler routine from codec feedback. - /// Adds End Call to Call Staging list - /// - void SetupEndCall() - { - } - - /// - /// Part of event handler? Removes End Call from Call Staging - /// - void HideEndCall() - { - } + } /// /// @@ -424,6 +395,7 @@ namespace PepperDash.Essentials if (VCDriver.IsVisible) return; CallButtonSig.BoolValue = true; + ShareButtonSig.BoolValue = false; TriList.SetBool(UIBoolJoin.StartPageVisible, false); TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, false); TriList.SetBool(UIBoolJoin.SelectASourceVisible, false); @@ -438,6 +410,7 @@ namespace PepperDash.Essentials if (VCDriver.IsVisible) VCDriver.Hide(); ShareButtonSig.BoolValue = true; + CallButtonSig.BoolValue = false; TriList.SetBool(UIBoolJoin.StartPageVisible, false); TriList.SetBool(UIBoolJoin.SourceStagingBarVisible, true); TriList.SetBool(UIBoolJoin.SelectASourceVisible, true); diff --git a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsCiscoSparkUiDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsCiscoSparkUiDriver.cs index 5d80ef2a..171ffcee 100644 --- a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsCiscoSparkUiDriver.cs +++ b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsCiscoSparkUiDriver.cs @@ -44,6 +44,11 @@ namespace PepperDash.Essentials.UIDrivers.VC /// JoinedSigInterlock StagingBarInterlock; + /// + /// For the staging button feedbacks + /// + JoinedSigInterlock StagingButtonFeedbackInterlock; + SmartObjectNumeric DialKeypad; /// @@ -65,8 +70,12 @@ namespace PepperDash.Essentials.UIDrivers.VC VCControlsInterlock = new JoinedSigInterlock(triList); VCControlsInterlock.SetButDontShow(UIBoolJoin.VCRecentsVisible); + StagingBarInterlock = new JoinedSigInterlock(triList); - VCControlsInterlock.SetButDontShow(UIBoolJoin.VCStagingInactivePopoverVisible); + StagingBarInterlock.SetButDontShow(UIBoolJoin.VCStagingInactivePopoverVisible); + + StagingButtonFeedbackInterlock = new JoinedSigInterlock(triList); + StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCRecentsVisible); } /// @@ -118,7 +127,9 @@ namespace PepperDash.Essentials.UIDrivers.VC DialKeypad.Digit7.SetBoolSigAction(b => ___DialPlaceholder___(7)); DialKeypad.Digit8.SetBoolSigAction(b => ___DialPlaceholder___(8)); DialKeypad.Digit9.SetBoolSigAction(b => ___DialPlaceholder___(9)); + DialKeypad.Misc1SigName = "*"; DialKeypad.Misc1.SetBoolSigAction(b => { }); + DialKeypad.Misc2SigName = "#"; DialKeypad.Misc2.SetBoolSigAction(b => { }); } else @@ -132,21 +143,27 @@ namespace PepperDash.Essentials.UIDrivers.VC void ShowCameraControls() { VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCCameraVisible); + StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingCameraPress); } void ShowKeypad() { VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible); + StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress); } void ShowDirectory() { + // populate directory VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCDirectoryVisible); + StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingDirectoryPress); } void ShowRecents() { - VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCRecentsVisible); + //populate recents + VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCDirectoryVisible); + StagingButtonFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingRecentsPress); } void CallHasStarted() @@ -166,20 +183,7 @@ namespace PepperDash.Essentials.UIDrivers.VC void ___DialPlaceholder___(int i) { - - } - - - - public class BoolJoin - { - public const uint CameraControlsVisible = 3001; - - public const uint KeypadVisbile = 3002; - - public const uint DirectoryVisible = 3003; - - + throw new NotImplementedException(); } } } \ No newline at end of file diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz index cea06cac..9d6c6cf2 100644 Binary files a/Release Package/PepperDashEssentials.cpz and b/Release Package/PepperDashEssentials.cpz differ diff --git a/Release Package/PepperDashEssentials.dll b/Release Package/PepperDashEssentials.dll index 5d699ab8..442bd101 100644 Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ