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
|