INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_UP,                 SDL_CONTROLLER_BUTTON_DPAD_UP)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_DOWN,               SDL_CONTROLLER_BUTTON_DPAD_DOWN)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_LEFT,               SDL_CONTROLLER_BUTTON_DPAD_LEFT)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_RIGHT,              SDL_CONTROLLER_BUTTON_DPAD_RIGHT)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_STEP_LEFT,            SDL_CONTROLLER_AXIS_TRIGGERLEFT,  1)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_STEP_RIGHT,           SDL_CONTROLLER_AXIS_TRIGGERRIGHT, 1)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_SLOW,               SDL_CONTROLLER_BUTTON_RIGHTSHOULDER)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_JUMP,               SDL_CONTROLLER_BUTTON_X)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_ACTION,             SDL_CONTROLLER_BUTTON_A)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_DRAW_WEAPON,        SDL_CONTROLLER_BUTTON_Y)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_LOOK,               SDL_CONTROLLER_BUTTON_LEFTSHOULDER)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_ROLL,               SDL_CONTROLLER_BUTTON_B)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_INVENTORY,          SDL_CONTROLLER_BUTTON_BACK)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_CROUCH,             SDL_CONTROLLER_BUTTON_RIGHTSTICK)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_PAUSE,              SDL_CONTROLLER_BUTTON_START)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_CHANGE_TARGET,      SDL_CONTROLLER_BUTTON_LEFTSTICK)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_CAMERA_FORWARD,       SDL_CONTROLLER_AXIS_RIGHTY, -1)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_CAMERA_BACK,          SDL_CONTROLLER_AXIS_RIGHTY, 1)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_CAMERA_LEFT,          SDL_CONTROLLER_AXIS_RIGHTX, -1)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_CAMERA_RIGHT,         SDL_CONTROLLER_AXIS_RIGHTX, 1)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_CAMERA_UP,            SDL_CONTROLLER_AXIS_LEFTY,  -1)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_CAMERA_DOWN,          SDL_CONTROLLER_AXIS_LEFTY,  1)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_MENU_CONFIRM,       SDL_CONTROLLER_BUTTON_A)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_MENU_BACK,          SDL_CONTROLLER_BUTTON_B)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_RESET_BINDINGS,     SDL_CONTROLLER_BUTTON_RIGHTSHOULDER)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_UNBIND_KEY,         SDL_CONTROLLER_BUTTON_X)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_MENU_TAB_LEFT,        SDL_CONTROLLER_AXIS_TRIGGERLEFT,  1)
INPUT_CONTROLLER_ASSIGN_AXIS(INPUT_ROLE_MENU_TAB_RIGHT,       SDL_CONTROLLER_AXIS_TRIGGERRIGHT, 1)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_MENU_SHOW_INFO,     SDL_CONTROLLER_BUTTON_LEFTSHOULDER)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_MENU_FINE_ADJUST,   SDL_CONTROLLER_BUTTON_RIGHTSHOULDER)
INPUT_CONTROLLER_ASSIGN_BUTTON(INPUT_ROLE_MENU_COARSE_ADJUST, SDL_CONTROLLER_BUTTON_Y)
