mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-04-06 06:55:02 +00:00
Input: Map PS button to start+select by default
This commit is contained in:
parent
704d8764af
commit
5578edf9e4
10 changed files with 51 additions and 29 deletions
|
|
@ -83,6 +83,27 @@ std::string cfg_pad::get_button_string(std::vector<pad::combo>& combos)
|
|||
return fmt::merge(combo_strings, ",");
|
||||
}
|
||||
|
||||
std::string cfg_pad::make_button_string(const std::unordered_map<u32, std::string>& button_list, const std::vector<std::set<u32>>& button_combos)
|
||||
{
|
||||
std::vector<pad::combo> combos;
|
||||
|
||||
for (const std::set<u32>& button_combo : button_combos)
|
||||
{
|
||||
if (button_combo.empty()) continue;
|
||||
|
||||
pad::combo combo {};
|
||||
|
||||
for (u32 button : button_combo)
|
||||
{
|
||||
combo.add_button(::at32(button_list, button));
|
||||
}
|
||||
|
||||
combos.push_back(std::move(combo));
|
||||
}
|
||||
|
||||
return get_button_string(combos);
|
||||
}
|
||||
|
||||
u8 cfg_pad::get_motor_speed(VibrateMotor& motor, f32 multiplier) const
|
||||
{
|
||||
// If motor is small, use either 0 or 255.
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ struct cfg_pad final : cfg::node
|
|||
|
||||
static std::vector<pad::combo> get_combos(std::string_view button_string);
|
||||
static std::string get_button_string(std::vector<pad::combo>& combos);
|
||||
static std::string make_button_string(const std::unordered_map<u32, std::string>& button_list, const std::vector<std::set<u32>>& button_combos);
|
||||
|
||||
u8 get_motor_speed(VibrateMotor& motor, f32 multiplier) const;
|
||||
u8 get_large_motor_speed(std::array<VibrateMotor, 2>& motors) const;
|
||||
|
|
|
|||
|
|
@ -170,31 +170,31 @@ void ds3_pad_handler::init_config(cfg_pad* cfg)
|
|||
if (!cfg) return;
|
||||
|
||||
// Set default button mapping
|
||||
cfg->ls_left.def = ::at32(button_list, DS3KeyCodes::LSXNeg);
|
||||
cfg->ls_down.def = ::at32(button_list, DS3KeyCodes::LSYNeg);
|
||||
cfg->ls_left.def = ::at32(button_list, DS3KeyCodes::LSXNeg);
|
||||
cfg->ls_down.def = ::at32(button_list, DS3KeyCodes::LSYNeg);
|
||||
cfg->ls_right.def = ::at32(button_list, DS3KeyCodes::LSXPos);
|
||||
cfg->ls_up.def = ::at32(button_list, DS3KeyCodes::LSYPos);
|
||||
cfg->rs_left.def = ::at32(button_list, DS3KeyCodes::RSXNeg);
|
||||
cfg->rs_down.def = ::at32(button_list, DS3KeyCodes::RSYNeg);
|
||||
cfg->ls_up.def = ::at32(button_list, DS3KeyCodes::LSYPos);
|
||||
cfg->rs_left.def = ::at32(button_list, DS3KeyCodes::RSXNeg);
|
||||
cfg->rs_down.def = ::at32(button_list, DS3KeyCodes::RSYNeg);
|
||||
cfg->rs_right.def = ::at32(button_list, DS3KeyCodes::RSXPos);
|
||||
cfg->rs_up.def = ::at32(button_list, DS3KeyCodes::RSYPos);
|
||||
cfg->start.def = ::at32(button_list, DS3KeyCodes::Start);
|
||||
cfg->select.def = ::at32(button_list, DS3KeyCodes::Select);
|
||||
cfg->ps.def = ::at32(button_list, DS3KeyCodes::PSButton);
|
||||
cfg->square.def = ::at32(button_list, DS3KeyCodes::Square);
|
||||
cfg->cross.def = ::at32(button_list, DS3KeyCodes::Cross);
|
||||
cfg->circle.def = ::at32(button_list, DS3KeyCodes::Circle);
|
||||
cfg->rs_up.def = ::at32(button_list, DS3KeyCodes::RSYPos);
|
||||
cfg->start.def = ::at32(button_list, DS3KeyCodes::Start);
|
||||
cfg->select.def = ::at32(button_list, DS3KeyCodes::Select);
|
||||
cfg->ps.def = cfg_pad::make_button_string(button_list, {{DS3KeyCodes::PSButton}, {DS3KeyCodes::Start, DS3KeyCodes::Select}});
|
||||
cfg->square.def = ::at32(button_list, DS3KeyCodes::Square);
|
||||
cfg->cross.def = ::at32(button_list, DS3KeyCodes::Cross);
|
||||
cfg->circle.def = ::at32(button_list, DS3KeyCodes::Circle);
|
||||
cfg->triangle.def = ::at32(button_list, DS3KeyCodes::Triangle);
|
||||
cfg->left.def = ::at32(button_list, DS3KeyCodes::Left);
|
||||
cfg->down.def = ::at32(button_list, DS3KeyCodes::Down);
|
||||
cfg->right.def = ::at32(button_list, DS3KeyCodes::Right);
|
||||
cfg->up.def = ::at32(button_list, DS3KeyCodes::Up);
|
||||
cfg->r1.def = ::at32(button_list, DS3KeyCodes::R1);
|
||||
cfg->r2.def = ::at32(button_list, DS3KeyCodes::R2);
|
||||
cfg->r3.def = ::at32(button_list, DS3KeyCodes::R3);
|
||||
cfg->l1.def = ::at32(button_list, DS3KeyCodes::L1);
|
||||
cfg->l2.def = ::at32(button_list, DS3KeyCodes::L2);
|
||||
cfg->l3.def = ::at32(button_list, DS3KeyCodes::L3);
|
||||
cfg->left.def = ::at32(button_list, DS3KeyCodes::Left);
|
||||
cfg->down.def = ::at32(button_list, DS3KeyCodes::Down);
|
||||
cfg->right.def = ::at32(button_list, DS3KeyCodes::Right);
|
||||
cfg->up.def = ::at32(button_list, DS3KeyCodes::Up);
|
||||
cfg->r1.def = ::at32(button_list, DS3KeyCodes::R1);
|
||||
cfg->r2.def = ::at32(button_list, DS3KeyCodes::R2);
|
||||
cfg->r3.def = ::at32(button_list, DS3KeyCodes::R3);
|
||||
cfg->l1.def = ::at32(button_list, DS3KeyCodes::L1);
|
||||
cfg->l2.def = ::at32(button_list, DS3KeyCodes::L2);
|
||||
cfg->l3.def = ::at32(button_list, DS3KeyCodes::L3);
|
||||
|
||||
cfg->pressure_intensity_button.def = ::at32(button_list, DS3KeyCodes::None);
|
||||
cfg->analog_limiter_button.def = ::at32(button_list, DS3KeyCodes::None);
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ void ds4_pad_handler::init_config(cfg_pad* cfg)
|
|||
cfg->rs_up.def = ::at32(button_list, DS4KeyCodes::RSYPos);
|
||||
cfg->start.def = ::at32(button_list, DS4KeyCodes::Options);
|
||||
cfg->select.def = ::at32(button_list, DS4KeyCodes::Share);
|
||||
cfg->ps.def = ::at32(button_list, DS4KeyCodes::PSButton);
|
||||
cfg->ps.def = cfg_pad::make_button_string(button_list, {{DS4KeyCodes::PSButton}, {DS4KeyCodes::Options, DS4KeyCodes::Share}});
|
||||
cfg->square.def = ::at32(button_list, DS4KeyCodes::Square);
|
||||
cfg->cross.def = ::at32(button_list, DS4KeyCodes::Cross);
|
||||
cfg->circle.def = ::at32(button_list, DS4KeyCodes::Circle);
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ void dualsense_pad_handler::init_config(cfg_pad* cfg)
|
|||
cfg->rs_up.def = ::at32(button_list, DualSenseKeyCodes::RSYPos);
|
||||
cfg->start.def = ::at32(button_list, DualSenseKeyCodes::Options);
|
||||
cfg->select.def = ::at32(button_list, DualSenseKeyCodes::Share);
|
||||
cfg->ps.def = ::at32(button_list, DualSenseKeyCodes::PSButton);
|
||||
cfg->ps.def = cfg_pad::make_button_string(button_list, {{DualSenseKeyCodes::PSButton}, {DualSenseKeyCodes::Options, DualSenseKeyCodes::Share}});
|
||||
cfg->square.def = ::at32(button_list, DualSenseKeyCodes::Square);
|
||||
cfg->cross.def = ::at32(button_list, DualSenseKeyCodes::Cross);
|
||||
cfg->circle.def = ::at32(button_list, DualSenseKeyCodes::Circle);
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ void evdev_joystick_handler::init_config(cfg_pad* cfg)
|
|||
cfg->rs_up.def = ::at32(rev_axis_list, ABS_RY);
|
||||
cfg->start.def = ::at32(button_list, BTN_START);
|
||||
cfg->select.def = ::at32(button_list, BTN_SELECT);
|
||||
cfg->ps.def = ::at32(button_list, BTN_MODE);
|
||||
cfg->ps.def = cfg_pad::make_button_string(button_list, {{BTN_MODE}, {BTN_START, BTN_SELECT}});
|
||||
cfg->square.def = ::at32(button_list, BTN_X);
|
||||
cfg->cross.def = ::at32(button_list, BTN_A);
|
||||
cfg->circle.def = ::at32(button_list, BTN_B);
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ void ps_move_handler::init_config(cfg_pad* cfg)
|
|||
cfg->rs_up.def = ::at32(button_list, ps_move_key_codes::none);
|
||||
cfg->start.def = ::at32(button_list, ps_move_key_codes::start);
|
||||
cfg->select.def = ::at32(button_list, ps_move_key_codes::select);
|
||||
cfg->ps.def = ::at32(button_list, ps_move_key_codes::ps);
|
||||
cfg->ps.def = cfg_pad::make_button_string(button_list, {{ps_move_key_codes::ps}, {ps_move_key_codes::start, ps_move_key_codes::select}});
|
||||
cfg->square.def = ::at32(button_list, ps_move_key_codes::square);
|
||||
cfg->cross.def = ::at32(button_list, ps_move_key_codes::cross);
|
||||
cfg->circle.def = ::at32(button_list, ps_move_key_codes::circle);
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ void sdl_pad_handler::init_config(cfg_pad* cfg)
|
|||
cfg->rs_up.def = ::at32(button_list, SDLKeyCodes::RSYPos);
|
||||
cfg->start.def = ::at32(button_list, SDLKeyCodes::Start);
|
||||
cfg->select.def = ::at32(button_list, SDLKeyCodes::Back);
|
||||
cfg->ps.def = ::at32(button_list, SDLKeyCodes::Guide);
|
||||
cfg->ps.def = cfg_pad::make_button_string(button_list, {{SDLKeyCodes::Guide}, {SDLKeyCodes::Start, SDLKeyCodes::Back}});
|
||||
cfg->square.def = ::at32(button_list, SDLKeyCodes::West);
|
||||
cfg->cross.def = ::at32(button_list, SDLKeyCodes::South);
|
||||
cfg->circle.def = ::at32(button_list, SDLKeyCodes::East);
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ void skateboard_pad_handler::init_config(cfg_pad* cfg)
|
|||
cfg->rs_up.def = ::at32(button_list, skateboard_key_codes::none);
|
||||
cfg->start.def = ::at32(button_list, skateboard_key_codes::start);
|
||||
cfg->select.def = ::at32(button_list, skateboard_key_codes::select);
|
||||
cfg->ps.def = ::at32(button_list, skateboard_key_codes::ps);
|
||||
cfg->ps.def = cfg_pad::make_button_string(button_list, {{skateboard_key_codes::ps}, {skateboard_key_codes::start, skateboard_key_codes::select}});
|
||||
cfg->square.def = ::at32(button_list, skateboard_key_codes::square);
|
||||
cfg->cross.def = ::at32(button_list, skateboard_key_codes::cross);
|
||||
cfg->circle.def = ::at32(button_list, skateboard_key_codes::circle);
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ void xinput_pad_handler::init_config(cfg_pad* cfg)
|
|||
cfg->rs_up.def = ::at32(button_list, XInputKeyCodes::RSYPos);
|
||||
cfg->start.def = ::at32(button_list, XInputKeyCodes::Start);
|
||||
cfg->select.def = ::at32(button_list, XInputKeyCodes::Back);
|
||||
cfg->ps.def = ::at32(button_list, XInputKeyCodes::Guide);
|
||||
cfg->ps.def = cfg_pad::make_button_string(button_list, {{XInputKeyCodes::Guide}, {XInputKeyCodes::Start, XInputKeyCodes::Back}});
|
||||
cfg->square.def = ::at32(button_list, XInputKeyCodes::X);
|
||||
cfg->cross.def = ::at32(button_list, XInputKeyCodes::A);
|
||||
cfg->circle.def = ::at32(button_list, XInputKeyCodes::B);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue