Esempio n. 1
0
        /// <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);
        }