mas01mj@722: package org.omras2; mas01mj@722: mas01mj@722: import java.io.File; mas01mj@727: import java.util.Vector; mas01mj@722: mas01mj@722: public class AudioDB mas01mj@722: { mas01mj@722: public native boolean audiodb_create(String path, int datasize, int ntracks, int datadim); mas01mj@722: public native boolean audiodb_open(String path, Mode mode); mas01mj@725: public native void audiodb_close(); mas01mj@724: public native Status audiodb_status(); mas01mj@725: public native boolean audiodb_insert_path(String key, String features, String power, String times); mas01mj@728: public native boolean audiodb_insert_data(String key, int nvectors, int dim, double[] features, double[] power, double[] times); mas01mj@729: public native Vector audiodb_query(String key, Query config); mas01mj@722: mas01mj@725: public enum Mode { O_RDONLY, O_RDWR } mas01mj@722: mas01mj@722: private File path; mas01mj@724: private long adbHandle; mas01mj@722: mas01mj@722: public AudioDB(File path) mas01mj@722: { mas01mj@722: this.path = path; mas01mj@722: } mas01mj@722: mas01mj@725: public void close() mas01mj@725: { mas01mj@725: audiodb_close(); mas01mj@725: } mas01mj@725: mas01mj@725: public boolean insert(File features) mas01mj@725: { mas01mj@728: return insert(null, features, null, null); mas01mj@725: } mas01mj@725: mas01mj@725: public boolean insert(String key, File features) mas01mj@725: { mas01mj@728: return insert(key, features, null, null); mas01mj@728: } mas01mj@728: mas01mj@728: public boolean insert(String key, File features, File power) mas01mj@728: { mas01mj@728: return insert(key, features, power, null); mas01mj@725: } mas01mj@725: mas01mj@725: public boolean insert(String key, File features, File power, File times) mas01mj@725: { mas01mj@725: return audiodb_insert_path(key, features.getPath(), (power == null ? null : power.getPath()), (times == null ? null : times.getPath())); mas01mj@725: } mas01mj@728: mas01mj@728: public boolean insert(String key, int nvectors, int dim, double[] features) mas01mj@728: { mas01mj@728: return insert(key, nvectors, dim, features, null, null); mas01mj@728: } mas01mj@725: mas01mj@728: public boolean insert(String key, int nvectors, int dim, double[] features, double[] power) mas01mj@728: { mas01mj@728: return insert(key, nvectors, dim, features, power, null); mas01mj@728: } mas01mj@728: mas01mj@728: public boolean insert(String key, int nvectors, int dim, double[] features, double[] power, double[] times) mas01mj@728: { mas01mj@728: return audiodb_insert_data(key, nvectors, dim, features, power, times); mas01mj@728: } mas01mj@728: mas01mj@722: public boolean create(int datasize, int ntracks, int datadim) mas01mj@722: { mas01mj@722: return audiodb_create(path.toString(), datasize, ntracks, datadim); mas01mj@722: } mas01mj@722: mas01mj@722: public boolean open(Mode mode) mas01mj@722: { mas01mj@722: return audiodb_open(path.toString(), mode); mas01mj@722: } mas01mj@729: mas01mj@729: public Vector query(Query config) mas01mj@729: { mas01mj@729: return audiodb_query(null, config); mas01mj@729: } mas01mj@722: mas01mj@727: public Vector query(String key, Query config) mas01mj@726: { mas01mj@729: return audiodb_query(key, config); mas01mj@726: } mas01mj@726: mas01mj@724: public Status getStatus() mas01mj@722: { mas01mj@724: return audiodb_status(); mas01mj@722: } mas01mj@722: mas01mj@722: static { mas01mj@722: System.loadLibrary("AudioDB_JNI"); mas01mj@722: } mas01mj@722: mas01mj@722: mas01mj@722: public static void main(String args[]) mas01mj@722: { mas01mj@722: AudioDB testDB = new AudioDB(new File("test.adb")); mas01mj@722: testDB.create(5, 5, 12); mas01mj@725: testDB.open(Mode.O_RDWR); mas01mj@725: testDB.insert(new File("testfiles/testfeature")); mas01mj@724: Status status = testDB.getStatus(); mas01mj@724: System.out.println("Num files: "+status.getNumFiles()); mas01mj@725: testDB.close(); mas01mj@722: } mas01mj@722: } mas01mj@722: mas01mj@722: