input: move config getters to base class

This commit is contained in:
Megamouse 2023-01-17 01:28:54 +01:00
parent 35c92723c7
commit b3a9c8d83f
6 changed files with 26 additions and 59 deletions

View file

@ -323,6 +323,26 @@ void PadHandlerBase::init_configs()
}
}
cfg_pad* PadHandlerBase::get_config(const std::string& pad_id)
{
int index = 0;
for (uint i = 0; i < MAX_GAMEPADS; i++)
{
if (g_cfg_input.player[i]->handler == m_type)
{
if (g_cfg_input.player[i]->device.to_string() == pad_id)
{
m_pad_configs[index].from_string(g_cfg_input.player[i]->config.to_string());
return &m_pad_configs[index];
}
index++;
}
}
return nullptr;
}
PadHandlerBase::connection PadHandlerBase::get_next_button_press(const std::string& pad_id, const pad_callback& callback, const pad_fail_callback& fail_callback, bool get_blacklist, const std::vector<std::string>& /*buttons*/)
{
if (get_blacklist)

View file

@ -229,4 +229,5 @@ protected:
virtual void get_mapping(const pad_ensemble& binding);
void TranslateButtonPress(const std::shared_ptr<PadDevice>& device, u64 keyCode, bool& pressed, u16& val, bool ignore_stick_threshold = false, bool ignore_trigger_threshold = false);
void init_configs();
cfg_pad* get_config(const std::string& pad_id);
};

View file

@ -130,21 +130,7 @@ void ds3_pad_handler::SetPadData(const std::string& padId, u8 player_id, u8 larg
device->large_motor = large_motor;
device->small_motor = small_motor;
device->player_id = player_id;
int index = 0;
for (uint i = 0; i < MAX_GAMEPADS; i++)
{
if (g_cfg_input.player[i]->handler == m_type)
{
if (g_cfg_input.player[i]->device.to_string() == padId)
{
m_pad_configs[index].from_string(g_cfg_input.player[i]->config.to_string());
device->config = &m_pad_configs[index];
break;
}
index++;
}
}
device->config = get_config(padId);
ensure(device->config);
device->config->player_led_enabled.set(player_led);

View file

@ -205,21 +205,7 @@ void ds4_pad_handler::SetPadData(const std::string& padId, u8 player_id, u8 larg
device->large_motor = large_motor;
device->small_motor = small_motor;
device->player_id = player_id;
int index = 0;
for (uint i = 0; i < MAX_GAMEPADS; i++)
{
if (g_cfg_input.player[i]->handler == m_type)
{
if (g_cfg_input.player[i]->device.to_string() == padId)
{
m_pad_configs[index].from_string(g_cfg_input.player[i]->config.to_string());
device->config = &m_pad_configs[index];
break;
}
index++;
}
}
device->config = get_config(padId);
ensure(device->config);

View file

@ -1143,21 +1143,7 @@ void dualsense_pad_handler::SetPadData(const std::string& padId, u8 player_id, u
device->large_motor = large_motor;
device->small_motor = small_motor;
device->player_id = player_id;
int index = 0;
for (uint i = 0; i < MAX_GAMEPADS; i++)
{
if (g_cfg_input.player[i]->handler == m_type)
{
if (g_cfg_input.player[i]->device.to_string() == padId)
{
m_pad_configs[index].from_string(g_cfg_input.player[i]->config.to_string());
device->config = &m_pad_configs[index];
break;
}
index++;
}
}
device->config = get_config(padId);
ensure(device->config);
device->update_lightbar = true;

View file

@ -443,21 +443,9 @@ void sdl_pad_handler::SetPadData(const std::string& padId, u8 player_id, u8 larg
return;
dev->player_id = player_id;
dev->config = get_config(padId);
int index = 0;
for (uint i = 0; i < MAX_GAMEPADS; i++)
{
if (g_cfg_input.player[i]->handler == m_type)
{
if (g_cfg_input.player[i]->device.to_string() == padId)
{
m_pad_configs[index].from_string(g_cfg_input.player[i]->config.to_string());
device->config = &m_pad_configs[index];
break;
}
index++;
}
}
ensure(dev->config);
set_rumble(dev, large_motor, small_motor);