/// <summary> /// /// </summary> /// <param name="route"></param> /// <returns></returns> bool DoRoute(SourceRouteListItem route) { IRoutingSinkNoSwitching dest = null; dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching; if (dest == null) { Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); return(false); } if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) { dest.ReleaseRoute(); if (dest is IPower) { (dest as IPower).PowerOff(); } } else { var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; if (source == null) { Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); return(false); } dest.ReleaseAndMakeRoute(source, route.Type); } return(true); }
/// <summary> /// /// </summary> /// <param name="route"></param> /// <returns></returns> bool DoRoute(SourceRouteListItem route, SourceListItem sourceItem, string sourceItemKey) { IRoutingSinkNoSwitching dest = null; if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase)) { dest = DefaultAudioDevice as IRoutingSinkNoSwitching; } else if (route.DestinationKey.Equals(LeftDisplay.Key, StringComparison.OrdinalIgnoreCase)) { dest = LeftDisplay; } else if (route.DestinationKey.Equals(RightDisplay.Key, StringComparison.OrdinalIgnoreCase)) { dest = RightDisplay; } else { dest = DeviceManager.GetDeviceForKey(route.DestinationKey) as IRoutingSinkNoSwitching; } if (dest == null) { Debug.Console(1, this, "Cannot route, unknown destination '{0}'", route.DestinationKey); return(false); } if (route.SourceKey.Equals("$off", StringComparison.OrdinalIgnoreCase)) { dest.ReleaseRoute(); if (dest is IPower) { (dest as IPower).PowerOff(); } } else { var source = DeviceManager.GetDeviceForKey(route.SourceKey) as IRoutingOutputs; if (source == null) { Debug.Console(1, this, "Cannot route unknown source '{0}' to {1}", route.SourceKey, route.DestinationKey); return(false); } dest.ReleaseAndMakeRoute(source, route.Type); dest.CurrentSourceInfoKey = sourceItemKey; dest.CurrentSourceInfo = sourceItem; } return(true); }