changeset 5:8a0ac3d6903d

Fill in some more function definitions, including a getInputDomain that actually returns an enum! Woo
author Chris Cannam
date Mon, 23 Jan 2012 23:00:33 +0000
parents 56f6a97745cf
children 3dd55efc53ca
files org/vamp_plugins/test.java src/Plugin.cpp
diffstat 2 files changed, 131 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/org/vamp_plugins/test.java	Mon Jan 23 18:19:52 2012 +0000
+++ b/org/vamp_plugins/test.java	Mon Jan 23 23:00:33 2012 +0000
@@ -16,6 +16,12 @@
 			       "name: " + p.getName() + "; " + 
 			       "description: " + p.getDescription() + "; " +
 			       "version: " + p.getPluginVersion());
+	    Plugin.InputDomain domain = p.getInputDomain();
+	    if (domain == Plugin.InputDomain.TimeDomain) {
+		System.out.println("This is a time-domain plugin");
+	    } else {
+		System.out.println("This is a frequency-domain plugin");
+	    }
 	} catch (PluginLoader.LoadFailedException e) {
 	    System.out.println("Plugin load failed");
 	}
--- a/src/Plugin.cpp	Mon Jan 23 18:19:52 2012 +0000
+++ b/src/Plugin.cpp	Mon Jan 23 23:00:33 2012 +0000
@@ -56,6 +56,50 @@
     return p->getPluginVersion();
 }
 
+jfloat
+Java_org_vamp_1plugins_Plugin_getParameter(JNIEnv *env, jobject obj,
+					   jstring param)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    const char *s = env->GetStringUTFChars(param, 0);
+    jfloat f = p->getParameter(s);
+    env->ReleaseStringUTFChars(param, s);
+    return f;
+}
+
+void
+Java_org_vamp_1plugins_Plugin_setParameter(JNIEnv *env, jobject obj,
+					   jstring param, jfloat f)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    const char *s = env->GetStringUTFChars(param, 0);
+    p->setParameter(s, f);
+    env->ReleaseStringUTFChars(param, s);
+}
+/*
+jobjectArray
+Java_org_vamp_1plugins_Plugin_getPrograms(JNIEnv *env, jobject obj)
+{
+//!!!
+}
+*/
+jstring
+Java_org_vamp_1plugins_Plugin_getCurrentProgram(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    return env->NewStringUTF(p->getCurrentProgram().c_str());
+}
+
+void 
+Java_org_vamp_1plugins_Plugin_selectProgram(JNIEnv *env, jobject obj,
+					    jstring program)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    const char *s = env->GetStringUTFChars(program, 0);
+    p->selectProgram(s);
+    env->ReleaseStringUTFChars(program, s);
+}
+
 jboolean
 Java_org_vamp_1plugins_Plugin_initialise(JNIEnv *env, jobject obj,
 					 jint inputChannels, jint stepSize,
@@ -65,3 +109,84 @@
     return p->initialise(inputChannels, stepSize, blockSize);
 }
 
+void
+Java_org_vamp_1plugins_Plugin_reset(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    p->reset();
+}
+
+jobject
+Java_org_vamp_1plugins_Plugin_getInputDomain(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    Plugin::InputDomain d = p->getInputDomain();
+
+    jclass enumClass = env->FindClass("java/lang/Enum");
+    jclass ourEnumClass = env->FindClass("org/vamp_plugins/Plugin$InputDomain");
+
+    // Enum.valueOf(Class, String) returns Enum
+    jmethodID valueOfMethod = env->GetStaticMethodID
+	(enumClass, "valueOf",
+	 "(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;");
+
+    std::string dname = "TimeDomain";
+    if (d == Plugin::FrequencyDomain) dname = "FrequencyDomain";
+
+    return env->CallStaticObjectMethod
+	(ourEnumClass, valueOfMethod, ourEnumClass,
+	 env->NewStringUTF(dname.c_str()));
+}
+
+jint
+Java_org_vamp_1plugins_Plugin_getPreferredBlockSize(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    return p->getPreferredBlockSize();
+}
+
+jint
+Java_org_vamp_1plugins_Plugin_getPreferredStepSize(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    return p->getPreferredStepSize();
+}
+
+jint
+Java_org_vamp_1plugins_Plugin_getMinChannelCount(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    return p->getMinChannelCount();
+}
+
+jint
+Java_org_vamp_1plugins_Plugin_getMaxChannelCount(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    return p->getMaxChannelCount();
+}
+
+jobjectArray
+Java_org_vamp_1plugins_Plugin_getOutputDescriptors(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    //!!!
+    return 0;
+}
+
+jobject
+Java_org_vamp_1plugins_Plugin_process(JNIEnv *env, jobject obj, jobjectArray, jobject)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    //!!!
+    return 0;
+}
+
+jobject
+Java_org_vamp_1plugins_Plugin_getRemainingFeatures(JNIEnv *env, jobject obj)
+{
+    Plugin *p = getHandle<Plugin>(env, obj);
+    //!!!
+    return 0;
+}
+