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
|