Mercurial > hg > jvamp
comparison src/Plugin.cpp @ 30:02db37c2301b
Add JNIEXPORT/JNICALL to definitions
author | Chris Cannam |
---|---|
date | Thu, 22 Nov 2012 11:38:55 +0000 |
parents | 59b4150c69cb |
children | c9515589be7d |
comparison
equal
deleted
inserted
replaced
29:7d1118b3860d | 30:02db37c2301b |
---|---|
9 | 9 |
10 using Vamp::Plugin; | 10 using Vamp::Plugin; |
11 using Vamp::PluginBase; | 11 using Vamp::PluginBase; |
12 using std::string; | 12 using std::string; |
13 | 13 |
14 void | 14 JNIEXPORT void JNICALL |
15 Java_org_vamp_1plugins_Plugin_dispose(JNIEnv *env, jobject obj) | 15 Java_org_vamp_1plugins_Plugin_dispose(JNIEnv *env, jobject obj) |
16 { | 16 { |
17 Plugin *p = getHandle<Plugin>(env, obj); | 17 Plugin *p = getHandle<Plugin>(env, obj); |
18 setHandle<Plugin>(env, obj, 0); | 18 setHandle<Plugin>(env, obj, 0); |
19 delete p; | 19 delete p; |
20 } | 20 } |
21 | 21 |
22 jint | 22 JNIEXPORT jint JNICALL |
23 Java_org_vamp_1plugins_Plugin_getVampApiVersion(JNIEnv *env, jobject obj) | 23 Java_org_vamp_1plugins_Plugin_getVampApiVersion(JNIEnv *env, jobject obj) |
24 { | 24 { |
25 Plugin *p = getHandle<Plugin>(env, obj); | 25 Plugin *p = getHandle<Plugin>(env, obj); |
26 return p->getVampApiVersion(); | 26 return p->getVampApiVersion(); |
27 } | 27 } |
28 | 28 |
29 jstring | 29 JNIEXPORT jstring JNICALL |
30 Java_org_vamp_1plugins_Plugin_getIdentifier(JNIEnv *env, jobject obj) | 30 Java_org_vamp_1plugins_Plugin_getIdentifier(JNIEnv *env, jobject obj) |
31 { | 31 { |
32 Plugin *p = getHandle<Plugin>(env, obj); | 32 Plugin *p = getHandle<Plugin>(env, obj); |
33 return env->NewStringUTF(p->getIdentifier().c_str()); | 33 return env->NewStringUTF(p->getIdentifier().c_str()); |
34 } | 34 } |
35 | 35 |
36 jstring | 36 JNIEXPORT jstring JNICALL |
37 Java_org_vamp_1plugins_Plugin_getName(JNIEnv *env, jobject obj) | 37 Java_org_vamp_1plugins_Plugin_getName(JNIEnv *env, jobject obj) |
38 { | 38 { |
39 Plugin *p = getHandle<Plugin>(env, obj); | 39 Plugin *p = getHandle<Plugin>(env, obj); |
40 return env->NewStringUTF(p->getName().c_str()); | 40 return env->NewStringUTF(p->getName().c_str()); |
41 } | 41 } |
42 | 42 |
43 jstring | 43 JNIEXPORT jstring JNICALL |
44 Java_org_vamp_1plugins_Plugin_getDescription(JNIEnv *env, jobject obj) | 44 Java_org_vamp_1plugins_Plugin_getDescription(JNIEnv *env, jobject obj) |
45 { | 45 { |
46 Plugin *p = getHandle<Plugin>(env, obj); | 46 Plugin *p = getHandle<Plugin>(env, obj); |
47 return env->NewStringUTF(p->getDescription().c_str()); | 47 return env->NewStringUTF(p->getDescription().c_str()); |
48 } | 48 } |
49 | 49 |
50 jstring | 50 JNIEXPORT jstring JNICALL |
51 Java_org_vamp_1plugins_Plugin_getMaker(JNIEnv *env, jobject obj) | 51 Java_org_vamp_1plugins_Plugin_getMaker(JNIEnv *env, jobject obj) |
52 { | 52 { |
53 Plugin *p = getHandle<Plugin>(env, obj); | 53 Plugin *p = getHandle<Plugin>(env, obj); |
54 return env->NewStringUTF(p->getMaker().c_str()); | 54 return env->NewStringUTF(p->getMaker().c_str()); |
55 } | 55 } |
56 | 56 |
57 jstring | 57 JNIEXPORT jstring JNICALL |
58 Java_org_vamp_1plugins_Plugin_getCopyright(JNIEnv *env, jobject obj) | 58 Java_org_vamp_1plugins_Plugin_getCopyright(JNIEnv *env, jobject obj) |
59 { | 59 { |
60 Plugin *p = getHandle<Plugin>(env, obj); | 60 Plugin *p = getHandle<Plugin>(env, obj); |
61 return env->NewStringUTF(p->getCopyright().c_str()); | 61 return env->NewStringUTF(p->getCopyright().c_str()); |
62 } | 62 } |
63 | 63 |
64 jint | 64 JNIEXPORT jint JNICALL |
65 Java_org_vamp_1plugins_Plugin_getPluginVersion(JNIEnv *env, jobject obj) | 65 Java_org_vamp_1plugins_Plugin_getPluginVersion(JNIEnv *env, jobject obj) |
66 { | 66 { |
67 Plugin *p = getHandle<Plugin>(env, obj); | 67 Plugin *p = getHandle<Plugin>(env, obj); |
68 return p->getPluginVersion(); | 68 return p->getPluginVersion(); |
69 } | 69 } |
70 | 70 |
71 jobjectArray | 71 JNIEXPORT jobjectArray JNICALL |
72 Java_org_vamp_1plugins_Plugin_getParameterDescriptors(JNIEnv *env, jobject obj) | 72 Java_org_vamp_1plugins_Plugin_getParameterDescriptors(JNIEnv *env, jobject obj) |
73 { | 73 { |
74 Plugin *p = getHandle<Plugin>(env, obj); | 74 Plugin *p = getHandle<Plugin>(env, obj); |
75 PluginBase::ParameterList params = p->getParameterDescriptors(); | 75 PluginBase::ParameterList params = p->getParameterDescriptors(); |
76 jclass descClass = env->FindClass("org/vamp_plugins/ParameterDescriptor"); | 76 jclass descClass = env->FindClass("org/vamp_plugins/ParameterDescriptor"); |
95 } | 95 } |
96 | 96 |
97 return result; | 97 return result; |
98 } | 98 } |
99 | 99 |
100 jfloat | 100 JNIEXPORT jfloat JNICALL |
101 Java_org_vamp_1plugins_Plugin_getParameter(JNIEnv *env, jobject obj, | 101 Java_org_vamp_1plugins_Plugin_getParameter(JNIEnv *env, jobject obj, |
102 jstring param) | 102 jstring param) |
103 { | 103 { |
104 Plugin *p = getHandle<Plugin>(env, obj); | 104 Plugin *p = getHandle<Plugin>(env, obj); |
105 const char *s = env->GetStringUTFChars(param, 0); | 105 const char *s = env->GetStringUTFChars(param, 0); |
106 jfloat f = p->getParameter(s); | 106 jfloat f = p->getParameter(s); |
107 env->ReleaseStringUTFChars(param, s); | 107 env->ReleaseStringUTFChars(param, s); |
108 return f; | 108 return f; |
109 } | 109 } |
110 | 110 |
111 void | 111 JNIEXPORT void JNICALL |
112 Java_org_vamp_1plugins_Plugin_setParameter(JNIEnv *env, jobject obj, | 112 Java_org_vamp_1plugins_Plugin_setParameter(JNIEnv *env, jobject obj, |
113 jstring param, jfloat f) | 113 jstring param, jfloat f) |
114 { | 114 { |
115 Plugin *p = getHandle<Plugin>(env, obj); | 115 Plugin *p = getHandle<Plugin>(env, obj); |
116 const char *s = env->GetStringUTFChars(param, 0); | 116 const char *s = env->GetStringUTFChars(param, 0); |
117 p->setParameter(s, f); | 117 p->setParameter(s, f); |
118 env->ReleaseStringUTFChars(param, s); | 118 env->ReleaseStringUTFChars(param, s); |
119 } | 119 } |
120 | 120 |
121 jobjectArray | 121 JNIEXPORT jobjectArray JNICALL |
122 Java_org_vamp_1plugins_Plugin_getPrograms(JNIEnv *env, jobject obj) | 122 Java_org_vamp_1plugins_Plugin_getPrograms(JNIEnv *env, jobject obj) |
123 { | 123 { |
124 Plugin *p = getHandle<Plugin>(env, obj); | 124 Plugin *p = getHandle<Plugin>(env, obj); |
125 PluginBase::ProgramList programs = p->getPrograms(); | 125 PluginBase::ProgramList programs = p->getPrograms(); |
126 jobjectArray result = env->NewObjectArray | 126 jobjectArray result = env->NewObjectArray |
130 env->NewStringUTF(programs[i].c_str())); | 130 env->NewStringUTF(programs[i].c_str())); |
131 } | 131 } |
132 return result; | 132 return result; |
133 } | 133 } |
134 | 134 |
135 jstring | 135 JNIEXPORT jstring JNICALL |
136 Java_org_vamp_1plugins_Plugin_getCurrentProgram(JNIEnv *env, jobject obj) | 136 Java_org_vamp_1plugins_Plugin_getCurrentProgram(JNIEnv *env, jobject obj) |
137 { | 137 { |
138 Plugin *p = getHandle<Plugin>(env, obj); | 138 Plugin *p = getHandle<Plugin>(env, obj); |
139 return env->NewStringUTF(p->getCurrentProgram().c_str()); | 139 return env->NewStringUTF(p->getCurrentProgram().c_str()); |
140 } | 140 } |
141 | 141 |
142 void | 142 JNIEXPORT void JNICALL |
143 Java_org_vamp_1plugins_Plugin_selectProgram(JNIEnv *env, jobject obj, | 143 Java_org_vamp_1plugins_Plugin_selectProgram(JNIEnv *env, jobject obj, |
144 jstring program) | 144 jstring program) |
145 { | 145 { |
146 Plugin *p = getHandle<Plugin>(env, obj); | 146 Plugin *p = getHandle<Plugin>(env, obj); |
147 const char *s = env->GetStringUTFChars(program, 0); | 147 const char *s = env->GetStringUTFChars(program, 0); |
148 p->selectProgram(s); | 148 p->selectProgram(s); |
149 env->ReleaseStringUTFChars(program, s); | 149 env->ReleaseStringUTFChars(program, s); |
150 } | 150 } |
151 | 151 |
152 jboolean | 152 JNIEXPORT jboolean JNICALL |
153 Java_org_vamp_1plugins_Plugin_initialise(JNIEnv *env, jobject obj, | 153 Java_org_vamp_1plugins_Plugin_initialise(JNIEnv *env, jobject obj, |
154 jint inputChannels, jint stepSize, | 154 jint inputChannels, jint stepSize, |
155 jint blockSize) | 155 jint blockSize) |
156 { | 156 { |
157 Plugin *p = getHandle<Plugin>(env, obj); | 157 Plugin *p = getHandle<Plugin>(env, obj); |
158 return p->initialise(inputChannels, stepSize, blockSize); | 158 return p->initialise(inputChannels, stepSize, blockSize); |
159 } | 159 } |
160 | 160 |
161 void | 161 JNIEXPORT void JNICALL |
162 Java_org_vamp_1plugins_Plugin_reset(JNIEnv *env, jobject obj) | 162 Java_org_vamp_1plugins_Plugin_reset(JNIEnv *env, jobject obj) |
163 { | 163 { |
164 Plugin *p = getHandle<Plugin>(env, obj); | 164 Plugin *p = getHandle<Plugin>(env, obj); |
165 p->reset(); | 165 p->reset(); |
166 } | 166 } |
167 | 167 |
168 jobject | 168 JNIEXPORT jobject JNICALL |
169 Java_org_vamp_1plugins_Plugin_getInputDomain(JNIEnv *env, jobject obj) | 169 Java_org_vamp_1plugins_Plugin_getInputDomain(JNIEnv *env, jobject obj) |
170 { | 170 { |
171 Plugin *p = getHandle<Plugin>(env, obj); | 171 Plugin *p = getHandle<Plugin>(env, obj); |
172 Plugin::InputDomain d = p->getInputDomain(); | 172 Plugin::InputDomain d = p->getInputDomain(); |
173 | 173 |
182 | 182 |
183 env->DeleteLocalRef(sn); | 183 env->DeleteLocalRef(sn); |
184 return e; | 184 return e; |
185 } | 185 } |
186 | 186 |
187 jint | 187 JNIEXPORT jint JNICALL |
188 Java_org_vamp_1plugins_Plugin_getPreferredBlockSize(JNIEnv *env, jobject obj) | 188 Java_org_vamp_1plugins_Plugin_getPreferredBlockSize(JNIEnv *env, jobject obj) |
189 { | 189 { |
190 Plugin *p = getHandle<Plugin>(env, obj); | 190 Plugin *p = getHandle<Plugin>(env, obj); |
191 return p->getPreferredBlockSize(); | 191 return p->getPreferredBlockSize(); |
192 } | 192 } |
193 | 193 |
194 jint | 194 JNIEXPORT jint JNICALL |
195 Java_org_vamp_1plugins_Plugin_getPreferredStepSize(JNIEnv *env, jobject obj) | 195 Java_org_vamp_1plugins_Plugin_getPreferredStepSize(JNIEnv *env, jobject obj) |
196 { | 196 { |
197 Plugin *p = getHandle<Plugin>(env, obj); | 197 Plugin *p = getHandle<Plugin>(env, obj); |
198 return p->getPreferredStepSize(); | 198 return p->getPreferredStepSize(); |
199 } | 199 } |
200 | 200 |
201 jint | 201 JNIEXPORT jint JNICALL |
202 Java_org_vamp_1plugins_Plugin_getMinChannelCount(JNIEnv *env, jobject obj) | 202 Java_org_vamp_1plugins_Plugin_getMinChannelCount(JNIEnv *env, jobject obj) |
203 { | 203 { |
204 Plugin *p = getHandle<Plugin>(env, obj); | 204 Plugin *p = getHandle<Plugin>(env, obj); |
205 return p->getMinChannelCount(); | 205 return p->getMinChannelCount(); |
206 } | 206 } |
207 | 207 |
208 jint | 208 JNIEXPORT jint JNICALL |
209 Java_org_vamp_1plugins_Plugin_getMaxChannelCount(JNIEnv *env, jobject obj) | 209 Java_org_vamp_1plugins_Plugin_getMaxChannelCount(JNIEnv *env, jobject obj) |
210 { | 210 { |
211 Plugin *p = getHandle<Plugin>(env, obj); | 211 Plugin *p = getHandle<Plugin>(env, obj); |
212 return p->getMaxChannelCount(); | 212 return p->getMaxChannelCount(); |
213 } | 213 } |
214 | 214 |
215 jobjectArray | 215 JNIEXPORT jobjectArray JNICALL |
216 Java_org_vamp_1plugins_Plugin_getOutputDescriptors(JNIEnv *env, jobject obj) | 216 Java_org_vamp_1plugins_Plugin_getOutputDescriptors(JNIEnv *env, jobject obj) |
217 { | 217 { |
218 Plugin *p = getHandle<Plugin>(env, obj); | 218 Plugin *p = getHandle<Plugin>(env, obj); |
219 Plugin::OutputList outputs = p->getOutputDescriptors(); | 219 Plugin::OutputList outputs = p->getOutputDescriptors(); |
220 jclass descClass = env->FindClass("org/vamp_plugins/OutputDescriptor"); | 220 jclass descClass = env->FindClass("org/vamp_plugins/OutputDescriptor"); |
268 } | 268 } |
269 | 269 |
270 return result; | 270 return result; |
271 } | 271 } |
272 | 272 |
273 static jobject | 273 JNIEXPORT static jobject |
274 convertFeature(JNIEnv *env, const Plugin::Feature &feature) | 274 convertFeature(JNIEnv *env, const Plugin::Feature &feature) |
275 { | 275 { |
276 jclass featClass = env->FindClass("org/vamp_plugins/Feature"); | 276 jclass featClass = env->FindClass("org/vamp_plugins/Feature"); |
277 jmethodID ctor = env->GetMethodID(featClass, "<init>", "()V"); | 277 jmethodID ctor = env->GetMethodID(featClass, "<init>", "()V"); |
278 jobject jfeature = env->NewObject(featClass, ctor); | 278 jobject jfeature = env->NewObject(featClass, ctor); |
285 setStringField(env, jfeature, "label", feature.label); | 285 setStringField(env, jfeature, "label", feature.label); |
286 | 286 |
287 return jfeature; | 287 return jfeature; |
288 } | 288 } |
289 | 289 |
290 static jobject | 290 JNIEXPORT static jobject |
291 convertFeatures(JNIEnv *env, const Plugin::FeatureSet &features) | 291 convertFeatures(JNIEnv *env, const Plugin::FeatureSet &features) |
292 { | 292 { |
293 jobject result; | 293 jobject result; |
294 | 294 |
295 // FeatureSet is map<int, vector<Feature> > where Feature is a struct. | 295 // FeatureSet is map<int, vector<Feature> > where Feature is a struct. |
331 } | 331 } |
332 | 332 |
333 return result; | 333 return result; |
334 } | 334 } |
335 | 335 |
336 jobject | 336 JNIEXPORT jobject JNICALL |
337 Java_org_vamp_1plugins_Plugin_process(JNIEnv *env, jobject obj, jobjectArray data, jint offset, jobject timestamp) | 337 Java_org_vamp_1plugins_Plugin_process(JNIEnv *env, jobject obj, jobjectArray data, jint offset, jobject timestamp) |
338 { | 338 { |
339 Plugin *p = getHandle<Plugin>(env, obj); | 339 Plugin *p = getHandle<Plugin>(env, obj); |
340 | 340 |
341 const Vamp::RealTime *const rt = getHandle<Vamp::RealTime>(env, timestamp); | 341 const Vamp::RealTime *const rt = getHandle<Vamp::RealTime>(env, timestamp); |
360 delete[] arr; | 360 delete[] arr; |
361 | 361 |
362 return convertFeatures(env, features); | 362 return convertFeatures(env, features); |
363 } | 363 } |
364 | 364 |
365 jobject | 365 JNIEXPORT jobject JNICALL |
366 Java_org_vamp_1plugins_Plugin_getRemainingFeatures(JNIEnv *env, jobject obj) | 366 Java_org_vamp_1plugins_Plugin_getRemainingFeatures(JNIEnv *env, jobject obj) |
367 { | 367 { |
368 Plugin *p = getHandle<Plugin>(env, obj); | 368 Plugin *p = getHandle<Plugin>(env, obj); |
369 | 369 |
370 Plugin::FeatureSet features = p->getRemainingFeatures(); | 370 Plugin::FeatureSet features = p->getRemainingFeatures(); |