WiiUtils: Add helper functions to get emulated/real Bluetooth device

This adds a function to get the emulated or real Bluetooth device for
an active emulation instance. This lets us deduplicate all the
`ios->GetDeviceByName("/dev/usb/oh1/57e/305")` calls that are currently
scattered in the codebase and ensures Bluetooth passthrough is being
handled correctly.

This also fixes the broken check in WiimoteCommon::UpdateSource.
There was a confusion between "emulated Bluetooth" (as opposed to
"real Bluetooth" aka Bluetooth passthrough) and "emulated Wiimote".
This commit is contained in:
Léo Lam
2021-04-12 12:49:29 +02:00
parent 136f59b434
commit 336518049d
8 changed files with 50 additions and 45 deletions

View File

@ -24,6 +24,7 @@
#include "Core/HW/WiimoteReal/WiimoteReal.h"
#include "Core/IOS/IOS.h"
#include "Core/IOS/USB/Bluetooth/BTReal.h"
#include "Core/WiiUtils.h"
#include "DolphinQt/Config/Mapping/MappingWindow.h"
#include "DolphinQt/QtUtils/ModalMessageBox.h"
@ -242,11 +243,9 @@ void WiimoteControllersWidget::OnBluetoothPassthroughResetPressed()
return;
}
auto device = ios->GetDeviceByName("/dev/usb/oh1/57e/305");
auto device = WiiUtils::GetBluetoothRealDevice();
if (device != nullptr)
{
std::static_pointer_cast<IOS::HLE::BluetoothBaseDevice>(device)->TriggerSyncButtonHeldEvent();
}
device->TriggerSyncButtonHeldEvent();
}
void WiimoteControllersWidget::OnBluetoothPassthroughSyncPressed()
@ -260,13 +259,9 @@ void WiimoteControllersWidget::OnBluetoothPassthroughSyncPressed()
return;
}
auto device = ios->GetDeviceByName("/dev/usb/oh1/57e/305");
auto device = WiiUtils::GetBluetoothRealDevice();
if (device != nullptr)
{
std::static_pointer_cast<IOS::HLE::BluetoothBaseDevice>(device)
->TriggerSyncButtonPressedEvent();
}
device->TriggerSyncButtonPressedEvent();
}
void WiimoteControllersWidget::OnWiimoteRefreshPressed()