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