From a6bd7917cbc06f9b8f5a7ae24e75db776dc1cd6a Mon Sep 17 00:00:00 2001 From: wwylele Date: Sat, 21 Jan 2017 13:04:00 +0200 Subject: InputCommon: add AnalogFromButton --- src/citra_qt/config.cpp | 27 +++++++++++++++++++++++++++ src/citra_qt/config.h | 2 ++ 2 files changed, 29 insertions(+) (limited to 'src/citra_qt') diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp index 5855c7105..6ccfa1577 100644 --- a/src/citra_qt/config.cpp +++ b/src/citra_qt/config.cpp @@ -22,6 +22,15 @@ const std::array Config::default_button Qt::Key_Q, Qt::Key_W, Qt::Key_M, Qt::Key_N, Qt::Key_1, Qt::Key_2, Qt::Key_B, }; +const std::array, 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::NativeButton::NumButtons; ++i) { @@ -34,6 +43,20 @@ void Config::ReadValues() { 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; + } + qt_config->endGroup(); qt_config->beginGroup("Core"); @@ -158,6 +181,10 @@ void Config::SaveValues() { 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->endGroup(); qt_config->beginGroup("Core"); diff --git a/src/citra_qt/config.h b/src/citra_qt/config.h index d7bf99442..cbf745ea2 100644 --- a/src/citra_qt/config.h +++ b/src/citra_qt/config.h @@ -24,5 +24,7 @@ public: void Reload(); void Save(); + static const std::array default_buttons; + static const std::array, Settings::NativeAnalog::NumAnalogs> default_analogs; }; -- cgit v1.2.3