annotate src/PluginLoader.cpp @ 28:f2914a92b553

Docs
author Chris Cannam
date Mon, 19 Nov 2012 15:12:44 +0000
parents cd430fbf6795
children 7d1118b3860d
rev   line source
Chris@0 1 #include "org_vamp_plugins_PluginLoader.h"
Chris@0 2
Chris@0 3 #include <vamp-hostsdk/PluginLoader.h>
Chris@0 4
Chris@0 5 #include "handle.h"
Chris@0 6
Chris@0 7 using Vamp::Plugin;
Chris@0 8 using Vamp::HostExt::PluginLoader;
Chris@0 9
Chris@0 10 void
Chris@0 11 Java_org_vamp_1plugins_PluginLoader_initialise(JNIEnv *env, jobject obj)
Chris@0 12 {
Chris@0 13 PluginLoader *inst = PluginLoader::getInstance();
Chris@0 14 setHandle(env, obj, inst);
Chris@0 15 }
Chris@0 16
Chris@23 17 jobjectArray
Chris@23 18 Java_org_vamp_1plugins_PluginLoader_listPlugins(JNIEnv *env, jobject obj)
Chris@23 19 {
Chris@23 20 PluginLoader *inst = getHandle<PluginLoader>(env, obj);
Chris@23 21 PluginLoader::PluginKeyList plugins = inst->listPlugins();
Chris@23 22 jobjectArray result = env->NewObjectArray
Chris@23 23 (plugins.size(), env->FindClass("java/lang/String"), 0);
Chris@23 24 for (int i = 0; i < plugins.size(); ++i) {
Chris@23 25 env->SetObjectArrayElement(result, i,
Chris@23 26 env->NewStringUTF(plugins[i].c_str()));
Chris@23 27 }
Chris@23 28 return result;
Chris@23 29 }
Chris@23 30
Chris@0 31 jlong
Chris@0 32 Java_org_vamp_1plugins_PluginLoader_loadPluginNative(JNIEnv *env, jobject obj,
Chris@0 33 jstring key, jfloat rate)
Chris@0 34 {
Chris@0 35 PluginLoader *inst = getHandle<PluginLoader>(env, obj);
Chris@0 36 const char *kstr = env->GetStringUTFChars(key, 0);
Chris@17 37 Plugin *p = inst->loadPlugin(kstr, rate, PluginLoader::ADAPT_ALL); //!!! args!
Chris@0 38 env->ReleaseStringUTFChars(key, kstr);
Chris@0 39 return (jlong)p;
Chris@0 40 }
Chris@0 41
Chris@24 42 jobjectArray
Chris@24 43 Java_org_vamp_1plugins_PluginLoader_getPluginCategory(JNIEnv *env, jobject obj,
Chris@24 44 jstring key)
Chris@24 45 {
Chris@24 46 PluginLoader *inst = getHandle<PluginLoader>(env, obj);
Chris@24 47 const char *kstr = env->GetStringUTFChars(key, 0);
Chris@24 48 PluginLoader::PluginCategoryHierarchy cat = inst->getPluginCategory(kstr);
Chris@24 49 jobjectArray result = env->NewObjectArray
Chris@24 50 (cat.size(), env->FindClass("java/lang/String"), 0);
Chris@24 51 for (int i = 0; i < cat.size(); ++i) {
Chris@24 52 env->SetObjectArrayElement(result, i,
Chris@24 53 env->NewStringUTF(cat[i].c_str()));
Chris@24 54 }
Chris@24 55 return result;
Chris@24 56 }
Chris@0 57
Chris@0 58
Chris@23 59 //!!! todo: loadPlugin adapters
Chris@23 60