From 90a59c388f1b4b366936e3afa8a71be5819e0a7f Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Wed, 6 Feb 2008 16:28:31 +0100 Subject: [PATCH] java/: added first draft for a java interface to aubio, includes simple test --- .bzrignore | 6 ++++++ configure.ac | 2 ++ java/Makefile.am | 1 + java/aubio/Makefile.am | 32 ++++++++++++++++++++++++++++++++ java/aubio/main.java | 19 +++++++++++++++++++ 5 files changed, 60 insertions(+) create mode 100644 java/Makefile.am create mode 100644 java/aubio/Makefile.am create mode 100644 java/aubio/main.java diff --git a/.bzrignore b/.bzrignore index 8d721707..4746d488 100644 --- a/.bzrignore +++ b/.bzrignore @@ -26,6 +26,12 @@ doc/*.1 **/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 diff --git a/configure.ac b/configure.ac index ac299f82..1b326bd0 100644 --- a/configure.ac +++ b/configure.ac @@ -257,6 +257,8 @@ AC_OUTPUT([ swig/Makefile python/Makefile python/aubio/Makefile + java/Makefile + java/aubio/Makefile plugins/Makefile plugins/audacity/Makefile plugins/audacity/plug-ins/Makefile diff --git a/java/Makefile.am b/java/Makefile.am new file mode 100644 index 00000000..a0930063 --- /dev/null +++ b/java/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = aubio diff --git a/java/aubio/Makefile.am b/java/aubio/Makefile.am new file mode 100644 index 00000000..2f81094d --- /dev/null +++ b/java/aubio/Makefile.am @@ -0,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 diff --git a/java/aubio/main.java b/java/aubio/main.java new file mode 100644 index 00000000..f315387d --- /dev/null +++ b/java/aubio/main.java @@ -0,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); + } +} + -- 2.26.2