diff --git a/src/java/org/lwjgl/fmod3/FSound.java b/src/java/org/lwjgl/fmod3/FSound.java index 50120fc5..9e2dc2c1 100644 --- a/src/java/org/lwjgl/fmod3/FSound.java +++ b/src/java/org/lwjgl/fmod3/FSound.java @@ -623,7 +623,10 @@ public class FSound { * @param caps IntBuffer to have the caps bits stored * @return On success, TRUE is returned. On failure, FALSE is returned */ - public static native boolean FSOUND_GetDriverCaps(int driverid, IntBuffer caps); + public static boolean FSOUND_GetDriverCaps(int driverid, IntBuffer caps) { + return nFSOUND_GetDriverCaps(driverid, caps, caps.position()); + } + private static native boolean nFSOUND_GetDriverCaps(int driverid, IntBuffer caps, int offset); /** * Returns the name of the selected driver. Drivers are enumerated when selecting a driver with diff --git a/src/native/common/fmod3/org_lwjgl_fmod3_FSound.cpp b/src/native/common/fmod3/org_lwjgl_fmod3_FSound.cpp index bab671be..aa77b1e2 100644 --- a/src/native/common/fmod3/org_lwjgl_fmod3_FSound.cpp +++ b/src/native/common/fmod3/org_lwjgl_fmod3_FSound.cpp @@ -193,9 +193,9 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_FSOUND_1GetDriver(JNIEnv * en * Method: FSOUND_GetDriverCaps * Signature: (ILjava/nio/IntBuffer;)Z */ -JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_FSOUND_1GetDriverCaps(JNIEnv * env, jclass clazz, jint, jobject) { - throwFMODException(env, "missing implementation"); - return false; +JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1GetDriverCaps(JNIEnv * env, jclass clazz, jint id, jobject buffer, jint offset) { + unsigned int* caps = offset + (unsigned int *) env->GetDirectBufferAddress(buffer); + return fmod_instance->FSOUND_GetDriverCaps(id, caps); } /*