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