diff --git a/lib/wiiuse.lib b/lib/wiiuse.lib index 40b27b9..c89e86e 100644 Binary files a/lib/wiiuse.lib and b/lib/wiiuse.lib differ diff --git a/src/wiiuse.h b/src/wiiuse.h index 7caecfa..469142d 100644 --- a/src/wiiuse.h +++ b/src/wiiuse.h @@ -665,7 +665,7 @@ WIIUSE_EXPORT extern void wiiuse_speaker_format(struct wiimote_t* wm, byte forma WIIUSE_EXPORT extern void wiiuse_speaker_volume(struct wiimote_t* wm, double vol); WIIUSE_EXPORT extern void wiiuse_speaker_rate(struct wiimote_t* wm, double freq); WIIUSE_EXPORT extern void wiiuse_speaker_config(struct wiimote_t* wm); -WIIUSE_EXPORT extern void wiiuse_speaker_data(struct wiimote_t* wm, byte* data); +WIIUSE_EXPORT extern void wiiuse_speaker_data(struct wiimote_t* wm, byte* data, int len); #ifdef __cplusplus } diff --git a/src/wiiusej_WiiUseApi.c b/src/wiiusej_WiiUseApi.c index 83b48e0..e4a213a 100644 --- a/src/wiiusej_WiiUseApi.c +++ b/src/wiiusej_WiiUseApi.c @@ -738,13 +738,13 @@ JNIEXPORT void JNICALL Java_wiiusej_WiiUseApi_setSpeakerConfig(JNIEnv *env, jobj JNIEXPORT void JNICALL Java_wiiusej_WiiUseApi_streamSpeakerData(JNIEnv *env, jobject obj, jint id, jbyteArray jbArray) { jbyte *jbData = (*env)->GetByteArrayElements(env, jbArray, JNI_FALSE); /* Todo: Check for data loss by using signed vs unsigned bytes */ - /*int length = (int) (*env)->GetArrayLength(env, jbArray); - byte data[length]; + int len = (int) (*env)->GetArrayLength(env, jbArray); + /*byte data[length]; int i = 0; for (i = 0; i < length; ++i) { data[i] = (byte) jbData[i]; }*/ - wiiuse_speaker_data(wiiuse_get_by_id(wiimotes, nbMaxWiimotes, id), (byte*) jbData); + wiiuse_speaker_data(wiiuse_get_by_id(wiimotes, nbMaxWiimotes, id), (byte*) jbData, len); (*env)->ReleaseByteArrayElements(env, jbArray, jbData, JNI_FALSE); }