Allegro 5 api
#include <allegro5/allegro.h> ALLEGRO_JOYSTICK * al_get_joystick(int num)
Get a handle for a joystick on the system. The number may be from 0 to al_get_num_joysticks(3alleg5)-1. If successful a pointer to a joystick object is returned, which represents a physical device. Otherwise NULL is returned.
The handle and the index are only incidentally linked. After al_reconfigure_joysticks(3alleg5) is called, al_get_joystick(3alleg5) may return handles in a different order, and handles which represent disconnected devices will not be returned.
al_get_num_joysticks(3alleg5), al_reconfigure_joysticks(3alleg5), al_get_joystick_active(3alleg5)