summaryrefslogtreecommitdiffstats
path: root/src/citra_qt/configuration/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/citra_qt/configuration/config.cpp (renamed from src/citra_qt/config.cpp)82
1 files changed, 62 insertions, 20 deletions
diff --git a/src/citra_qt/config.cpp b/src/citra_qt/configuration/config.cpp
index 5fe57dfa2..0b9b73f9e 100644
--- a/src/citra_qt/config.cpp
+++ b/src/citra_qt/configuration/config.cpp
@@ -3,9 +3,10 @@
// Refer to the license.txt file included.
#include <QSettings>
-#include "citra_qt/config.h"
+#include "citra_qt/configuration/config.h"
#include "citra_qt/ui_settings.h"
#include "common/file_util.h"
+#include "input_common/main.h"
Config::Config() {
// TODO: Don't hardcode the path; let the frontend decide where to put the config files.
@@ -16,25 +17,46 @@ Config::Config() {
Reload();
}
-const std::array<QVariant, Settings::NativeInput::NUM_INPUTS> Config::defaults = {
- // directly mapped keys
- Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_Q, Qt::Key_W, Qt::Key_1, Qt::Key_2,
- Qt::Key_M, Qt::Key_N, Qt::Key_B, Qt::Key_T, Qt::Key_G, Qt::Key_F, Qt::Key_H, Qt::Key_I,
- Qt::Key_K, Qt::Key_J, Qt::Key_L,
-
- // indirectly mapped keys
- Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right, Qt::Key_D,
+const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = {
+ Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_T, Qt::Key_G, Qt::Key_F, Qt::Key_H,
+ Qt::Key_Q, Qt::Key_W, Qt::Key_M, Qt::Key_N, Qt::Key_1, Qt::Key_2, Qt::Key_B,
};
+const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{
+ {
+ Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right, Qt::Key_D,
+ },
+ {
+ Qt::Key_I, Qt::Key_K, Qt::Key_J, Qt::Key_L, Qt::Key_D,
+ },
+}};
+
void Config::ReadValues() {
qt_config->beginGroup("Controls");
- for (int i = 0; i < Settings::NativeInput::NUM_INPUTS; ++i) {
- Settings::values.input_mappings[Settings::NativeInput::All[i]] =
- qt_config->value(QString::fromStdString(Settings::NativeInput::Mapping[i]), defaults[i])
- .toInt();
+ for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
+ std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
+ Settings::values.buttons[i] =
+ qt_config
+ ->value(Settings::NativeButton::mapping[i], QString::fromStdString(default_param))
+ .toString()
+ .toStdString();
+ if (Settings::values.buttons[i].empty())
+ Settings::values.buttons[i] = default_param;
+ }
+
+ for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) {
+ std::string default_param = InputCommon::GenerateAnalogParamFromKeys(
+ default_analogs[i][0], default_analogs[i][1], default_analogs[i][2],
+ default_analogs[i][3], default_analogs[i][4], 0.5f);
+ Settings::values.analogs[i] =
+ qt_config
+ ->value(Settings::NativeAnalog::mapping[i], QString::fromStdString(default_param))
+ .toString()
+ .toStdString();
+ if (Settings::values.analogs[i].empty())
+ Settings::values.analogs[i] = default_param;
}
- Settings::values.pad_circle_modifier_scale =
- qt_config->value("pad_circle_modifier_scale", 0.5).toFloat();
+
qt_config->endGroup();
qt_config->beginGroup("Core");
@@ -57,6 +79,15 @@ void Config::ReadValues() {
Settings::values.layout_option =
static_cast<Settings::LayoutOption>(qt_config->value("layout_option").toInt());
Settings::values.swap_screen = qt_config->value("swap_screen", false).toBool();
+ Settings::values.custom_layout = qt_config->value("custom_layout", false).toBool();
+ Settings::values.custom_top_left = qt_config->value("custom_top_left", 0).toInt();
+ Settings::values.custom_top_top = qt_config->value("custom_top_top", 0).toInt();
+ Settings::values.custom_top_right = qt_config->value("custom_top_right", 400).toInt();
+ Settings::values.custom_top_bottom = qt_config->value("custom_top_bottom", 240).toInt();
+ Settings::values.custom_bottom_left = qt_config->value("custom_bottom_left", 40).toInt();
+ Settings::values.custom_bottom_top = qt_config->value("custom_bottom_top", 240).toInt();
+ Settings::values.custom_bottom_right = qt_config->value("custom_bottom_right", 360).toInt();
+ Settings::values.custom_bottom_bottom = qt_config->value("custom_bottom_bottom", 480).toInt();
qt_config->endGroup();
qt_config->beginGroup("Audio");
@@ -155,12 +186,14 @@ void Config::ReadValues() {
void Config::SaveValues() {
qt_config->beginGroup("Controls");
- for (int i = 0; i < Settings::NativeInput::NUM_INPUTS; ++i) {
- qt_config->setValue(QString::fromStdString(Settings::NativeInput::Mapping[i]),
- Settings::values.input_mappings[Settings::NativeInput::All[i]]);
+ for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
+ qt_config->setValue(QString::fromStdString(Settings::NativeButton::mapping[i]),
+ QString::fromStdString(Settings::values.buttons[i]));
+ }
+ for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) {
+ qt_config->setValue(QString::fromStdString(Settings::NativeAnalog::mapping[i]),
+ QString::fromStdString(Settings::values.analogs[i]));
}
- qt_config->setValue("pad_circle_modifier_scale",
- (double)Settings::values.pad_circle_modifier_scale);
qt_config->endGroup();
qt_config->beginGroup("Core");
@@ -183,6 +216,15 @@ void Config::SaveValues() {
qt_config->beginGroup("Layout");
qt_config->setValue("layout_option", static_cast<int>(Settings::values.layout_option));
qt_config->setValue("swap_screen", Settings::values.swap_screen);
+ qt_config->setValue("custom_layout", Settings::values.custom_layout);
+ qt_config->setValue("custom_top_left", Settings::values.custom_top_left);
+ qt_config->setValue("custom_top_top", Settings::values.custom_top_top);
+ qt_config->setValue("custom_top_right", Settings::values.custom_top_right);
+ qt_config->setValue("custom_top_bottom", Settings::values.custom_top_bottom);
+ qt_config->setValue("custom_bottom_left", Settings::values.custom_bottom_left);
+ qt_config->setValue("custom_bottom_top", Settings::values.custom_bottom_top);
+ qt_config->setValue("custom_bottom_right", Settings::values.custom_bottom_right);
+ qt_config->setValue("custom_bottom_bottom", Settings::values.custom_bottom_bottom);
qt_config->endGroup();
qt_config->beginGroup("Audio");