diff options
| author | spycrab <spycrab@users.noreply.github.com> | 2018-01-24 15:25:35 +0100 |
|---|---|---|
| committer | spycrab <spycrab@users.noreply.github.com> | 2018-01-24 19:47:47 +0100 |
| commit | aae5c950f04ff555c459b91ec65002635b2d4987 (patch) | |
| tree | aa02d1ab2c3b2583d1fae9258413f04ada326777 /Source/Core/DolphinQt2/MenuBar.cpp | |
| parent | c66156148dd6ced799f10313cfe6c60e5189ac89 (diff) | |
Qt: Implement "Connect Wii Remotes" menu
Diffstat (limited to 'Source/Core/DolphinQt2/MenuBar.cpp')
| -rw-r--r-- | Source/Core/DolphinQt2/MenuBar.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Source/Core/DolphinQt2/MenuBar.cpp b/Source/Core/DolphinQt2/MenuBar.cpp index 326d35a1b4..bd580713ca 100644 --- a/Source/Core/DolphinQt2/MenuBar.cpp +++ b/Source/Core/DolphinQt2/MenuBar.cpp @@ -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() |
