From e6bd1fd1b8487e421f71d43b6073ee56de1a043d Mon Sep 17 00:00:00 2001 From: FearlessTobi Date: Tue, 14 Jul 2020 19:01:36 +0200 Subject: yuzu: Add motion and touch configuration --- src/yuzu/configuration/configure_motion_touch.h | 77 +++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/yuzu/configuration/configure_motion_touch.h (limited to 'src/yuzu/configuration/configure_motion_touch.h') diff --git a/src/yuzu/configuration/configure_motion_touch.h b/src/yuzu/configuration/configure_motion_touch.h new file mode 100644 index 000000000..1a4f50022 --- /dev/null +++ b/src/yuzu/configuration/configure_motion_touch.h @@ -0,0 +1,77 @@ +// Copyright 2018 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include +#include +#include "common/param_package.h" +#include "core/settings.h" +#include "input_common/udp/client.h" +#include "input_common/udp/udp.h" + +class QVBoxLayout; +class QLabel; +class QPushButton; + +namespace Ui { +class ConfigureMotionTouch; +} + +/// A dialog for touchpad calibration configuration. +class CalibrationConfigurationDialog : public QDialog { + Q_OBJECT +public: + explicit CalibrationConfigurationDialog(QWidget* parent, const std::string& host, u16 port, + u8 pad_index, u16 client_id); + ~CalibrationConfigurationDialog(); + +private: + Q_INVOKABLE void UpdateLabelText(QString text); + Q_INVOKABLE void UpdateButtonText(QString text); + + QVBoxLayout* layout; + QLabel* status_label; + QPushButton* cancel_button; + std::unique_ptr job; + + // Configuration results + bool completed{}; + u16 min_x, min_y, max_x, max_y; + + friend class ConfigureMotionTouch; +}; + +class ConfigureMotionTouch : public QDialog { + Q_OBJECT + +public: + explicit ConfigureMotionTouch(QWidget* parent = nullptr); + ~ConfigureMotionTouch() override; + +public slots: + void ApplyConfiguration(); + +private slots: + void OnCemuhookUDPTest(); + void OnConfigureTouchCalibration(); + void OnConfigureTouchFromButton(); + +private: + void closeEvent(QCloseEvent* event) override; + Q_INVOKABLE void ShowUDPTestResult(bool result); + void SetConfiguration(); + void UpdateUiDisplay(); + void ConnectEvents(); + bool CanCloseDialog(); + + std::unique_ptr ui; + + // Coordinate system of the CemuhookUDP touch provider + int min_x, min_y, max_x, max_y; + + bool udp_test_in_progress{}; + + std::vector touch_from_button_maps; +}; -- cgit v1.2.3 From d176feffad824bce20b694432ade28fe8273c8e4 Mon Sep 17 00:00:00 2001 From: FearlessTobi Date: Sat, 29 Aug 2020 20:56:51 +0200 Subject: Address review comments and fix code compilation --- src/yuzu/configuration/configure_motion_touch.h | 29 ++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'src/yuzu/configuration/configure_motion_touch.h') diff --git a/src/yuzu/configuration/configure_motion_touch.h b/src/yuzu/configuration/configure_motion_touch.h index 1a4f50022..2a7cdfed7 100644 --- a/src/yuzu/configuration/configure_motion_touch.h +++ b/src/yuzu/configuration/configure_motion_touch.h @@ -7,29 +7,30 @@ #include #include #include "common/param_package.h" -#include "core/settings.h" -#include "input_common/udp/client.h" -#include "input_common/udp/udp.h" -class QVBoxLayout; class QLabel; class QPushButton; +class QVBoxLayout; namespace Ui { class ConfigureMotionTouch; } +namespace InputCommon::CemuhookUDP { +class CalibrationConfigurationJob; +} + /// A dialog for touchpad calibration configuration. class CalibrationConfigurationDialog : public QDialog { Q_OBJECT public: explicit CalibrationConfigurationDialog(QWidget* parent, const std::string& host, u16 port, u8 pad_index, u16 client_id); - ~CalibrationConfigurationDialog(); + ~CalibrationConfigurationDialog() override; private: - Q_INVOKABLE void UpdateLabelText(QString text); - Q_INVOKABLE void UpdateButtonText(QString text); + Q_INVOKABLE void UpdateLabelText(const QString& text); + Q_INVOKABLE void UpdateButtonText(const QString& text); QVBoxLayout* layout; QLabel* status_label; @@ -38,7 +39,10 @@ private: // Configuration results bool completed{}; - u16 min_x, min_y, max_x, max_y; + u16 min_x{}; + u16 min_y{}; + u16 max_x{}; + u16 max_y{}; friend class ConfigureMotionTouch; }; @@ -47,7 +51,7 @@ class ConfigureMotionTouch : public QDialog { Q_OBJECT public: - explicit ConfigureMotionTouch(QWidget* parent = nullptr); + explicit ConfigureMotionTouch(QWidget* parent, InputCommon::InputSubsystem* input_subsystem_); ~ConfigureMotionTouch() override; public slots: @@ -69,9 +73,14 @@ private: std::unique_ptr ui; // Coordinate system of the CemuhookUDP touch provider - int min_x, min_y, max_x, max_y; + int min_x{}; + int min_y{}; + int max_x{}; + int max_y{}; bool udp_test_in_progress{}; + InputCommon::InputSubsystem* input_subsystem; + std::vector touch_from_button_maps; }; -- cgit v1.2.3 From 0aa6ec42764756c8312da6faf5e67d85c3c28b2f Mon Sep 17 00:00:00 2001 From: FearlessTobi Date: Sat, 29 Aug 2020 21:34:01 +0200 Subject: Reolve reorder warning --- src/yuzu/configuration/configure_motion_touch.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/yuzu/configuration/configure_motion_touch.h') diff --git a/src/yuzu/configuration/configure_motion_touch.h b/src/yuzu/configuration/configure_motion_touch.h index 2a7cdfed7..0fafb3aed 100644 --- a/src/yuzu/configuration/configure_motion_touch.h +++ b/src/yuzu/configuration/configure_motion_touch.h @@ -70,6 +70,8 @@ private: void ConnectEvents(); bool CanCloseDialog(); + InputCommon::InputSubsystem* input_subsystem; + std::unique_ptr ui; // Coordinate system of the CemuhookUDP touch provider @@ -80,7 +82,5 @@ private: bool udp_test_in_progress{}; - InputCommon::InputSubsystem* input_subsystem; - std::vector touch_from_button_maps; }; -- cgit v1.2.3 From d1e1ea0fef0ddfe914f14a2d547b922b71081695 Mon Sep 17 00:00:00 2001 From: FearlessTobi Date: Sun, 30 Aug 2020 00:07:38 +0200 Subject: Address second batch of reviews --- src/yuzu/configuration/configure_motion_touch.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/yuzu/configuration/configure_motion_touch.h') diff --git a/src/yuzu/configuration/configure_motion_touch.h b/src/yuzu/configuration/configure_motion_touch.h index 0fafb3aed..3d4b5d659 100644 --- a/src/yuzu/configuration/configure_motion_touch.h +++ b/src/yuzu/configuration/configure_motion_touch.h @@ -12,14 +12,18 @@ class QLabel; class QPushButton; class QVBoxLayout; -namespace Ui { -class ConfigureMotionTouch; +namespace InputCommon { +class InputSubsystem; } namespace InputCommon::CemuhookUDP { class CalibrationConfigurationJob; } +namespace Ui { +class ConfigureMotionTouch; +} + /// A dialog for touchpad calibration configuration. class CalibrationConfigurationDialog : public QDialog { Q_OBJECT -- cgit v1.2.3