Esempio n. 1
0
static void read_joystick (void)
{
    if (get_joystick_num ()) {
		int32_t i = 0;
		SDL_JoystickUpdate ();
		for ( ; i < get_joystick_num (); i++)
		    read_joy (i);
    }
}
Esempio n. 2
0
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);
    }
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
static int acquire_joystick (int num, int flags) {
    return num < get_joystick_num();
}
Esempio n. 5
0
/*
 * 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;
}
Esempio n. 6
0
static void read_joysticks (void)
{
    int i;
    for (i = 0; i < get_joystick_num(); i++)
	read_joy (i);
}