annotate org/vamp_plugins/Plugin.java @ 15:47b648d1b261

Provisional implementation of convertFeatures
author Chris Cannam
date Mon, 06 Feb 2012 16:36:34 +0000
parents 7b1740a9020a
children 530bf5009ee2
rev   line source
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