settings: Add Enable SDL Joycon setting
This commit is contained in:
@@ -559,6 +559,7 @@ struct Values {
|
|||||||
|
|
||||||
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"};
|
BasicSetting<bool> controller_navigation{true, "controller_navigation"};
|
||||||
|
BasicSetting<bool> enable_sdl_joycons{false, "enable_sdl_joycons"};
|
||||||
|
|
||||||
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"};
|
||||||
|
|||||||
@@ -5,14 +5,18 @@
|
|||||||
#include <fmt/format.h>
|
#include <fmt/format.h>
|
||||||
|
|
||||||
#include "common/param_package.h"
|
#include "common/param_package.h"
|
||||||
#include "common/settings_input.h"
|
#include "common/settings.h"
|
||||||
#include "common/thread.h"
|
#include "common/thread.h"
|
||||||
#include "input_common/drivers/joycon.h"
|
#include "input_common/drivers/joycon.h"
|
||||||
|
|
||||||
namespace InputCommon {
|
namespace InputCommon {
|
||||||
|
|
||||||
Joycons::Joycons(const std::string& input_engine_) : InputEngine(input_engine_) {
|
Joycons::Joycons(const std::string& input_engine_) : InputEngine(input_engine_) {
|
||||||
LOG_INFO(Input, "JC Adapter Initialization started");
|
if (Settings::values.enable_sdl_joycons) {
|
||||||
|
// Avoid conflicting with SDL driver
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LOG_INFO(Input, "Joycon driver Initialization started");
|
||||||
const int init_res = SDL_hid_init();
|
const int init_res = SDL_hid_init();
|
||||||
if (init_res == 0) {
|
if (init_res == 0) {
|
||||||
Setup();
|
Setup();
|
||||||
|
|||||||
@@ -410,9 +410,11 @@ SDLDriver::SDLDriver(std::string input_engine_) : InputEngine(std::move(input_en
|
|||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE, "1");
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE, "1");
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1");
|
SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1");
|
||||||
|
|
||||||
// Use hidapi driver for joycons. This will allow joycons to be detected as a GameController and
|
if (Settings::values.enable_sdl_joycons) {
|
||||||
// not a generic one
|
// Use hidapi driver for joycons. This will allow joycons to be detected as a GameController and
|
||||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS, "1");
|
// not a generic one
|
||||||
|
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS, "1");
|
||||||
|
}
|
||||||
|
|
||||||
// Disable hidapi driver for xbox. Already default on Windows, this causes conflict with native
|
// Disable hidapi driver for xbox. Already default on Windows, this causes conflict with native
|
||||||
// driver on Linux.
|
// driver on Linux.
|
||||||
|
|||||||
@@ -398,6 +398,7 @@ void Config::ReadControlValues() {
|
|||||||
#else
|
#else
|
||||||
Settings::values.enable_raw_input = false;
|
Settings::values.enable_raw_input = false;
|
||||||
#endif
|
#endif
|
||||||
|
ReadBasicSetting(Settings::values.enable_sdl_joycons);
|
||||||
ReadBasicSetting(Settings::values.emulate_analog_keyboard);
|
ReadBasicSetting(Settings::values.emulate_analog_keyboard);
|
||||||
Settings::values.mouse_panning = false;
|
Settings::values.mouse_panning = false;
|
||||||
ReadBasicSetting(Settings::values.mouse_panning_sensitivity);
|
ReadBasicSetting(Settings::values.mouse_panning_sensitivity);
|
||||||
@@ -1042,6 +1043,7 @@ void Config::SaveControlValues() {
|
|||||||
WriteGlobalSetting(Settings::values.enable_accurate_vibrations);
|
WriteGlobalSetting(Settings::values.enable_accurate_vibrations);
|
||||||
WriteGlobalSetting(Settings::values.motion_enabled);
|
WriteGlobalSetting(Settings::values.motion_enabled);
|
||||||
WriteBasicSetting(Settings::values.enable_raw_input);
|
WriteBasicSetting(Settings::values.enable_raw_input);
|
||||||
|
WriteBasicSetting(Settings::values.enable_sdl_joycons);
|
||||||
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);
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ void ConfigureInputAdvanced::ApplyConfiguration() {
|
|||||||
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();
|
Settings::values.controller_navigation = ui->controller_navigation->isChecked();
|
||||||
Settings::values.enable_ring_controller = ui->enable_ring_controller->isChecked();
|
Settings::values.enable_ring_controller = ui->enable_ring_controller->isChecked();
|
||||||
|
Settings::values.enable_sdl_joycons = ui->enable_sdl_joycons->isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigureInputAdvanced::LoadConfiguration() {
|
void ConfigureInputAdvanced::LoadConfiguration() {
|
||||||
@@ -169,6 +170,7 @@ void ConfigureInputAdvanced::LoadConfiguration() {
|
|||||||
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());
|
ui->controller_navigation->setChecked(Settings::values.controller_navigation.GetValue());
|
||||||
ui->enable_ring_controller->setChecked(Settings::values.enable_ring_controller.GetValue());
|
ui->enable_ring_controller->setChecked(Settings::values.enable_ring_controller.GetValue());
|
||||||
|
ui->enable_sdl_joycons->setChecked(Settings::values.enable_sdl_joycons.GetValue());
|
||||||
|
|
||||||
UpdateUIEnabled();
|
UpdateUIEnabled();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2682,6 +2682,22 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="5" column="0">
|
||||||
|
<widget class="QCheckBox" name="enable_sdl_joycons">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Requires restarting yuzu</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>23</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable SDL Joycons</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
<widget class="QCheckBox" name="mouse_panning">
|
<widget class="QCheckBox" name="mouse_panning">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
@@ -2694,7 +2710,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="2">
|
<item row="7" 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>
|
||||||
@@ -2716,14 +2732,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="7" 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="6" column="2">
|
<item row="7" column="2">
|
||||||
<widget class="QPushButton" name="buttonMotionTouch">
|
<widget class="QPushButton" name="buttonMotionTouch">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Configure</string>
|
<string>Configure</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user