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