float Joystick::getAxis(int axisindex) const { if (!isConnected() || axisindex < 0 || axisindex >= getAxisCount()) return 0; return clampval(((float) SDL_JoystickGetAxis(joyhandle, axisindex))/32768.0f); }
float Joystick::getAxis(int index, int axis) { if (!verifyJoystick(index)) return 0; if (axis >= getNumAxes(index)) return 0; return clampval(((float)SDL_JoystickGetAxis(joysticks[index], axis))/32768.0f); }
float Joystick::getGamepadAxis(love::joystick::Joystick::GamepadAxis axis) const { if (!isConnected() || !isGamepad()) return 0.f; SDL_GameControllerAxis sdlaxis; if (!getConstant(axis, sdlaxis)) return 0.f; Sint16 value = SDL_GameControllerGetAxis(controller, sdlaxis); return clampval((float) value / 32768.0f); }
int Joystick::getAxes(lua_State * L) { love::luax_assert_argc(L, 1, 1); int index = (int)lua_tointeger(L, 1) - 1; if (!verifyJoystick(index)) return 0; int num = getNumAxes(index); for (int i = 0; i<num; i++) lua_pushnumber(L, clampval(((float)SDL_JoystickGetAxis(joysticks[index], i))/32768.0f)); return num; }
std::vector<float> Joystick::getAxes() const { std::vector<float> axes; int count = getAxisCount(); if (!isConnected() || count <= 0) return axes; axes.reserve(count); for (int i = 0; i < count; i++) axes.push_back(clampval(((float) SDL_JoystickGetAxis(joyhandle, i))/32768.0f)); return axes; }