annotate bindings/java/src/org/omras2/AudioDB.java @ 730:0d1a7e4ed6cf caseyCAMUSexperimental

Casey's changes to CAMUS to work with TimbralRhythm features for ISMIR2010 demo
author mas01mc
date Mon, 16 Aug 2010 20:07:40 +0000
parents 7e1fa27b67ee
children fe2282b9bfb0
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@724 12 // public native void query();
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@725 44
mas01mj@722 45 public boolean create(int datasize, int ntracks, int datadim)
mas01mj@722 46 {
mas01mj@722 47 return audiodb_create(path.toString(), datasize, ntracks, datadim);
mas01mj@722 48 }
mas01mj@722 49
mas01mj@722 50 public boolean open(Mode mode)
mas01mj@722 51 {
mas01mj@722 52 return audiodb_open(path.toString(), mode);
mas01mj@722 53 }
mas01mj@722 54
mas01mj@724 55 public Status getStatus()
mas01mj@722 56 {
mas01mj@724 57 return audiodb_status();
mas01mj@722 58 }
mas01mj@722 59
mas01mj@722 60 static {
mas01mj@722 61 System.loadLibrary("AudioDB_JNI");
mas01mj@722 62 }
mas01mj@722 63
mas01mj@722 64
mas01mj@722 65 public static void main(String args[])
mas01mj@722 66 {
mas01mj@722 67 AudioDB testDB = new AudioDB(new File("test.adb"));
mas01mj@722 68 testDB.create(5, 5, 12);
mas01mj@725 69 testDB.open(Mode.O_RDWR);
mas01mj@725 70 testDB.insert(new File("testfiles/testfeature"));
mas01mj@724 71 Status status = testDB.getStatus();
mas01mj@724 72 System.out.println("Num files: "+status.getNumFiles());
mas01mj@725 73 testDB.close();
mas01mj@722 74 }
mas01mj@722 75 }
mas01mj@722 76
mas01mj@722 77