Chris@0: Chris@0: package org.vamp_plugins; Chris@0: Chris@0: public class PluginLoader Chris@0: { Chris@0: public class LoadFailedException extends Exception { }; Chris@0: Chris@0: public static synchronized PluginLoader getInstance() { Chris@0: if (inst == null) { Chris@0: inst = new PluginLoader(); Chris@0: inst.initialise(); Chris@0: } Chris@0: return inst; Chris@0: } Chris@0: Chris@0: public Plugin loadPlugin(String key, float inputSampleRate) Chris@0: throws LoadFailedException { Chris@0: long handle = loadPluginNative(key, inputSampleRate); Chris@0: if (handle != 0) return new Plugin(handle); Chris@0: else throw new LoadFailedException(); Chris@0: } Chris@0: Chris@0: private PluginLoader() { initialise(); } Chris@0: private native long loadPluginNative(String key, float inputSampleRate); Chris@0: private native void initialise(); Chris@0: private static PluginLoader inst; Chris@0: private long nativeHandle; Chris@0: Chris@0: static { Chris@0: System.loadLibrary("vamp-jni"); Chris@0: } Chris@0: } Chris@0: