mo fmod
This commit is contained in:
parent
53126a57f1
commit
53202702b0
|
@ -36,6 +36,7 @@ import java.nio.FloatBuffer;
|
|||
import java.nio.IntBuffer;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.lwjgl.BufferUtils;
|
||||
import org.lwjgl.fmod3.callbacks.FSoundCloseCallback;
|
||||
import org.lwjgl.fmod3.callbacks.FSoundDSPCallback;
|
||||
import org.lwjgl.fmod3.callbacks.FSoundMetaDataCallback;
|
||||
|
@ -1275,7 +1276,7 @@ public class FSound {
|
|||
public static int nFSOUND_PlaySoundEx(int channel, FSoundSample sample, FSoundDSPUnit dspunit, boolean startpaused) {
|
||||
return nFSOUND_PlaySoundEx(channel, sample.sampleHandle, dspunit.dspHandle, startpaused);
|
||||
}
|
||||
private static native int nFSOUND_PlaySoundEx(int channel, long sample, long dspunit, boolean startpaused);
|
||||
private static native int nFSOUND_PlaySoundEx(int channel, long sample, ByteBuffer dspunit, boolean startpaused);
|
||||
|
||||
/**
|
||||
* Stops a specified sound channel from playing, and frees it up for re-use
|
||||
|
@ -2111,13 +2112,13 @@ public class FSound {
|
|||
* @return On success, a sync point handle is returned. On failure, NULL is returned.
|
||||
*/
|
||||
public static FSoundSyncPoint FSOUND_Stream_AddSyncPoint(FSoundStream stream, int pcmoffset, String name) {
|
||||
long result = nFSOUND_Stream_AddSyncPoint(stream.streamHandle, pcmoffset, name);
|
||||
if(result != 0) {
|
||||
ByteBuffer result = nFSOUND_Stream_AddSyncPoint(stream.streamHandle, pcmoffset, name);
|
||||
if(result != null) {
|
||||
return new FSoundSyncPoint(result);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private static native long nFSOUND_Stream_AddSyncPoint(long streamhandle, int pcmoffset, String name);
|
||||
private static native ByteBuffer nFSOUND_Stream_AddSyncPoint(long streamhandle, int pcmoffset, String name);
|
||||
|
||||
/**
|
||||
* Creates a user definable stream file ready for playing. The stream is serviced through a callback
|
||||
|
@ -2158,15 +2159,18 @@ public class FSound {
|
|||
* @return On success, a handle to the FSoundDSPUnit is returned. All DSP functions are performable on this. On failure, null is returned
|
||||
*/
|
||||
public static FSoundDSPUnit FSOUND_Stream_CreateDSP(FSoundStream stream, FSoundDSPCallback callback, int priority) {
|
||||
ByteBuffer dspID = (ByteBuffer) BufferUtils.createByteBuffer(8).putLong(FSoundDSPUnit.getNextId()).flip();
|
||||
FSoundDSPUnit unit = null;
|
||||
long result = nFSOUND_Stream_CreateDSP(stream.streamHandle, priority);
|
||||
if(result != 0) {
|
||||
unit = new FSoundDSPUnit(result);
|
||||
FMOD.registerCallback(FMOD.FSOUND_DSPCALLBACK, unit.dspHandle, unit, callback);
|
||||
|
||||
ByteBuffer dspHandle = nFSOUND_Stream_CreateDSP(stream.streamHandle, priority, dspID);
|
||||
|
||||
if(dspHandle != null) {
|
||||
unit = new FSoundDSPUnit(dspHandle, dspID);
|
||||
FMOD.registerCallback(FMOD.FSOUND_DSPCALLBACK, dspID.getLong(0), unit, callback);
|
||||
}
|
||||
return unit;
|
||||
}
|
||||
private static native long nFSOUND_Stream_CreateDSP(long streamHandle, int priority);
|
||||
private static native ByteBuffer nFSOUND_Stream_CreateDSP(long streamHandle, int priority, ByteBuffer dspID);
|
||||
|
||||
/**
|
||||
* Removes a user synchronization callback point from a stream.
|
||||
|
@ -2177,7 +2181,7 @@ public class FSound {
|
|||
public static boolean FSOUND_Stream_DeleteSyncPoint(FSoundSyncPoint point) {
|
||||
return nFSOUND_Stream_DeleteSyncPoint(point.syncpointHandle);
|
||||
}
|
||||
private static native boolean nFSOUND_Stream_DeleteSyncPoint(long syncpointHandle);
|
||||
private static native boolean nFSOUND_Stream_DeleteSyncPoint(ByteBuffer syncpointHandle);
|
||||
|
||||
/**
|
||||
* Find a tag field associated with an open stream by name and type
|
||||
|
@ -2322,13 +2326,13 @@ public class FSound {
|
|||
* @return On success, a handle to a sync point is returned. On failure, NULL is returned.
|
||||
*/
|
||||
public static FSoundSyncPoint FSOUND_Stream_GetSyncPoint(FSoundStream stream, int index) {
|
||||
long result = nFSOUND_Stream_GetSyncPoint(stream.streamHandle, index);
|
||||
if(result != 0) {
|
||||
ByteBuffer result = nFSOUND_Stream_GetSyncPoint(stream.streamHandle, index);
|
||||
if(result != null) {
|
||||
return new FSoundSyncPoint(result);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private static native long nFSOUND_Stream_GetSyncPoint(long streamHandle, int index);
|
||||
private static native ByteBuffer nFSOUND_Stream_GetSyncPoint(long streamHandle, int index);
|
||||
|
||||
/**
|
||||
* Retrieves the name and pcm offset in samples for a specified sync point
|
||||
|
@ -2342,7 +2346,7 @@ public class FSound {
|
|||
public static String FSOUND_Stream_GetSyncPointInfo(FSoundSyncPoint point, IntBuffer pcmoffset) {
|
||||
return nFSOUND_Stream_GetSyncPointInfo(point.syncpointHandle, pcmoffset, (pcmoffset != null) ? pcmoffset.position() : 0);
|
||||
}
|
||||
private static native String nFSOUND_Stream_GetSyncPointInfo(long pointHandle, IntBuffer pcmoffset, int bufferOffset);
|
||||
private static native String nFSOUND_Stream_GetSyncPointInfo(ByteBuffer pointHandle, IntBuffer pcmoffset, int bufferOffset);
|
||||
|
||||
/**
|
||||
* Get a tag field associated with an open stream
|
||||
|
@ -2496,7 +2500,7 @@ public class FSound {
|
|||
public static int FSOUND_Stream_PlayEx(int channel, FSoundStream stream, FSoundDSPUnit dspunit, boolean paused) {
|
||||
return nFSOUND_Stream_PlayEx(channel, stream.streamHandle, dspunit.dspHandle, paused);
|
||||
}
|
||||
private static native int nFSOUND_Stream_PlayEx(int channel, long stream, long dspunit, boolean paused);
|
||||
private static native int nFSOUND_Stream_PlayEx(int channel, long stream, ByteBuffer dspunit, boolean paused);
|
||||
|
||||
/**
|
||||
* Sets the internal file buffersize for audio streaming of data for the NEXT stream opened with FSOUND_Stream_Open.
|
||||
|
@ -2916,15 +2920,16 @@ public class FSound {
|
|||
* @return On success, a new valid DSP unit is returned. On failure, NULL is returned.
|
||||
*/
|
||||
public static FSoundDSPUnit FSOUND_DSP_Create(FSoundDSPCallback callbackHandler, int priority) {
|
||||
FSoundDSPUnit dspUnit = null;
|
||||
long unit = nFSOUND_DSP_Create(priority);
|
||||
if(unit != 0) {
|
||||
dspUnit= new FSoundDSPUnit(unit);
|
||||
FMOD.registerCallback(FMOD.FSOUND_DSPCALLBACK, dspUnit.dspHandle, dspUnit, callbackHandler);
|
||||
FSoundDSPUnit dspUnit = null;
|
||||
ByteBuffer handle = nFSOUND_DSP_Create(priority);
|
||||
if(handle != null) {
|
||||
ByteBuffer dspID = (ByteBuffer) BufferUtils.createByteBuffer(8).putLong(FSoundDSPUnit.getNextId()).flip();
|
||||
dspUnit= new FSoundDSPUnit(handle, dspID);
|
||||
FMOD.registerCallback(FMOD.FSOUND_DSPCALLBACK, dspID.getLong(0), dspUnit, callbackHandler);
|
||||
}
|
||||
return dspUnit;
|
||||
}
|
||||
private static native long nFSOUND_DSP_Create(int priority);
|
||||
private static native ByteBuffer nFSOUND_DSP_Create(int priority);
|
||||
|
||||
/**
|
||||
* Frees and removes a DSP unit from the DSP chain
|
||||
|
@ -2933,9 +2938,9 @@ public class FSound {
|
|||
*/
|
||||
public static void FSOUND_DSP_Free(FSoundDSPUnit unit) {
|
||||
nFSOUND_DSP_Free(unit.dspHandle);
|
||||
FMOD.registerCallback(FMOD.FSOUND_DSPCALLBACK, unit.dspHandle, unit, null);
|
||||
FMOD.registerCallback(FMOD.FSOUND_DSPCALLBACK, unit.dspTrackingID.get(0), unit, null);
|
||||
}
|
||||
private static native void nFSOUND_DSP_Free(long dspUnitHandle);
|
||||
private static native void nFSOUND_DSP_Free(ByteBuffer dspUnitHandle);
|
||||
|
||||
/**
|
||||
* Allows the user to toggle a DSP unit on or off
|
||||
|
@ -2949,7 +2954,7 @@ public class FSound {
|
|||
public static void FSOUND_DSP_SetActive(FSoundDSPUnit unit, boolean active) {
|
||||
nFSOUND_DSP_SetActive(unit.dspHandle, active);
|
||||
}
|
||||
private static native void nFSOUND_DSP_SetActive(long dspUnitHandle, boolean active);
|
||||
private static native void nFSOUND_DSP_SetActive(ByteBuffer dspUnitHandle, boolean active);
|
||||
|
||||
/**
|
||||
* Returns if a DSP unit is active or not
|
||||
|
@ -2963,7 +2968,7 @@ public class FSound {
|
|||
public static boolean FSOUND_DSP_GetActive(FSoundDSPUnit unit) {
|
||||
return nFSOUND_DSP_GetActive(unit.dspHandle);
|
||||
}
|
||||
private static native boolean nFSOUND_DSP_GetActive(long dspUnitHandle);
|
||||
private static native boolean nFSOUND_DSP_GetActive(ByteBuffer dspUnitHandle);
|
||||
|
||||
/**
|
||||
* Returns the buffer lenth passed by the DSP system to DSP unit callbacks, so you can allocate memory etc
|
||||
|
@ -3004,7 +3009,7 @@ public class FSound {
|
|||
public static void FSOUND_DSP_GetActive(FSoundDSPUnit unit, int priority) {
|
||||
nFSOUND_DSP_SetPriority(unit.dspHandle, priority);
|
||||
}
|
||||
private static native void nFSOUND_DSP_SetPriority(long dspUnitHandle, int priority);
|
||||
private static native void nFSOUND_DSP_SetPriority(ByteBuffer dspUnitHandle, int priority);
|
||||
|
||||
/**
|
||||
* Returns the priority status in the DSP chain, of a specified unit.
|
||||
|
@ -3019,7 +3024,7 @@ public class FSound {
|
|||
public static int FSOUND_DSP_GetPriority(FSoundDSPUnit unit) {
|
||||
return nFSOUND_DSP_GetPriority(unit.dspHandle);
|
||||
}
|
||||
private static native int nFSOUND_DSP_GetPriority(long dspUnitHandle);
|
||||
private static native int nFSOUND_DSP_GetPriority(ByteBuffer dspUnitHandle);
|
||||
|
||||
/**
|
||||
* Returns a reference to FSOUND's system DSP clear unit
|
||||
|
@ -3035,7 +3040,7 @@ public class FSound {
|
|||
}
|
||||
return FMOD.fmodClearUnit;
|
||||
}
|
||||
private static native long nFSOUND_DSP_GetClearUnit();
|
||||
private static native ByteBuffer nFSOUND_DSP_GetClearUnit();
|
||||
|
||||
/**
|
||||
* Returns a reference to FSOUND's system Clip and Copy DSP unit
|
||||
|
@ -3051,7 +3056,7 @@ public class FSound {
|
|||
}
|
||||
return FMOD.fmodClipAndCopyUnit;
|
||||
}
|
||||
private static native long nFSOUND_DSP_GetClipAndCopyUnit();
|
||||
private static native ByteBuffer nFSOUND_DSP_GetClipAndCopyUnit();
|
||||
|
||||
/**
|
||||
* Returns a reference to FSOUND's system DSP Music mixer unit
|
||||
|
@ -3067,7 +3072,7 @@ public class FSound {
|
|||
}
|
||||
return FMOD.fmodMusicUnit;
|
||||
}
|
||||
private static native long nFSOUND_DSP_GetMusicUnit();
|
||||
private static native ByteBuffer nFSOUND_DSP_GetMusicUnit();
|
||||
|
||||
/**
|
||||
* Returns a reference to FSOUND's system DSP SFX mixer unit
|
||||
|
@ -3083,7 +3088,7 @@ public class FSound {
|
|||
}
|
||||
return FMOD.fmodSFXUnit;
|
||||
}
|
||||
private static native long nFSOUND_DSP_GetSFXUnit();
|
||||
private static native ByteBuffer nFSOUND_DSP_GetSFXUnit();
|
||||
|
||||
/**
|
||||
* Returns a reference to FSOUND's system DSP FFT processing unit
|
||||
|
@ -3100,7 +3105,7 @@ public class FSound {
|
|||
}
|
||||
return FMOD.fmodFFTUnit;
|
||||
}
|
||||
private static native long nFSOUND_DSP_GetFFTUnit();
|
||||
private static native ByteBuffer nFSOUND_DSP_GetFFTUnit();
|
||||
|
||||
/**
|
||||
* Function to return a FloatBuffer to the current spectrum buffer. The buffer contains 512 floating
|
||||
|
@ -3547,14 +3552,12 @@ public class FSound {
|
|||
* @param handle Handle to native object being monitored
|
||||
* @param param parameter passed to callback
|
||||
*/
|
||||
private static void dsp_callback(long dspHandle, ByteBuffer originalbuffer, ByteBuffer newbuffer, int length) {
|
||||
private static ByteBuffer dsp_callback(long dsp_id, ByteBuffer originalbuffer, ByteBuffer newbuffer, int length) {
|
||||
// we got a callback - notify everybody
|
||||
ArrayList handlers = FMOD.getCallbacks(FMOD.FSOUND_DSPCALLBACK, dspHandle);
|
||||
for(int i=0; i<handlers.size(); i++) {
|
||||
FMOD.WrappedCallback wCallback = (FMOD.WrappedCallback) handlers.get(i);
|
||||
FSoundDSPCallback callback = (FSoundDSPCallback) wCallback.callback;
|
||||
callback.FSOUND_DSPCALLBACK(originalbuffer, newbuffer, length);
|
||||
}
|
||||
ArrayList handlers = FMOD.getCallbacks(FMOD.FSOUND_DSPCALLBACK, dsp_id);
|
||||
FMOD.WrappedCallback wCallback = (FMOD.WrappedCallback) handlers.get((int)0);
|
||||
FSoundDSPCallback callback = (FSoundDSPCallback) wCallback.callback;
|
||||
return callback.FSOUND_DSPCALLBACK(originalbuffer, newbuffer, length);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
*/
|
||||
package org.lwjgl.fmod3;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* This class is a representation of a DSPUnit in FMod.
|
||||
* $Id$
|
||||
|
@ -39,15 +41,43 @@ package org.lwjgl.fmod3;
|
|||
* @version $Revision$
|
||||
*/
|
||||
public class FSoundDSPUnit {
|
||||
/** Handle to dsp unit */
|
||||
long dspHandle;
|
||||
/** Opaque handle to dsp unit */
|
||||
ByteBuffer dspHandle;
|
||||
|
||||
/** DSP id, used for tracking which dsp needs to call which
|
||||
* object (when entering from native side) */
|
||||
ByteBuffer dspTrackingID;
|
||||
|
||||
/** ID for next dsp unit */
|
||||
static long nextDspTrackingID;
|
||||
|
||||
/**
|
||||
* Creates a new FSoundDSPUnit
|
||||
*
|
||||
* @param dspHandle handle to dsp unit
|
||||
*/
|
||||
FSoundDSPUnit(long dspHandle) {
|
||||
this.dspHandle = dspHandle;
|
||||
FSoundDSPUnit(ByteBuffer dspHandle) {
|
||||
this.dspHandle = dspHandle;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new FSoundDSPUnit
|
||||
*
|
||||
* @param dspHandle handle to dsp unit
|
||||
*/
|
||||
FSoundDSPUnit(ByteBuffer dspHandle, ByteBuffer dspTrackingID) {
|
||||
this.dspHandle = dspHandle;
|
||||
this.dspTrackingID = dspTrackingID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Next dsp id
|
||||
*/
|
||||
static long getNextId() {
|
||||
// To infinity and beyond!... well almost
|
||||
if(nextDspTrackingID == Long.MAX_VALUE) {
|
||||
nextDspTrackingID = 0;
|
||||
}
|
||||
return nextDspTrackingID++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
*/
|
||||
package org.lwjgl.fmod3;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* This class is a representation of a SyncPoint in FMod.
|
||||
* $Id$
|
||||
|
@ -39,15 +41,15 @@ package org.lwjgl.fmod3;
|
|||
* @version $Revision$
|
||||
*/
|
||||
public class FSoundSyncPoint {
|
||||
/** Handle to syncpoint */
|
||||
long syncpointHandle;
|
||||
/** Opaque handle to syncpoint */
|
||||
ByteBuffer syncpointHandle;
|
||||
|
||||
/**
|
||||
* Creates a new FSoundSyncPoint
|
||||
*
|
||||
* @param syncpointHandle handle to syncpoint
|
||||
*/
|
||||
FSoundSyncPoint(long syncpointHandle) {
|
||||
FSoundSyncPoint(ByteBuffer syncpointHandle) {
|
||||
this.syncpointHandle = syncpointHandle;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,5 +41,13 @@ import java.nio.ByteBuffer;
|
|||
* @version $Revision$
|
||||
*/
|
||||
public interface FSoundDSPCallback {
|
||||
public void FSOUND_DSPCALLBACK(ByteBuffer originalbuffer, ByteBuffer newbuffer, int length);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param originalbuffer
|
||||
* @param newbuffer
|
||||
* @param length
|
||||
* @return
|
||||
*/
|
||||
public ByteBuffer FSOUND_DSPCALLBACK(ByteBuffer originalbuffer, ByteBuffer newbuffer, int length);
|
||||
}
|
||||
|
|
|
@ -52,6 +52,13 @@ jmethodID music_rowcallback;
|
|||
jmethodID music_zxxcallback;
|
||||
jclass fmusic;
|
||||
|
||||
// FSound cached fields
|
||||
jmethodID sound_dspcallback;
|
||||
jclass fsound;
|
||||
|
||||
// size of dsp buffer (in bytes)
|
||||
int fsound_dsp_buffer_size;
|
||||
|
||||
#ifdef _WIN32
|
||||
/**
|
||||
* DLL entry point for Windows. Called when Java loads the .dll
|
||||
|
@ -75,6 +82,25 @@ void fmod_create(JNIEnv *env, char* path) {
|
|||
music_ordercallback = env->GetStaticMethodID(fmusic, "music_ordercallback", "(JI)V");
|
||||
music_rowcallback = env->GetStaticMethodID(fmusic, "music_rowcallback", "(JI)V");
|
||||
music_zxxcallback = env->GetStaticMethodID(fmusic, "music_zxxcallback", "(JI)V");
|
||||
|
||||
fsound = env->FindClass("org/lwjgl/fmod3/FSound");
|
||||
sound_dspcallback = env->GetStaticMethodID(fsound, "dsp_callback", "(JLjava/nio/ByteBuffer;Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;");
|
||||
|
||||
// cache some data
|
||||
switch(fmod_instance->FSOUND_GetMixer()) {
|
||||
case FSOUND_MIXER_AUTODETECT:
|
||||
case FSOUND_MIXER_BLENDMODE:
|
||||
case FSOUND_MIXER_QUALITY_AUTODETECT:
|
||||
case FSOUND_MIXER_QUALITY_FPU:
|
||||
case FSOUND_MIXER_MONO:
|
||||
case FSOUND_MIXER_QUALITY_MONO:
|
||||
case FSOUND_MIXER_MAX:
|
||||
fsound_dsp_buffer_size = 8;
|
||||
break;
|
||||
default:
|
||||
fsound_dsp_buffer_size = 4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
void fmod_create(JNIEnv *env, char*);
|
||||
void fmod_destroy();
|
||||
|
||||
extern void attachMixerThread();
|
||||
extern FMOD_INSTANCE * fmod_instance;
|
||||
|
||||
// Setup for callback. The callbacks don't have access to a JNIEnv pointer, so we have to provide
|
||||
|
@ -60,4 +61,11 @@ extern jmethodID music_rowcallback;
|
|||
extern jmethodID music_zxxcallback;
|
||||
extern jclass fmusic;
|
||||
|
||||
// FSound cached fields
|
||||
extern jmethodID sound_dspcallback;
|
||||
extern jclass fsound;
|
||||
|
||||
// size of dsp buffer (in bytes)
|
||||
extern int fsound_dsp_buffer_size;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
#include "org_lwjgl_fmod3_FSound.h"
|
||||
#include "extfmod3.h"
|
||||
|
||||
void * F_CALLBACKAPI fsound_dspcallback(void *originalbuffer, void *newbuffer, int length, void *userdata);
|
||||
|
||||
/*
|
||||
* Class: org_lwjgl_fmod3_FSound
|
||||
* Method: FSOUND_Close
|
||||
|
@ -553,8 +555,9 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1PlaySound(JNIEnv * e
|
|||
* Method: nFSOUND_PlaySoundEx
|
||||
* Signature: (IJJZ)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1PlaySoundEx(JNIEnv * env, jclass clazz, jint channel, jlong sptr, jlong dsp, jboolean startpaused) {
|
||||
return fmod_instance->FSOUND_PlaySoundEx(channel, (FSOUND_SAMPLE*) sptr, (FSOUND_DSPUNIT*) dsp, startpaused);
|
||||
JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1PlaySoundEx(JNIEnv * env, jclass clazz, jint channel, jlong sptr, jobject dsp, jboolean startpaused) {
|
||||
FSOUND_DSPUNIT* nDsp = (FSOUND_DSPUNIT*) env->GetDirectBufferAddress(dsp);
|
||||
return fmod_instance->FSOUND_PlaySoundEx(channel, (FSOUND_SAMPLE*) sptr, nDsp, startpaused);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -968,8 +971,9 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1Play(JNIEnv
|
|||
* Method: nFSOUND_Stream_PlayEx
|
||||
* Signature: (IJJZ)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1PlayEx(JNIEnv * env, jclass clazz, jint channel, jlong stream, jlong dsp, jboolean startpaused) {
|
||||
return fmod_instance->FSOUND_Stream_PlayEx(channel, (FSOUND_STREAM*) stream, (FSOUND_DSPUNIT*) dsp, startpaused);
|
||||
JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1PlayEx(JNIEnv * env, jclass clazz, jint channel, jlong stream, jobject dsp, jboolean startpaused) {
|
||||
FSOUND_DSPUNIT* nDsp = (FSOUND_DSPUNIT*) env->GetDirectBufferAddress(dsp);
|
||||
return fmod_instance->FSOUND_Stream_PlayEx(channel, (FSOUND_STREAM*) stream, nDsp, startpaused);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1014,10 +1018,11 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1SetSubStream
|
|||
* Method: nFSOUND_Stream_AddSyncPoint
|
||||
* Signature: (JILjava/lang/String;)J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1AddSyncPoint(JNIEnv * env, jclass clazz, jlong, jint, jstring) {
|
||||
//XXX
|
||||
throwFMODException(env, "missing implementation");
|
||||
return 0;
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1AddSyncPoint(JNIEnv * env, jclass clazz, jlong stream, jint pcmOffset, jstring name) {
|
||||
const char * nName = env->GetStringUTFChars(name, 0);
|
||||
FSOUND_SYNCPOINT * result = fmod_instance->FSOUND_Stream_AddSyncPoint((FSOUND_STREAM*) stream, pcmOffset, (void *) nName);
|
||||
env->ReleaseStringUTFChars (name, nName);
|
||||
return safeNewBuffer(env, result, 0);;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1036,10 +1041,10 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1Create(JNIE
|
|||
* Method: nFSOUND_Stream_CreateDSP
|
||||
* Signature: (JI)J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1CreateDSP(JNIEnv * env, jclass clazz, jlong, jint) {
|
||||
//XXX
|
||||
throwFMODException(env, "missing implementation");
|
||||
return 0;
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1CreateDSP(JNIEnv * env, jclass clazz, jlong stream, jint priority, jobject dspID) {
|
||||
long * nDspID = (long *) env->GetDirectBufferAddress(dspID);
|
||||
FSOUND_DSPUNIT* dsp = fmod_instance->FSOUND_Stream_CreateDSP((FSOUND_STREAM*) stream, fsound_dspcallback, priority, nDspID);
|
||||
return safeNewBuffer(env, dsp, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1103,9 +1108,9 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetNumSyncPo
|
|||
* Method: nFSOUND_Stream_GetNumTagFields
|
||||
* Signature: (JLjava/nio/IntBuffer;I)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetNumTagFields(JNIEnv * env, jclass clazz, jlong, jobject, jint) {
|
||||
// XXX
|
||||
return false;
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetNumTagFields(JNIEnv * env, jclass clazz, jlong stream, jobject num, jint numOffset) {
|
||||
int* nNum = numOffset + (int*) env->GetDirectBufferAddress(num);
|
||||
return fmod_instance->FSOUND_Stream_GetNumTagFields((FSOUND_STREAM*) stream, &nNum[0]);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1140,8 +1145,9 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetSample(J
|
|||
* Method: nFSOUND_Stream_GetSyncPoint
|
||||
* Signature: (JI)J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetSyncPoint(JNIEnv * env, jclass clazz, jlong stream, jint index) {
|
||||
return (jlong) fmod_instance->FSOUND_Stream_GetSyncPoint((FSOUND_STREAM*) stream, index);
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetSyncPoint(JNIEnv * env, jclass clazz, jlong stream, jint index) {
|
||||
FSOUND_SYNCPOINT * point = fmod_instance->FSOUND_Stream_GetSyncPoint((FSOUND_STREAM*) stream, index);
|
||||
return safeNewBuffer(env, point, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1149,10 +1155,14 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetSyncPoin
|
|||
* Method: nFSOUND_Stream_GetSyncPointInfo
|
||||
* Signature: (JLjava/nio/IntBuffer;I)Ljava/lang/String;
|
||||
*/
|
||||
JNIEXPORT jstring JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetSyncPointInfo(JNIEnv * env, jclass clazz, jlong, jobject, jint) {
|
||||
//XXX
|
||||
throwFMODException(env, "missing implementation");
|
||||
return NULL;
|
||||
JNIEXPORT jstring JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetSyncPointInfo(JNIEnv * env, jclass clazz, jobject point, jobject pcmOffset, jint pcmOffsetPosition) {
|
||||
FSOUND_SYNCPOINT * nPoint = (FSOUND_SYNCPOINT *) env->GetDirectBufferAddress(point);
|
||||
unsigned int * nPcmOffset = pcmOffsetPosition + (unsigned int *) env->GetDirectBufferAddress(pcmOffset);
|
||||
char * result = fmod_instance->FSOUND_Stream_GetSyncPointInfo(nPoint, nPcmOffset);
|
||||
if(result != NULL) {
|
||||
return env->NewStringUTF(result);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1180,10 +1190,9 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1GetTime(JNIE
|
|||
* Method: nFSOUND_Stream_Net_GetBufferProperties
|
||||
* Signature: (Ljava/nio/IntBuffer;I)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1Net_1GetBufferProperties(JNIEnv * env, jclass clazz, jobject, jint) {
|
||||
//XXX
|
||||
throwFMODException(env, "missing implementation");
|
||||
return false;
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1Net_1GetBufferProperties(JNIEnv * env, jclass clazz, jobject status, jint statusOffset) {
|
||||
int* nStatus = statusOffset + (int*) env->GetDirectBufferAddress(status);
|
||||
return fmod_instance->FSOUND_Stream_Net_GetBufferProperties(&nStatus[0], &nStatus[1], &nStatus[2]);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1200,10 +1209,9 @@ JNIEXPORT jstring JNICALL Java_org_lwjgl_fmod3_FSound_FSOUND_1Stream_1Net_1GetLa
|
|||
* Method: nFSOUND_Stream_Net_GetStatus
|
||||
* Signature: (JLjava/nio/IntBuffer;I)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1Net_1GetStatus(JNIEnv * env, jclass clazz, jlong, jobject, jint) {
|
||||
//XXX
|
||||
throwFMODException(env, "missing implementation");
|
||||
return false;
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1Net_1GetStatus(JNIEnv * env, jclass clazz, jlong stream, jobject status, jint statusOffset) {
|
||||
int* nStatus = statusOffset + (int*) env->GetDirectBufferAddress(status);
|
||||
return fmod_instance->FSOUND_Stream_Net_GetStatus((FSOUND_STREAM*) stream, &nStatus[0], &nStatus[1], &nStatus[2], (unsigned int *) &nStatus[3]);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1211,10 +1219,8 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Stream_1Net_1Get
|
|||
* Method: FSOUND_Stream_Net_SetBufferProperties
|
||||
* Signature: (III)Ljava/lang/String;
|
||||
*/
|
||||
JNIEXPORT jstring JNICALL Java_org_lwjgl_fmod3_FSound_FSOUND_1Stream_1Net_1SetBufferProperties(JNIEnv * env, jclass clazz, jint, jint, jint) {
|
||||
//XXX
|
||||
throwFMODException(env, "missing implementation");
|
||||
return NULL;
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_FSOUND_1Stream_1Net_1SetBufferPropertie(JNIEnv * env, jclass clazz, jint buffersize, jint prebuffer_percent, jint rebuffer_percent) {
|
||||
return fmod_instance->FSOUND_Stream_Net_SetBufferProperties(buffersize, prebuffer_percent, rebuffer_percent);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1451,11 +1457,10 @@ JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_FSOUND_1DSP_1ClearMixBuffer(J
|
|||
* Method: nFSOUND_DSP_Create
|
||||
* Signature: (I)J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1Create(JNIEnv * env, jclass clazz, jint priority) {
|
||||
//XXX
|
||||
//return (jlong) fmod_instance->FSOUND_DSP_Create(fmod_dsp_callback, priority, NULL);
|
||||
throwFMODException(env, "missing implementation");
|
||||
return 0;
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1Create(JNIEnv * env, jclass clazz, jint priority, jobject dspID) {
|
||||
long * nDspID = (long *) env->GetDirectBufferAddress(dspID);
|
||||
FSOUND_DSPUNIT* dsp = fmod_instance->FSOUND_DSP_Create(fsound_dspcallback, priority, nDspID);
|
||||
return safeNewBuffer(env, dsp, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1463,8 +1468,9 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1Create(JNIEnv
|
|||
* Method: nFSOUND_DSP_Free
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1Free(JNIEnv * env, jclass clazz, jlong dsp) {
|
||||
fmod_instance->FSOUND_DSP_Free((FSOUND_DSPUNIT*) dsp);
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1Free(JNIEnv * env, jclass clazz, jobject dsp) {
|
||||
FSOUND_DSPUNIT* nDsp = (FSOUND_DSPUNIT*) env->GetDirectBufferAddress(dsp);
|
||||
fmod_instance->FSOUND_DSP_Free(nDsp);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1472,8 +1478,9 @@ JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1Free(JNIEnv * e
|
|||
* Method: nFSOUND_DSP_SetActive
|
||||
* Signature: (JZ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1SetActive(JNIEnv * env, jclass clazz, jlong dsp, jboolean active) {
|
||||
fmod_instance->FSOUND_DSP_SetActive((FSOUND_DSPUNIT*) dsp, active);
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1SetActive(JNIEnv * env, jclass clazz, jobject dsp, jboolean active) {
|
||||
FSOUND_DSPUNIT* nDsp = (FSOUND_DSPUNIT*) env->GetDirectBufferAddress(dsp);
|
||||
fmod_instance->FSOUND_DSP_SetActive(nDsp, active);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1481,8 +1488,9 @@ JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1SetActive(JNIEn
|
|||
* Method: nFSOUND_DSP_GetActive
|
||||
* Signature: (J)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetActive(JNIEnv * env, jclass clazz, jlong dsp) {
|
||||
return fmod_instance->FSOUND_DSP_GetActive((FSOUND_DSPUNIT*) dsp);
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetActive(JNIEnv * env, jclass clazz, jobject dsp) {
|
||||
FSOUND_DSPUNIT* nDsp = (FSOUND_DSPUNIT*) env->GetDirectBufferAddress(dsp);
|
||||
return fmod_instance->FSOUND_DSP_GetActive(nDsp);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1508,8 +1516,9 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_FSOUND_1DSP_1GetBufferLengthT
|
|||
* Method: nFSOUND_DSP_SetPriority
|
||||
* Signature: (JI)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1SetPriority(JNIEnv * env, jclass clazz, jlong dsp, jint priority) {
|
||||
fmod_instance->FSOUND_DSP_SetPriority((FSOUND_DSPUNIT*) dsp, priority);
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1SetPriority(JNIEnv * env, jclass clazz, jobject dsp, jint priority) {
|
||||
FSOUND_DSPUNIT* nDsp = (FSOUND_DSPUNIT*) env->GetDirectBufferAddress(dsp);
|
||||
fmod_instance->FSOUND_DSP_SetPriority(nDsp, priority);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1517,8 +1526,9 @@ JNIEXPORT void JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1SetPriority(JNI
|
|||
* Method: nFSOUND_DSP_GetPriority
|
||||
* Signature: (J)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetPriority(JNIEnv * env, jclass clazz, jlong dsp) {
|
||||
return fmod_instance->FSOUND_DSP_GetPriority((FSOUND_DSPUNIT*) dsp);
|
||||
JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetPriority(JNIEnv * env, jclass clazz, jobject dsp) {
|
||||
FSOUND_DSPUNIT* nDsp = (FSOUND_DSPUNIT*) env->GetDirectBufferAddress(dsp);
|
||||
return fmod_instance->FSOUND_DSP_GetPriority(nDsp);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1526,8 +1536,9 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetPriority(JNI
|
|||
* Method: nFSOUND_DSP_GetClearUnit
|
||||
* Signature: ()J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetClearUnit(JNIEnv * env, jclass clazz) {
|
||||
return (jlong) fmod_instance->FSOUND_DSP_GetClearUnit();
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetClearUnit(JNIEnv * env, jclass clazz) {
|
||||
FSOUND_DSPUNIT* dsp = fmod_instance->FSOUND_DSP_GetClearUnit();
|
||||
return safeNewBuffer(env, dsp, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1535,8 +1546,9 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetClearUnit(J
|
|||
* Method: nFSOUND_DSP_GetClipAndCopyUnit
|
||||
* Signature: ()J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetClipAndCopyUnit(JNIEnv * env, jclass clazz) {
|
||||
return (jlong) fmod_instance->FSOUND_DSP_GetClipAndCopyUnit();
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetClipAndCopyUnit(JNIEnv * env, jclass clazz) {
|
||||
FSOUND_DSPUNIT* dsp = fmod_instance->FSOUND_DSP_GetClipAndCopyUnit();
|
||||
return safeNewBuffer(env, dsp, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1544,8 +1556,9 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetClipAndCopy
|
|||
* Method: nFSOUND_DSP_GetMusicUnit
|
||||
* Signature: ()J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetMusicUnit(JNIEnv * env, jclass clazz) {
|
||||
return (jlong) fmod_instance->FSOUND_DSP_GetMusicUnit();
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetMusicUnit(JNIEnv * env, jclass clazz) {
|
||||
FSOUND_DSPUNIT* dsp = fmod_instance->FSOUND_DSP_GetMusicUnit();
|
||||
return safeNewBuffer(env, dsp, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1553,8 +1566,9 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetMusicUnit(J
|
|||
* Method: nFSOUND_DSP_GetSFXUnit
|
||||
* Signature: ()J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetSFXUnit(JNIEnv * env, jclass clazz) {
|
||||
return (jlong) fmod_instance->FSOUND_DSP_GetSFXUnit();
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetSFXUnit(JNIEnv * env, jclass clazz) {
|
||||
FSOUND_DSPUNIT* dsp = fmod_instance->FSOUND_DSP_GetSFXUnit();
|
||||
return safeNewBuffer(env, dsp, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1562,8 +1576,9 @@ JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetSFXUnit(JNI
|
|||
* Method: nFSOUND_DSP_GetFFTUnit
|
||||
* Signature: ()J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetFFTUnit(JNIEnv * env, jclass clazz) {
|
||||
return (jlong) fmod_instance->FSOUND_DSP_GetFFTUnit();
|
||||
JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetFFTUnit(JNIEnv * env, jclass clazz) {
|
||||
FSOUND_DSPUNIT* dsp = fmod_instance->FSOUND_DSP_GetFFTUnit();
|
||||
return safeNewBuffer(env, dsp, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1580,10 +1595,10 @@ JNIEXPORT jobject JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1GetSpectrum(
|
|||
* Method: nFSOUND_DSP_MixBuffers
|
||||
* Signature: (Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;IIIIII)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1MixBuffers(JNIEnv * env, jclass clazz, jobject, jint, jobject, jint, jint, jint, jint, jint, jint) {
|
||||
//XXX
|
||||
throwFMODException(env, "missing implementation");
|
||||
return false;
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1DSP_1MixBuffers(JNIEnv * env, jclass clazz, jobject destBuffer, jint destBufferOffset, jobject srcBuffer, jint srcBufferOffset, jint len, jint freq, jint vol, jint pan, jint mode) {
|
||||
void * nDestBuffer = destBufferOffset + (char *) env->GetDirectBufferAddress(destBuffer);
|
||||
void * nSrcBuffer = srcBufferOffset + (char *) env->GetDirectBufferAddress(srcBuffer);
|
||||
return fmod_instance->FSOUND_DSP_MixBuffers(nDestBuffer, nSrcBuffer, len, freq, vol, pan, mode);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1760,7 +1775,9 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_FSOUND_1Record_1Stop(JNIE
|
|||
* Signature: (J)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Reverb_1SetProperties(JNIEnv * env, jclass clazz, jlong prop) {
|
||||
return fmod_instance->FSOUND_Reverb_SetProperties((FSOUND_REVERB_PROPERTIES*) prop);
|
||||
throwFMODException(env, "missing implementation");
|
||||
//return fmod_instance->FSOUND_Reverb_SetProperties((FSOUND_REVERB_PROPERTIES*) prop);
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1769,7 +1786,9 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Reverb_1SetPrope
|
|||
* Signature: (J)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Reverb_1GetProperties(JNIEnv * env, jclass clazz, jlong prop) {
|
||||
return fmod_instance->FSOUND_Reverb_GetProperties((FSOUND_REVERB_PROPERTIES*) prop);
|
||||
throwFMODException(env, "missing implementation");
|
||||
//return fmod_instance->FSOUND_Reverb_GetProperties((FSOUND_REVERB_PROPERTIES*) prop);
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1778,7 +1797,9 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Reverb_1GetPrope
|
|||
* Signature: (IJ)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Reverb_1SetChannelProperties(JNIEnv * env, jclass clazz, jint channel, jlong prop) {
|
||||
return fmod_instance->FSOUND_Reverb_SetChannelProperties(channel, (FSOUND_REVERB_CHANNELPROPERTIES*) prop);
|
||||
throwFMODException(env, "missing implementation");
|
||||
//return fmod_instance->FSOUND_Reverb_SetChannelProperties(channel, (FSOUND_REVERB_CHANNELPROPERTIES*) prop);
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1787,5 +1808,18 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Reverb_1SetChann
|
|||
* Signature: (IJ)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL Java_org_lwjgl_fmod3_FSound_nFSOUND_1Reverb_1GetChannelProperties(JNIEnv * env, jclass clazz, jint channel, jlong prop) {
|
||||
return fmod_instance->FSOUND_Reverb_GetChannelProperties(channel, (FSOUND_REVERB_CHANNELPROPERTIES*) prop);
|
||||
throwFMODException(env, "missing implementation");
|
||||
//return fmod_instance->FSOUND_Reverb_GetChannelProperties(channel, (FSOUND_REVERB_CHANNELPROPERTIES*) prop);
|
||||
return false;
|
||||
}
|
||||
|
||||
// FSound callbacks
|
||||
// =======================================
|
||||
void * F_CALLBACKAPI fsound_dspcallback(void *originalbuffer, void *newbuffer, int length, void *userdata) {
|
||||
if (mixer_jnienv == NULL) { attachMixerThread(); }
|
||||
int size = length * fsound_dsp_buffer_size;
|
||||
jobject origBuffer = mixer_jnienv->NewDirectByteBuffer(originalbuffer, size);
|
||||
jobject newBuffer = mixer_jnienv->NewDirectByteBuffer(newbuffer, size);
|
||||
jobject resultBuffer = mixer_jnienv->CallStaticObjectMethod(fsound, sound_dspcallback, (jlong) *((long *)userdata), origBuffer, newBuffer, (jint) length);
|
||||
return mixer_jnienv->GetDirectBufferAddress(resultBuffer);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue