feat: RKST-131 add IMatrixRouting interfaces

This commit is contained in:
Andrew Welker
2024-03-08 11:16:48 -06:00
parent b0e9ecf29e
commit 9ad151bd7e
6 changed files with 62 additions and 1 deletions

View File

@@ -357,6 +357,7 @@ namespace PepperDash.Essentials
try
{
types = assy.GetTypes();
Debug.Console(1, $"Got types for assembly {assy.GetName().Name}");
}
catch (TypeLoadException e)
{
@@ -370,6 +371,10 @@ namespace PepperDash.Essentials
{
try
{
Debug.Console(0, $"Checking if type {type.Name} is IPluginDeviceFactory");
Debug.Console(0, $"{type.Name} is plugin factory: {typeof(IPluginDeviceFactory).IsAssignableFrom(type) && !type.IsAbstract}");
if (typeof (IPluginDeviceFactory).IsAssignableFrom(type) && !type.IsAbstract)
{
var plugin =

View File

@@ -0,0 +1,10 @@
using System.Collections.Generic;
namespace PepperDash.Essentials.Core.Routing
{
public interface IMatrixRouting
{
Dictionary<string, IRoutingInputSlot> InputSlots { get; }
Dictionary<string, IRoutingOutputSlot> OutputSlots { get; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PepperDash.Essentials.Core.Routing
{
public interface IRoutingInputSlot: IRoutingSlot, IOnline
{
string TxDeviceKey { get; }
bool SyncDetected { get; }
}
}

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
namespace PepperDash.Essentials.Core.Routing
{
public interface IRoutingOutputSlot:IRoutingSlot
{
event EventHandler<EventArgs> OutputSlotChanged;
string RxDeviceKey { get; }
Dictionary<eRoutingSignalType, IRoutingInputSlot> CurrentRoutes { get; }
}
}

View File

@@ -0,0 +1,16 @@
using PepperDash.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PepperDash.Essentials.Core.Routing
{
public interface IRoutingSlot:IKeyName
{
int SlotNumber { get; }
eRoutingSignalType SupportedSignalTypes { get; }
}
}

View File

@@ -36,7 +36,8 @@ namespace PepperDash.Essentials.Core
Video = 2,
AudioVideo = Audio | Video,
UsbOutput = 8,
UsbInput = 16
UsbInput = 16,
SecondaryAudio = 32
}
public enum eRoutingPortConnectionType