From 10c52cf56949bf75e1ddfc115b4c7c886f9c8655 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Tue, 23 Jan 2024 01:08:02 +0100 Subject: [PATCH] sys_usbd: add libusb log callback --- rpcs3/Emu/Cell/lv2/sys_usbd.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/rpcs3/Emu/Cell/lv2/sys_usbd.cpp b/rpcs3/Emu/Cell/lv2/sys_usbd.cpp index 50f2b1eb22..1ca10f4fde 100644 --- a/rpcs3/Emu/Cell/lv2/sys_usbd.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_usbd.cpp @@ -166,6 +166,30 @@ usb_handler_thread::usb_handler_thread() return; } + // Set LIBUSB_DEBUG env variable to receive log messages + libusb_set_log_cb(ctx, [](libusb_context* ctx, libusb_log_level level, const char* str) + { + if (!str) return; + + const std::string msg = fmt::trim(str, " \t\n"); + + switch (level) + { + case LIBUSB_LOG_LEVEL_ERROR: + sys_usbd.error("libusb log: %s", msg); + break; + case LIBUSB_LOG_LEVEL_WARNING: + sys_usbd.warning("libusb log: %s", msg); + break; + case LIBUSB_LOG_LEVEL_INFO: + sys_usbd.notice("libusb log: %s", msg); + break; + case LIBUSB_LOG_LEVEL_DEBUG: + sys_usbd.trace("libusb log: %s", msg); + break; + } + }, LIBUSB_LOG_CB_CONTEXT); + for (u32 index = 0; index < MAX_SYS_USBD_TRANSFERS; index++) { transfers[index].transfer = libusb_alloc_transfer(8);