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
|