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); } }
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); }
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); } }