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