yuzu: Add custom ringcon configuration
This commit is contained in:
parent
0a05a333e2
commit
25c46f82c5
19 changed files with 992 additions and 65 deletions
|
@ -60,6 +60,11 @@ const std::array<int, 2> Config::default_stick_mod = {
|
|||
0,
|
||||
};
|
||||
|
||||
const std::array<int, 2> Config::default_ringcon_analogs{{
|
||||
Qt::Key_A,
|
||||
Qt::Key_D,
|
||||
}};
|
||||
|
||||
// This shouldn't have anything except static initializers (no functions). So
|
||||
// QKeySequence(...).toString() is NOT ALLOWED HERE.
|
||||
// This must be in alphabetical order according to action name as it must have the same order as
|
||||
|
@ -346,6 +351,23 @@ void Config::ReadTouchscreenValues() {
|
|||
ReadSetting(QStringLiteral("touchscreen_diameter_y"), 15).toUInt();
|
||||
}
|
||||
|
||||
void Config::ReadHidbusValues() {
|
||||
Settings::values.enable_ring_controller =
|
||||
ReadSetting(QStringLiteral("enable_ring_controller"), true).toBool();
|
||||
|
||||
const std::string default_param = InputCommon::GenerateAnalogParamFromKeys(
|
||||
0, 0, default_ringcon_analogs[0], default_ringcon_analogs[1], 0, 0.05f);
|
||||
auto& ringcon_analogs = Settings::values.ringcon_analogs;
|
||||
|
||||
ringcon_analogs =
|
||||
qt_config->value(QStringLiteral("ring_controller"), QString::fromStdString(default_param))
|
||||
.toString()
|
||||
.toStdString();
|
||||
if (ringcon_analogs.empty()) {
|
||||
ringcon_analogs = default_param;
|
||||
}
|
||||
}
|
||||
|
||||
void Config::ReadAudioValues() {
|
||||
qt_config->beginGroup(QStringLiteral("Audio"));
|
||||
|
||||
|
@ -369,6 +391,7 @@ void Config::ReadControlValues() {
|
|||
ReadMouseValues();
|
||||
ReadTouchscreenValues();
|
||||
ReadMotionTouchValues();
|
||||
ReadHidbusValues();
|
||||
|
||||
#ifdef _WIN32
|
||||
ReadBasicSetting(Settings::values.enable_raw_input);
|
||||
|
@ -962,6 +985,16 @@ void Config::SaveMotionTouchValues() {
|
|||
qt_config->endArray();
|
||||
}
|
||||
|
||||
void Config::SaveHidbusValues() {
|
||||
WriteBasicSetting(Settings::values.enable_ring_controller);
|
||||
|
||||
const std::string default_param = InputCommon::GenerateAnalogParamFromKeys(
|
||||
0, 0, default_ringcon_analogs[0], default_ringcon_analogs[1], 0, 0.05f);
|
||||
WriteSetting(QStringLiteral("ring_controller"),
|
||||
QString::fromStdString(Settings::values.ringcon_analogs),
|
||||
QString::fromStdString(default_param));
|
||||
}
|
||||
|
||||
void Config::SaveValues() {
|
||||
if (global) {
|
||||
SaveControlValues();
|
||||
|
@ -1002,6 +1035,7 @@ void Config::SaveControlValues() {
|
|||
SaveMouseValues();
|
||||
SaveTouchscreenValues();
|
||||
SaveMotionTouchValues();
|
||||
SaveHidbusValues();
|
||||
|
||||
WriteGlobalSetting(Settings::values.use_docked_mode);
|
||||
WriteGlobalSetting(Settings::values.vibration_enabled);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue