diff src/RealTime.cpp @ 21:0a91d898acc3

Finish implementation of RealTime; add dispose() calls
author Chris Cannam
date Thu, 09 Feb 2012 16:18:33 +0000
parents cf6c69871f9c
children 02db37c2301b
line wrap: on
line diff
--- 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);
+}
+
+
+