[FEATURE]-Routing Service (static class)
Is your feature request related to a problem? Please describe. A globally accessible mechanism is required to be able to request routes from sources to destinations and provide feedback about the current source for each destination.
Describe the solution you'd like Create a routing service as a static class that things (rooms, UIs, etc) call into to establish routes by specifying a sink and source and provide feedback as to the currently routed source for each sink.
This will require updates and additions to existing routing interfaces to expose necessary properties and events.
Each routing midpoint will require an event to notify when a switch occurs, and likely should provide the RoutingOutputPort that changed and it's associated current RoutingInputPort.
Sinks (destinations) will require a method to be exposed that would trigger a recursive routine to determine the source currently routed to it at runtime.
Additional context It is likely not necessary to store the current state of everything in memory. It may be more efficient to use a modified version of the current recursive routing mechanism (magic routing) to walk back from a destination along each routed tie line to a source (or lack thereof). The cost of doing this at runtime either when a route is broken, or when something needs to get the current routing info for a destination is probably low enough that it is preferable to trying to store and maintain the current state of all routing in a system in memory.