diff options
Diffstat (limited to 'src/yuzu')
| -rw-r--r-- | src/yuzu/configuration/configure_input_player.cpp | 23 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_input_player.h | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_input_player.ui | 63 | 
3 files changed, 85 insertions, 3 deletions
| diff --git a/src/yuzu/configuration/configure_input_player.cpp b/src/yuzu/configuration/configure_input_player.cpp index b1850bc95..d60f13ffb 100644 --- a/src/yuzu/configuration/configure_input_player.cpp +++ b/src/yuzu/configuration/configure_input_player.cpp @@ -272,6 +272,8 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i                                                 ui->sliderRStickDeadzoneAndModifier};      analog_map_deadzone_and_modifier_slider_label = {ui->labelLStickDeadzoneAndModifier,                                                       ui->labelRStickDeadzoneAndModifier}; +    analog_map_range_slider = {ui->sliderLStickRange, ui->sliderRStickRange}; +    analog_map_range_slider_label = {ui->labelLStickRange, ui->labelRStickRange};      for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; button_id++) {          auto* const button = button_map[button_id]; @@ -364,7 +366,6 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i                              InputCommon::Polling::DeviceType::Analog);              }          }); -          connect(analog_map_deadzone_and_modifier_slider[analog_id], &QSlider::valueChanged,                  [=, this] {                      const float slider_value = @@ -380,6 +381,15 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i                          analogs_param[analog_id].Set("modifier_scale", slider_value / 100.0f);                      }                  }); +        connect(analog_map_range_slider[analog_id], &QSlider::valueChanged, [=, this] { +            const float slider_value = analog_map_range_slider[analog_id]->value(); +            const auto engine = analogs_param[analog_id].Get("engine", ""); +            if (engine == "sdl" || engine == "gcpad") { +                analog_map_range_slider_label[analog_id]->setText( +                    tr("Range: %1%").arg(slider_value + 50.0f)); +                analogs_param[analog_id].Set("range", slider_value / 100.0f); +            } +        });      }      connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); }); @@ -585,6 +595,9 @@ void ConfigureInputPlayer::UpdateButtonLabels() {          auto* const analog_stick_slider_label =              analog_map_deadzone_and_modifier_slider_label[analog_id]; +        auto* const analog_stick_range = analog_map_range_slider[analog_id]; +        auto* const analog_stick_range_label = analog_map_range_slider_label[analog_id]; +          if (param.Has("engine")) {              if (param.Get("engine", "") == "sdl" || param.Get("engine", "") == "gcpad") {                  if (!param.Has("deadzone")) { @@ -595,6 +608,14 @@ void ConfigureInputPlayer::UpdateButtonLabels() {                  if (analog_stick_slider->value() == 0) {                      analog_stick_slider_label->setText(tr("Deadzone: 0%"));                  } +                if (!param.Has("range")) { +                    param.Set("range", 0.50f); +                } + +                analog_stick_range->setValue(static_cast<int>(param.Get("range", 0.1f) * 100)); +                if (analog_stick_range->value() == 0) { +                    analog_stick_range_label->setText(tr("Range: 0%")); +                }              } else {                  if (!param.Has("modifier_scale")) {                      param.Set("modifier_scale", 0.5f); diff --git a/src/yuzu/configuration/configure_input_player.h b/src/yuzu/configuration/configure_input_player.h index 95afa5375..88cc3b3b1 100644 --- a/src/yuzu/configuration/configure_input_player.h +++ b/src/yuzu/configuration/configure_input_player.h @@ -101,6 +101,8 @@ private:          analog_map_deadzone_and_modifier_slider;      std::array<QLabel*, Settings::NativeAnalog::NumAnalogs>          analog_map_deadzone_and_modifier_slider_label; +    std::array<QSlider*, Settings::NativeAnalog::NumAnalogs> analog_map_range_slider; +    std::array<QLabel*, Settings::NativeAnalog::NumAnalogs> analog_map_range_slider_label;      static const std::array<std::string, ANALOG_SUB_BUTTONS_NUM> analog_sub_buttons; diff --git a/src/yuzu/configuration/configure_input_player.ui b/src/yuzu/configuration/configure_input_player.ui index f27a77180..c68c9228b 100644 --- a/src/yuzu/configuration/configure_input_player.ui +++ b/src/yuzu/configuration/configure_input_player.ui @@ -195,7 +195,36 @@            </item>           </layout>          </item> -        <item row="5" column="0"> +         <item row="5" column="0" colspan="2"> +           <layout class="QVBoxLayout" name="sliderRStickRangeVerticalLayout"> +             <property name="sizeConstraint"> +               <enum>QLayout::SetDefaultConstraint</enum> +             </property> +             <item> +               <layout class="QHBoxLayout" name="sliderRStickRangeHorizontalLayout"> +                 <item> +                   <widget class="QLabel" name="labelRStickRange"> +                     <property name="text"> +                       <string>Range: 0</string> +                     </property> +                     <property name="alignment"> +                       <enum>Qt::AlignHCenter</enum> +                     </property> +                   </widget> +                 </item> +               </layout> +             </item> +             <item> +               <widget class="QSlider" name="sliderRStickRange"> +                 <property name="orientation"> +                   <enum>Qt::Horizontal</enum> +                 </property> +               </widget> +             </item> +           </layout> + +         </item> +        <item row="6" column="0">           <spacer name="RStick_verticalSpacer">            <property name="orientation">             <enum>Qt::Vertical</enum> @@ -811,7 +840,37 @@            </item>           </layout>          </item> -        <item row="6" column="1"> + +        <item row="6" column="1" colspan="2"> +            <layout class="QVBoxLayout" name="sliderLStickRangeVerticalLayout"> +            <property name="sizeConstraint"> +              <enum>QLayout::SetDefaultConstraint</enum> +            </property> +            <item> +              <layout class="QHBoxLayout" name="sliderLStickRangeHorizontalLayout"> +                <item> +                  <widget class="QLabel" name="labelLStickRange"> +                    <property name="text"> +                      <string>Range: 0</string> +                    </property> +                    <property name="alignment"> +                      <enum>Qt::AlignHCenter</enum> +                    </property> +                  </widget> +                </item> +              </layout> +            </item> +            <item> +              <widget class="QSlider" name="sliderLStickRange"> +                <property name="orientation"> +                  <enum>Qt::Horizontal</enum> +                </property> +              </widget> +            </item> +          </layout> + +        </item> +        <item row="7" column="1">           <spacer name="LStick_verticalSpacer">            <property name="orientation">             <enum>Qt::Vertical</enum> | 
