Mercurial > hg > jvamp
changeset 21:0a91d898acc3
Finish implementation of RealTime; add dispose() calls
author | Chris Cannam |
---|---|
date | Thu, 09 Feb 2012 16:18:33 +0000 |
parents | cf6c69871f9c |
children | 6385a6caaa7c |
files | org/vamp_plugins/test.java src/Plugin.cpp src/RealTime.cpp |
diffstat | 3 files changed, 34 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/org/vamp_plugins/test.java Wed Feb 08 15:22:48 2012 +0000 +++ b/org/vamp_plugins/test.java Thu Feb 09 16:18:33 2012 +0000 @@ -80,6 +80,8 @@ TreeMap<Integer, ArrayList<Feature>> features = p.process(buffers, timestamp); + timestamp.dispose(); + printFeatures(features); } @@ -89,6 +91,7 @@ System.out.println("Results from getRemainingFeatures:"); printFeatures(features); + p.dispose(); } catch (PluginLoader.LoadFailedException e) { System.out.println("Plugin load failed");
--- a/src/Plugin.cpp Wed Feb 08 15:22:48 2012 +0000 +++ b/src/Plugin.cpp Thu Feb 09 16:18:33 2012 +0000 @@ -334,9 +334,7 @@ { Plugin *p = getHandle<Plugin>(env, obj); - Vamp::RealTime rt; - rt.sec = getIntField(env, timestamp, "sec"); - rt.nsec = getIntField(env, timestamp, "nsec"); + const Vamp::RealTime *const rt = getHandle<Vamp::RealTime>(env, timestamp); int channels = env->GetArrayLength(data); float **input = new float *[channels]; @@ -345,7 +343,7 @@ input[c] = env->GetFloatArrayElements(cdata, 0); } - Plugin::FeatureSet features = p->process(input, rt); + Plugin::FeatureSet features = p->process(input, *rt); for (int c = 0; c < channels; ++c) { jfloatArray cdata = (jfloatArray)env->GetObjectArrayElement(data, c);
--- a/src/RealTime.cpp Wed Feb 08 15:22:48 2012 +0000 +++ b/src/RealTime.cpp Thu Feb 09 16:18:33 2012 +0000 @@ -60,21 +60,39 @@ jobject Java_org_vamp_1plugins_RealTime_fromSeconds(JNIEnv *env, jclass cls, jdouble s) { - + jclass rtClass = env->FindClass("org/vamp_plugins/RealTime"); + jmethodID rtCtor = env->GetMethodID(rtClass, "<init>", "(II)V"); + RealTime rt = RealTime::fromSeconds(s); + return env->NewObject(rtClass, rtCtor, rt.sec, rt.nsec); } -jobject Java_org_vamp_1plugins_RealTime_fromMilliseconds - (JNIEnv *env, jclass cls, jint); - -jobject Java_org_vamp_1plugins_RealTime_frame2RealTime - (JNIEnv *env, jclass cls, jlong, jint); - -jlong Java_org_vamp_1plugins_RealTime_realTime2Frame - (JNIEnv *env, jclass cls, jobject, jint); - -void Java_org_vamp_1plugins_RealTime_init(JNIEnv *env, jobject obj, jint sec, jint nsec) +jobject Java_org_vamp_1plugins_RealTime_fromMilliseconds(JNIEnv *env, jclass cls, jint ms) { + jclass rtClass = env->FindClass("org/vamp_plugins/RealTime"); + jmethodID rtCtor = env->GetMethodID(rtClass, "<init>", "(II)V"); + RealTime rt = RealTime::fromMilliseconds(ms); + return env->NewObject(rtClass, rtCtor, rt.sec, rt.nsec); } +jobject Java_org_vamp_1plugins_RealTime_frame2RealTime(JNIEnv *env, jclass cls, jlong frame, jint sampleRate) +{ + jclass rtClass = env->FindClass("org/vamp_plugins/RealTime"); + jmethodID rtCtor = env->GetMethodID(rtClass, "<init>", "(II)V"); + RealTime rt = RealTime::frame2RealTime(frame, sampleRate); + return env->NewObject(rtClass, rtCtor, rt.sec, rt.nsec); +} +jlong Java_org_vamp_1plugins_RealTime_realTime2Frame(JNIEnv *env, jclass cls, jobject obj, jint sampleRate) +{ + RealTime *rt = getHandle<RealTime>(env, obj); + return RealTime::realTime2Frame(*rt, sampleRate); +} +void Java_org_vamp_1plugins_RealTime_initialise(JNIEnv *env, jobject obj, jint sec, jint nsec) +{ + RealTime *rt = new RealTime(sec, nsec); + setHandle(env, obj, rt); +} + + +