mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
Move libusb context initialization to on first use
This prevents libusb warnings from showing up even when the user is not using Bluetooth or USB passthrough, or the Wii U GC adapter.
This commit is contained in:
parent
db7ee668ff
commit
6a0bf24e0b
@ -170,17 +170,8 @@ void Init()
|
||||
|
||||
s_libusb_driver_not_supported = false;
|
||||
|
||||
s_libusb_context = LibusbContext::Get();
|
||||
if (!s_libusb_context)
|
||||
{
|
||||
s_libusb_driver_not_supported = true;
|
||||
Shutdown();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (UseAdapter())
|
||||
StartScanThread();
|
||||
}
|
||||
if (UseAdapter())
|
||||
StartScanThread();
|
||||
}
|
||||
|
||||
void StartScanThread()
|
||||
@ -188,6 +179,9 @@ void StartScanThread()
|
||||
if (s_adapter_detect_thread_running.IsSet())
|
||||
return;
|
||||
|
||||
s_libusb_context = LibusbContext::Get();
|
||||
if (!s_libusb_context)
|
||||
return;
|
||||
s_adapter_detect_thread_running.Set(true);
|
||||
s_adapter_detect_thread = std::thread(ScanThreadFunc);
|
||||
}
|
||||
@ -334,7 +328,7 @@ void Shutdown()
|
||||
{
|
||||
StopScanThread();
|
||||
#if defined(LIBUSB_API_VERSION) && LIBUSB_API_VERSION >= 0x01000102
|
||||
if (s_libusb_hotplug_enabled)
|
||||
if (s_libusb_context && s_libusb_hotplug_enabled)
|
||||
libusb_hotplug_deregister_callback(s_libusb_context.get(), s_hotplug_handle);
|
||||
#endif
|
||||
Reset();
|
||||
|
@ -30,7 +30,6 @@ void Init()
|
||||
VideoBackendBase::PopulateList();
|
||||
WiimoteReal::LoadSettings();
|
||||
GCAdapter::Init();
|
||||
USBUtils::Init();
|
||||
VideoBackendBase::ActivateBackend(SConfig::GetInstance().m_strVideoBackend);
|
||||
|
||||
SetEnableAlert(SConfig::GetInstance().bUsePanicHandlers);
|
||||
@ -42,7 +41,6 @@ void Shutdown()
|
||||
WiimoteReal::Shutdown();
|
||||
VideoBackendBase::ClearList();
|
||||
SConfig::Shutdown();
|
||||
USBUtils::Shutdown();
|
||||
LogManager::Shutdown();
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
|
||||
#ifdef __LIBUSB__
|
||||
#include <libusb.h>
|
||||
@ -14,6 +15,7 @@
|
||||
#include "UICommon/USBUtils.h"
|
||||
|
||||
#ifdef __LIBUSB__
|
||||
static std::once_flag s_tried_libusb_init;
|
||||
static std::shared_ptr<libusb_context> s_libusb_context;
|
||||
#endif
|
||||
|
||||
@ -36,25 +38,12 @@ static const std::map<std::pair<u16, u16>, std::string> s_wii_peripherals = {{
|
||||
|
||||
namespace USBUtils
|
||||
{
|
||||
void Init()
|
||||
{
|
||||
#ifdef __LIBUSB__
|
||||
s_libusb_context = LibusbContext::Get();
|
||||
#endif
|
||||
}
|
||||
|
||||
void Shutdown()
|
||||
{
|
||||
#ifdef __LIBUSB__
|
||||
s_libusb_context = nullptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
std::map<std::pair<u16, u16>, std::string> GetInsertedDevices()
|
||||
{
|
||||
std::map<std::pair<u16, u16>, std::string> devices;
|
||||
|
||||
#ifdef __LIBUSB__
|
||||
std::call_once(s_tried_libusb_init, []() { s_libusb_context = LibusbContext::Get(); });
|
||||
if (!s_libusb_context)
|
||||
return devices;
|
||||
|
||||
|
@ -12,9 +12,6 @@
|
||||
|
||||
namespace USBUtils
|
||||
{
|
||||
void Init();
|
||||
void Shutdown();
|
||||
|
||||
std::map<std::pair<u16, u16>, std::string> GetInsertedDevices();
|
||||
std::string GetDeviceName(std::pair<u16, u16> vid_pid);
|
||||
} // namespace USBUtils
|
||||
|
Loading…
Reference in New Issue
Block a user