protected void InternalMapDevice(RGBChannelIdentity channelIdentity, DeviceController device)
        {
            HashSet <DeviceController> devices;

            if (!mappedRgbDevices.TryGetValue(channelIdentity, out devices))
            {
                devices = new HashSet <DeviceController>();
                mappedRgbDevices[channelIdentity] = devices;
            }
            devices.Add(device);

            if (device is IControlledDevice)
            {
                this.controlledDevices.Add((IControlledDevice)device);
            }
            if (device is LogicalDevice.IHasControlledDevice)
            {
                this.controlledDevices.Add(((LogicalDevice.IHasControlledDevice)device).ControlledDevice);
            }

            var channelDataR = this.channelData[channelIdentity.R];
            var channelDataG = this.channelData[channelIdentity.G];
            var channelDataB = this.channelData[channelIdentity.B];

            channelDataR.Mapped = true;
            channelDataG.Mapped = true;
            channelDataB.Mapped = true;

            if (!channelDataR.HasEffects && !channelDataG.HasEffects && !channelDataB.HasEffects)
            {
                this.log.Warning("Channel {0} is mapped, but has no effects", channelIdentity);
            }
        }
示例#2
0
        public void MapDeviceRGB(string channelNameR, string channelNameG, string channelNameB, IReceivesColor device)
        {
            var id = new RGBChannelIdentity(
                ChannelIdentityFromName(channelNameR),
                ChannelIdentityFromName(channelNameG),
                ChannelIdentityFromName(channelNameB));

            var deviceController = ConnectTo(device);

            InternalMapDevice(id, deviceController);
        }
示例#3
0
        protected void InternalMapDevice(RGBChannelIdentity channelIdentity, MappedDeviceRGB device)
        {
            HashSet <MappedDeviceRGB> devices;

            if (!mappedRGBDevices.TryGetValue(channelIdentity, out devices))
            {
                devices = new HashSet <MappedDeviceRGB>();
                mappedRGBDevices[channelIdentity] = devices;
            }
            devices.Add(device);

            this.channelData[channelIdentity.R].Mapped = true;
            this.channelData[channelIdentity.G].Mapped = true;
            this.channelData[channelIdentity.B].Mapped = true;

            if (device.Device is IControlledDevice)
            {
                this.controlledDevices.Add((IControlledDevice)device.Device);
            }
            if (device.Device is LogicalDevice.IHasControlledDevice)
            {
                this.controlledDevices.Add(((LogicalDevice.IHasControlledDevice)device.Device).ControlledDevice);
            }
        }