Merge from branch keyframe-jni

This commit is contained in:
Chris Cannam
2024-01-05 15:39:05 +00:00
4 changed files with 205 additions and 2 deletions

View File

@@ -87,6 +87,22 @@ JNIEXPORT jdouble JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_
JNIEXPORT jdouble JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_getPitchScale
(JNIEnv *, jobject);
/*
* Class: com_breakfastquay_rubberband_RubberBandStretcher
* Method: getPreferredStartPad
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_getPreferredStartPad
(JNIEnv *, jobject);
/*
* Class: com_breakfastquay_rubberband_RubberBandStretcher
* Method: getStartDelay
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_getStartDelay
(JNIEnv *, jobject);
/*
* Class: com_breakfastquay_rubberband_RubberBandStretcher
* Method: getLatency
@@ -151,6 +167,14 @@ JNIEXPORT void JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_set
JNIEXPORT void JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_setMaxProcessSize
(JNIEnv *, jobject, jint);
/*
* Class: com_breakfastquay_rubberband_RubberBandStretcher
* Method: getProcessSizeLimit
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_getProcessSizeLimit
(JNIEnv *, jobject);
/*
* Class: com_breakfastquay_rubberband_RubberBandStretcher
* Method: getSamplesRequired
@@ -159,6 +183,14 @@ JNIEXPORT void JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_set
JNIEXPORT jint JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_getSamplesRequired
(JNIEnv *, jobject);
/*
* Class: com_breakfastquay_rubberband_RubberBandStretcher
* Method: setKeyFrameMap
* Signature: ([J[J)V
*/
JNIEXPORT void JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_setKeyFrameMap
(JNIEnv *, jobject, jlongArray, jlongArray);
/*
* Class: com_breakfastquay_rubberband_RubberBandStretcher
* Method: study
@@ -269,6 +301,18 @@ Java_com_breakfastquay_rubberband_RubberBandStretcher_getPitchScale(JNIEnv *env,
return getStretcher(env, obj)->getPitchScale();
}
JNIEXPORT jint JNICALL
Java_com_breakfastquay_rubberband_RubberBandStretcher_getPreferredStartPad(JNIEnv *env, jobject obj)
{
return getStretcher(env, obj)->getPreferredStartPad();
}
JNIEXPORT jint JNICALL
Java_com_breakfastquay_rubberband_RubberBandStretcher_getStartDelay(JNIEnv *env, jobject obj)
{
return getStretcher(env, obj)->getStartDelay();
}
JNIEXPORT jint JNICALL
Java_com_breakfastquay_rubberband_RubberBandStretcher_getLatency(JNIEnv *env, jobject obj)
{
@@ -317,12 +361,34 @@ Java_com_breakfastquay_rubberband_RubberBandStretcher_setMaxProcessSize(JNIEnv *
getStretcher(env, obj)->setMaxProcessSize(size);
}
JNIEXPORT jint JNICALL
Java_com_breakfastquay_rubberband_RubberBandStretcher_getProcessSizeLimit(JNIEnv *env, jobject obj)
{
return getStretcher(env, obj)->getProcessSizeLimit();
}
JNIEXPORT jint JNICALL
Java_com_breakfastquay_rubberband_RubberBandStretcher_getSamplesRequired(JNIEnv *env, jobject obj)
{
return getStretcher(env, obj)->getSamplesRequired();
}
JNIEXPORT void JNICALL
Java_com_breakfastquay_rubberband_RubberBandStretcher_setKeyFrameMap(JNIEnv *env, jobject obj, jlongArray from, jlongArray to)
{
std::map<size_t, size_t> m;
int flen = env->GetArrayLength(from);
int tlen = env->GetArrayLength(to);
jlong *farr = env->GetLongArrayElements(from, 0);
jlong *tarr = env->GetLongArrayElements(to, 0);
for (int i = 0; i < flen && i < tlen; ++i) {
m[farr[i]] = tarr[i];
}
env->ReleaseLongArrayElements(from, farr, 0);
env->ReleaseLongArrayElements(to, tarr, 0);
getStretcher(env, obj)->setKeyFrameMap(m);
}
JNIEXPORT void JNICALL
Java_com_breakfastquay_rubberband_RubberBandStretcher_study(JNIEnv *env, jobject obj, jobjectArray data, jint offset, jint n, jboolean final)
{