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();