1#ifndef OIS_iPhoneAccelerometer_H
2#define OIS_iPhoneAccelerometer_H
3
4#include "OISJoystick.h"
5#include "iphone/iPhonePrereqs.h"
6
7#import <UIKit/UIKit.h>
8@class iPhoneAccelerometerDelegate;
9
10class JoyStickState;
11
12namespace OIS
13{
14	class iPhoneAccelerometer : public JoyStick
15    {
16	public:
17		iPhoneAccelerometer(InputManager* creator, bool buffered);
18		virtual ~iPhoneAccelerometer();
19
20		/** @copydoc Object::setBuffered */
21		virtual void setBuffered(bool buffered);
22
23        void setUpdateInterval(float interval) {
24            mUpdateInterval = interval;
25            [[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0f / mUpdateInterval)];
26        }
27
28        Vector3 getAccelerometerVector3(void) { return mState.mVectors[0]; }
29		/** @copydoc Object::capture */
30		virtual void capture();
31
32		/** @copydoc Object::queryInterface */
33		virtual Interface* queryInterface(Interface::IType type) {return 0;}
34
35		/** @copydoc Object::_initialize */
36		virtual void _initialize();
37
38        void didAccelerate(UIAcceleration *acceleration);
39
40    protected:
41        iPhoneAccelerometerDelegate *accelerometerDelegate;
42
43        /** The update frequency of the accelerometer.  Represented in times per second. */
44        float mUpdateInterval;
45        Vector3 mTempState;
46	};
47}
48
49
50#endif // OIS_iPhoneAccelerometer_H
51