diff options
Diffstat (limited to 'src/citra_qt/config.cpp')
| -rw-r--r-- | src/citra_qt/config.cpp | 62 |
1 files changed, 43 insertions, 19 deletions
diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp index 5fe57dfa2..6ccfa1577 100644 --- a/src/citra_qt/config.cpp +++ b/src/citra_qt/config.cpp | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #include "citra_qt/config.h" | 6 | #include "citra_qt/config.h" |
| 7 | #include "citra_qt/ui_settings.h" | 7 | #include "citra_qt/ui_settings.h" |
| 8 | #include "common/file_util.h" | 8 | #include "common/file_util.h" |
| 9 | #include "input_common/main.h" | ||
| 9 | 10 | ||
| 10 | Config::Config() { | 11 | Config::Config() { |
| 11 | // TODO: Don't hardcode the path; let the frontend decide where to put the config files. | 12 | // TODO: Don't hardcode the path; let the frontend decide where to put the config files. |
| @@ -16,25 +17,46 @@ Config::Config() { | |||
| 16 | Reload(); | 17 | Reload(); |
| 17 | } | 18 | } |
| 18 | 19 | ||
| 19 | const std::array<QVariant, Settings::NativeInput::NUM_INPUTS> Config::defaults = { | 20 | const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { |
| 20 | // directly mapped keys | 21 | Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_T, Qt::Key_G, Qt::Key_F, Qt::Key_H, |
| 21 | Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_Q, Qt::Key_W, Qt::Key_1, Qt::Key_2, | 22 | Qt::Key_Q, Qt::Key_W, Qt::Key_M, Qt::Key_N, Qt::Key_1, Qt::Key_2, Qt::Key_B, |
| 22 | Qt::Key_M, Qt::Key_N, Qt::Key_B, Qt::Key_T, Qt::Key_G, Qt::Key_F, Qt::Key_H, Qt::Key_I, | ||
| 23 | Qt::Key_K, Qt::Key_J, Qt::Key_L, | ||
| 24 | |||
| 25 | // indirectly mapped keys | ||
| 26 | Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right, Qt::Key_D, | ||
| 27 | }; | 23 | }; |
| 28 | 24 | ||
| 25 | const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ | ||
| 26 | { | ||
| 27 | Qt::Key_Up, Qt::Key_Down, Qt::Key_Left, Qt::Key_Right, Qt::Key_D, | ||
| 28 | }, | ||
| 29 | { | ||
| 30 | Qt::Key_I, Qt::Key_K, Qt::Key_J, Qt::Key_L, Qt::Key_D, | ||
| 31 | }, | ||
| 32 | }}; | ||
| 33 | |||
| 29 | void Config::ReadValues() { | 34 | void Config::ReadValues() { |
| 30 | qt_config->beginGroup("Controls"); | 35 | qt_config->beginGroup("Controls"); |
| 31 | for (int i = 0; i < Settings::NativeInput::NUM_INPUTS; ++i) { | 36 | for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) { |
| 32 | Settings::values.input_mappings[Settings::NativeInput::All[i]] = | 37 | std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]); |
| 33 | qt_config->value(QString::fromStdString(Settings::NativeInput::Mapping[i]), defaults[i]) | 38 | Settings::values.buttons[i] = |
| 34 | .toInt(); | 39 | qt_config |
| 40 | ->value(Settings::NativeButton::mapping[i], QString::fromStdString(default_param)) | ||
| 41 | .toString() | ||
| 42 | .toStdString(); | ||
| 43 | if (Settings::values.buttons[i].empty()) | ||
| 44 | Settings::values.buttons[i] = default_param; | ||
| 45 | } | ||
| 46 | |||
| 47 | for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) { | ||
| 48 | std::string default_param = InputCommon::GenerateAnalogParamFromKeys( | ||
| 49 | default_analogs[i][0], default_analogs[i][1], default_analogs[i][2], | ||
| 50 | default_analogs[i][3], default_analogs[i][4], 0.5f); | ||
| 51 | Settings::values.analogs[i] = | ||
| 52 | qt_config | ||
| 53 | ->value(Settings::NativeAnalog::mapping[i], QString::fromStdString(default_param)) | ||
| 54 | .toString() | ||
| 55 | .toStdString(); | ||
| 56 | if (Settings::values.analogs[i].empty()) | ||
| 57 | Settings::values.analogs[i] = default_param; | ||
| 35 | } | 58 | } |
| 36 | Settings::values.pad_circle_modifier_scale = | 59 | |
| 37 | qt_config->value("pad_circle_modifier_scale", 0.5).toFloat(); | ||
| 38 | qt_config->endGroup(); | 60 | qt_config->endGroup(); |
| 39 | 61 | ||
| 40 | qt_config->beginGroup("Core"); | 62 | qt_config->beginGroup("Core"); |
| @@ -155,12 +177,14 @@ void Config::ReadValues() { | |||
| 155 | 177 | ||
| 156 | void Config::SaveValues() { | 178 | void Config::SaveValues() { |
| 157 | qt_config->beginGroup("Controls"); | 179 | qt_config->beginGroup("Controls"); |
| 158 | for (int i = 0; i < Settings::NativeInput::NUM_INPUTS; ++i) { | 180 | for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) { |
| 159 | qt_config->setValue(QString::fromStdString(Settings::NativeInput::Mapping[i]), | 181 | qt_config->setValue(QString::fromStdString(Settings::NativeButton::mapping[i]), |
| 160 | Settings::values.input_mappings[Settings::NativeInput::All[i]]); | 182 | QString::fromStdString(Settings::values.buttons[i])); |
| 183 | } | ||
| 184 | for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) { | ||
| 185 | qt_config->setValue(QString::fromStdString(Settings::NativeAnalog::mapping[i]), | ||
| 186 | QString::fromStdString(Settings::values.analogs[i])); | ||
| 161 | } | 187 | } |
| 162 | qt_config->setValue("pad_circle_modifier_scale", | ||
| 163 | (double)Settings::values.pad_circle_modifier_scale); | ||
| 164 | qt_config->endGroup(); | 188 | qt_config->endGroup(); |
| 165 | 189 | ||
| 166 | qt_config->beginGroup("Core"); | 190 | qt_config->beginGroup("Core"); |