Add a method that automatically opens gamepads so they will send events
This commit is contained in:
@@ -22,6 +22,33 @@ akerr_ErrorContext AKERR_NOIGNORE *akgl_controller_list_keyboards(void)
|
||||
SUCCEED_RETURN(e);
|
||||
}
|
||||
|
||||
akerr_ErrorContext AKERR_NOIGNORE *akgl_controller_open_gamepads(void)
|
||||
{
|
||||
int count = 0;
|
||||
int i = 0;
|
||||
SDL_JoystickID *gamepads = NULL;
|
||||
SDL_Gamepad *gamepad = NULL;
|
||||
|
||||
PREPARE_ERROR(e);
|
||||
if ( SDL_HasGamepad() ) {
|
||||
gamepads = SDL_GetGamepads(&count);
|
||||
if ( count > 0 ) {
|
||||
FAIL_ZERO_RETURN(e, gamepads, AKERR_NULLPOINTER, "%s", SDL_GetError());
|
||||
for ( i = 0; i < count ; i++ ) {
|
||||
gamepad = SDL_OpenGamepad(gamepads[i]);
|
||||
FAIL_ZERO_RETURN(e, gamepad, AKERR_NULLPOINTER, "%s", SDL_GetError());
|
||||
SDL_Log("Gamepad %d is %s", i, SDL_GetGamepadNameForID(gamepads[i]));
|
||||
}
|
||||
SDL_free(gamepads);
|
||||
} else {
|
||||
SDL_Log("No gamepads enumerated");
|
||||
}
|
||||
} else {
|
||||
SDL_Log("No gamepads connected");
|
||||
}
|
||||
SUCCEED_RETURN(e);
|
||||
}
|
||||
|
||||
akerr_ErrorContext *akgl_controller_handle_event(void *appstate, SDL_Event *event)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
Reference in New Issue
Block a user