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

@ -1023,12 +1023,8 @@ void MenuBar::UpdateToolsMenu(bool emulation_started)
m_perform_online_update_for_current_region->setEnabled(tmd.IsValid());
}
const auto ios = IOS::HLE::GetIOS();
const auto bt = ios ? std::static_pointer_cast<IOS::HLE::BluetoothEmuDevice>(
ios->GetDeviceByName("/dev/usb/oh1/57e/305")) :
nullptr;
const bool enable_wiimotes =
emulation_started && bt && !SConfig::GetInstance().m_bt_passthrough_enabled;
const auto bt = WiiUtils::GetBluetoothEmuDevice();
const bool enable_wiimotes = emulation_started && bt != nullptr;
for (std::size_t i = 0; i < m_wii_remotes.size(); i++)
{