From e3f5d74e7ebcdfd1dae4705dc0908f8cbbc0cb2c Mon Sep 17 00:00:00 2001 From: Jason Alborough Date: Sun, 25 Jul 2021 11:52:10 -0400 Subject: [PATCH] feature(feedbacks): adds public property AlwaysSendValue and new constructor to Bool, Int, and String Feedbacks that will always perform a FireUpdate event even when value is the same. --- .../PepperDashEssentialsBase/Feedbacks/BoolFeedback.cs | 9 ++++++++- .../PepperDashEssentialsBase/Feedbacks/IntFeedback.cs | 9 ++++++++- .../PepperDashEssentialsBase/Feedbacks/StringFeedback.cs | 9 +++++++-- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/BoolFeedback.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/BoolFeedback.cs index f46b4767..650b238a 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/BoolFeedback.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/BoolFeedback.cs @@ -18,6 +18,7 @@ namespace PepperDash.Essentials.Core /// public override bool BoolValue { get { return _BoolValue; } } bool _BoolValue; + public bool AlwaysSendValue; /// /// Fake value to be used in test mode @@ -62,10 +63,16 @@ namespace PepperDash.Essentials.Core ValueFunc = valueFunc; } + public BoolFeedback(string key, bool alwaysSendValue, Func valueFunc) + : this(key, valueFunc) + { + AlwaysSendValue = alwaysSendValue; + } + public override void FireUpdate() { bool newValue = InTestMode ? TestValue : ValueFunc.Invoke(); - if (newValue != _BoolValue) + if (newValue != _BoolValue || AlwaysSendValue) { _BoolValue = newValue; LinkedInputSigs.ForEach(s => UpdateSig(s)); diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/IntFeedback.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/IntFeedback.cs index 25390c2c..d0d71bd5 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/IntFeedback.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/IntFeedback.cs @@ -12,6 +12,7 @@ namespace PepperDash.Essentials.Core public override int IntValue { get { return _IntValue; } } // ValueFunc.Invoke(); } } int _IntValue; public ushort UShortValue { get { return (ushort)_IntValue; } } + public bool AlwaysSendValue; //public override eCueType Type { get { return eCueType.Int; } } @@ -51,10 +52,16 @@ namespace PepperDash.Essentials.Core ValueFunc = valueFunc; } + public IntFeedback(string key, bool alwaysSendValue, Func valueFunc) + : this(key, valueFunc) + { + AlwaysSendValue = alwaysSendValue; + } + public override void FireUpdate() { var newValue = InTestMode ? TestValue : ValueFunc.Invoke(); - if (newValue != _IntValue) + if (newValue != _IntValue || AlwaysSendValue) { _IntValue = newValue; LinkedInputSigs.ForEach(s => UpdateSig(s)); diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/StringFeedback.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/StringFeedback.cs index 56251a2e..922999d9 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/StringFeedback.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Feedbacks/StringFeedback.cs @@ -23,6 +23,7 @@ namespace PepperDash.Essentials.Core /// public Func ValueFunc { get; private set; } List LinkedInputSigs = new List(); + public bool AlwaysSendValue; /// /// Creates the feedback with the Func as described. @@ -51,13 +52,17 @@ namespace PepperDash.Essentials.Core { ValueFunc = valueFunc; } - + public StringFeedback(string key, bool alwaysSendValue, Func valueFunc) + : this(key, valueFunc) + { + AlwaysSendValue = alwaysSendValue; + } public override void FireUpdate() { var newValue = InTestMode ? TestValue : ValueFunc.Invoke(); - if (newValue != _StringValue) + if (newValue != _StringValue || AlwaysSendValue) { _StringValue = newValue; LinkedInputSigs.ForEach(s => UpdateSig(s));