Mercurial > hg > jvamp
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; +} +