Esempio n. 1
0
 public static void FreeUsbResources()
 {
     // Free usb resources
     if (PlatformDetector.RunningPlatform() == PlatformDetector.Platform.Linux)
     {
         UsbDevice.Exit();
     }
 }
Esempio n. 2
0
        static HidSelector()
        {
            if (Instance != null)
            {
                return;
            }

            switch (PlatformDetector.RunningPlatform())
            {
            case PlatformDetector.Platform.Linux:
                Instance = new Libusb.LibusbHidManager();
                break;

            case PlatformDetector.Platform.Mac:
                Instance = new MacOS.MacHidManager();
                break;

            case PlatformDetector.Platform.Windows:
                Instance = new Windows.WinHidManager();
                break;
            }

            var readyEvent = new ManualResetEvent(false);

            ManagerThread = new Thread(Instance.RunImpl);
            ManagerThread.IsBackground = true;
            ManagerThread.Start(readyEvent);
            readyEvent.WaitOne();

            /*
             * foreach (var hidManager in new HidManager[]
             * {
             * new Windows.WinHidManager(),
             * //new Linux.LinuxHidManager(), //Disabled, because BlinkStick does not use this
             * new MacOS.MacHidManager(),
             * new Libusb.LibusbHidManager(),
             * new Unsupported.UnsupportedHidManager()
             * })
             * {
             * if (hidManager.IsSupported)
             * {
             * var readyEvent = new ManualResetEvent(false);
             *
             * Instance = hidManager;
             * ManagerThread = new Thread(Instance.RunImpl);
             * ManagerThread.IsBackground = true;
             * ManagerThread.Start(readyEvent);
             * readyEvent.WaitOne();
             *
             * break;
             * }
             * }
             */
        }