| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #region License
- /* Copyright 2012-2013 James F. Bellinger <http://www.zer7.com/software/hidsharp>
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
- #endregion
- namespace HidSharp.Platform
- {
- internal sealed class HidSelector
- {
- public static readonly HidManager Instance;
- private static readonly Thread ManagerThread;
- static HidSelector()
- {
- foreach (var hidManager in new HidManager[]
- {
- new Windows.WinHidManager(),
- 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;
- }
- }
- }
- }
- }
|