mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-12 09:48:37 +12:00
input: add option to keep pads connected
This commit is contained in:
parent
08c1a14b13
commit
2ef120fdcd
7 changed files with 29 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "PadHandler.h"
|
#include "PadHandler.h"
|
||||||
#include "Emu/system_utils.hpp"
|
#include "Emu/system_utils.hpp"
|
||||||
|
#include "Emu/system_config.h"
|
||||||
#include "Input/pad_thread.h"
|
#include "Input/pad_thread.h"
|
||||||
#include "Input/product_info.h"
|
#include "Input/product_info.h"
|
||||||
|
|
||||||
|
@ -766,6 +767,19 @@ void PadHandlerBase::process()
|
||||||
}
|
}
|
||||||
case connection::disconnected:
|
case connection::disconnected:
|
||||||
{
|
{
|
||||||
|
if (g_cfg.io.keep_pads_connected)
|
||||||
|
{
|
||||||
|
if (!last_connection_status[i])
|
||||||
|
{
|
||||||
|
input_log.success("%s device %d connected by force", m_type, i);
|
||||||
|
pad->m_port_status |= CELL_PAD_STATUS_CONNECTED;
|
||||||
|
pad->m_port_status |= CELL_PAD_STATUS_ASSIGN_CHANGES;
|
||||||
|
last_connection_status[i] = true;
|
||||||
|
connected_devices++;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (last_connection_status[i])
|
if (last_connection_status[i])
|
||||||
{
|
{
|
||||||
input_log.error("%s device %d disconnected", m_type, i);
|
input_log.error("%s device %d disconnected", m_type, i);
|
||||||
|
|
|
@ -75,6 +75,7 @@ namespace rsx
|
||||||
: home_menu_settings_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SETTINGS_INPUT))
|
: home_menu_settings_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SETTINGS_INPUT))
|
||||||
{
|
{
|
||||||
add_checkbox(&g_cfg.io.background_input_enabled, "Background Input Enabled");
|
add_checkbox(&g_cfg.io.background_input_enabled, "Background Input Enabled");
|
||||||
|
add_checkbox(&g_cfg.io.keep_pads_connected, "Keep Pads Connected");
|
||||||
add_checkbox(&g_cfg.io.show_move_cursor, "Show PS Move Cursor");
|
add_checkbox(&g_cfg.io.show_move_cursor, "Show PS Move Cursor");
|
||||||
|
|
||||||
if (g_cfg.io.camera == camera_handler::qt)
|
if (g_cfg.io.camera == camera_handler::qt)
|
||||||
|
|
|
@ -273,6 +273,7 @@ struct cfg_root : cfg::node
|
||||||
cfg::_enum<turntable_handler> turntable{this, "Turntable emulated controller", turntable_handler::null};
|
cfg::_enum<turntable_handler> turntable{this, "Turntable emulated controller", turntable_handler::null};
|
||||||
cfg::_enum<ghltar_handler> ghltar{this, "GHLtar emulated controller", ghltar_handler::null};
|
cfg::_enum<ghltar_handler> ghltar{this, "GHLtar emulated controller", ghltar_handler::null};
|
||||||
cfg::_enum<pad_handler_mode> pad_mode{this, "Pad handler mode", pad_handler_mode::single_threaded, true};
|
cfg::_enum<pad_handler_mode> pad_mode{this, "Pad handler mode", pad_handler_mode::single_threaded, true};
|
||||||
|
cfg::_bool keep_pads_connected{this, "Keep pads connected", false, true};
|
||||||
cfg::uint<0, 100'000> pad_sleep{this, "Pad handler sleep (microseconds)", 1'000, true};
|
cfg::uint<0, 100'000> pad_sleep{this, "Pad handler sleep (microseconds)", 1'000, true};
|
||||||
cfg::_bool background_input_enabled{this, "Background input enabled", true, true};
|
cfg::_bool background_input_enabled{this, "Background input enabled", true, true};
|
||||||
cfg::_bool show_move_cursor{this, "Show move cursor", false, true};
|
cfg::_bool show_move_cursor{this, "Show move cursor", false, true};
|
||||||
|
|
|
@ -145,6 +145,7 @@ enum class emu_settings_type
|
||||||
BackgroundInput,
|
BackgroundInput,
|
||||||
ShowMoveCursor,
|
ShowMoveCursor,
|
||||||
PadHandlerMode,
|
PadHandlerMode,
|
||||||
|
PadConnection,
|
||||||
KeyboardHandler,
|
KeyboardHandler,
|
||||||
MouseHandler,
|
MouseHandler,
|
||||||
Camera,
|
Camera,
|
||||||
|
@ -326,6 +327,7 @@ inline static const QMap<emu_settings_type, cfg_location> settings_location =
|
||||||
{ emu_settings_type::BackgroundInput, { "Input/Output", "Background input enabled"}},
|
{ emu_settings_type::BackgroundInput, { "Input/Output", "Background input enabled"}},
|
||||||
{ emu_settings_type::ShowMoveCursor, { "Input/Output", "Show move cursor"}},
|
{ emu_settings_type::ShowMoveCursor, { "Input/Output", "Show move cursor"}},
|
||||||
{ emu_settings_type::PadHandlerMode, { "Input/Output", "Pad handler mode"}},
|
{ emu_settings_type::PadHandlerMode, { "Input/Output", "Pad handler mode"}},
|
||||||
|
{ emu_settings_type::PadConnection, { "Input/Output", "Keep pads connected" }},
|
||||||
{ emu_settings_type::KeyboardHandler, { "Input/Output", "Keyboard"}},
|
{ emu_settings_type::KeyboardHandler, { "Input/Output", "Keyboard"}},
|
||||||
{ emu_settings_type::MouseHandler, { "Input/Output", "Mouse"}},
|
{ emu_settings_type::MouseHandler, { "Input/Output", "Mouse"}},
|
||||||
{ emu_settings_type::Camera, { "Input/Output", "Camera"}},
|
{ emu_settings_type::Camera, { "Input/Output", "Camera"}},
|
||||||
|
|
|
@ -1254,6 +1254,9 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
|
||||||
m_emu_settings->EnhanceCheckBox(ui->backgroundInputBox, emu_settings_type::BackgroundInput);
|
m_emu_settings->EnhanceCheckBox(ui->backgroundInputBox, emu_settings_type::BackgroundInput);
|
||||||
SubscribeTooltip(ui->backgroundInputBox, tooltips.settings.background_input);
|
SubscribeTooltip(ui->backgroundInputBox, tooltips.settings.background_input);
|
||||||
|
|
||||||
|
m_emu_settings->EnhanceCheckBox(ui->padConnectionBox, emu_settings_type::PadConnection);
|
||||||
|
SubscribeTooltip(ui->padConnectionBox, tooltips.settings.pad_connection);
|
||||||
|
|
||||||
m_emu_settings->EnhanceCheckBox(ui->showMoveCursorBox, emu_settings_type::ShowMoveCursor);
|
m_emu_settings->EnhanceCheckBox(ui->showMoveCursorBox, emu_settings_type::ShowMoveCursor);
|
||||||
SubscribeTooltip(ui->showMoveCursorBox, tooltips.settings.show_move_cursor);
|
SubscribeTooltip(ui->showMoveCursorBox, tooltips.settings.show_move_cursor);
|
||||||
|
|
||||||
|
|
|
@ -1810,6 +1810,13 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="padConnectionBox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Keep Pads Connected</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="showMoveCursorBox">
|
<widget class="QCheckBox" name="showMoveCursorBox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
|
@ -210,6 +210,7 @@ public:
|
||||||
// input
|
// input
|
||||||
|
|
||||||
const QString pad_mode = tr("Single-threaded: All pad handlers run on the same thread sequentially.\nMulti-threaded: Each pad handler has its own thread.\nOnly use multi-threaded if you can spare the extra threads.");
|
const QString pad_mode = tr("Single-threaded: All pad handlers run on the same thread sequentially.\nMulti-threaded: Each pad handler has its own thread.\nOnly use multi-threaded if you can spare the extra threads.");
|
||||||
|
const QString pad_connection = tr("Shows all configured pads as always connected ingame even if they are physically disconnected.");
|
||||||
const QString keyboard_handler = tr("Some games support native keyboard input.\nBasic will work in these cases.");
|
const QString keyboard_handler = tr("Some games support native keyboard input.\nBasic will work in these cases.");
|
||||||
const QString mouse_handler = tr("Some games support native mouse input.\nBasic will work in these cases.");
|
const QString mouse_handler = tr("Some games support native mouse input.\nBasic will work in these cases.");
|
||||||
const QString music_handler = tr("Currently only used for cellMusic emulation.\nSelect Qt to use the default output device of your operating system.\nThis may not be able to play all audio formats.");
|
const QString music_handler = tr("Currently only used for cellMusic emulation.\nSelect Qt to use the default output device of your operating system.\nThis may not be able to play all audio formats.");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue