comparison src/getset.cpp @ 14:f7ca3afb429c

Implement convertFeature
author Chris Cannam
date Fri, 27 Jan 2012 18:19:45 +0000
parents 63e9115f95c6
children 530bf5009ee2
comparison
equal deleted inserted replaced
13:4ce45e100a2c 14:f7ca3afb429c
46 env->GetFieldID(cls, name.c_str(), "I"), 46 env->GetFieldID(cls, name.c_str(), "I"),
47 value); 47 value);
48 } 48 }
49 49
50 void 50 void
51 setRealTimeField(JNIEnv *env, jobject obj, std::string name, Vamp::RealTime rt)
52 {
53 jclass rtClass = env->FindClass("org/vamp_plugins/RealTime");
54 jmethodID ctor = env->GetMethodID(rtClass, "<init>", "(II)V");
55 jobject jrt = env->NewObject(rtClass, ctor, rt.sec, rt.nsec);
56 setObjectField(env, obj, name, "Lorg/vamp_plugins/RealTime;", jrt);
57 }
58
59 void
51 setObjectField(JNIEnv *env, jobject obj, std::string name, std::string type, jobject value) 60 setObjectField(JNIEnv *env, jobject obj, std::string name, std::string type, jobject value)
52 { 61 {
53 jclass cls = env->GetObjectClass(obj); 62 jclass cls = env->GetObjectClass(obj);
54 jfieldID field = env->GetFieldID(cls, name.c_str(), type.c_str()); 63 jfieldID field = env->GetFieldID(cls, name.c_str(), type.c_str());
55 env->SetObjectField(obj, field, value); 64 env->SetObjectField(obj, field, value);
65 }
66
67 void
68 setFloatArrayField(JNIEnv *env, jobject obj, std::string name, std::vector<float> values)
69 {
70 jfloatArray jarr = env->NewFloatArray(values.size());
71 env->SetFloatArrayRegion(jarr, 0, values.size(), values.data());
72 setObjectField(env, obj, name, "[float", jarr);
56 } 73 }
57 74
58 void 75 void
59 setStringArrayField(JNIEnv *env, jobject obj, std::string name, std::vector<std::string> values) 76 setStringArrayField(JNIEnv *env, jobject obj, std::string name, std::vector<std::string> values)
60 { 77 {