annotate org/vamp_plugins/Plugin.java @ 20:cf6c69871f9c

Start on RealTime native bits -- incomplete
author Chris Cannam
date Wed, 08 Feb 2012 15:22:48 +0000
parents 530bf5009ee2
children 6385a6caaa7c
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@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@2 55 public native TreeMap<Integer, ArrayList<Feature>>
Chris@2 56 process(float[][] inputBuffers,
Chris@2 57 RealTime timestamp);
Chris@2 58
Chris@2 59 public native TreeMap<Integer, ArrayList<Feature>>
Chris@2 60 getRemainingFeatures();
Chris@0 61 }
Chris@0 62