annotate src/joystick/iphoneos/SDLUIAccelerationDelegate.m @ 2439:78bddf0c0fa2 gsoc2008_iphone

Cleaned up code, added comments.
author Holmes Futrell <hfutrell@umail.ucsb.edu>
date Fri, 15 Aug 2008 19:16:01 +0000
parents 32b9909db651
children
rev   line source
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
1 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
2 SDL - Simple DirectMedia Layer
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
3 Copyright (C) 1997-2006 Sam Lantinga
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
4
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
5 This library is free software; you can redistribute it and/or
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
6 modify it under the terms of the GNU Lesser General Public
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
7 License as published by the Free Software Foundation; either
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
9
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
10 This library is distributed in the hope that it will be useful,
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
13 Lesser General Public License for more details.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
14
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
15 You should have received a copy of the GNU Lesser General Public
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
16 License along with this library; if not, write to the Free Software
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
18
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
19 Sam Lantinga
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
20 slouken@libsdl.org
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
21 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
22
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
23 #import "SDLUIAccelerationDelegate.h"
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
24 /* needed for SDL_IPHONE_MAX_GFORCE macro */
2427
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
25 #import "../../../include/SDL_config_iphoneos.h"
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
26
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
27 static SDLUIAccelerationDelegate *sharedDelegate=nil;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
28
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
29 @implementation SDLUIAccelerationDelegate
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
30
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
31 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
32 Returns a shared instance of the SDLUIAccelerationDelegate, creating the shared delegate if it doesn't exist yet.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
33 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
34 +(SDLUIAccelerationDelegate *)sharedDelegate {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
35 if (sharedDelegate == nil) {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
36 sharedDelegate = [[SDLUIAccelerationDelegate alloc] init];
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
37 }
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
38 return sharedDelegate;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
39 }
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
40 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
41 UIAccelerometerDelegate delegate method. Invoked by the UIAccelerometer instance when it has new data for us.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
42 We just take the data and mark that we have new data available so that the joystick system will pump it to the
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
43 events system when SDL_SYS_JoystickUpdate is called.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
44 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
45 -(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
46
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
47 x = acceleration.x;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
48 y = acceleration.y;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
49 z = acceleration.z;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
50
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
51 hasNewData = YES;
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
52 }
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
53 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
54 getLastOrientation -- put last obtained accelerometer data into Sint16 array
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
55
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
56 Called from the joystick system when it needs the accelerometer data.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
57 Function grabs the last data sent to the accelerometer and converts it
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
58 from floating point to Sint16, which is what the joystick system expects.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
59
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
60 To do the conversion, the data is first clamped onto the interval
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
61 [-SDL_IPHONE_MAX_G_FORCE, SDL_IPHONE_MAX_G_FORCE], then the data is multiplied
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
62 by MAX_SINT16 so that it is mapped to the full range of an Sint16.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
63
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
64 You can customize the clamped range of this function by modifying the
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
65 SDL_IPHONE_MAX_GFORCE macro in SDL_config_iphoneos.h.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
66
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
67 Once converted to Sint16, the accelerometer data no longer has coherent units.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
68 You can convert the data back to units of g-force by multiplying it
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
69 in your application's code by SDL_IPHONE_MAX_GFORCE / 0x7FFF.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
70 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
71 -(void)getLastOrientation:(Sint16 *)data {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
72
2427
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
73 #define MAX_SINT16 0x7FFF
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
74
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
75 /* clamp the data */
2427
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
76 if (x > SDL_IPHONE_MAX_GFORCE) x = SDL_IPHONE_MAX_GFORCE;
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
77 else if (x < -SDL_IPHONE_MAX_GFORCE) x = -SDL_IPHONE_MAX_GFORCE;
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
78 if (y > SDL_IPHONE_MAX_GFORCE) y = SDL_IPHONE_MAX_GFORCE;
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
79 else if (y < -SDL_IPHONE_MAX_GFORCE) y = -SDL_IPHONE_MAX_GFORCE;
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
80 if (z > SDL_IPHONE_MAX_GFORCE) z = SDL_IPHONE_MAX_GFORCE;
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
81 else if (z < -SDL_IPHONE_MAX_GFORCE) z = -SDL_IPHONE_MAX_GFORCE;
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
82
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
83 /* pass in data mapped to range of SInt16 */
2427
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
84 data[0] = (x / SDL_IPHONE_MAX_GFORCE) * MAX_SINT16;
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
85 data[1] = (y / SDL_IPHONE_MAX_GFORCE) * MAX_SINT16;
32b9909db651 changed macro MAX_G_FORCE to SDL_IPHONE_MAX_GFORCE and moved it to the SDL_config_iphoneos.h file. This should allow users to convert between the Sint16 returned by polling the joystick and units of g-force, which better describe what is going on with the iPhone (and are what the iPhone OS actually gives you). This conversion wouldn't be necessary except that we'd need floating point to store everything as g-force.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2362
diff changeset
86 data[2] = (z / SDL_IPHONE_MAX_GFORCE) * MAX_SINT16;
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
87
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
88 }
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
89
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
90 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
91 Initialize SDLUIAccelerationDelegate. Since we don't have any data yet,
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
92 just set our last received data to zero, and indicate we don't have any;
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
93 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
94 -(id)init {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
95 self = [super init];
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
96 x = y = z = 0.0;
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
97 hasNewData = NO;
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
98 return self;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
99 }
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
100
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
101 -(void)dealloc {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
102 sharedDelegate = nil;
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
103 [self shutdown];
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
104 [super dealloc];
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
105 }
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
106
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
107 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
108 Lets our delegate start receiving accelerometer updates.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
109 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
110 -(void)startup {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
111 [UIAccelerometer sharedAccelerometer].delegate = self;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
112 isRunning = YES;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
113 }
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
114 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
115 Stops our delegate from receiving accelerometer updates.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
116 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
117 -(void)shutdown {
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
118 if ([UIAccelerometer sharedAccelerometer].delegate == self) {
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
119 [UIAccelerometer sharedAccelerometer].delegate = nil;
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
120 }
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
121 isRunning = NO;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
122 }
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
123 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
124 Our we currently receiving accelerometer updates?
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
125 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
126 -(BOOL)isRunning {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
127 return isRunning;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
128 }
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
129 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
130 Do we have any data that hasn't been pumped into SDL's event system?
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
131 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
132 -(BOOL)hasNewData {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
133 return hasNewData;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
134 }
2439
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
135 /*
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
136 When the joystick system grabs the new data, it sets this to NO.
78bddf0c0fa2 Cleaned up code, added comments.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2427
diff changeset
137 */
2362
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
138 -(void)setHasNewData:(BOOL)value {
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
139 hasNewData = value;
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
140 }
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
141
44fc2537ff9e These files contain the specification for a class which receives updates from the iPhone accelerometer. The class holds the accelerometer information, and is queried by SDL_sysjoystick.m.
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
diff changeset
142 @end