fix: add base classes for input/output slots for matrix routing

This commit is contained in:
Andrew Welker
2024-03-26 15:19:06 -05:00
parent ee4ccb0d1a
commit 09ac964335
3 changed files with 29 additions and 4 deletions

View File

@@ -4,8 +4,8 @@ namespace PepperDash.Essentials.Core.Routing
{
public interface IMatrixRouting
{
Dictionary<string, IRoutingInputSlot> InputSlots { get; }
Dictionary<string, IRoutingOutputSlot> OutputSlots { get; }
Dictionary<string, RoutingInputSlotBase> InputSlots { get; }
Dictionary<string, RoutingOutputSlotBase> OutputSlots { get; }
void Route(string inputSlotKey, string outputSlotKey, eRoutingSignalType type);
}

View File

@@ -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;
}
}

View File

@@ -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<eRoutingSignalType, IRoutingInputSlot> CurrentRoutes { get; }
Dictionary<eRoutingSignalType, RoutingInputSlotBase> CurrentRoutes { get; }
}
public abstract class RoutingOutputSlotBase : IRoutingOutputSlot
{
public abstract string RxDeviceKey { get; }
public abstract Dictionary<eRoutingSignalType, RoutingInputSlotBase> 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;
}
}