# Show several gamepad inputs using the Python bindings for libSDL2.

import sdl2

sdl2.SDL_Init(sdl2.SDL_INIT_GAMECONTROLLER)

if sdl2.SDL_NumJoysticks() == 0:
    print("no joysticks found.")

else:
    controller = sdl2.SDL_GameControllerOpen(0)

    try:
        while True:
            sdl2.SDL_GameControllerUpdate()
            # for the axis identifiers, see https://wiki.libsdl.org/SDL2/SDL_GameControllerAxis
            lx = sdl2.SDL_GameControllerGetAxis(controller, sdl2.SDL_CONTROLLER_AXIS_LEFTX)
            ly = sdl2.SDL_GameControllerGetAxis(controller, sdl2.SDL_CONTROLLER_AXIS_LEFTY)

            # button identifiers: https://wiki.libsdl.org/SDL2/SDL_GameControllerButton
            lt = sdl2.SDL_GameControllerGetButton(controller, sdl2.SDL_CONTROLLER_BUTTON_LEFTSHOULDER)

            print("left stick:", lx, ly, "left button:", lt)

    except KeyboardInterrupt:
        print("User interrupt...")

sdl2.SDL_Quit()
