mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 22:00:39 -06:00
Qt: Implement "Connect Wii Remotes" menu
This commit is contained in:
@ -24,6 +24,7 @@
|
||||
#include "Core/HW/Wiimote.h"
|
||||
#include "Core/IOS/ES/ES.h"
|
||||
#include "Core/IOS/IOS.h"
|
||||
#include "Core/IOS/USB/Bluetooth/BTEmu.h"
|
||||
#include "Core/Movie.h"
|
||||
#include "Core/State.h"
|
||||
#include "Core/TitleDatabase.h"
|
||||
@ -156,6 +157,24 @@ void MenuBar::AddToolsMenu()
|
||||
[this] { emit PerformOnlineUpdate("KOR"); });
|
||||
AddAction(m_perform_online_update_menu, tr("United States"), this,
|
||||
[this] { emit PerformOnlineUpdate("USA"); });
|
||||
|
||||
QMenu* menu = new QMenu(tr("Connect Wii Remotes"));
|
||||
|
||||
tools_menu->addSeparator();
|
||||
tools_menu->addMenu(menu);
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
m_wii_remotes[i] = AddAction(menu, tr("Connect Wii Remote %1").arg(i + 1), this,
|
||||
[this, i] { emit ConnectWiiRemote(i); });
|
||||
m_wii_remotes[i]->setCheckable(true);
|
||||
}
|
||||
|
||||
menu->addSeparator();
|
||||
|
||||
m_wii_remotes[4] =
|
||||
AddAction(menu, tr("Connect Balance Board"), this, [this] { emit ConnectWiiRemote(4); });
|
||||
m_wii_remotes[4]->setCheckable(true);
|
||||
}
|
||||
|
||||
void MenuBar::AddEmulationMenu()
|
||||
@ -541,6 +560,20 @@ void MenuBar::UpdateToolsMenu(bool emulation_started)
|
||||
action->setEnabled(!tmd.IsValid());
|
||||
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::Device::BluetoothEmu>(
|
||||
ios->GetDeviceByName("/dev/usb/oh1/57e/305")) :
|
||||
nullptr;
|
||||
bool enable_wiimotes =
|
||||
emulation_started && bt && !SConfig::GetInstance().m_bt_passthrough_enabled;
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
m_wii_remotes[i]->setEnabled(enable_wiimotes);
|
||||
if (enable_wiimotes)
|
||||
m_wii_remotes[i]->setChecked(bt->AccessWiiMote(0x0100 + i)->IsConnected());
|
||||
}
|
||||
}
|
||||
|
||||
void MenuBar::InstallWAD()
|
||||
|
Reference in New Issue
Block a user