Chris@0: Chris@0: package org.vamp_plugins; Chris@0: Chris@2: import java.util.TreeMap; Chris@2: import java.util.ArrayList; Chris@2: Chris@0: public class Plugin Chris@0: { Chris@0: private long nativeHandle; Chris@0: protected Plugin(long handle) { nativeHandle = handle; } Chris@0: Chris@20: public native void dispose(); Chris@20: Chris@3: // PluginBase methods Chris@3: Chris@3: public native int getVampApiVersion(); Chris@0: public native String getIdentifier(); Chris@0: public native String getName(); Chris@0: public native String getDescription(); Chris@3: public native String getMaker(); Chris@3: public native String getCopyright(); Chris@0: public native int getPluginVersion(); Chris@2: Chris@3: public native ParameterDescriptor[] getParameterDescriptors(); Chris@3: public native float getParameter(String identifier); Chris@3: public native void setParameter(String identifier, float value); Chris@3: Chris@3: public native String[] getPrograms(); Chris@3: public native String getCurrentProgram(); Chris@3: public native void selectProgram(String program); Chris@3: Chris@3: // Plugin methods Chris@3: Chris@2: public native boolean initialise(int inputChannels, Chris@2: int stepSize, Chris@2: int blockSize); Chris@2: Chris@2: public native void reset(); Chris@2: Chris@2: public static enum InputDomain { TimeDomain, FrequencyDomain }; Chris@2: public native InputDomain getInputDomain(); Chris@2: Chris@2: public native int getPreferredBlockSize(); Chris@2: public native int getPreferredStepSize(); Chris@2: public native int getMinChannelCount(); Chris@2: public native int getMaxChannelCount(); Chris@2: Chris@2: public native OutputDescriptor[] getOutputDescriptors(); Chris@2: Chris@2: // "Pseudo-typedef antipattern - don't do this": http://www.ibm.com/developerworks/java/library/j-jtp02216/index.html Chris@2: // (I would like to!) Chris@2: // public class FeatureList extends ArrayList; Chris@2: // public class FeatureSet extends TreeMap; Chris@2: Chris@22: public TreeMap> Chris@22: process(float[][] inputBuffers, Chris@22: RealTime timestamp) { Chris@24: return process(inputBuffers, 0, timestamp); Chris@22: } Chris@22: Chris@2: public native TreeMap> Chris@2: process(float[][] inputBuffers, Chris@24: int offset, Chris@2: RealTime timestamp); Chris@2: Chris@2: public native TreeMap> Chris@2: getRemainingFeatures(); Chris@0: } Chris@0: