diff options
author | Zephyron <zephyron@citron-emu.org> | 2024-12-31 16:19:25 +1000 |
---|---|---|
committer | Zephyron <zephyron@citron-emu.org> | 2024-12-31 16:19:25 +1000 |
commit | 9427e27e24a7135880ee2881c3c44988e174b41a (patch) | |
tree | 83f0062a35be144f6b162eaa823c5b3c7620146e /src/citron/debugger/controller.h | |
parent | b35ae725d20960411e8588b11c12a2d55f86c9d0 (diff) |
chore: update project branding to citron
Diffstat (limited to 'src/citron/debugger/controller.h')
-rw-r--r-- | src/citron/debugger/controller.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/citron/debugger/controller.h b/src/citron/debugger/controller.h new file mode 100644 index 000000000..9651dfaa9 --- /dev/null +++ b/src/citron/debugger/controller.h @@ -0,0 +1,56 @@ +// SPDX-FileCopyrightText: 2015 Citra Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <QWidget> + +class QAction; +class QHideEvent; +class QShowEvent; +class PlayerControlPreview; + +namespace InputCommon { +class InputSubsystem; +} + +namespace Core::HID { +class HIDCore; +class EmulatedController; +enum class ControllerTriggerType; +} // namespace Core::HID + +class ControllerDialog : public QWidget { + Q_OBJECT + +public: + explicit ControllerDialog(Core::HID::HIDCore& hid_core_, + std::shared_ptr<InputCommon::InputSubsystem> input_subsystem_, + QWidget* parent = nullptr); + + /// Returns a QAction that can be used to toggle visibility of this dialog. + QAction* toggleViewAction(); + + /// Reloads the widget to apply any changes in the configuration + void refreshConfiguration(); + + /// Disables events from the emulated controller + void UnloadController(); + +protected: + void showEvent(QShowEvent* ev) override; + void hideEvent(QHideEvent* ev) override; + +private: + /// Redirects input from the widget to the TAS driver + void ControllerUpdate(Core::HID::ControllerTriggerType type); + + int callback_key; + bool is_controller_set{}; + Core::HID::EmulatedController* controller; + + QAction* toggle_view_action = nullptr; + PlayerControlPreview* widget; + Core::HID::HIDCore& hid_core; + std::shared_ptr<InputCommon::InputSubsystem> input_subsystem; +}; |