mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-08-31 19:08:29 +00:00
docs: update XML comments for Essentials Core
This commit is contained in:
parent
0764685c51
commit
f88bb13367
260 changed files with 7018 additions and 1318 deletions
|
|
@ -326,6 +326,8 @@ namespace PepperDash.Essentials.Core
|
|||
/// <param name="signalType">This recursive function should not be called with AudioVideo</param>
|
||||
/// <param name="cycle">Just an informational counter</param>
|
||||
/// <param name="routeTable">The RouteDescriptor being populated as the route is discovered</param>
|
||||
/// <param name="outputPortToUse">The RoutingOutputPort to use for the route</param>
|
||||
/// <param name="sourcePort">The specific source output port to use (optional)</param>
|
||||
/// <returns>true if source is hit</returns>
|
||||
private static bool GetRouteToSource(this IRoutingInputs destination, IRoutingOutputs source,
|
||||
RoutingOutputPort outputPortToUse, List<IRoutingInputsOutputs> alreadyCheckedDevices,
|
||||
|
|
|
|||
|
|
@ -12,8 +12,14 @@ namespace PepperDash.Essentials.Core.Routing
|
|||
/// </summary>
|
||||
public interface IVideoSync : IKeyed
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets whether or not video sync is detected
|
||||
/// </summary>
|
||||
bool VideoSyncDetected { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Event raised when video sync changes
|
||||
/// </summary>
|
||||
event EventHandler VideoSyncChanged;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,22 @@ namespace PepperDash.Essentials.Core.Routing
|
|||
/// </summary>
|
||||
public interface IMatrixRouting
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the input slots
|
||||
/// </summary>
|
||||
Dictionary<string, IRoutingInputSlot> InputSlots { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the output slots
|
||||
/// </summary>
|
||||
Dictionary<string, IRoutingOutputSlot> OutputSlots { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Routes the specified input slot to the specified output slot for the specified signal type
|
||||
/// </summary>
|
||||
/// <param name="inputSlotKey">key of the input slot</param>
|
||||
/// <param name="outputSlotKey">key of the output slot</param>
|
||||
/// <param name="type">signal type</param>
|
||||
void Route(string inputSlotKey, string outputSlotKey, eRoutingSignalType type);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@
|
|||
/// </summary>
|
||||
public interface IRmcRouting : IRoutingNumeric
|
||||
{
|
||||
/// <summary>
|
||||
/// Feedback for the current Audio/Video source as a number
|
||||
/// </summary>
|
||||
IntFeedback AudioVideoSourceNumericFeedback { get; }
|
||||
}
|
||||
}
|
||||
|
|
@ -11,6 +11,12 @@ namespace PepperDash.Essentials.Core
|
|||
/// </summary>
|
||||
public interface IRouting : IRoutingInputsOutputs
|
||||
{
|
||||
/// <summary>
|
||||
/// Executes a switch on the device
|
||||
/// </summary>
|
||||
/// <param name="inputSelector">input selector</param>
|
||||
/// <param name="outputSelector">output selector</param>
|
||||
/// <param name="signalType">type of signal</param>
|
||||
void ExecuteSwitch(object inputSelector, object outputSelector, eRoutingSignalType signalType);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ namespace PepperDash.Essentials.Core
|
|||
/// </summary>
|
||||
public interface IRoutingFeedback : IKeyName
|
||||
{
|
||||
/// <summary>
|
||||
/// Event raised when a numeric switch changes
|
||||
/// </summary>
|
||||
event EventHandler<RoutingNumericEventArgs> NumericSwitchChange;
|
||||
//void OnSwitchChange(RoutingNumericEventArgs e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@ namespace PepperDash.Essentials.Core
|
|||
/// </summary>
|
||||
public interface IRoutingHasVideoInputSyncFeedbacks
|
||||
{
|
||||
/// <summary>
|
||||
/// Video Input Sync Feedbacks
|
||||
/// </summary>
|
||||
FeedbackCollection<BoolFeedback> VideoInputSyncFeedbacks { get; }
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,9 @@
|
|||
/// </summary>
|
||||
public interface IRoutingInputSlot: IRoutingSlot, IOnline, IVideoSync
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the Tx device key
|
||||
/// </summary>
|
||||
string TxDeviceKey { get; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@ namespace PepperDash.Essentials.Core
|
|||
/// </summary>
|
||||
public interface IRoutingInputs : IKeyed
|
||||
{
|
||||
/// <summary>
|
||||
/// Collection of Input Ports
|
||||
/// </summary>
|
||||
RoutingPortCollection<RoutingInputPort> InputPorts { get; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,12 @@
|
|||
/// </summary>
|
||||
public interface IRoutingNumeric : IRouting
|
||||
{
|
||||
/// <summary>
|
||||
/// Executes a numeric switch on the device
|
||||
/// </summary>
|
||||
/// <param name="input">input selector</param>
|
||||
/// <param name="output">output selector</param>
|
||||
/// <param name="type">type of signal</param>
|
||||
void ExecuteNumericSwitch(ushort input, ushort output, eRoutingSignalType type);
|
||||
}
|
||||
}
|
||||
|
|
@ -8,10 +8,19 @@ namespace PepperDash.Essentials.Core.Routing
|
|||
/// </summary>
|
||||
public interface IRoutingOutputSlot : IRoutingSlot
|
||||
{
|
||||
/// <summary>
|
||||
/// Event raised when output slot changes
|
||||
/// </summary>
|
||||
event EventHandler OutputSlotChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the Rx device key
|
||||
/// </summary>
|
||||
string RxDeviceKey { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current routes
|
||||
/// </summary>
|
||||
Dictionary<eRoutingSignalType, IRoutingInputSlot> CurrentRoutes { get; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,9 @@ namespace PepperDash.Essentials.Core
|
|||
/// </summary>
|
||||
public interface IRoutingOutputs : IKeyed
|
||||
{
|
||||
/// <summary>
|
||||
/// Collection of Output Ports
|
||||
/// </summary>
|
||||
RoutingPortCollection<RoutingOutputPort> OutputPorts { get; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@ namespace PepperDash.Essentials.Core
|
|||
/// </summary>
|
||||
public interface IRoutingSinkWithSwitching : IRoutingSink
|
||||
{
|
||||
/// <summary>
|
||||
/// Executes a switch on the device
|
||||
/// </summary>
|
||||
/// <param name="inputSelector">input selector</param>
|
||||
void ExecuteSwitch(object inputSelector);
|
||||
}
|
||||
|
||||
|
|
@ -20,6 +24,9 @@ namespace PepperDash.Essentials.Core
|
|||
/// </summary>
|
||||
public interface IRoutingSinkWithSwitchingWithInputPort:IRoutingSinkWithSwitching, IRoutingSinkWithInputPort
|
||||
{
|
||||
/// <summary>
|
||||
/// Event raised when the input changes
|
||||
/// </summary>
|
||||
event InputChangedEventHandler InputChanged;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,8 +12,14 @@ namespace PepperDash.Essentials.Core.Routing
|
|||
/// </summary>
|
||||
public interface IRoutingSlot:IKeyName
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the slot number
|
||||
/// </summary>
|
||||
int SlotNumber { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the supported signal types
|
||||
/// </summary>
|
||||
eRoutingSignalType SupportedSignalTypes { get; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ namespace PepperDash.Essentials.Core
|
|||
/// </summary>
|
||||
public class RouteDescriptorCollection
|
||||
{
|
||||
/// <summary>
|
||||
/// DefaultCollection static property
|
||||
/// </summary>
|
||||
public static RouteDescriptorCollection DefaultCollection
|
||||
{
|
||||
get
|
||||
|
|
@ -57,6 +60,12 @@ namespace PepperDash.Essentials.Core
|
|||
return RouteDescriptors.FirstOrDefault(rd => rd.Destination == destination);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the RouteDescriptor for a destination and input port key. Returns null if no matching RouteDescriptor exists.
|
||||
/// </summary>
|
||||
/// <param name="destination"></param>
|
||||
/// <param name="inputPortKey"></param>
|
||||
/// <returns></returns>
|
||||
public RouteDescriptor GetRouteDescriptorForDestinationAndInputPort(IRoutingInputs destination, string inputPortKey)
|
||||
{
|
||||
Debug.LogMessage(LogEventLevel.Information, "Getting route descriptor for '{destination}':'{inputPortKey}'", destination?.Key ?? null, string.IsNullOrEmpty(inputPortKey) ? "auto" : inputPortKey);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ namespace PepperDash.Essentials.Core
|
|||
/// <param name="selector">An object used to refer to this port in the IRouting device's ExecuteSwitch method.
|
||||
/// May be string, number, whatever</param>
|
||||
/// <param name="parent">The IRoutingInputs object this lives on</param>
|
||||
/// <param name="key">key of the port</param>
|
||||
/// <param name="type">type of the routing signal</param>
|
||||
/// <param name="connType">connection type of the port</param>
|
||||
public RoutingInputPort(string key, eRoutingSignalType type, eRoutingPortConnectionType connType,
|
||||
object selector, IRoutingInputs parent)
|
||||
: this (key, type, connType, selector, parent, false)
|
||||
|
|
@ -32,6 +35,12 @@ namespace PepperDash.Essentials.Core
|
|||
/// the ports that link a DM card to a DM matrix bus
|
||||
/// </summary>
|
||||
/// <param name="isInternal">true for internal ports</param>
|
||||
/// <param name="key">key of the port</param>
|
||||
/// <param name="type">type of the routing signal</param>
|
||||
/// <param name="connType">connection type of the port</param>
|
||||
/// <param name="selector">An object used to refer to this port in the IRouting device's ExecuteSwitch method.
|
||||
/// May be string, number, whatever</param>
|
||||
/// <param name="parent">The IRoutingInputs object this lives on</param>
|
||||
public RoutingInputPort(string key, eRoutingSignalType type, eRoutingPortConnectionType connType,
|
||||
object selector, IRoutingInputs parent, bool isInternal)
|
||||
: base(key, type, connType, selector, isInternal)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,99 @@
|
|||
/// </summary>
|
||||
public enum eRoutingPortConnectionType
|
||||
{
|
||||
None, BackplaneOnly, DisplayPort, Dvi, Hdmi, Rgb, Vga, LineAudio, DigitalAudio, Sdi,
|
||||
Composite, Component, DmCat, DmMmFiber, DmSmFiber, Speaker, Streaming, UsbC, HdBaseT
|
||||
/// <summary>
|
||||
/// No connection type
|
||||
/// </summary>
|
||||
None,
|
||||
|
||||
/// <summary>
|
||||
/// Backplane only connection
|
||||
/// </summary>
|
||||
BackplaneOnly,
|
||||
|
||||
/// <summary>
|
||||
/// Connection via cable
|
||||
/// </summary>
|
||||
DisplayPort,
|
||||
|
||||
/// <summary>
|
||||
/// DVI connection
|
||||
/// </summary>
|
||||
Dvi,
|
||||
|
||||
/// <summary>
|
||||
/// HDMI connection
|
||||
/// </summary>
|
||||
Hdmi,
|
||||
|
||||
/// <summary>
|
||||
/// RGB connection
|
||||
/// </summary>
|
||||
Rgb,
|
||||
|
||||
/// <summary>
|
||||
/// VGA connection
|
||||
/// </summary>
|
||||
Vga,
|
||||
|
||||
/// <summary>
|
||||
/// Line audio connection
|
||||
/// </summary>
|
||||
LineAudio,
|
||||
|
||||
/// <summary>
|
||||
/// Digital audio connection
|
||||
/// </summary>
|
||||
DigitalAudio,
|
||||
|
||||
/// <summary>
|
||||
/// SDI connection
|
||||
/// </summary>
|
||||
Sdi,
|
||||
|
||||
/// <summary>
|
||||
/// Composite connection
|
||||
/// </summary>
|
||||
Composite,
|
||||
|
||||
/// <summary>
|
||||
/// Component connection
|
||||
/// </summary>
|
||||
Component,
|
||||
|
||||
/// <summary>
|
||||
/// DM CAT connection
|
||||
/// </summary>
|
||||
DmCat,
|
||||
|
||||
/// <summary>
|
||||
/// DM MM Fiber connection
|
||||
/// </summary>
|
||||
DmMmFiber,
|
||||
|
||||
/// <summary>
|
||||
/// DM SM Fiber connection
|
||||
/// </summary>
|
||||
DmSmFiber,
|
||||
|
||||
/// <summary>
|
||||
/// Speaker connection
|
||||
/// </summary>
|
||||
Speaker,
|
||||
|
||||
/// <summary>
|
||||
/// Microphone connection
|
||||
/// </summary>
|
||||
Streaming,
|
||||
|
||||
/// <summary>
|
||||
/// USB-C connection
|
||||
/// </summary>
|
||||
UsbC,
|
||||
|
||||
/// <summary>
|
||||
/// HDBaseT connection
|
||||
/// </summary>
|
||||
HdBaseT
|
||||
}
|
||||
}
|
||||
|
|
@ -3,17 +3,40 @@
|
|||
|
||||
namespace PepperDash.Essentials.Core
|
||||
{
|
||||
[Flags]
|
||||
/// <summary>
|
||||
/// Enumeration of eRoutingSignalType values
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum eRoutingSignalType
|
||||
{
|
||||
/// <summary>
|
||||
/// Audio signal type
|
||||
/// </summary>
|
||||
Audio = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Video signal type
|
||||
/// </summary>
|
||||
Video = 2,
|
||||
|
||||
/// <summary>
|
||||
/// AudioVideo signal type
|
||||
/// </summary>
|
||||
AudioVideo = Audio | Video,
|
||||
|
||||
/// <summary>
|
||||
/// Control signal type
|
||||
/// </summary>
|
||||
UsbOutput = 8,
|
||||
|
||||
/// <summary>
|
||||
/// Control signal type
|
||||
/// </summary>
|
||||
UsbInput = 16,
|
||||
|
||||
/// <summary>
|
||||
/// Secondary audio signal type
|
||||
/// </summary>
|
||||
SecondaryAudio = 32
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue