JNIEXPORT jint JNICALL Java_org_puredata_core_PdBase_processRaw (JNIEnv *env, jclass cls, jfloatArray inBuffer, jfloatArray outBuffer) { if (!inBuffer || !outBuffer) return -10; float *pIn = (*env)->GetFloatArrayElements(env, inBuffer, NULL); float *pOut = (*env)->GetFloatArrayElements(env, outBuffer, NULL); pthread_mutex_lock(&mutex); jint err = libpd_process_raw(pIn, pOut); pthread_mutex_unlock(&mutex); (*env)->ReleaseFloatArrayElements(env, inBuffer, pIn, 0); (*env)->ReleaseFloatArrayElements(env, outBuffer, pOut, 0); return err; }
//-------------------------------------------------------------------- bool PdBase::processRaw(float* inBuffer, float* outBuffer) { return libpd_process_raw(inBuffer, outBuffer) == 0; }
//-------------------------------------------------------------------- bool PdBase::processRaw(const float* inBuffer, float* outBuffer) { _LOCK(); bool ret = libpd_process_raw(inBuffer, outBuffer) == 0; _UNLOCK(); return ret; }
int libpd_sync_process_raw(const float *inBuf, float *outBuf) { pthread_mutex_lock(&mutex); int err = libpd_process_raw(inBuf, outBuf); pthread_mutex_unlock(&mutex); return err; }