ref: 90a59c388f1b4b366936e3afa8a71be5819e0a7f
parent: 055d674eaede56459ac5bfecd01fbe8188cfb4a5
author: Paul Brossier <piem@piem.org>
date: Wed Feb 6 11:28:31 EST 2008
java/: added first draft for a java interface to aubio, includes simple test
--- a/.bzrignore
+++ b/.bzrignore
@@ -26,6 +26,12 @@
**/cachegrind.out.[0-9]*
**/callgrind.out.[0-9]*
+# swig and java stuff
+**/*.class
+java/**/SWIG*.java
+java/**/aubio*.java
+java/**/midi_*.java
+
# autoreconf -f -i will create these
INSTALL
aclocal.m4
--- a/configure.ac
+++ b/configure.ac
@@ -257,6 +257,8 @@
swig/Makefile
python/Makefile
python/aubio/Makefile
+ java/Makefile
+ java/aubio/Makefile
plugins/Makefile
plugins/audacity/Makefile
plugins/audacity/plug-ins/Makefile
--- /dev/null
+++ b/java/Makefile.am
@@ -1,0 +1,1 @@
+SUBDIRS = aubio
--- /dev/null
+++ b/java/aubio/Makefile.am
@@ -1,0 +1,32 @@
+NOWARN_CFLAGS = -Wno-strict-aliasing
+
+AM_CFLAGS = @AUBIO_CFLAGS@ $(NOWARN_CFLAGS) $(SWCFLAGS) \
+ -I$(top_builddir)/src -I$(top_srcdir)/src -I$(top_srcdir)/ext \
+ -I/usr/lib/jvm/java-6-sun-1.6.0.04/include \
+ -I${prefix}/lib/jvm/java-6-sun-1.6.0.04/include \
+ -I/usr/lib/jvm/java-6-sun-1.6.0.04/include/linux \
+ -I${prefix}/lib/jvm/java-6-sun-1.6.0.04/include/linux \
+ -I/usr/include \
+ -I${prefix}/include
+
+SWLDFLAGS = -shared
+
+AUBIO_LDFLAGS = $(SWLDFLAGS) \
+ -L$(top_builddir)/ext -laubioext \
+ -L$(top_builddir)/src -laubio
+
+pkgjavadir = /usr/local/lib/java/aubio
+
+pkgjava_LTLIBRARIES = libaubiowrapper.la
+
+libaubiowrapper_la_LDFLAGS = -module -avoid-version $(AUBIO_LDFLAGS)
+libaubiowrapper_la_SOURCES = aubio_wrap.c
+
+aubio_wrap.c:
+ $(SWIG) -outdir . -o aubio_wrap.c -java $(top_srcdir)/swig/aubio.i
+
+CLEANFILES = aubio_* SWIGTYPE_* *aubiowrapper* midi_*
+
+simple_test:
+ javac *.java
+ LD_LIBRARY_PATH=.libs java main
--- /dev/null
+++ b/java/aubio/main.java
@@ -1,0 +1,19 @@
+// main.java
+
+public class main {
+ static {
+ System.loadLibrary("aubiowrapper");
+ }
+
+ public static void main(String argv[]) {
+ float freq = (float)440.;
+ float midi = aubiowrapper.aubio_freqtomidi( (float)440.);
+ if (midi != (float) 69.0) {
+ throw new Error((String) "Error: aubio_freqtomidi(440.) != 69.", null);
+ }
+ System.out.print(freq);
+ System.out.print(" Hz corresponds to midi note ");
+ System.out.println(midi);
+ }
+}
+