Sfoglia il codice sorgente

yuzu: Add setting to disable controller navigation

german77 4 anni fa
parent
commit
b998aa5504

+ 1 - 0
src/common/settings.h

@@ -554,6 +554,7 @@ struct Values {
     Setting<bool> use_docked_mode{true, "use_docked_mode"};
     Setting<bool> use_docked_mode{true, "use_docked_mode"};
 
 
     BasicSetting<bool> enable_raw_input{false, "enable_raw_input"};
     BasicSetting<bool> enable_raw_input{false, "enable_raw_input"};
+    BasicSetting<bool> controller_navigation{true, "controller_navigation"};
 
 
     Setting<bool> vibration_enabled{true, "vibration_enabled"};
     Setting<bool> vibration_enabled{true, "vibration_enabled"};
     Setting<bool> enable_accurate_vibrations{false, "enable_accurate_vibrations"};
     Setting<bool> enable_accurate_vibrations{false, "enable_accurate_vibrations"};

+ 3 - 0
src/yuzu/configuration/config.cpp

@@ -393,6 +393,8 @@ void Config::ReadControlValues() {
     ReadGlobalSetting(Settings::values.enable_accurate_vibrations);
     ReadGlobalSetting(Settings::values.enable_accurate_vibrations);
     ReadGlobalSetting(Settings::values.motion_enabled);
     ReadGlobalSetting(Settings::values.motion_enabled);
 
 
+    ReadBasicSetting(Settings::values.controller_navigation);
+
     qt_config->endGroup();
     qt_config->endGroup();
 }
 }
 
 
@@ -1001,6 +1003,7 @@ void Config::SaveControlValues() {
     WriteBasicSetting(Settings::values.keyboard_enabled);
     WriteBasicSetting(Settings::values.keyboard_enabled);
     WriteBasicSetting(Settings::values.emulate_analog_keyboard);
     WriteBasicSetting(Settings::values.emulate_analog_keyboard);
     WriteBasicSetting(Settings::values.mouse_panning_sensitivity);
     WriteBasicSetting(Settings::values.mouse_panning_sensitivity);
+    WriteBasicSetting(Settings::values.controller_navigation);
 
 
     WriteBasicSetting(Settings::values.tas_enable);
     WriteBasicSetting(Settings::values.tas_enable);
     WriteBasicSetting(Settings::values.tas_loop);
     WriteBasicSetting(Settings::values.tas_loop);

+ 2 - 0
src/yuzu/configuration/configure_input_advanced.cpp

@@ -131,6 +131,7 @@ void ConfigureInputAdvanced::ApplyConfiguration() {
     Settings::values.touchscreen.enabled = ui->touchscreen_enabled->isChecked();
     Settings::values.touchscreen.enabled = ui->touchscreen_enabled->isChecked();
     Settings::values.enable_raw_input = ui->enable_raw_input->isChecked();
     Settings::values.enable_raw_input = ui->enable_raw_input->isChecked();
     Settings::values.enable_udp_controller = ui->enable_udp_controller->isChecked();
     Settings::values.enable_udp_controller = ui->enable_udp_controller->isChecked();
+    Settings::values.controller_navigation = ui->controller_navigation->isChecked();
 }
 }
 
 
 void ConfigureInputAdvanced::LoadConfiguration() {
 void ConfigureInputAdvanced::LoadConfiguration() {
@@ -162,6 +163,7 @@ void ConfigureInputAdvanced::LoadConfiguration() {
     ui->touchscreen_enabled->setChecked(Settings::values.touchscreen.enabled);
     ui->touchscreen_enabled->setChecked(Settings::values.touchscreen.enabled);
     ui->enable_raw_input->setChecked(Settings::values.enable_raw_input.GetValue());
     ui->enable_raw_input->setChecked(Settings::values.enable_raw_input.GetValue());
     ui->enable_udp_controller->setChecked(Settings::values.enable_udp_controller.GetValue());
     ui->enable_udp_controller->setChecked(Settings::values.enable_udp_controller.GetValue());
+    ui->controller_navigation->setChecked(Settings::values.controller_navigation.GetValue());
 
 
     UpdateUIEnabled();
     UpdateUIEnabled();
 }
 }

+ 16 - 3
src/yuzu/configuration/configure_input_advanced.ui

@@ -2655,6 +2655,19 @@
                      </widget>
                      </widget>
                    </item>
                    </item>
                    <item row="4" column="0">
                    <item row="4" column="0">
+                     <widget class="QCheckBox" name="controller_navigation">
+                       <property name="minimumSize">
+                         <size>
+                           <width>0</width>
+                           <height>23</height>
+                         </size>
+                       </property>
+                       <property name="text">
+                         <string>Controller navigation</string>
+                       </property>
+                     </widget>
+                   </item>
+                   <item row="5" column="0">
                      <widget class="QCheckBox" name="mouse_panning">
                      <widget class="QCheckBox" name="mouse_panning">
                        <property name="minimumSize">
                        <property name="minimumSize">
                          <size>
                          <size>
@@ -2667,7 +2680,7 @@
                        </property>
                        </property>
                      </widget>
                      </widget>
                    </item>
                    </item>
-                   <item row="4" column="2">
+                   <item row="5" column="2">
                      <widget class="QSpinBox" name="mouse_panning_sensitivity">
                      <widget class="QSpinBox" name="mouse_panning_sensitivity">
                        <property name="toolTip">
                        <property name="toolTip">
                          <string>Mouse sensitivity</string>
                          <string>Mouse sensitivity</string>
@@ -2689,14 +2702,14 @@
                        </property>
                        </property>
                      </widget>
                      </widget>
                    </item>
                    </item>
-                   <item row="5" column="0">
+                   <item row="6" column="0">
                      <widget class="QLabel" name="motion_touch">
                      <widget class="QLabel" name="motion_touch">
                        <property name="text">
                        <property name="text">
                          <string>Motion / Touch</string>
                          <string>Motion / Touch</string>
                        </property>
                        </property>
                      </widget>
                      </widget>
                    </item>
                    </item>
-                   <item row="5" column="2">
+                   <item row="6" column="2">
                      <widget class="QPushButton" name="buttonMotionTouch">
                      <widget class="QPushButton" name="buttonMotionTouch">
                        <property name="text">
                        <property name="text">
                          <string>Configure</string>
                          <string>Configure</string>

+ 3 - 0
src/yuzu/hotkeys.cpp

@@ -190,6 +190,9 @@ void ControllerShortcut::ControllerUpdateEvent(Core::HID::ControllerTriggerType
     if (type != Core::HID::ControllerTriggerType::Button) {
     if (type != Core::HID::ControllerTriggerType::Button) {
         return;
         return;
     }
     }
+    if (!Settings::values.controller_navigation) {
+        return;
+    }
     if (button_sequence.npad.raw == Core::HID::NpadButton::None &&
     if (button_sequence.npad.raw == Core::HID::NpadButton::None &&
         button_sequence.capture.raw == 0 && button_sequence.home.raw == 0) {
         button_sequence.capture.raw == 0 && button_sequence.home.raw == 0) {
         return;
         return;

+ 3 - 0
src/yuzu/util/controller_navigation.cpp

@@ -40,6 +40,9 @@ void ControllerNavigation::TriggerButton(Settings::NativeButton::Values native_b
 
 
 void ControllerNavigation::ControllerUpdateEvent(Core::HID::ControllerTriggerType type) {
 void ControllerNavigation::ControllerUpdateEvent(Core::HID::ControllerTriggerType type) {
     std::lock_guard lock{mutex};
     std::lock_guard lock{mutex};
+    if (!Settings::values.controller_navigation) {
+        return;
+    }
     if (type == Core::HID::ControllerTriggerType::Button) {
     if (type == Core::HID::ControllerTriggerType::Button) {
         ControllerUpdateButton();
         ControllerUpdateButton();
         return;
         return;