annotate bindings/java/src/org/omras2/AudioDB.java @ 726:fe2282b9bfb0

Initial querying: doesn't return results yet, but handles almost all params.
author mas01mj
date Mon, 26 Jul 2010 13:19:09 +0000
parents 7e1fa27b67ee
children 4d9e4ff0a9cd
rev   line source
mas01mj@722 1 package org.omras2;
mas01mj@722 2
mas01mj@722 3 import java.io.File;
mas01mj@722 4
mas01mj@722 5 public class AudioDB
mas01mj@722 6 {
mas01mj@722 7 public native boolean audiodb_create(String path, int datasize, int ntracks, int datadim);
mas01mj@722 8 public native boolean audiodb_open(String path, Mode mode);
mas01mj@725 9 public native void audiodb_close();
mas01mj@724 10 public native Status audiodb_status();
mas01mj@725 11 public native boolean audiodb_insert_path(String key, String features, String power, String times);
mas01mj@726 12 public native void audiodb_query_by_key(String key, Query config);
mas01mj@722 13
mas01mj@725 14 public enum Mode { O_RDONLY, O_RDWR }
mas01mj@722 15
mas01mj@722 16 private File path;
mas01mj@724 17 private long adbHandle;
mas01mj@722 18
mas01mj@722 19 public AudioDB(File path)
mas01mj@722 20 {
mas01mj@722 21 this.path = path;
mas01mj@722 22 }
mas01mj@722 23
mas01mj@725 24 public void close()
mas01mj@725 25 {
mas01mj@725 26 audiodb_close();
mas01mj@725 27 }
mas01mj@725 28
mas01mj@725 29 public boolean insert(File features)
mas01mj@725 30 {
mas01mj@725 31 return audiodb_insert_path(null, features.getPath(), null, null);
mas01mj@725 32 }
mas01mj@725 33
mas01mj@725 34 public boolean insert(String key, File features)
mas01mj@725 35 {
mas01mj@725 36 return audiodb_insert_path(key, features.getPath(), null, null);
mas01mj@725 37 }
mas01mj@725 38
mas01mj@725 39 public boolean insert(String key, File features, File power, File times)
mas01mj@725 40 {
mas01mj@725 41 return audiodb_insert_path(key, features.getPath(), (power == null ? null : power.getPath()), (times == null ? null : times.getPath()));
mas01mj@725 42 }
mas01mj@725 43
mas01mj@722 44 public boolean create(int datasize, int ntracks, int datadim)
mas01mj@722 45 {
mas01mj@722 46 return audiodb_create(path.toString(), datasize, ntracks, datadim);
mas01mj@722 47 }
mas01mj@722 48
mas01mj@722 49 public boolean open(Mode mode)
mas01mj@722 50 {
mas01mj@722 51 return audiodb_open(path.toString(), mode);
mas01mj@722 52 }
mas01mj@722 53
mas01mj@726 54 public void query(String key, Query config)
mas01mj@726 55 {
mas01mj@726 56 audiodb_query_by_key(key, config);
mas01mj@726 57 }
mas01mj@726 58
mas01mj@724 59 public Status getStatus()
mas01mj@722 60 {
mas01mj@724 61 return audiodb_status();
mas01mj@722 62 }
mas01mj@722 63
mas01mj@722 64 static {
mas01mj@722 65 System.loadLibrary("AudioDB_JNI");
mas01mj@722 66 }
mas01mj@722 67
mas01mj@722 68
mas01mj@722 69 public static void main(String args[])
mas01mj@722 70 {
mas01mj@722 71 AudioDB testDB = new AudioDB(new File("test.adb"));
mas01mj@722 72 testDB.create(5, 5, 12);
mas01mj@725 73 testDB.open(Mode.O_RDWR);
mas01mj@725 74 testDB.insert(new File("testfiles/testfeature"));
mas01mj@724 75 Status status = testDB.getStatus();
mas01mj@724 76 System.out.println("Num files: "+status.getNumFiles());
mas01mj@725 77 testDB.close();
mas01mj@722 78 }
mas01mj@722 79 }
mas01mj@722 80
mas01mj@722 81