Home | History | Annotate | Download | only in bsd

Lines Matching full:joy

132 		BSDJOY_JOY	/* joy(4) */
187 SDL_snprintf(s, SDL_arraysize(s), "/dev/joy%d", i);
254 SDL_SYS_JoystickOpen(SDL_Joystick *joy)
256 char *path = joynames[joy->index];
276 joy->hwdata = hw;
285 if (! SDL_strncmp(path, "/dev/joy", 8)) {
287 joy->naxes = 2;
288 joy->nbuttons = 2;
289 joy->nhats = 0;
290 joy->nballs = 0;
291 joydevnames[joy->index] = strdup("Gameport joystick");
335 joy->naxes = 0;
336 joy->nbuttons = 0;
337 joy->nhats = 0;
338 joy->nballs = 0;
356 joy->index);
357 joydevnames[joy->index] = sp;
369 joy->nhats++;
374 joy->nbuttons++;
387 hw->axis_map[i] = joy->naxes++;
402 SDL_SYS_JoystickUpdate(SDL_Joystick *joy)
413 if (joy->hwdata->type == BSDJOY_JOY) {
414 if (read(joy->hwdata->fd, &gameport, sizeof gameport) != sizeof gameport)
416 if (abs(joy->hwdata->x - gameport.x) > 8) {
417 joy->hwdata->x = gameport.x;
418 if (joy->hwdata->x < joy->hwdata->xmin) {
419 joy->hwdata->xmin = joy->hwdata->x;
421 if (joy->hwdata->x > joy->hwdata->xmax) {
422 joy->hwdata->xmax = joy->hwdata->x;
424 if (joy->hwdata->xmin == joy->hwdata->xmax) {
425 joy->hwdata->xmin--;
426 joy->hwdata->xmax++;
428 v = (Sint32)joy->hwdata->x;
429 v -= (joy->hwdata->xmax + joy->hwdata->xmin + 1)/2;
430 v *= 32768/((joy->hwdata->xmax - joy->hwdata->xmin + 1)/2);
431 SDL_PrivateJoystickAxis(joy, 0, v);
433 if (abs(joy->hwdata->y - gameport.y) > 8) {
434 joy->hwdata->y = gameport.y;
435 if (joy->hwdata->y < joy->hwdata->ymin) {
436 joy->hwdata->ymin = joy->hwdata->y;
438 if (joy->hwdata->y > joy->hwdata->ymax) {
439 joy->hwdata->ymax = joy->hwdata->y;
441 if (joy->hwdata->ymin == joy->hwdata->ymax) {
442 joy->hwdata->ymin--;
443 joy->hwdata->ymax++;
445 v = (Sint32)joy->hwdata->y;
446 v -= (joy->hwdata->ymax + joy->hwdata->ymin + 1)/2;
447 v *= 32768/((joy->hwdata->ymax - joy->hwdata->ymin + 1)/2);
448 SDL_PrivateJoystickAxis(joy, 1, v);
450 if (gameport.b1 != joy->buttons[0]) {
451 SDL_PrivateJoystickButton(joy, 0, gameport.b1);
453 if (gameport.b2 != joy->buttons[1]) {
454 SDL_PrivateJoystickButton(joy, 1, gameport.b2);
460 rep = &joy->hwdata->inreport;
462 if (read(joy->hwdata->fd, REP_BUF_DATA(rep), rep->size) != rep->size) {
466 hdata = hid_start_parse(joy->hwdata->repdesc, 1 << hid_input, rep->rid);
468 hdata = hid_start_parse(joy->hwdata->repdesc, 1 << hid_input);
472 joy->hwdata->path);
484 naxe = joy->hwdata->axis_map[joyaxe];
490 if (v != joy->axes[naxe]) {
491 SDL_PrivateJoystickAxis(joy, naxe, v);
496 SDL_PrivateJoystickHat(joy, 0,
504 if (joy->buttons[nbutton] != v) {
505 SDL_PrivateJoystickButton(joy,
525 SDL_SYS_JoystickClose(SDL_Joystick *joy)
527 if (SDL_strncmp(joy->hwdata->path, "/dev/joy", 8)) {
528 report_free(&joy->hwdata->inreport);
529 hid_dispose_report_desc(joy->hwdata->repdesc);
531 close(joy->hwdata->fd);
532 SDL_free(joy->hwdata->path);
533 SDL_free(joy->hwdata);