diff options
| author | Shawn Rast <shawn@rast.dev> | 2025-06-24 00:19:52 -0500 |
|---|---|---|
| committer | Shawn Rast <shawn@rast.dev> | 2025-06-24 15:39:46 -0500 |
| commit | 71fa08813a25d152ffe7bfe0e82b3330dad3a23f (patch) | |
| tree | 07a3c0babc56219bc54e3fbc10175cad1a829c0c /Source/Core | |
| parent | fa9f71e48232e054605e721266c90cb106ca6924 (diff) | |
BT passthrough uses selected device rather than first alphabetical compatible device
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp | 12 | ||||
| -rw-r--r-- | Source/Core/Core/IOS/USB/Bluetooth/BTReal.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp index fae0c6e662..7940c37fc0 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp @@ -73,6 +73,13 @@ BluetoothRealDevice::~BluetoothRealDevice() SaveLinkKeys(); } +bool BluetoothRealDevice::HasConfiguredBluetoothDevice() +{ + const int configured_vid = Config::Get(Config::MAIN_BLUETOOTH_PASSTHROUGH_VID); + const int configured_pid = Config::Get(Config::MAIN_BLUETOOTH_PASSTHROUGH_PID); + return configured_vid != -1 && configured_pid != -1; +} + bool BluetoothRealDevice::IsConfiguredBluetoothDevice(u16 vid, u16 pid) { const int configured_vid = Config::Get(Config::MAIN_BLUETOOTH_PASSTHROUGH_VID); @@ -99,6 +106,11 @@ std::optional<IPCReply> BluetoothRealDevice::Open(const OpenRequest& request) return true; } + if (HasConfiguredBluetoothDevice() && + !IsConfiguredBluetoothDevice(device_descriptor.idVendor, device_descriptor.idProduct)) + { + return true; + } if (IsBluetoothDevice(device_descriptor) && OpenDevice(device_descriptor, device)) { unsigned char manufacturer[50] = {}, product[50] = {}, serial_number[50] = {}; diff --git a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.h b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.h index 96a18c0617..b40ace416e 100644 --- a/Source/Core/Core/IOS/USB/Bluetooth/BTReal.h +++ b/Source/Core/Core/IOS/USB/Bluetooth/BTReal.h @@ -59,6 +59,7 @@ public: void HandleBulkOrIntrTransfer(libusb_transfer* finished_transfer); static bool IsConfiguredBluetoothDevice(u16 vid, u16 pid); + static bool HasConfiguredBluetoothDevice(); struct BluetoothDeviceInfo { |
