mas01mj@722: package org.omras2; mas01mj@722: mas01mj@722: import java.io.File; 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@726: public native void audiodb_query_by_key(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@725: return audiodb_insert_path(null, features.getPath(), null, null); mas01mj@725: } mas01mj@725: mas01mj@725: public boolean insert(String key, File features) mas01mj@725: { mas01mj@725: return audiodb_insert_path(key, features.getPath(), null, 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@725: 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@722: mas01mj@726: public void query(String key, Query config) mas01mj@726: { mas01mj@726: audiodb_query_by_key(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: