// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include #include "game_info.h" // macros > declaring constants // also, we were only using one counterpart #ifdef _WIN32 #define LCTRL_KEY 29 #define LALT_KEY 56 #define LSHIFT_KEY 42 #else #define LCTRL_KEY 37 #define LALT_KEY 64 #define LSHIFT_KEY 50 #endif namespace Ui { class KBMSettings; } class KBMSettings : public QDialog { Q_OBJECT public: explicit KBMSettings(std::shared_ptr game_info_get, QWidget* parent = nullptr); ~KBMSettings(); private Q_SLOTS: void SaveKBMConfig(bool CloseOnSave); void SetDefault(); void CheckMapping(QPushButton*& button); void StartTimer(QPushButton*& button); void onHelpClicked(); private: std::unique_ptr ui; std::shared_ptr m_game_info; bool eventFilter(QObject* obj, QEvent* event) override; QString GetModifiedButton(Qt::KeyboardModifiers modifier, std::string m_button, std::string n_button); void ButtonConnects(); void SetUIValuestoMappings(std::string config_id); void GetGameTitle(); void DisableMappingButtons(); void EnableMappingButtons(); void SetMapping(QString input); QSet pressedKeys; bool EnableMapping = false; bool MappingCompleted = false; bool HelpWindowOpen = false; QString mapping; QString modifier; int MappingTimer; QTimer* timer; QPushButton* MappingButton; QList ButtonsList; std::string config_id; const std::vector ControllerInputs = { "cross", "circle", "square", "triangle", "l1", "r1", "l2", "r2", "l3", "r3", "options", "pad_up", "pad_down", "pad_left", "pad_right", "axis_left_x", "axis_left_y", "axis_right_x", "axis_right_y", "back"}; };