summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt2/MenuBar.cpp
diff options
context:
space:
mode:
authorspycrab <spycrab@users.noreply.github.com>2018-01-24 15:25:35 +0100
committerspycrab <spycrab@users.noreply.github.com>2018-01-24 19:47:47 +0100
commitaae5c950f04ff555c459b91ec65002635b2d4987 (patch)
treeaa02d1ab2c3b2583d1fae9258413f04ada326777 /Source/Core/DolphinQt2/MenuBar.cpp
parentc66156148dd6ced799f10313cfe6c60e5189ac89 (diff)
Qt: Implement "Connect Wii Remotes" menu
Diffstat (limited to 'Source/Core/DolphinQt2/MenuBar.cpp')
-rw-r--r--Source/Core/DolphinQt2/MenuBar.cpp33
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()