From 9efdad6a2733e701b24e9edcbad1851692ca8863 Mon Sep 17 00:00:00 2001 From: ameerj <52414509+ameerj@users.noreply.github.com> Date: Thu, 17 Nov 2022 19:23:48 -0500 Subject: Configuration: Add per-game input profiles --- src/yuzu/configuration/configure_input_per_game.h | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/yuzu/configuration/configure_input_per_game.h (limited to 'src/yuzu/configuration/configure_input_per_game.h') diff --git a/src/yuzu/configuration/configure_input_per_game.h b/src/yuzu/configuration/configure_input_per_game.h new file mode 100644 index 000000000..6feb608b7 --- /dev/null +++ b/src/yuzu/configuration/configure_input_per_game.h @@ -0,0 +1,44 @@ +// SPDX-FileCopyrightText: 2022 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +#include + +namespace Core { +class System; +} + +namespace InputCommon { +class InputSubsystem; +} + +namespace Ui { +class ConfigureInputPerGame; +} + +class InputProfiles; + +class ConfigureInputPerGame : public QWidget { + Q_OBJECT + +public: + explicit ConfigureInputPerGame(Core::System& system_, QWidget* parent = nullptr); + + /// Initializes the input dialog with the given input subsystem. + // void Initialize(InputCommon::InputSubsystem* input_subsystem_, std::size_t max_players = 8); + + /// Save configurations to settings file. + void ApplyConfiguration(); + +private: + /// Load configuration from settings file. + void LoadConfiguration(); + + std::unique_ptr ui; + std::unique_ptr profiles; + + Core::System& system; +}; -- cgit v1.2.3 From b1b20ad84a5e966bb13f01de037bbfe88ac985cc Mon Sep 17 00:00:00 2001 From: ameerj <52414509+ameerj@users.noreply.github.com> Date: Thu, 17 Nov 2022 20:11:47 -0500 Subject: configure_input_per_game: Allow configuring all 8 players --- src/yuzu/configuration/configure_input_per_game.h | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src/yuzu/configuration/configure_input_per_game.h') diff --git a/src/yuzu/configuration/configure_input_per_game.h b/src/yuzu/configuration/configure_input_per_game.h index 6feb608b7..a586ec07c 100644 --- a/src/yuzu/configuration/configure_input_per_game.h +++ b/src/yuzu/configuration/configure_input_per_game.h @@ -11,10 +11,6 @@ namespace Core { class System; } -namespace InputCommon { -class InputSubsystem; -} - namespace Ui { class ConfigureInputPerGame; } @@ -27,18 +23,20 @@ class ConfigureInputPerGame : public QWidget { public: explicit ConfigureInputPerGame(Core::System& system_, QWidget* parent = nullptr); - /// Initializes the input dialog with the given input subsystem. - // void Initialize(InputCommon::InputSubsystem* input_subsystem_, std::size_t max_players = 8); - - /// Save configurations to settings file. + /// Load and Save configurations to settings file. void ApplyConfiguration(); private: /// Load configuration from settings file. void LoadConfiguration(); + /// Save configuration to settings file. + void SaveConfiguration(); + std::unique_ptr ui; std::unique_ptr profiles; + std::array profile_comboboxes; + Core::System& system; }; -- cgit v1.2.3 From 3de05726eb9d6bd8637134eb37ce8072c4289cd6 Mon Sep 17 00:00:00 2001 From: ameerj <52414509+ameerj@users.noreply.github.com> Date: Sat, 19 Nov 2022 15:39:09 -0500 Subject: config: Custom profile detection fixes Also only reads/writes applicable configs for the custom profiles. --- src/yuzu/configuration/configure_input_per_game.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/yuzu/configuration/configure_input_per_game.h') diff --git a/src/yuzu/configuration/configure_input_per_game.h b/src/yuzu/configuration/configure_input_per_game.h index a586ec07c..660faf574 100644 --- a/src/yuzu/configuration/configure_input_per_game.h +++ b/src/yuzu/configuration/configure_input_per_game.h @@ -7,21 +7,23 @@ #include +#include "ui_configure_input_per_game.h" +#include "yuzu/configuration/input_profiles.h" + +class QComboBox; + namespace Core { class System; -} - -namespace Ui { -class ConfigureInputPerGame; -} +} // namespace Core -class InputProfiles; +class Config; class ConfigureInputPerGame : public QWidget { Q_OBJECT public: - explicit ConfigureInputPerGame(Core::System& system_, QWidget* parent = nullptr); + explicit ConfigureInputPerGame(Core::System& system_, Config* config_, + QWidget* parent = nullptr); /// Load and Save configurations to settings file. void ApplyConfiguration(); @@ -39,4 +41,5 @@ private: std::array profile_comboboxes; Core::System& system; + Config* config; }; -- cgit v1.2.3