mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-12-24 18:32:49 -06:00
configure_input: Hook up the vibration percentage spinbox
This allows setting the vibration strength percentage anywhere from 1% to 100%. Also hooks up the remaining motion button and checkbox in the Controller Applet.
This commit is contained in:
parent
e02ef3c3be
commit
652d6766d5
11 changed files with 26 additions and 3 deletions
|
@ -703,7 +703,8 @@ void Controller_NPad::VibrateController(const std::vector<DeviceHandle>& vibrati
|
||||||
|
|
||||||
// TODO: Vibrate left/right vibration motors independently if possible.
|
// TODO: Vibrate left/right vibration motors independently if possible.
|
||||||
button_state[A - BUTTON_HID_BEGIN]->SetRumblePlay(
|
button_state[A - BUTTON_HID_BEGIN]->SetRumblePlay(
|
||||||
vibration_values[i].amp_high, vibration_values[i].amp_low,
|
vibration_values[i].amp_high * Settings::values.vibration_strength.GetValue() / 100,
|
||||||
|
vibration_values[i].amp_low * Settings::values.vibration_strength.GetValue() / 100,
|
||||||
vibration_values[i].freq_high, vibration_values[i].freq_low);
|
vibration_values[i].freq_high, vibration_values[i].freq_low);
|
||||||
|
|
||||||
latest_vibration_values[npad_index][device_index] = vibration_values[i];
|
latest_vibration_values[npad_index][device_index] = vibration_values[i];
|
||||||
|
|
|
@ -150,6 +150,7 @@ void RestoreGlobalState() {
|
||||||
values.players.SetGlobal(true);
|
values.players.SetGlobal(true);
|
||||||
values.use_docked_mode.SetGlobal(true);
|
values.use_docked_mode.SetGlobal(true);
|
||||||
values.vibration_enabled.SetGlobal(true);
|
values.vibration_enabled.SetGlobal(true);
|
||||||
|
values.vibration_strength.SetGlobal(true);
|
||||||
values.motion_enabled.SetGlobal(true);
|
values.motion_enabled.SetGlobal(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -170,6 +170,7 @@ struct Values {
|
||||||
Setting<bool> use_docked_mode;
|
Setting<bool> use_docked_mode;
|
||||||
|
|
||||||
Setting<bool> vibration_enabled;
|
Setting<bool> vibration_enabled;
|
||||||
|
Setting<int> vibration_strength;
|
||||||
|
|
||||||
Setting<bool> motion_enabled;
|
Setting<bool> motion_enabled;
|
||||||
std::string motion_device;
|
std::string motion_device;
|
||||||
|
|
|
@ -266,6 +266,8 @@ void QtControllerSelectorDialog::ApplyConfiguration() {
|
||||||
OnDockedModeChanged(pre_docked_mode, Settings::values.use_docked_mode.GetValue());
|
OnDockedModeChanged(pre_docked_mode, Settings::values.use_docked_mode.GetValue());
|
||||||
|
|
||||||
Settings::values.vibration_enabled.SetValue(ui->vibrationGroup->isChecked());
|
Settings::values.vibration_enabled.SetValue(ui->vibrationGroup->isChecked());
|
||||||
|
Settings::values.vibration_strength.SetValue(ui->vibrationSpin->value());
|
||||||
|
Settings::values.motion_enabled.SetValue(ui->motionGroup->isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtControllerSelectorDialog::LoadConfiguration() {
|
void QtControllerSelectorDialog::LoadConfiguration() {
|
||||||
|
@ -281,6 +283,8 @@ void QtControllerSelectorDialog::LoadConfiguration() {
|
||||||
UpdateDockedState(Settings::values.players.GetValue()[8].connected);
|
UpdateDockedState(Settings::values.players.GetValue()[8].connected);
|
||||||
|
|
||||||
ui->vibrationGroup->setChecked(Settings::values.vibration_enabled.GetValue());
|
ui->vibrationGroup->setChecked(Settings::values.vibration_enabled.GetValue());
|
||||||
|
ui->vibrationSpin->setValue(Settings::values.vibration_strength.GetValue());
|
||||||
|
ui->motionGroup->setChecked(Settings::values.motion_enabled.GetValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtControllerSelectorDialog::CallConfigureInputDialog() {
|
void QtControllerSelectorDialog::CallConfigureInputDialog() {
|
||||||
|
|
|
@ -2349,7 +2349,7 @@
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>200</number>
|
<number>100</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="value">
|
<property name="value">
|
||||||
<number>100</number>
|
<number>100</number>
|
||||||
|
|
|
@ -493,6 +493,8 @@ void Config::ReadControlValues() {
|
||||||
ReadSettingGlobal(Settings::values.use_docked_mode, QStringLiteral("use_docked_mode"), false);
|
ReadSettingGlobal(Settings::values.use_docked_mode, QStringLiteral("use_docked_mode"), false);
|
||||||
ReadSettingGlobal(Settings::values.vibration_enabled, QStringLiteral("vibration_enabled"),
|
ReadSettingGlobal(Settings::values.vibration_enabled, QStringLiteral("vibration_enabled"),
|
||||||
true);
|
true);
|
||||||
|
ReadSettingGlobal(Settings::values.vibration_strength, QStringLiteral("vibration_strength"),
|
||||||
|
100);
|
||||||
ReadSettingGlobal(Settings::values.motion_enabled, QStringLiteral("motion_enabled"), true);
|
ReadSettingGlobal(Settings::values.motion_enabled, QStringLiteral("motion_enabled"), true);
|
||||||
|
|
||||||
qt_config->endGroup();
|
qt_config->endGroup();
|
||||||
|
@ -1150,6 +1152,8 @@ void Config::SaveControlValues() {
|
||||||
WriteSettingGlobal(QStringLiteral("use_docked_mode"), Settings::values.use_docked_mode, false);
|
WriteSettingGlobal(QStringLiteral("use_docked_mode"), Settings::values.use_docked_mode, false);
|
||||||
WriteSettingGlobal(QStringLiteral("vibration_enabled"), Settings::values.vibration_enabled,
|
WriteSettingGlobal(QStringLiteral("vibration_enabled"), Settings::values.vibration_enabled,
|
||||||
true);
|
true);
|
||||||
|
WriteSettingGlobal(QStringLiteral("vibration_strength"), Settings::values.vibration_strength,
|
||||||
|
100);
|
||||||
WriteSettingGlobal(QStringLiteral("motion_enabled"), Settings::values.motion_enabled, true);
|
WriteSettingGlobal(QStringLiteral("motion_enabled"), Settings::values.motion_enabled, true);
|
||||||
WriteSetting(QStringLiteral("motion_device"),
|
WriteSetting(QStringLiteral("motion_device"),
|
||||||
QString::fromStdString(Settings::values.motion_device),
|
QString::fromStdString(Settings::values.motion_device),
|
||||||
|
|
|
@ -186,6 +186,7 @@ void ConfigureInput::ApplyConfiguration() {
|
||||||
OnDockedModeChanged(pre_docked_mode, Settings::values.use_docked_mode.GetValue());
|
OnDockedModeChanged(pre_docked_mode, Settings::values.use_docked_mode.GetValue());
|
||||||
|
|
||||||
Settings::values.vibration_enabled.SetValue(ui->vibrationGroup->isChecked());
|
Settings::values.vibration_enabled.SetValue(ui->vibrationGroup->isChecked());
|
||||||
|
Settings::values.vibration_strength.SetValue(ui->vibrationSpin->value());
|
||||||
Settings::values.motion_enabled.SetValue(ui->motionGroup->isChecked());
|
Settings::values.motion_enabled.SetValue(ui->motionGroup->isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,6 +207,7 @@ void ConfigureInput::LoadConfiguration() {
|
||||||
UpdateDockedState(Settings::values.players.GetValue()[8].connected);
|
UpdateDockedState(Settings::values.players.GetValue()[8].connected);
|
||||||
|
|
||||||
ui->vibrationGroup->setChecked(Settings::values.vibration_enabled.GetValue());
|
ui->vibrationGroup->setChecked(Settings::values.vibration_enabled.GetValue());
|
||||||
|
ui->vibrationSpin->setValue(Settings::values.vibration_strength.GetValue());
|
||||||
ui->motionGroup->setChecked(Settings::values.motion_enabled.GetValue());
|
ui->motionGroup->setChecked(Settings::values.motion_enabled.GetValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -215,7 +215,7 @@
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>200</number>
|
<number>100</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="value">
|
<property name="value">
|
||||||
<number>100</number>
|
<number>100</number>
|
||||||
|
|
|
@ -290,6 +290,8 @@ void Config::ReadValues() {
|
||||||
|
|
||||||
Settings::values.vibration_enabled.SetValue(
|
Settings::values.vibration_enabled.SetValue(
|
||||||
sdl2_config->GetBoolean("ControlsGeneral", "vibration_enabled", true));
|
sdl2_config->GetBoolean("ControlsGeneral", "vibration_enabled", true));
|
||||||
|
Settings::values.vibration_strength.SetValue(
|
||||||
|
sdl2_config->GetInteger("ControlsGeneral", "vibration_strength", 100));
|
||||||
Settings::values.motion_enabled.SetValue(
|
Settings::values.motion_enabled.SetValue(
|
||||||
sdl2_config->GetBoolean("ControlsGeneral", "motion_enabled", true));
|
sdl2_config->GetBoolean("ControlsGeneral", "motion_enabled", true));
|
||||||
Settings::values.touchscreen.enabled =
|
Settings::values.touchscreen.enabled =
|
||||||
|
|
|
@ -65,6 +65,13 @@ button_screenshot=
|
||||||
lstick=
|
lstick=
|
||||||
rstick=
|
rstick=
|
||||||
|
|
||||||
|
# Whether to enable or disable vibration
|
||||||
|
# 0: Disabled, 1 (default): Enabled
|
||||||
|
vibration_enabled=
|
||||||
|
|
||||||
|
# Vibration strength percentage (Default: 100)
|
||||||
|
vibration_strength=
|
||||||
|
|
||||||
# for motion input, the following devices are available:
|
# for motion input, the following devices are available:
|
||||||
# - "motion_emu" (default) for emulating motion input from mouse input. Required parameters:
|
# - "motion_emu" (default) for emulating motion input from mouse input. Required parameters:
|
||||||
# - "update_period": update period in milliseconds (default to 100)
|
# - "update_period": update period in milliseconds (default to 100)
|
||||||
|
|
|
@ -76,6 +76,7 @@ void Config::ReadValues() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings::values.vibration_enabled.SetValue(true);
|
Settings::values.vibration_enabled.SetValue(true);
|
||||||
|
Settings::values.vibration_strength.SetValue(100);
|
||||||
Settings::values.motion_enabled.SetValue(true);
|
Settings::values.motion_enabled.SetValue(true);
|
||||||
Settings::values.touchscreen.enabled = "";
|
Settings::values.touchscreen.enabled = "";
|
||||||
Settings::values.touchscreen.device = "";
|
Settings::values.touchscreen.device = "";
|
||||||
|
|
Loading…
Reference in a new issue