author | Sam Lantinga <slouken@libsdl.org> |
Sun, 22 Jan 2012 18:11:41 -0500 | |
changeset 6256 | 1d905b13b102 |
parent 5535 | 96594ac5fd1a |
child 6397 | efdf44f20799 |
permissions | -rw-r--r-- |
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 | 12 |
|
13 |
/* Simple program to test the SDL joystick routines */ |
|
14 |
||
6256
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
15 |
#if 1 /* FIXME: Rework this using the 2.0 API */ |
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
16 |
#include <stdio.h> |
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
17 |
|
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
18 |
int main(int argc, char *argv[]) |
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
19 |
{ |
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
20 |
printf("FIXME\n"); |
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
21 |
return 0; |
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
22 |
} |
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
23 |
#else |
0 | 24 |
#include <stdio.h> |
25 |
#include <stdlib.h> |
|
26 |
#include <string.h> |
|
27 |
||
28 |
#include "SDL.h" |
|
29 |
||
2765
f55c87ae336b
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2201
diff
changeset
|
30 |
#ifdef __IPHONEOS__ |
f55c87ae336b
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2201
diff
changeset
|
31 |
#define SCREEN_WIDTH 320 |
f55c87ae336b
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2201
diff
changeset
|
32 |
#define SCREEN_HEIGHT 480 |
f55c87ae336b
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2201
diff
changeset
|
33 |
#else |
0 | 34 |
#define SCREEN_WIDTH 640 |
35 |
#define SCREEN_HEIGHT 480 |
|
2765
f55c87ae336b
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2201
diff
changeset
|
36 |
#endif |
0 | 37 |
|
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
|
38 |
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
|
39 |
WatchJoystick(SDL_Joystick * joystick) |
0 | 40 |
{ |
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
|
41 |
SDL_Surface *screen; |
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
|
42 |
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
|
43 |
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
|
44 |
SDL_Event 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
|
45 |
int x, y, draw; |
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
|
46 |
SDL_Rect axis_area[6][2]; |
0 | 47 |
|
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
|
48 |
/* Set a video mode to display joystick axis position */ |
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
|
49 |
screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 16, 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
|
50 |
if (screen == 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
|
51 |
fprintf(stderr, "Couldn't set video mode: %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
|
52 |
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
|
53 |
} |
0 | 54 |
|
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
|
55 |
/* 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
|
56 |
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
|
57 |
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
|
58 |
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
|
59 |
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
|
60 |
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
|
61 |
SDL_JoystickNumBalls(joystick), SDL_JoystickNumButtons(joystick)); |
0 | 62 |
|
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
|
63 |
/* 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
|
64 |
memset(axis_area, 0, (sizeof axis_area)); |
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
|
65 |
draw = 0; |
0 | 66 |
|
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
|
67 |
/* 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
|
68 |
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
|
69 |
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
|
70 |
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
|
71 |
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
|
72 |
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
|
73 |
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
|
74 |
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
|
75 |
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
|
76 |
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
|
77 |
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
|
78 |
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
|
79 |
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
|
80 |
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
|
81 |
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
|
82 |
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
|
83 |
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
|
84 |
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
|
85 |
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
|
86 |
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
|
87 |
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
|
88 |
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
|
89 |
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
|
90 |
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
|
91 |
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
|
92 |
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
|
93 |
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
|
94 |
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
|
95 |
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
|
96 |
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
|
97 |
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
|
98 |
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
|
99 |
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
|
100 |
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
|
101 |
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
|
102 |
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
|
103 |
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
|
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_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
|
106 |
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
|
107 |
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
|
108 |
} |
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 |
/* 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
|
110 |
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
|
111 |
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
|
112 |
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
|
113 |
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
|
114 |
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
|
115 |
} |
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 |
} |
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 |
/* 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
|
118 |
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
|
119 |
SDL_Rect area; |
0 | 120 |
|
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
|
121 |
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
|
122 |
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
|
123 |
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
|
124 |
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
|
125 |
if (SDL_JoystickGetButton(joystick, i) == SDL_PRESSED) { |
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 |
SDL_FillRect(screen, &area, 0xFFFF); |
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 |
} 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
|
128 |
SDL_FillRect(screen, &area, 0x0000); |
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 |
SDL_UpdateRects(screen, 1, &area); |
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 |
} |
0 | 132 |
|
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
|
133 |
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
|
134 |
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
|
135 |
&& i < SDL_arraysize(axis_area); ++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
|
136 |
/* Erase previous axes */ |
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 |
SDL_FillRect(screen, &axis_area[i][draw], 0x0000); |
0 | 138 |
|
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
|
139 |
/* Draw the X/Y axis */ |
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 |
draw = !draw; |
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
|
141 |
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
|
142 |
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
|
143 |
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
|
144 |
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
|
145 |
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
|
146 |
} 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
|
147 |
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
|
148 |
} |
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 |
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
|
150 |
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
|
151 |
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
|
152 |
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
|
153 |
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
|
154 |
} 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
|
155 |
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
|
156 |
} |
2765
f55c87ae336b
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2201
diff
changeset
|
157 |
|
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
|
158 |
axis_area[i][draw].x = (Sint16) x; |
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 |
axis_area[i][draw].y = (Sint16) y; |
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 |
axis_area[i][draw].w = 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
|
161 |
axis_area[i][draw].h = 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
|
162 |
SDL_FillRect(screen, &axis_area[i][draw], 0xFFFF); |
1854 | 163 |
|
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
|
164 |
SDL_UpdateRects(screen, 2, axis_area[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
|
165 |
} |
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 |
} |
0 | 167 |
} |
168 |
||
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
|
169 |
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
|
170 |
main(int argc, char *argv[]) |
0 | 171 |
{ |
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
|
172 |
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
|
173 |
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
|
174 |
SDL_Joystick *joystick; |
0 | 175 |
|
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
|
176 |
/* 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
|
177 |
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
|
178 |
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
|
179 |
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
|
180 |
} |
0 | 181 |
|
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
|
182 |
/* 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
|
183 |
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
|
184 |
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
|
185 |
name = SDL_JoystickName(i); |
2201 | 186 |
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
|
187 |
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
|
188 |
if (joystick == NULL) { |
2201 | 189 |
fprintf(stderr, "SDL_JoystickOpen(%d) failed: %s\n", i, |
190 |
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
|
191 |
} else { |
893c862eed86
Merged r3292:3293 from branches/SDL-1.2: testjoystick verbose info.
Ryan C. Gordon <icculus@icculus.org>
parents:
1895
diff
changeset
|
192 |
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
|
193 |
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
|
194 |
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
|
195 |
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
|
196 |
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
|
197 |
} |
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
|
198 |
} |
0 | 199 |
|
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
|
200 |
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
|
201 |
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
|
202 |
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
|
203 |
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
|
204 |
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
|
205 |
} 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
|
206 |
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
|
207 |
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
|
208 |
} |
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
|
209 |
} |
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
|
210 |
SDL_QuitSubSystem(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK); |
0 | 211 |
|
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
|
212 |
return (0); |
0 | 213 |
} |
6256
1d905b13b102
Removed the SDL 1.2 compatibility API... we'll see how painful this is.
Sam Lantinga <slouken@libsdl.org>
parents:
5535
diff
changeset
|
214 |
#endif |