Mercurial > sdl-ios-xcode
diff test/testjoystick.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | 281d3f4870e5 |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/test/testjoystick.c Sun May 21 17:27:13 2006 +0000 +++ b/test/testjoystick.c Sun May 28 13:04:16 2006 +0000 @@ -10,171 +10,168 @@ #define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 480 -void WatchJoystick(SDL_Joystick *joystick) +void +WatchJoystick (SDL_Joystick * joystick) { - SDL_Surface *screen; - const char *name; - int i, done; - SDL_Event event; - int x, y, draw; - SDL_Rect axis_area[6][2]; + SDL_Surface *screen; + const char *name; + int i, done; + SDL_Event event; + int x, y, draw; + SDL_Rect axis_area[6][2]; - /* Set a video mode to display joystick axis position */ - screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 16, 0); - if ( screen == NULL ) { - fprintf(stderr, "Couldn't set video mode: %s\n",SDL_GetError()); - return; - } + /* Set a video mode to display joystick axis position */ + screen = SDL_SetVideoMode (SCREEN_WIDTH, SCREEN_HEIGHT, 16, 0); + if (screen == NULL) { + fprintf (stderr, "Couldn't set video mode: %s\n", SDL_GetError ()); + return; + } - /* Print info about the joystick we are watching */ - name = SDL_JoystickName(SDL_JoystickIndex(joystick)); - printf("Watching joystick %d: (%s)\n", SDL_JoystickIndex(joystick), - name ? name : "Unknown Joystick"); - printf("Joystick has %d axes, %d hats, %d balls, and %d buttons\n", - SDL_JoystickNumAxes(joystick), SDL_JoystickNumHats(joystick), - SDL_JoystickNumBalls(joystick),SDL_JoystickNumButtons(joystick)); + /* Print info about the joystick we are watching */ + name = SDL_JoystickName (SDL_JoystickIndex (joystick)); + printf ("Watching joystick %d: (%s)\n", SDL_JoystickIndex (joystick), + name ? name : "Unknown Joystick"); + printf ("Joystick has %d axes, %d hats, %d balls, and %d buttons\n", + SDL_JoystickNumAxes (joystick), SDL_JoystickNumHats (joystick), + SDL_JoystickNumBalls (joystick), + SDL_JoystickNumButtons (joystick)); - /* Initialize drawing rectangles */ - memset(axis_area, 0, (sizeof axis_area)); - draw = 0; + /* Initialize drawing rectangles */ + memset (axis_area, 0, (sizeof axis_area)); + draw = 0; - /* Loop, getting joystick events! */ - done = 0; - while ( ! done ) { - while ( SDL_PollEvent(&event) ) { - switch (event.type) { - case SDL_JOYAXISMOTION: - printf("Joystick %d axis %d value: %d\n", - event.jaxis.which, - event.jaxis.axis, - event.jaxis.value); - break; - case SDL_JOYHATMOTION: - printf("Joystick %d hat %d value:", - event.jhat.which, - event.jhat.hat); - if ( event.jhat.value == SDL_HAT_CENTERED ) - printf(" centered"); - if ( event.jhat.value & SDL_HAT_UP ) - printf(" up"); - if ( event.jhat.value & SDL_HAT_RIGHT ) - printf(" right"); - if ( event.jhat.value & SDL_HAT_DOWN ) - printf(" down"); - if ( event.jhat.value & SDL_HAT_LEFT ) - printf(" left"); - printf("\n"); - break; - case SDL_JOYBALLMOTION: - printf("Joystick %d ball %d delta: (%d,%d)\n", - event.jball.which, - event.jball.ball, - event.jball.xrel, - event.jball.yrel); - break; - case SDL_JOYBUTTONDOWN: - printf("Joystick %d button %d down\n", - event.jbutton.which, - event.jbutton.button); - break; - case SDL_JOYBUTTONUP: - printf("Joystick %d button %d up\n", - event.jbutton.which, - event.jbutton.button); - break; - case SDL_KEYDOWN: - if ( event.key.keysym.sym != SDLK_ESCAPE ) { - break; - } - /* Fall through to signal quit */ - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - /* Update visual joystick state */ - for ( i=0; i<SDL_JoystickNumButtons(joystick); ++i ) { - SDL_Rect area; + /* Loop, getting joystick events! */ + done = 0; + while (!done) { + while (SDL_PollEvent (&event)) { + switch (event.type) { + case SDL_JOYAXISMOTION: + printf ("Joystick %d axis %d value: %d\n", + event.jaxis.which, + event.jaxis.axis, event.jaxis.value); + break; + case SDL_JOYHATMOTION: + printf ("Joystick %d hat %d value:", + event.jhat.which, event.jhat.hat); + if (event.jhat.value == SDL_HAT_CENTERED) + printf (" centered"); + if (event.jhat.value & SDL_HAT_UP) + printf (" up"); + if (event.jhat.value & SDL_HAT_RIGHT) + printf (" right"); + if (event.jhat.value & SDL_HAT_DOWN) + printf (" down"); + if (event.jhat.value & SDL_HAT_LEFT) + printf (" left"); + printf ("\n"); + break; + case SDL_JOYBALLMOTION: + printf ("Joystick %d ball %d delta: (%d,%d)\n", + event.jball.which, + event.jball.ball, event.jball.xrel, event.jball.yrel); + break; + case SDL_JOYBUTTONDOWN: + printf ("Joystick %d button %d down\n", + event.jbutton.which, event.jbutton.button); + break; + case SDL_JOYBUTTONUP: + printf ("Joystick %d button %d up\n", + event.jbutton.which, event.jbutton.button); + break; + case SDL_KEYDOWN: + if (event.key.keysym.sym != SDLK_ESCAPE) { + break; + } + /* Fall through to signal quit */ + case SDL_QUIT: + done = 1; + break; + default: + break; + } + } + /* Update visual joystick state */ + for (i = 0; i < SDL_JoystickNumButtons (joystick); ++i) { + SDL_Rect area; - area.x = i*34; - area.y = SCREEN_HEIGHT-34; - area.w = 32; - area.h = 32; - if (SDL_JoystickGetButton(joystick, i) == SDL_PRESSED) { - SDL_FillRect(screen, &area, 0xFFFF); - } else { - SDL_FillRect(screen, &area, 0x0000); - } - SDL_UpdateRects(screen, 1, &area); - } + area.x = i * 34; + area.y = SCREEN_HEIGHT - 34; + area.w = 32; + area.h = 32; + if (SDL_JoystickGetButton (joystick, i) == SDL_PRESSED) { + SDL_FillRect (screen, &area, 0xFFFF); + } else { + SDL_FillRect (screen, &area, 0x0000); + } + SDL_UpdateRects (screen, 1, &area); + } - for ( i=0; i<SDL_JoystickNumAxes(joystick)/2 && i < SDL_arraysize(axis_area); ++i ) { - /* Erase previous axes */ - SDL_FillRect(screen, &axis_area[i][draw], 0x0000); + for (i = 0; + i < SDL_JoystickNumAxes (joystick) / 2 + && i < SDL_arraysize (axis_area); ++i) { + /* Erase previous axes */ + SDL_FillRect (screen, &axis_area[i][draw], 0x0000); - /* Draw the X/Y axis */ - draw = !draw; - x = (((int)SDL_JoystickGetAxis(joystick, i*2+0))+32768); - x *= SCREEN_WIDTH; - x /= 65535; - if ( x < 0 ) { - x = 0; - } else - if ( x > (SCREEN_WIDTH-16) ) { - x = SCREEN_WIDTH-16; - } - y = (((int)SDL_JoystickGetAxis(joystick, i*2+1))+32768); - y *= SCREEN_HEIGHT; - y /= 65535; - if ( y < 0 ) { - y = 0; - } else - if ( y > (SCREEN_HEIGHT-16) ) { - y = SCREEN_HEIGHT-16; - } - axis_area[i][draw].x = (Sint16)x; - axis_area[i][draw].y = (Sint16)y; - axis_area[i][draw].w = 16; - axis_area[i][draw].h = 16; - SDL_FillRect(screen, &axis_area[i][draw], 0xFFFF); + /* Draw the X/Y axis */ + draw = !draw; + x = (((int) SDL_JoystickGetAxis (joystick, i * 2 + 0)) + 32768); + x *= SCREEN_WIDTH; + x /= 65535; + if (x < 0) { + x = 0; + } else if (x > (SCREEN_WIDTH - 16)) { + x = SCREEN_WIDTH - 16; + } + y = (((int) SDL_JoystickGetAxis (joystick, i * 2 + 1)) + 32768); + y *= SCREEN_HEIGHT; + y /= 65535; + if (y < 0) { + y = 0; + } else if (y > (SCREEN_HEIGHT - 16)) { + y = SCREEN_HEIGHT - 16; + } + axis_area[i][draw].x = (Sint16) x; + axis_area[i][draw].y = (Sint16) y; + axis_area[i][draw].w = 16; + axis_area[i][draw].h = 16; + SDL_FillRect (screen, &axis_area[i][draw], 0xFFFF); - SDL_UpdateRects(screen, 2, axis_area[i]); - } - } + SDL_UpdateRects (screen, 2, axis_area[i]); + } + } } -int main(int argc, char *argv[]) +int +main (int argc, char *argv[]) { - const char *name; - int i; - SDL_Joystick *joystick; + const char *name; + int i; + SDL_Joystick *joystick; - /* Initialize SDL (Note: video is required to start event loop) */ - if ( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0 ) { - fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError()); - exit(1); - } + /* Initialize SDL (Note: video is required to start event loop) */ + if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) < 0) { + fprintf (stderr, "Couldn't initialize SDL: %s\n", SDL_GetError ()); + exit (1); + } - /* Print information about the joysticks */ - printf("There are %d joysticks attached\n", SDL_NumJoysticks()); - for ( i=0; i<SDL_NumJoysticks(); ++i ) { - name = SDL_JoystickName(i); - printf("Joystick %d: %s\n",i,name ? name : "Unknown Joystick"); - } + /* Print information about the joysticks */ + printf ("There are %d joysticks attached\n", SDL_NumJoysticks ()); + for (i = 0; i < SDL_NumJoysticks (); ++i) { + name = SDL_JoystickName (i); + printf ("Joystick %d: %s\n", i, name ? name : "Unknown Joystick"); + } - if ( argv[1] ) { - joystick = SDL_JoystickOpen(atoi(argv[1])); - if ( joystick == NULL ) { - printf("Couldn't open joystick %d: %s\n", atoi(argv[1]), - SDL_GetError()); - } else { - WatchJoystick(joystick); - SDL_JoystickClose(joystick); - } - } - SDL_QuitSubSystem(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK); + if (argv[1]) { + joystick = SDL_JoystickOpen (atoi (argv[1])); + if (joystick == NULL) { + printf ("Couldn't open joystick %d: %s\n", atoi (argv[1]), + SDL_GetError ()); + } else { + WatchJoystick (joystick); + SDL_JoystickClose (joystick); + } + } + SDL_QuitSubSystem (SDL_INIT_VIDEO | SDL_INIT_JOYSTICK); - return(0); + return (0); }