From 09ac96433536e1d679eec7cdfb8d9782044326e3 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 26 Mar 2024 15:19:06 -0500 Subject: [PATCH] fix: add base classes for input/output slots for matrix routing --- .../Routing/IMatrixRouting.cs | 4 ++-- .../Routing/IRoutingInputSlot.cs | 13 +++++++++++++ .../Routing/IRoutingOutputSlot.cs | 16 ++++++++++++++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Routing/IMatrixRouting.cs b/src/PepperDash.Essentials.Core/Routing/IMatrixRouting.cs index d7dc8c79..cd3f6d37 100644 --- a/src/PepperDash.Essentials.Core/Routing/IMatrixRouting.cs +++ b/src/PepperDash.Essentials.Core/Routing/IMatrixRouting.cs @@ -4,8 +4,8 @@ namespace PepperDash.Essentials.Core.Routing { public interface IMatrixRouting { - Dictionary InputSlots { get; } - Dictionary OutputSlots { get; } + Dictionary InputSlots { get; } + Dictionary OutputSlots { get; } void Route(string inputSlotKey, string outputSlotKey, eRoutingSignalType type); } diff --git a/src/PepperDash.Essentials.Core/Routing/IRoutingInputSlot.cs b/src/PepperDash.Essentials.Core/Routing/IRoutingInputSlot.cs index 93b96614..c9d6ee5e 100644 --- a/src/PepperDash.Essentials.Core/Routing/IRoutingInputSlot.cs +++ b/src/PepperDash.Essentials.Core/Routing/IRoutingInputSlot.cs @@ -10,4 +10,17 @@ namespace PepperDash.Essentials.Core.Routing { string TxDeviceKey { get; } } + + public abstract class RoutingInputSlotBase : IRoutingInputSlot + { + public abstract string TxDeviceKey { get; } + public abstract int SlotNumber { get; } + public abstract eRoutingSignalType SupportedSignalTypes { get; } + public abstract string Name { get; } + public abstract BoolFeedback IsOnline { get; } + public abstract bool VideoSyncDetected { get; } + public abstract string Key { get; } + + public abstract event EventHandler VideoSyncChanged; + } } diff --git a/src/PepperDash.Essentials.Core/Routing/IRoutingOutputSlot.cs b/src/PepperDash.Essentials.Core/Routing/IRoutingOutputSlot.cs index 160db482..a9a4eea2 100644 --- a/src/PepperDash.Essentials.Core/Routing/IRoutingOutputSlot.cs +++ b/src/PepperDash.Essentials.Core/Routing/IRoutingOutputSlot.cs @@ -3,12 +3,24 @@ using System.Collections.Generic; namespace PepperDash.Essentials.Core.Routing { - public interface IRoutingOutputSlot:IRoutingSlot + public interface IRoutingOutputSlot : IRoutingSlot { event EventHandler OutputSlotChanged; string RxDeviceKey { get; } - Dictionary CurrentRoutes { get; } + Dictionary CurrentRoutes { get; } + } + + public abstract class RoutingOutputSlotBase : IRoutingOutputSlot + { + public abstract string RxDeviceKey { get; } + public abstract Dictionary CurrentRoutes { get; } + public abstract int SlotNumber { get; } + public abstract eRoutingSignalType SupportedSignalTypes { get; } + public abstract string Name { get; } + public abstract string Key { get; } + + public abstract event EventHandler OutputSlotChanged; } }