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