예제 #1
0
 /// <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));
     }
 }
예제 #2
0
        /// <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());
        }
예제 #3
0
        /// <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;
        }
예제 #4
0
        /// <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;
        }
예제 #5
0
 /// <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;
 }