|
|
|
@ -611,8 +611,8 @@ public: |
|
|
|
SDLPoller::Start(); |
|
|
|
|
|
|
|
// Reset stored axes
|
|
|
|
analog_xaxis = -1; |
|
|
|
analog_yaxis = -1; |
|
|
|
analog_x_axis = -1; |
|
|
|
analog_y_axis = -1; |
|
|
|
analog_axes_joystick = -1; |
|
|
|
} |
|
|
|
|
|
|
|
@ -625,24 +625,24 @@ public: |
|
|
|
// An analog device needs two axes, so we need to store the axis for later and wait for
|
|
|
|
// a second SDL event. The axes also must be from the same joystick.
|
|
|
|
const int axis = event.jaxis.axis; |
|
|
|
if (analog_xaxis == -1) { |
|
|
|
analog_xaxis = axis; |
|
|
|
if (analog_x_axis == -1) { |
|
|
|
analog_x_axis = axis; |
|
|
|
analog_axes_joystick = event.jaxis.which; |
|
|
|
} else if (analog_yaxis == -1 && analog_xaxis != axis && |
|
|
|
} else if (analog_y_axis == -1 && analog_x_axis != axis && |
|
|
|
analog_axes_joystick == event.jaxis.which) { |
|
|
|
analog_yaxis = axis; |
|
|
|
analog_y_axis = axis; |
|
|
|
} |
|
|
|
} |
|
|
|
Common::ParamPackage params; |
|
|
|
if (analog_xaxis != -1 && analog_yaxis != -1) { |
|
|
|
if (analog_x_axis != -1 && analog_y_axis != -1) { |
|
|
|
const auto joystick = state.GetSDLJoystickBySDLID(event.jaxis.which); |
|
|
|
params.Set("engine", "sdl"); |
|
|
|
params.Set("port", joystick->GetPort()); |
|
|
|
params.Set("guid", joystick->GetGUID()); |
|
|
|
params.Set("axis_x", analog_xaxis); |
|
|
|
params.Set("axis_y", analog_yaxis); |
|
|
|
analog_xaxis = -1; |
|
|
|
analog_yaxis = -1; |
|
|
|
params.Set("axis_x", analog_x_axis); |
|
|
|
params.Set("axis_y", analog_y_axis); |
|
|
|
analog_x_axis = -1; |
|
|
|
analog_y_axis = -1; |
|
|
|
analog_axes_joystick = -1; |
|
|
|
return params; |
|
|
|
} |
|
|
|
@ -650,8 +650,8 @@ public: |
|
|
|
} |
|
|
|
|
|
|
|
private: |
|
|
|
int analog_xaxis = -1; |
|
|
|
int analog_yaxis = -1; |
|
|
|
int analog_x_axis = -1; |
|
|
|
int analog_y_axis = -1; |
|
|
|
SDL_JoystickID analog_axes_joystick = -1; |
|
|
|
}; |
|
|
|
} // namespace Polling
|
|
|
|
|