• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <com.badlogic.gdx.controllers.desktop.ois.OisJoystick.h>
2 
3 //@line:158
4 
5 	#include <OISJoyStick.h>
6 	#include <OISInputManager.h>
7 
8 	static jclass callbackClass = 0;
9 	static jmethodID povMovedId = 0;
10 	static jmethodID axisMovedId = 0;
11 	static jmethodID sliderMovedId = 0;
12 	static jmethodID buttonPressedId = 0;
13 	static jmethodID buttonReleasedId = 0;
14 
initializeClasses(JNIEnv * env,jobject clazz)15 	static void initializeClasses(JNIEnv* env, jobject clazz) {
16 		// we leak one global ref
17 		if(callbackClass == 0) {
18 			callbackClass = (jclass)env->NewGlobalRef(env->GetObjectClass(clazz));
19 			povMovedId = env->GetMethodID(callbackClass, "povMoved", "(II)V");
20 			axisMovedId = env->GetMethodID(callbackClass, "axisMoved", "(II)V");
21 			sliderMovedId = env->GetMethodID(callbackClass, "sliderMoved", "(III)V");
22 			buttonPressedId = env->GetMethodID(callbackClass, "buttonPressed", "(I)V");
23 			buttonReleasedId = env->GetMethodID(callbackClass, "buttonReleased", "(I)V");
24 		}
25 	}
26 
27 	class Listener : public OIS::JoyStickListener {
28 	public:
Listener(JNIEnv * env,jobject obj)29 		Listener(JNIEnv* env, jobject obj) {
30 			this->env = env;
31 			this->obj = obj;
32 		}
33 
34 		JNIEnv* env;
35 		jobject obj;
36 
37 		bool povMoved (const OIS::JoyStickEvent &event, int pov);
38 		bool axisMoved (const OIS::JoyStickEvent &event, int axis);
39 		bool sliderMoved (const OIS::JoyStickEvent &event, int sliderID);
40 		bool buttonPressed (const OIS::JoyStickEvent &event, int button);
41 		bool buttonReleased (const OIS::JoyStickEvent &event, int button);
42 	};
43 
buttonPressed(const OIS::JoyStickEvent & event,int buttonId)44 	bool Listener::buttonPressed (const OIS::JoyStickEvent &event, int buttonId) {
45 		env->CallVoidMethod(obj, buttonPressedId, (jint)buttonId);
46 		return true;
47 	}
48 
buttonReleased(const OIS::JoyStickEvent & event,int buttonId)49 	bool Listener::buttonReleased (const OIS::JoyStickEvent &event, int buttonId) {
50 		env->CallVoidMethod(obj, buttonReleasedId, (jint)buttonId);
51 		return true;
52 	}
53 
axisMoved(const OIS::JoyStickEvent & event,int axisId)54 	bool Listener::axisMoved (const OIS::JoyStickEvent &event, int axisId) {
55 		env->CallVoidMethod(obj, axisMovedId, (jint)axisId, (jint)event.state.mAxes[axisId].abs);
56 		return true;
57 	}
58 
povMoved(const OIS::JoyStickEvent & event,int povId)59 	bool Listener::povMoved (const OIS::JoyStickEvent &event, int povId) {
60 		env->CallVoidMethod(obj, povMovedId, (jint)povId, (jint)event.state.mPOV[povId].direction);
61 		return true;
62 	}
63 
sliderMoved(const OIS::JoyStickEvent & event,int sliderId)64 	bool Listener::sliderMoved (const OIS::JoyStickEvent &event, int sliderId) {
65 		env->CallVoidMethod(obj, sliderMovedId, (jint)sliderId,
66 			(jint)event.state.mSliders[sliderId].abX, (jint)event.state.mSliders[sliderId].abY);
67 		return true;
68 	}
Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_initialize(JNIEnv * env,jobject object,jobject joystick)69 	 JNIEXPORT void JNICALL Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_initialize(JNIEnv* env, jobject object, jobject joystick) {
70 
71 
72 //@line:225
73 
74 		initializeClasses(env, joystick);
75 
76 
77 }
78 
Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_update(JNIEnv * env,jobject object,jlong joystickPtr,jobject callback)79 JNIEXPORT void JNICALL Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_update(JNIEnv* env, jobject object, jlong joystickPtr, jobject callback) {
80 
81 
82 //@line:229
83 
84 		OIS::JoyStick* joystick = (OIS::JoyStick*)joystickPtr;
85 		Listener listener(env, callback);
86 		joystick->setEventCallback(&listener);
87 		joystick->capture();
88 
89 
90 }
91 
Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_getAxesCount(JNIEnv * env,jobject object,jlong joystickPtr)92 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_getAxesCount(JNIEnv* env, jobject object, jlong joystickPtr) {
93 
94 
95 //@line:236
96 
97 		OIS::JoyStick* joystick = (OIS::JoyStick*)joystickPtr;
98 		return joystick->getNumberOfComponents(OIS::OIS_Axis);
99 
100 
101 }
102 
Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_getButtonCount(JNIEnv * env,jobject object,jlong joystickPtr)103 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_getButtonCount(JNIEnv* env, jobject object, jlong joystickPtr) {
104 
105 
106 //@line:241
107 
108 		OIS::JoyStick* joystick = (OIS::JoyStick*)joystickPtr;
109 		return joystick->getNumberOfComponents(OIS::OIS_Button);
110 
111 
112 }
113 
Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_getPovCount(JNIEnv * env,jobject object,jlong joystickPtr)114 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_getPovCount(JNIEnv* env, jobject object, jlong joystickPtr) {
115 
116 
117 //@line:246
118 
119 		OIS::JoyStick* joystick = (OIS::JoyStick*)joystickPtr;
120 		return joystick->getNumberOfComponents(OIS::OIS_POV);
121 
122 
123 }
124 
Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_getSliderCount(JNIEnv * env,jobject object,jlong joystickPtr)125 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_controllers_desktop_ois_OisJoystick_getSliderCount(JNIEnv* env, jobject object, jlong joystickPtr) {
126 
127 
128 //@line:251
129 
130 		OIS::JoyStick* joystick = (OIS::JoyStick*)joystickPtr;
131 		return joystick->getNumberOfComponents(OIS::OIS_Slider);
132 
133 
134 }
135 
136