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);
 }