test/testjoystick.c
author Ryan C. Gordon <icculus@icculus.org>
Wed, 15 Aug 2012 20:53:24 -0400
changeset 6397 efdf44f20799
parent 6256 1d905b13b102
child 6398 c294faf5fce5
permissions -rw-r--r--
Updated testjoystick.c for SDL2 API and draw more information. Fixes Bugzilla #1570. Thanks to Ondra Hosek for the patch!
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5535
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     1
/*
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     2
  Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org>
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     3
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     4
  This software is provided 'as-is', without any express or implied
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     5
  warranty.  In no event will the authors be held liable for any damages
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     6
  arising from the use of this software.
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     7
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     8
  Permission is granted to anyone to use this software for any purpose,
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
     9
  including commercial applications, and to alter it and redistribute it
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
    10
  freely.
96594ac5fd1a SDL 1.3 is now under the zlib license.
Sam Lantinga <slouken@libsdl.org>
parents: 2765
diff changeset
    11
*/
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    12
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    13
/* Simple program to test the SDL joystick routines */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    14
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    15
#include <stdio.h>
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    16
#include <stdlib.h>
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    17
#include <string.h>
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    18
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    19
#include "SDL.h"
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    20
2765
f55c87ae336b Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2201
diff changeset
    21
#ifdef __IPHONEOS__
f55c87ae336b Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2201
diff changeset
    22
#define SCREEN_WIDTH	320
f55c87ae336b Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2201
diff changeset
    23
#define SCREEN_HEIGHT	480
f55c87ae336b Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2201
diff changeset
    24
#else
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    25
#define SCREEN_WIDTH	640
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    26
#define SCREEN_HEIGHT	480
2765
f55c87ae336b Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2201
diff changeset
    27
#endif
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    28
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    29
#define MAX_NUM_AXES 6
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    30
#define MAX_NUM_HATS 2
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    31
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    32
void
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    33
WatchJoystick(SDL_Joystick * joystick)
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    34
{
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    35
    SDL_Window *window;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    36
    SDL_Renderer *screen;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    37
    const char *name;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    38
    int i, done;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    39
    SDL_Event event;
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    40
    int x, y;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    41
    SDL_Rect axis_area[MAX_NUM_AXES][2];
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    42
    int axis_draw[MAX_NUM_AXES];
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    43
    SDL_Rect hat_area[MAX_NUM_HATS][2];
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    44
    int hat_draw[MAX_NUM_HATS];
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    45
    Uint8 hat_pos;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    46
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    47
    /* Create a window to display joystick axis position */
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    48
    window = SDL_CreateWindow("Joystick Test", SDL_WINDOWPOS_CENTERED,
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    49
                              SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH,
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    50
                              SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    51
    if (window == NULL) {
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    52
        fprintf(stderr, "Couldn't create window: %s\n", SDL_GetError());
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    53
        return;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    54
    }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    55
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    56
    screen = SDL_CreateRenderer(window, -1, 0);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    57
    if (screen == NULL) {
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    58
        fprintf(stderr, "Couldn't create renderer: %s\n", SDL_GetError());
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    59
        SDL_DestroyWindow(window);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    60
        return;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    61
    }
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    62
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    63
    SDL_SetRenderDrawColor(screen, 0x00, 0x00, 0x00, SDL_ALPHA_OPAQUE);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    64
    SDL_RenderClear(screen);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    65
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    66
    /* Print info about the joystick we are watching */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    67
    name = SDL_JoystickName(SDL_JoystickIndex(joystick));
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    68
    printf("Watching joystick %d: (%s)\n", SDL_JoystickIndex(joystick),
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    69
           name ? name : "Unknown Joystick");
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    70
    printf("Joystick has %d axes, %d hats, %d balls, and %d buttons\n",
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    71
           SDL_JoystickNumAxes(joystick), SDL_JoystickNumHats(joystick),
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    72
           SDL_JoystickNumBalls(joystick), SDL_JoystickNumButtons(joystick));
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    73
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    74
    /* Initialize drawing rectangles */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    75
    memset(axis_area, 0, (sizeof axis_area));
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    76
    memset(axis_draw, 0, (sizeof axis_draw));
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    77
    memset(hat_area, 0, (sizeof hat_area));
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
    78
    memset(hat_draw, 0, (sizeof hat_draw));
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
    79
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    80
    /* Loop, getting joystick events! */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    81
    done = 0;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    82
    while (!done) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    83
        while (SDL_PollEvent(&event)) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    84
            switch (event.type) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    85
            case SDL_JOYAXISMOTION:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    86
                printf("Joystick %d axis %d value: %d\n",
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    87
                       event.jaxis.which,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    88
                       event.jaxis.axis, event.jaxis.value);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    89
                break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    90
            case SDL_JOYHATMOTION:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    91
                printf("Joystick %d hat %d value:",
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    92
                       event.jhat.which, event.jhat.hat);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    93
                if (event.jhat.value == SDL_HAT_CENTERED)
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    94
                    printf(" centered");
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    95
                if (event.jhat.value & SDL_HAT_UP)
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    96
                    printf(" up");
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    97
                if (event.jhat.value & SDL_HAT_RIGHT)
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    98
                    printf(" right");
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
    99
                if (event.jhat.value & SDL_HAT_DOWN)
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   100
                    printf(" down");
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   101
                if (event.jhat.value & SDL_HAT_LEFT)
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   102
                    printf(" left");
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   103
                printf("\n");
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   104
                break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   105
            case SDL_JOYBALLMOTION:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   106
                printf("Joystick %d ball %d delta: (%d,%d)\n",
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   107
                       event.jball.which,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   108
                       event.jball.ball, event.jball.xrel, event.jball.yrel);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   109
                break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   110
            case SDL_JOYBUTTONDOWN:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   111
                printf("Joystick %d button %d down\n",
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   112
                       event.jbutton.which, event.jbutton.button);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   113
                break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   114
            case SDL_JOYBUTTONUP:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   115
                printf("Joystick %d button %d up\n",
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   116
                       event.jbutton.which, event.jbutton.button);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   117
                break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   118
            case SDL_KEYDOWN:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   119
                if (event.key.keysym.sym != SDLK_ESCAPE) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   120
                    break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   121
                }
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   122
                /* Fall through to signal quit */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   123
            case SDL_QUIT:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   124
                done = 1;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   125
                break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   126
            default:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   127
                break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   128
            }
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   129
        }
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   130
        /* Update visual joystick state */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   131
        for (i = 0; i < SDL_JoystickNumButtons(joystick); ++i) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   132
            SDL_Rect area;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   133
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   134
            area.x = i * 34;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   135
            area.y = SCREEN_HEIGHT - 34;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   136
            area.w = 32;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   137
            area.h = 32;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   138
            if (SDL_JoystickGetButton(joystick, i) == SDL_PRESSED) {
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   139
                SDL_SetRenderDrawColor(screen, 0xFF, 0xFF, 0xFF, SDL_ALPHA_OPAQUE);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   140
            } else {
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   141
                SDL_SetRenderDrawColor(screen, 0x00, 0x00, 0x00, SDL_ALPHA_OPAQUE);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   142
            }
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   143
            SDL_RenderFillRect(screen, &area);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   144
            SDL_RenderPresent(screen);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   145
        }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   146
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   147
        for (i = 0;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   148
             i < SDL_JoystickNumAxes(joystick) / 2
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   149
             && i < SDL_arraysize(axis_area); ++i) {
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   150
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   151
            /* Erase previous axes */
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   152
            SDL_SetRenderDrawColor(screen, 0x00, 0x00, 0x00, SDL_ALPHA_OPAQUE);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   153
            SDL_RenderFillRect(screen, &axis_area[i][axis_draw[i]]);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   154
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   155
            /* Draw the X/Y axis */
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   156
            axis_draw[i] = !axis_draw[i];
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   157
            x = (((int) SDL_JoystickGetAxis(joystick, i * 2 + 0)) + 32768);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   158
            x *= SCREEN_WIDTH;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   159
            x /= 65535;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   160
            if (x < 0) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   161
                x = 0;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   162
            } else if (x > (SCREEN_WIDTH - 16)) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   163
                x = SCREEN_WIDTH - 16;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   164
            }
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   165
            y = (((int) SDL_JoystickGetAxis(joystick, i * 2 + 1)) + 32768);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   166
            y *= SCREEN_HEIGHT;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   167
            y /= 65535;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   168
            if (y < 0) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   169
                y = 0;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   170
            } else if (y > (SCREEN_HEIGHT - 16)) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   171
                y = SCREEN_HEIGHT - 16;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   172
            }
2765
f55c87ae336b Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2201
diff changeset
   173
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   174
            axis_area[i][axis_draw[i]].x = (Sint16) x;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   175
            axis_area[i][axis_draw[i]].y = (Sint16) y;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   176
            axis_area[i][axis_draw[i]].w = 16;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   177
            axis_area[i][axis_draw[i]].h = 16;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   178
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   179
            SDL_SetRenderDrawColor(screen, 0xFF, 0xFF, 0xFF, SDL_ALPHA_OPAQUE);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   180
            SDL_RenderFillRect(screen, &axis_area[i][axis_draw[i]]);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   181
            SDL_RenderPresent(screen);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   182
        }
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   183
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   184
        for (i = 0;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   185
             i < SDL_JoystickNumHats(joystick)
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   186
             && i < SDL_arraysize(hat_area); ++i) {
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   187
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   188
            /* Erase previous hat position */
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   189
            SDL_SetRenderDrawColor(screen, 0x00, 0x00, 0x00, SDL_ALPHA_OPAQUE);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   190
            SDL_RenderFillRect(screen, &hat_area[i][hat_draw[i]]);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   191
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   192
            hat_draw[i] = !hat_draw[i];
1854
2280e314a978 Closed bug #74
Sam Lantinga <slouken@libsdl.org>
parents: 0
diff changeset
   193
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   194
            /* Derive the new position */
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   195
            hat_pos = SDL_JoystickGetHat(joystick, i);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   196
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   197
            hat_area[i][hat_draw[i]].x = SCREEN_WIDTH/2;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   198
            hat_area[i][hat_draw[i]].y = SCREEN_HEIGHT/2;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   199
            hat_area[i][hat_draw[i]].w = 8;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   200
            hat_area[i][hat_draw[i]].h = 8;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   201
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   202
            if (hat_pos & SDL_HAT_UP) {
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   203
                hat_area[i][hat_draw[i]].y = 0;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   204
            } else if (hat_pos & SDL_HAT_DOWN) {
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   205
                hat_area[i][hat_draw[i]].y = SCREEN_HEIGHT-8;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   206
            }
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   207
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   208
            if (hat_pos & SDL_HAT_LEFT) {
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   209
                hat_area[i][hat_draw[i]].x = 0;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   210
            } else if (hat_pos & SDL_HAT_RIGHT) {
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   211
                hat_area[i][hat_draw[i]].x = SCREEN_WIDTH-8;
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   212
            }
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   213
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   214
            /* Draw it */
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   215
            SDL_SetRenderDrawColor(screen, 0xFF, 0xFF, 0xFF, SDL_ALPHA_OPAQUE);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   216
            SDL_RenderFillRect(screen, &hat_area[i][hat_draw[i]]);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   217
            SDL_RenderPresent(screen);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   218
        }
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   219
    }
6397
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   220
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   221
    SDL_DestroyRenderer(screen);
efdf44f20799 Updated testjoystick.c for SDL2 API and draw more information.
Ryan C. Gordon <icculus@icculus.org>
parents: 6256
diff changeset
   222
    SDL_DestroyWindow(window);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   223
}
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   224
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   225
int
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   226
main(int argc, char *argv[])
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   227
{
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   228
    const char *name;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   229
    int i;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   230
    SDL_Joystick *joystick;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   231
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   232
    /* Initialize SDL (Note: video is required to start event loop) */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   233
    if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   234
        fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError());
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   235
        exit(1);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   236
    }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   237
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   238
    /* Print information about the joysticks */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   239
    printf("There are %d joysticks attached\n", SDL_NumJoysticks());
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   240
    for (i = 0; i < SDL_NumJoysticks(); ++i) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   241
        name = SDL_JoystickName(i);
2201
Sam Lantinga <slouken@libsdl.org>
parents: 2200
diff changeset
   242
        printf("Joystick %d: %s\n", i, name ? name : "Unknown Joystick");
2200
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   243
        joystick = SDL_JoystickOpen(i);
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   244
        if (joystick == NULL) {
2201
Sam Lantinga <slouken@libsdl.org>
parents: 2200
diff changeset
   245
            fprintf(stderr, "SDL_JoystickOpen(%d) failed: %s\n", i,
Sam Lantinga <slouken@libsdl.org>
parents: 2200
diff changeset
   246
                    SDL_GetError());
2200
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   247
        } else {
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   248
            printf("       axes: %d\n", SDL_JoystickNumAxes(joystick));
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   249
            printf("      balls: %d\n", SDL_JoystickNumBalls(joystick));
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   250
            printf("       hats: %d\n", SDL_JoystickNumHats(joystick));
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   251
            printf("    buttons: %d\n", SDL_JoystickNumButtons(joystick));
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   252
            SDL_JoystickClose(joystick);
893c862eed86 Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents: 1895
diff changeset
   253
        }
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   254
    }
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   255
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   256
    if (argv[1]) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   257
        joystick = SDL_JoystickOpen(atoi(argv[1]));
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   258
        if (joystick == NULL) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   259
            printf("Couldn't open joystick %d: %s\n", atoi(argv[1]),
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   260
                   SDL_GetError());
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   261
        } else {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   262
            WatchJoystick(joystick);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   263
            SDL_JoystickClose(joystick);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   264
        }
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   265
    }
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   266
    SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   267
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1855
diff changeset
   268
    return (0);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
   269
}