Chris@0
|
1
|
Chris@0
|
2 package org.vamp_plugins;
|
Chris@0
|
3
|
Chris@2
|
4 import java.util.TreeMap;
|
Chris@2
|
5 import java.util.ArrayList;
|
Chris@2
|
6
|
Chris@0
|
7 public class Plugin
|
Chris@0
|
8 {
|
Chris@0
|
9 private long nativeHandle;
|
Chris@0
|
10 protected Plugin(long handle) { nativeHandle = handle; }
|
Chris@0
|
11
|
Chris@20
|
12 public native void dispose();
|
Chris@20
|
13
|
Chris@3
|
14 // PluginBase methods
|
Chris@3
|
15
|
Chris@3
|
16 public native int getVampApiVersion();
|
Chris@0
|
17 public native String getIdentifier();
|
Chris@0
|
18 public native String getName();
|
Chris@0
|
19 public native String getDescription();
|
Chris@3
|
20 public native String getMaker();
|
Chris@3
|
21 public native String getCopyright();
|
Chris@0
|
22 public native int getPluginVersion();
|
Chris@2
|
23
|
Chris@3
|
24 public native ParameterDescriptor[] getParameterDescriptors();
|
Chris@3
|
25 public native float getParameter(String identifier);
|
Chris@3
|
26 public native void setParameter(String identifier, float value);
|
Chris@3
|
27
|
Chris@3
|
28 public native String[] getPrograms();
|
Chris@3
|
29 public native String getCurrentProgram();
|
Chris@3
|
30 public native void selectProgram(String program);
|
Chris@3
|
31
|
Chris@3
|
32 // Plugin methods
|
Chris@3
|
33
|
Chris@2
|
34 public native boolean initialise(int inputChannels,
|
Chris@2
|
35 int stepSize,
|
Chris@2
|
36 int blockSize);
|
Chris@2
|
37
|
Chris@2
|
38 public native void reset();
|
Chris@2
|
39
|
Chris@2
|
40 public static enum InputDomain { TimeDomain, FrequencyDomain };
|
Chris@2
|
41 public native InputDomain getInputDomain();
|
Chris@2
|
42
|
Chris@2
|
43 public native int getPreferredBlockSize();
|
Chris@2
|
44 public native int getPreferredStepSize();
|
Chris@2
|
45 public native int getMinChannelCount();
|
Chris@2
|
46 public native int getMaxChannelCount();
|
Chris@2
|
47
|
Chris@2
|
48 public native OutputDescriptor[] getOutputDescriptors();
|
Chris@2
|
49
|
Chris@2
|
50 // "Pseudo-typedef antipattern - don't do this": http://www.ibm.com/developerworks/java/library/j-jtp02216/index.html
|
Chris@2
|
51 // (I would like to!)
|
Chris@2
|
52 // public class FeatureList extends ArrayList<Feature>;
|
Chris@2
|
53 // public class FeatureSet extends TreeMap<Integer, FeatureList>;
|
Chris@2
|
54
|
Chris@22
|
55 public TreeMap<Integer, ArrayList<Feature>>
|
Chris@22
|
56 process(float[][] inputBuffers,
|
Chris@22
|
57 RealTime timestamp) {
|
Chris@22
|
58 process(inputBuffers, 0, inputBuffers[0].length, timestamp);
|
Chris@22
|
59 }
|
Chris@22
|
60
|
Chris@2
|
61 public native TreeMap<Integer, ArrayList<Feature>>
|
Chris@2
|
62 process(float[][] inputBuffers,
|
Chris@22
|
63 int offset, int n,
|
Chris@2
|
64 RealTime timestamp);
|
Chris@2
|
65
|
Chris@2
|
66 public native TreeMap<Integer, ArrayList<Feature>>
|
Chris@2
|
67 getRemainingFeatures();
|
Chris@0
|
68 }
|
Chris@0
|
69
|