Backport c5b3b52d553d: enable libusb hotplug on FreeBSD 11+

PR:		220223
Submitted by:	jbeich
This commit is contained in:
Ganael LAPLANCHE 2017-06-28 11:19:34 +00:00
parent d96996aaf7
commit 080e9d416f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=444567
2 changed files with 24 additions and 29 deletions

View file

@ -3,7 +3,7 @@
PORTNAME= dolphin-emu
PORTVERSION= 5.0
PORTREVISION= 7
PORTREVISION= 8
CATEGORIES= emulators
MAINTAINER= martymac@FreeBSD.org

View file

@ -1,38 +1,33 @@
--- Source/Core/InputCommon/GCAdapter.cpp.orig 2016-12-01 10:27:29.504018310 +0000
+++ Source/Core/InputCommon/GCAdapter.cpp 2016-12-01 10:30:44.024005984 +0000
@@ -50,7 +50,7 @@
commit c5b3b52d553d
Author: Jeffrey Pfau <jeffrey@endrift.com>
Date: Mon Dec 26 22:50:36 2016 -0800
InputCommon: Fix FreeBSD 11 libusb incompatibilities
---
Source/Core/InputCommon/GCAdapter.cpp | 6 ++++++
1 file changed, 6 insertions(+)
--- Source/Core/InputCommon/GCAdapter.cpp.orig 2016-06-24 08:09:07 UTC
+++ Source/Core/InputCommon/GCAdapter.cpp
@@ -49,7 +49,11 @@ static std::function<void(void)> s_detect_callback;
static bool s_libusb_driver_not_supported = false;
static libusb_context* s_libusb_context = nullptr;
+#if defined(__FreeBSD__) && __FreeBSD__ >= 11
+static bool s_libusb_hotplug_enabled = true;
+#else
static bool s_libusb_hotplug_enabled = false;
-#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
+#if !defined(__FreeBSD__) && defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
+#endif
#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
static libusb_hotplug_callback_handle s_hotplug_handle;
#endif
@@ -76,7 +76,7 @@
}
}
-#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
+#if !defined(__FreeBSD__) && defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
static int HotplugCallback(libusb_context* ctx, libusb_device* dev, libusb_hotplug_event event, void* user_data)
{
if (event == LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED)
@@ -101,7 +101,7 @@
Common::SetCurrentThreadName("GC Adapter Scanning Thread");
@@ -102,7 +106,9 @@ static void ScanThreadFunc()
NOTICE_LOG(SERIALINTERFACE, "GC Adapter scanning thread started");
-#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
+#if !defined(__FreeBSD__) && defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
+#ifndef __FreeBSD__
s_libusb_hotplug_enabled = libusb_has_capability(LIBUSB_CAP_HAS_HOTPLUG) != 0;
+#endif
if (s_libusb_hotplug_enabled)
{
@@ -321,7 +321,7 @@
void Shutdown()
{
StopScanThread();
-#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
+#if !defined(__FreeBSD__) && defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
if (s_libusb_hotplug_enabled)
libusb_hotplug_deregister_callback(s_libusb_context, s_hotplug_handle);
#endif
if (libusb_hotplug_register_callback(s_libusb_context, (libusb_hotplug_event)(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT), LIBUSB_HOTPLUG_ENUMERATE, 0x057e, 0x0337, LIBUSB_HOTPLUG_MATCH_ANY, HotplugCallback, nullptr, &s_hotplug_handle) != LIBUSB_SUCCESS)