/// <summary> /// Raises the BlinkStick disconnected event. /// </summary> /// <param name="device">Device which has been disconnected.</param> protected void OnBlinkStickDisconnected(BlinkStick device) { if (BlinkStickDisconnected != null) { BlinkStickDisconnected(this, new DeviceModifiedArgs(device)); } }
/// <summary> /// Find all BlinkStick devices. /// </summary> /// <returns>An array of BlinkStick devices</returns> public static BlinkStick[] FindAll() { List <BlinkStick> result = new List <BlinkStick>(); HidDeviceLoader loader = new HidDeviceLoader(); foreach (HidDevice adevice in loader.GetDevices(VendorId, ProductId).ToArray()) { BlinkStick hid = new BlinkStick(); hid.device = adevice; result.Add(hid); } return(result.ToArray()); }
/// <summary> /// Start monitoring for added/removed BlinkStick devices. /// </summary> public void Start() { //Get the list of already connected BlinkSticks devices = new List <BlinkStick>(BlinkStick.FindAll()); if (UsbDeviceNotifier != null) { UsbDeviceNotifier.Enabled = true; } else if (winUsbDeviceMonitor != null) { winUsbDeviceMonitor.Enabled = true; } Monitoring = true; }
/// <summary> /// Raises the usb device changed event. /// </summary> protected void OnUsbDevicesChanged() { if (UsbDevicesChanged != null) { UsbDevicesChanged(this, new EventArgs()); } List <BlinkStick> newDevices = new List <BlinkStick>(); List <BlinkStick> scannedDevices = new List <BlinkStick>(BlinkStick.FindAll()); foreach (BlinkStick newDevice in scannedDevices) { Boolean found = false; for (int i = devices.Count - 1; i >= 0; i--) { if (devices[i].Serial == newDevice.Serial) { devices.RemoveAt(i); found = true; break; } } if (!found) { OnBlinkStickConnected(newDevice); } } foreach (BlinkStick device in devices) { OnBlinkStickDisconnected(device); } devices = scannedDevices; }
/// <summary> /// Initializes a new instance of the <see cref="BlinkStickDotNet.DeviceModifiedArgs"/> class. /// </summary> /// <param name="device">Device passed as an argument</param> public DeviceModifiedArgs(BlinkStick device) { this.Device = device; }