summaryrefslogtreecommitdiff
path: root/src/yuzu/configuration/configure_hotkeys.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-01-11 10:49:23 -0800
committerGitHub <noreply@github.com>2022-01-11 10:49:23 -0800
commitc65c651b6fb174084a26039ce6ea78e9cd3aedf0 (patch)
tree9790b6abe3e9d05649629fe851031438ed6ad139 /src/yuzu/configuration/configure_hotkeys.h
parentb3308830b217cbdd9638b11e8660d079e16b3f01 (diff)
parent72c8a94a6cdb4d3f322fa6d4b06eab824f53dba6 (diff)
Merge pull request #7633 from german77/hotkeys
yuzu: Add controller hotkeys
Diffstat (limited to 'src/yuzu/configuration/configure_hotkeys.h')
-rw-r--r--src/yuzu/configuration/configure_hotkeys.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/yuzu/configuration/configure_hotkeys.h b/src/yuzu/configuration/configure_hotkeys.h
index a2ec3323e..f943ec538 100644
--- a/src/yuzu/configuration/configure_hotkeys.h
+++ b/src/yuzu/configuration/configure_hotkeys.h
@@ -7,6 +7,16 @@
#include <memory>
#include <QWidget>
+namespace Common {
+class ParamPackage;
+}
+
+namespace Core::HID {
+class HIDCore;
+class EmulatedController;
+enum class NpadButton : u64;
+} // namespace Core::HID
+
namespace Ui {
class ConfigureHotkeys;
}
@@ -18,7 +28,7 @@ class ConfigureHotkeys : public QWidget {
Q_OBJECT
public:
- explicit ConfigureHotkeys(QWidget* parent = nullptr);
+ explicit ConfigureHotkeys(Core::HID::HIDCore& hid_core_, QWidget* parent = nullptr);
~ConfigureHotkeys() override;
void ApplyConfiguration(HotkeyRegistry& registry);
@@ -35,13 +45,24 @@ private:
void RetranslateUI();
void Configure(QModelIndex index);
+ void ConfigureController(QModelIndex index);
std::pair<bool, QString> IsUsedKey(QKeySequence key_sequence) const;
+ std::pair<bool, QString> IsUsedControllerKey(const QString& key_sequence) const;
void RestoreDefaults();
void ClearAll();
void PopupContextMenu(const QPoint& menu_location);
+ void RestoreControllerHotkey(QModelIndex index);
+ void RestoreHotkey(QModelIndex index);
std::unique_ptr<Ui::ConfigureHotkeys> ui;
QStandardItemModel* model;
+
+ void SetPollingResult(Core::HID::NpadButton button, bool cancel);
+ QString GetButtonName(Core::HID::NpadButton button) const;
+ Core::HID::EmulatedController* controller;
+ std::unique_ptr<QTimer> timeout_timer;
+ std::unique_ptr<QTimer> poll_timer;
+ std::optional<std::function<void(Core::HID::NpadButton, bool)>> input_setter;
};