view src/PluginLoader.cpp @ 26:fd185c6a74d2

Clean up local references
author Chris Cannam
date Wed, 14 Nov 2012 21:47:31 +0000
parents cd430fbf6795
children 7d1118b3860d
line wrap: on
line source
#include "org_vamp_plugins_PluginLoader.h"

#include <vamp-hostsdk/PluginLoader.h>

#include "handle.h"

using Vamp::Plugin;
using Vamp::HostExt::PluginLoader;

void
Java_org_vamp_1plugins_PluginLoader_initialise(JNIEnv *env, jobject obj)
{
    PluginLoader *inst = PluginLoader::getInstance();
    setHandle(env, obj, inst);
}

jobjectArray
Java_org_vamp_1plugins_PluginLoader_listPlugins(JNIEnv *env, jobject obj)
{
    PluginLoader *inst = getHandle<PluginLoader>(env, obj);
    PluginLoader::PluginKeyList plugins = inst->listPlugins();
    jobjectArray result = env->NewObjectArray
	(plugins.size(), env->FindClass("java/lang/String"), 0);
    for (int i = 0; i < plugins.size(); ++i) {
	env->SetObjectArrayElement(result, i,
				   env->NewStringUTF(plugins[i].c_str()));
    }
    return result;
}    

jlong
Java_org_vamp_1plugins_PluginLoader_loadPluginNative(JNIEnv *env, jobject obj,
						     jstring key, jfloat rate)
{
    PluginLoader *inst = getHandle<PluginLoader>(env, obj);
    const char *kstr = env->GetStringUTFChars(key, 0);
    Plugin *p = inst->loadPlugin(kstr, rate, PluginLoader::ADAPT_ALL); //!!! args!
    env->ReleaseStringUTFChars(key, kstr);
    return (jlong)p;
}

jobjectArray
Java_org_vamp_1plugins_PluginLoader_getPluginCategory(JNIEnv *env, jobject obj,
						      jstring key)
{
    PluginLoader *inst = getHandle<PluginLoader>(env, obj);
    const char *kstr = env->GetStringUTFChars(key, 0);
    PluginLoader::PluginCategoryHierarchy cat = inst->getPluginCategory(kstr);
    jobjectArray result = env->NewObjectArray
	(cat.size(), env->FindClass("java/lang/String"), 0);
    for (int i = 0; i < cat.size(); ++i) {
	env->SetObjectArrayElement(result, i,
				   env->NewStringUTF(cat[i].c_str()));
    }
    return result;
}    

    
//!!! todo: loadPlugin adapters