Mercurial > hg > jvamp
diff src/getset.cpp @ 14:f7ca3afb429c
Implement convertFeature
author | Chris Cannam |
---|---|
date | Fri, 27 Jan 2012 18:19:45 +0000 |
parents | 63e9115f95c6 |
children | 530bf5009ee2 |
line wrap: on
line diff
--- a/src/getset.cpp Fri Jan 27 14:34:32 2012 +0000 +++ b/src/getset.cpp Fri Jan 27 18:19:45 2012 +0000 @@ -48,6 +48,15 @@ } void +setRealTimeField(JNIEnv *env, jobject obj, std::string name, Vamp::RealTime rt) +{ + jclass rtClass = env->FindClass("org/vamp_plugins/RealTime"); + jmethodID ctor = env->GetMethodID(rtClass, "<init>", "(II)V"); + jobject jrt = env->NewObject(rtClass, ctor, rt.sec, rt.nsec); + setObjectField(env, obj, name, "Lorg/vamp_plugins/RealTime;", jrt); +} + +void setObjectField(JNIEnv *env, jobject obj, std::string name, std::string type, jobject value) { jclass cls = env->GetObjectClass(obj); @@ -56,6 +65,14 @@ } void +setFloatArrayField(JNIEnv *env, jobject obj, std::string name, std::vector<float> values) +{ + jfloatArray jarr = env->NewFloatArray(values.size()); + env->SetFloatArrayRegion(jarr, 0, values.size(), values.data()); + setObjectField(env, obj, name, "[float", jarr); +} + +void setStringArrayField(JNIEnv *env, jobject obj, std::string name, std::vector<std::string> values) { jclass strCls = env->FindClass("java/lang/String");