public void SetAvailableTransports(FrameTransportMode transports) { // Decode bit flags to array for easier ui crap availableTransports = Enum.GetValues(typeof(FrameTransportMode)) .Cast <FrameTransportMode>() .Where(transport => transport != FrameTransportMode.None && transports.HasFlag(transport)) .ToList(); // If the configured transport isn't available, pick the first so we don't end up in a weird spot. // NOTE: Might be nice to avoid saving this to disc - a one-off failure may cause a save of full fallback mode. if (availableTransports.Count > 0 && !availableTransports.Contains(Config.FrameTransportMode)) { SetActiveTransport(availableTransports[0]); } }
private void SetActiveTransport(FrameTransportMode transport) { Config.FrameTransportMode = transport; TransportChanged?.Invoke(this, null); }