From 8352d5086fcc7808b35f0265a1d2c9cb97f4a748 Mon Sep 17 00:00:00 2001 From: Trevor Payne Date: Mon, 17 Oct 2022 17:53:43 -0500 Subject: [PATCH] feature: started to add ability to override IRSettopbox button layout --- .../SetTopBox/IRSetTopBoxBase.cs | 36 +++++++++++++++++-- .../SetTopBox/SetTopBoxPropertiesConfig.cs | 28 ++++++++++++++- 2 files changed, 60 insertions(+), 4 deletions(-) diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/SetTopBox/IRSetTopBoxBase.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/SetTopBox/IRSetTopBoxBase.cs index db72d8eb..c9bb4f43 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/SetTopBox/IRSetTopBoxBase.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/SetTopBox/IRSetTopBoxBase.cs @@ -28,6 +28,7 @@ namespace PepperDash.Essentials.Devices.Common public bool HasDvr { get; set; } public bool HasDpad { get; set; } public bool HasNumeric { get; set; } + private bool _OverrideKeypadEnter; public DevicePresetsModel TvPresets { get; private set; } @@ -56,7 +57,31 @@ namespace PepperDash.Essentials.Devices.Common HasKeypadAccessoryButton2 = true; KeypadAccessoryButton2Command = "KEYPAD_ENTER"; - KeypadAccessoryButton2Label = "Enter"; + KeypadAccessoryButton2Label = "Enter"; + + + + if (props.AccessoryButton1Override != null) + { + KeypadAccessoryButton1Command = !String.IsNullOrEmpty(props.AccessoryButton1Override.Command) + ? props.AccessoryButton1Override.Command + : KeypadAccessoryButton1Command; + KeypadAccessoryButton1Label = !String.IsNullOrEmpty(props.AccessoryButton1Override.Label) + ? props.AccessoryButton1Override.Label + : KeypadAccessoryButton1Label; + } + if (props.AccessoryButton2Override != null) + { + KeypadAccessoryButton2Command = !String.IsNullOrEmpty(props.AccessoryButton2Override.Command) + ? props.AccessoryButton2Override.Command + : KeypadAccessoryButton2Command; + KeypadAccessoryButton2Label = !String.IsNullOrEmpty(props.AccessoryButton2Override.Label) + ? props.AccessoryButton2Override.Label + : KeypadAccessoryButton2Label; + } + _OverrideKeypadEnter = props.UseStandardEnterForKeypad; + + AnyVideoOut = new RoutingOutputPort(RoutingPortNames.AnyVideoOut, eRoutingSignalType.Audio | eRoutingSignalType.Video, eRoutingPortConnectionType.Hdmi, null, this); @@ -187,7 +212,7 @@ namespace PepperDash.Essentials.Devices.Common /// public string KeypadAccessoryButton1Label { get; set; } - + /// /// Defaults to "Dash" /// @@ -236,7 +261,12 @@ namespace PepperDash.Essentials.Devices.Common /// public void KeypadEnter(bool pressRelease) { - IrPort.PressRelease("numericEnter", pressRelease); + if (!_OverrideKeypadEnter) + { + IrPort.PressRelease("numericEnter", pressRelease); + return; + } + IrPort.PressRelease(IROutputStandardCommands.IROut_ENTER, pressRelease); } #endregion diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/SetTopBox/SetTopBoxPropertiesConfig.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/SetTopBox/SetTopBoxPropertiesConfig.cs index 8faac507..badbf912 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/SetTopBox/SetTopBoxPropertiesConfig.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/SetTopBox/SetTopBoxPropertiesConfig.cs @@ -5,10 +5,11 @@ using System.Text; using Crestron.SimplSharp; using PepperDash.Core; +using PepperDash.Essentials.Core.Config; namespace PepperDash.Essentials.Devices.Common { - public class SetTopBoxPropertiesConfig : PepperDash.Essentials.Core.Config.SourceDevicePropertiesConfigBase + public class SetTopBoxPropertiesConfig : SourceDevicePropertiesConfigBase { public bool HasPresets { get; set; } public bool HasDvr { get; set; } @@ -16,6 +17,31 @@ namespace PepperDash.Essentials.Devices.Common public bool HasNumeric { get; set; } public int IrPulseTime { get; set; } + public bool UseStandardEnterForKeypad { get; set; } + + public CommandOverride AccessoryButton1Override { get; set; } + public CommandOverride AccessoryButton2Override { get; set; } + //public List CommandOverrides { get; set; } + + + + public ControlPropertiesConfig Control { get; set; } } + + /// + /// Object for overriding standard IR commands + /// + public class CommandOverride + { + /// + /// The command in essentials to replace + /// + public string Command { get; set; } + /// + /// the value to replace the essentials command with + /// + public string Label { get; set; } + } + } \ No newline at end of file