Implement & exercise getKeyFrameMap in JNI
This commit is contained in:
@@ -183,6 +183,14 @@ JNIEXPORT jint JNICALL Java_com_breakfastquay_rubberband_RubberBandStretcher_get
|
||||
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
|
||||
@@ -365,6 +373,22 @@ Java_com_breakfastquay_rubberband_RubberBandStretcher_getSamplesRequired(JNIEnv
|
||||
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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user