static void read_joystick (void) { if (get_joystick_num ()) { int32_t i = 0; SDL_JoystickUpdate (); for ( ; i < get_joystick_num (); i++) read_joy (i); } }
static void read_joystick (void) { if (get_joystick_num ()) { unsigned int i; SDL_JoystickUpdate (); for (i = 0; i < get_joystick_num (); i++) read_joy (i); } }
static int32_t init_joystick (void) { int32_t success = 0; if (!initialized) { if (SDL_InitSubSystem (SDL_INIT_JOYSTICK) == 0) { int32_t i = 0; nr_joysticks = SDL_NumJoysticks (); write_log ("Found %d joystick(s)\n", nr_joysticks); if (nr_joysticks > MAX_INPUT_DEVICES) nr_joysticks = MAX_INPUT_DEVICES; for ( ; i < get_joystick_num (); i++) { joys[i].joy = SDL_JoystickOpen (i); joys[i].axles = SDL_JoystickNumAxes (joys[i].joy); joys[i].buttons = SDL_JoystickNumButtons (joys[i].joy); } success = initialized = 1; } else write_log ("Failed to initialize joysticks\n"); } return success; }
static int acquire_joystick (int num, int flags) { return num < get_joystick_num(); }
/* * Set default inputdevice config for SDL joysticks */ int32_t input_get_default_joystick (struct uae_input_device *uid, int32_t num, int32_t port, int32_t af, int32_t mode, bool gp, bool joymouseswap) { int32_t h,v; // uint32_t j; // struct didata *did; SDL_Joystick *joy; joy = joys[num].joy; if (num >= get_joystick_num ()) return 0; if (mode == JSEM_MODE_MOUSE_CDTV) { h = INPUTEVENT_MOUSE_CDTV_HORIZ; v = INPUTEVENT_MOUSE_CDTV_VERT; } else if (port >= 2) { h = port == 3 ? INPUTEVENT_PAR_JOY2_HORIZ : INPUTEVENT_PAR_JOY1_HORIZ; v = port == 3 ? INPUTEVENT_PAR_JOY2_VERT : INPUTEVENT_PAR_JOY1_VERT; } else { h = port ? INPUTEVENT_JOY2_HORIZ : INPUTEVENT_JOY1_HORIZ;; v = port ? INPUTEVENT_JOY2_VERT : INPUTEVENT_JOY1_VERT; } setid (uid, num, ID_AXIS_OFFSET + 0, 0, port, h); setid (uid, num, ID_AXIS_OFFSET + 1, 0, port, v); if (port >= 2) { setid_af (uid, num, ID_BUTTON_OFFSET + 0, 0, port, port == 3 ? INPUTEVENT_PAR_JOY2_FIRE_BUTTON : INPUTEVENT_PAR_JOY1_FIRE_BUTTON, af); } else { setid_af (uid, num, ID_BUTTON_OFFSET + 0, 0, port, port ? INPUTEVENT_JOY2_FIRE_BUTTON : INPUTEVENT_JOY1_FIRE_BUTTON, af); if (SDL_JoystickNumButtons(joy) > 0) setid (uid, num, ID_BUTTON_OFFSET + 1, 0, port, port ? INPUTEVENT_JOY2_2ND_BUTTON : INPUTEVENT_JOY1_2ND_BUTTON); if (SDL_JoystickNumButtons(joy) > 1) setid (uid, num, ID_BUTTON_OFFSET + 2, 0, port, port ? INPUTEVENT_JOY2_3RD_BUTTON : INPUTEVENT_JOY1_3RD_BUTTON); } #if 0 for (int32_t j = 2; j < MAX_MAPPINGS - 1; j++) { int32_t am = did->axismappings[j]; if (am == DIJOFS_POV(0) || am == DIJOFS_POV(1) || am == DIJOFS_POV(2) || am == DIJOFS_POV(3)) { setid (uid, num, ID_AXIS_OFFSET + j + 0, 0, port, h); setid (uid, num, ID_AXIS_OFFSET + j + 1, 0, port, v); j++; } } #endif if (mode == JSEM_MODE_JOYSTICK_CD32) { setid_af (uid, num, ID_BUTTON_OFFSET + 0, 0, port, port ? INPUTEVENT_JOY2_CD32_RED : INPUTEVENT_JOY1_CD32_RED, af); setid_af (uid, num, ID_BUTTON_OFFSET + 0, 1, port, port ? INPUTEVENT_JOY2_FIRE_BUTTON : INPUTEVENT_JOY1_FIRE_BUTTON, af); if (SDL_JoystickNumButtons(joy) > 0) { setid (uid, num, ID_BUTTON_OFFSET + 1, 0, port, port ? INPUTEVENT_JOY2_CD32_BLUE : INPUTEVENT_JOY1_CD32_BLUE); setid (uid, num, ID_BUTTON_OFFSET + 1, 1, port, port ? INPUTEVENT_JOY2_2ND_BUTTON : INPUTEVENT_JOY1_2ND_BUTTON); } if (SDL_JoystickNumButtons(joy) > 1) setid (uid, num, ID_BUTTON_OFFSET + 2, 0, port, port ? INPUTEVENT_JOY2_CD32_GREEN : INPUTEVENT_JOY1_CD32_GREEN); if (SDL_JoystickNumButtons(joy) > 2) setid (uid, num, ID_BUTTON_OFFSET + 3, 0, port, port ? INPUTEVENT_JOY2_CD32_YELLOW : INPUTEVENT_JOY1_CD32_YELLOW); if (SDL_JoystickNumButtons(joy) > 3) setid (uid, num, ID_BUTTON_OFFSET + 4, 0, port, port ? INPUTEVENT_JOY2_CD32_RWD : INPUTEVENT_JOY1_CD32_RWD); if (SDL_JoystickNumButtons(joy) > 4) setid (uid, num, ID_BUTTON_OFFSET + 5, 0, port, port ? INPUTEVENT_JOY2_CD32_FFW : INPUTEVENT_JOY1_CD32_FFW); if (SDL_JoystickNumButtons(joy) > 5) setid (uid, num, ID_BUTTON_OFFSET + 6, 0, port, port ? INPUTEVENT_JOY2_CD32_PLAY : INPUTEVENT_JOY1_CD32_PLAY); } if (num == 0) return 1; return 0; }
static void read_joysticks (void) { int i; for (i = 0; i < get_joystick_num(); i++) read_joy (i); }