/// <summary> /// Save a preset in the Blink(1) device, so it can be played back at a later time. /// </summary> /// <param name="blink1Preset"> /// The presets for the Blink(1) device. /// </param> /// <param name="position"> /// The position of the preset in the list of presets of the device. /// </param> /// <returns> /// True if the preset was saved successfully. /// </returns> public bool SavePreset(Blink1Preset blink1Preset, uint position) { if (blink1Preset == null) { throw new ArgumentNullException("blink1Preset", "Argument must not be null."); } if (position >= Blink1Constant.NumberOfPreset) { throw new ArgumentOutOfRangeException("position", string.Format("Valid positions are 0-{0} inclusively.", Blink1Constant.NumberOfPreset - 1)); } if (this.IsConnected == false) { throw new InvalidOperationException("No Blink(1) device connected."); } byte[] buffers = new byte[this.hidDevice.Capabilities.FeatureReportByteLength]; buffers[0] = Convert.ToByte(1); buffers[1] = Convert.ToByte('P'); buffers[2] = Convert.ToByte(blink1Preset.Rgb.Red); buffers[3] = Convert.ToByte(blink1Preset.Rgb.Green); buffers[4] = Convert.ToByte(blink1Preset.Rgb.Blue); buffers[5] = Convert.ToByte((blink1Preset.Millisecond / 10) >> 8); buffers[6] = Convert.ToByte((blink1Preset.Millisecond / 10) % 0xff); buffers[7] = Convert.ToByte(position); return(this.hidDevice.WriteFeatureData(buffers)); }
private void savePresetToSelectedBlink1DeviceToolStripMenuItem_Click(object sender, EventArgs e) { if (this.blink1.IsConnected == false) { MessageBox.Show("No Blink(1) devices found.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } for (int counter = 0; counter < Blink1Constant.NumberOfPreset; counter++) { PresetControl control = (PresetControl)this.flowLayoutPanelPreset.Controls[counter]; Blink1Preset preset = new Blink1Preset(control.Millisecond, control.Color); this.blink1.SavePreset(preset, (ushort)counter); } if (this.checkBoxInactivityMode.CheckState == CheckState.Checked) { this.blink1.ActivateInactivityMode(Convert.ToUInt16(this.textBoxInactivityMillisecond.Text)); } else { this.blink1.DeactivateInactivityMode(); } }
/// <summary> /// Save a preset in the Blink(1) device, so it can be played back at a later time. /// </summary> /// <param name="blink1Preset"> /// The presets for the Blink(1) device. /// </param> /// <param name="position"> /// The position of the preset in the list of presets of the device. /// </param> /// <returns> /// True if the preset was saved successfully. /// </returns> public bool SavePreset(Blink1Preset blink1Preset, uint position) { if (blink1Preset == null) { throw new ArgumentNullException("blink1Preset", "Argument must not be null."); } if (position >= Blink1Constant.NumberOfPreset) { throw new ArgumentOutOfRangeException("position", string.Format("Valid positions are 0-{0} inclusively.", Blink1Constant.NumberOfPreset - 1)); } if (this.IsConnected == false) { throw new InvalidOperationException("No Blink(1) device connected."); } byte[] buffers = new byte[this.hidDevice.Capabilities.FeatureReportByteLength]; buffers[0] = Convert.ToByte(1); buffers[1] = Convert.ToByte('P'); buffers[2] = Convert.ToByte(blink1Preset.Rgb.Red); buffers[3] = Convert.ToByte(blink1Preset.Rgb.Green); buffers[4] = Convert.ToByte(blink1Preset.Rgb.Blue); buffers[5] = Convert.ToByte((blink1Preset.Millisecond / 10) >> 8); buffers[6] = Convert.ToByte((blink1Preset.Millisecond / 10) % 0xff); buffers[7] = Convert.ToByte(position); return this.hidDevice.WriteFeatureData(buffers); }