Support for SDL Joysticks
This enables use of non-controller peripherals, such as DirectInput steering wheels or flight sticks
This commit is contained in:
@ -41,16 +41,18 @@ void InputBindingWidget::updateText()
|
||||
setText(QString::fromStdString(m_bindings[0]));
|
||||
}
|
||||
|
||||
void InputBindingWidget::bindToControllerAxis(int controller_index, int axis_index, std::optional<bool> positive)
|
||||
void InputBindingWidget::bindToControllerAxis(int controller_index, int axis_index, bool inverted,
|
||||
std::optional<bool> half_axis_positive)
|
||||
{
|
||||
const char* invert_char = inverted ? "-" : "";
|
||||
const char* sign_char = "";
|
||||
if (positive)
|
||||
if (half_axis_positive)
|
||||
{
|
||||
sign_char = *positive ? "+" : "-";
|
||||
sign_char = *half_axis_positive ? "+" : "-";
|
||||
}
|
||||
|
||||
m_new_binding_value =
|
||||
StringUtil::StdStringFromFormat("Controller%d/%sAxis%d", controller_index, sign_char, axis_index);
|
||||
StringUtil::StdStringFromFormat("Controller%d/%sAxis%d%s", controller_index, sign_char, axis_index, invert_char);
|
||||
setNewBinding();
|
||||
stopListeningForInput();
|
||||
}
|
||||
@ -62,6 +64,14 @@ void InputBindingWidget::bindToControllerButton(int controller_index, int button
|
||||
stopListeningForInput();
|
||||
}
|
||||
|
||||
void InputBindingWidget::bindToControllerHat(int controller_index, int hat_index, const QString& hat_direction)
|
||||
{
|
||||
m_new_binding_value = StringUtil::StdStringFromFormat("Controller%d/Hat%d %s", controller_index, hat_index,
|
||||
hat_direction.toLatin1().constData());
|
||||
setNewBinding();
|
||||
stopListeningForInput();
|
||||
}
|
||||
|
||||
void InputBindingWidget::beginRebindAll()
|
||||
{
|
||||
m_is_binding_all = true;
|
||||
|
||||
Reference in New Issue
Block a user