diff --git a/src/PepperDash.Essentials.Devices.Common/Displays/DisplayBase.cs b/src/PepperDash.Essentials.Devices.Common/Displays/DisplayBase.cs
index c94591a3..ae070387 100644
--- a/src/PepperDash.Essentials.Devices.Common/Displays/DisplayBase.cs
+++ b/src/PepperDash.Essentials.Devices.Common/Displays/DisplayBase.cs
@@ -430,95 +430,4 @@ namespace PepperDash.Essentials.Devices.Common.Displays
}
}
-
- ///
- /// Abstract base class for two-way display devices that provide feedback capabilities.
- /// Extends DisplayBase with routing feedback and power control feedback functionality.
- ///
- public abstract class TwoWayDisplayBase : DisplayBase, IRoutingFeedback, IHasPowerControlWithFeedback
- {
- ///
- /// Gets feedback for the current input selection on the display.
- ///
- public StringFeedback CurrentInputFeedback { get; private set; }
-
- ///
- /// Abstract function that must be implemented by derived classes to provide the current input feedback value.
- /// Must be implemented by concrete sub-classes.
- ///
- abstract protected Func CurrentInputFeedbackFunc { get; }
-
- ///
- /// Gets feedback indicating whether the display is currently powered on.
- ///
- public BoolFeedback PowerIsOnFeedback { get; protected set; }
-
- ///
- /// Abstract function that must be implemented by derived classes to provide the power state feedback value.
- /// Must be implemented by concrete sub-classes.
- ///
- abstract protected Func PowerIsOnFeedbackFunc { get; }
-
- ///
- /// Gets the default mock display instance for testing and development purposes.
- ///
- public static MockDisplay DefaultDisplay
- {
- get
- {
- if (_DefaultDisplay == null)
- _DefaultDisplay = new MockDisplay("default", "Default Display");
- return _DefaultDisplay;
- }
- }
- static MockDisplay _DefaultDisplay;
-
- ///
- /// Initializes a new instance of the TwoWayDisplayBase class.
- ///
- /// The unique key identifier for this display device.
- /// The friendly name for this display device.
- public TwoWayDisplayBase(string key, string name)
- : base(key, name)
- {
- CurrentInputFeedback = new StringFeedback(CurrentInputFeedbackFunc);
-
- WarmupTime = 7000;
- CooldownTime = 15000;
-
- PowerIsOnFeedback = new BoolFeedback("PowerOnFeedback", PowerIsOnFeedbackFunc);
-
- Feedbacks.Add(CurrentInputFeedback);
- Feedbacks.Add(PowerIsOnFeedback);
-
- PowerIsOnFeedback.OutputChange += PowerIsOnFeedback_OutputChange;
-
- }
-
- void PowerIsOnFeedback_OutputChange(object sender, EventArgs e)
- {
- if (UsageTracker != null)
- {
- if (PowerIsOnFeedback.BoolValue)
- UsageTracker.StartDeviceUsage();
- else
- UsageTracker.EndDeviceUsage();
- }
- }
-
- ///
- /// Event that is raised when a numeric switch change occurs on the display.
- ///
- public event EventHandler NumericSwitchChange;
-
- ///
- /// Raise an event when the status of a switch object changes.
- ///
- /// Arguments defined as IKeyName sender, output, input, and eRoutingSignalType
- protected void OnSwitchChange(RoutingNumericEventArgs e)
- {
- var newEvent = NumericSwitchChange;
- if (newEvent != null) newEvent(this, e);
- }
- }
}
\ No newline at end of file
diff --git a/src/PepperDash.Essentials.Devices.Common/Displays/TwoWayDisplayBase.cs b/src/PepperDash.Essentials.Devices.Common/Displays/TwoWayDisplayBase.cs
new file mode 100644
index 00000000..226d4bbe
--- /dev/null
+++ b/src/PepperDash.Essentials.Devices.Common/Displays/TwoWayDisplayBase.cs
@@ -0,0 +1,95 @@
+using System;
+using PepperDash.Essentials.Core;
+
+namespace PepperDash.Essentials.Devices.Common.Displays
+{
+ ///
+ /// Abstract base class for two-way display devices that provide feedback capabilities.
+ /// Extends DisplayBase with routing feedback and power control feedback functionality.
+ ///
+ public abstract class TwoWayDisplayBase : DisplayBase, IRoutingFeedback, IHasPowerControlWithFeedback
+ {
+ ///
+ /// Gets feedback for the current input selection on the display.
+ ///
+ public StringFeedback CurrentInputFeedback { get; private set; }
+
+ ///
+ /// Abstract function that must be implemented by derived classes to provide the current input feedback value.
+ /// Must be implemented by concrete sub-classes.
+ ///
+ abstract protected Func CurrentInputFeedbackFunc { get; }
+
+ ///
+ /// Gets feedback indicating whether the display is currently powered on.
+ ///
+ public BoolFeedback PowerIsOnFeedback { get; protected set; }
+
+ ///
+ /// Abstract function that must be implemented by derived classes to provide the power state feedback value.
+ /// Must be implemented by concrete sub-classes.
+ ///
+ abstract protected Func PowerIsOnFeedbackFunc { get; }
+
+ ///
+ /// Gets the default mock display instance for testing and development purposes.
+ ///
+ public static MockDisplay DefaultDisplay
+ {
+ get
+ {
+ if (_DefaultDisplay == null)
+ _DefaultDisplay = new MockDisplay("default", "Default Display");
+ return _DefaultDisplay;
+ }
+ }
+ static MockDisplay _DefaultDisplay;
+
+ ///
+ /// Initializes a new instance of the TwoWayDisplayBase class.
+ ///
+ /// The unique key identifier for this display device.
+ /// The friendly name for this display device.
+ public TwoWayDisplayBase(string key, string name)
+ : base(key, name)
+ {
+ CurrentInputFeedback = new StringFeedback("currentInput", CurrentInputFeedbackFunc);
+
+ WarmupTime = 7000;
+ CooldownTime = 15000;
+
+ PowerIsOnFeedback = new BoolFeedback("PowerOnFeedback", PowerIsOnFeedbackFunc);
+
+ Feedbacks.Add(CurrentInputFeedback);
+ Feedbacks.Add(PowerIsOnFeedback);
+
+ PowerIsOnFeedback.OutputChange += PowerIsOnFeedback_OutputChange;
+
+ }
+
+ void PowerIsOnFeedback_OutputChange(object sender, EventArgs e)
+ {
+ if (UsageTracker != null)
+ {
+ if (PowerIsOnFeedback.BoolValue)
+ UsageTracker.StartDeviceUsage();
+ else
+ UsageTracker.EndDeviceUsage();
+ }
+ }
+
+ ///
+ /// Event that is raised when a numeric switch change occurs on the display.
+ ///
+ public event EventHandler NumericSwitchChange;
+
+ ///
+ /// Raise an event when the status of a switch object changes.
+ ///
+ /// Arguments defined as IKeyName sender, output, input, and eRoutingSignalType
+ protected void OnSwitchChange(RoutingNumericEventArgs e)
+ {
+ NumericSwitchChange?.Invoke(this, e);
+ }
+ }
+}
\ No newline at end of file