cannam@124: /** cannam@124: @page java_binding JPortAudio Java Binding cannam@124: @ingroup jportaudio cannam@124: cannam@124: Note: this page has not been reviewed, and may contain errors. cannam@124: cannam@124: @section java_draft DRAFT - IN PROGRESS cannam@124: cannam@124: 9/4/12 JPortAudio is very new and should be considered an "alpha" release. cannam@124: The building of JPortAudio will eventually be integrated into the Makefile as an optional build. cannam@124: cannam@124: Currently JPortAudio is only supported for Windows and Macintosh. Please contact us if you want to help with porting Linux. cannam@124: cannam@124: For reference documentation of the JPortAudio API see: com.portaudio.PortAudio cannam@124: cannam@124: For an example see: PlaySine.java cannam@124: cannam@124: @section java_comp_windows Building JPortAudio on Windows cannam@124: cannam@124: Build the Java code using the Eclipse project in "jportaudio". Export as "jportaudio.jar". cannam@124: cannam@124: If you modify the JNI API then you will need to regenerate the JNI .h files using: cannam@124: cannam@124: @code cannam@124: cd bindings/java/scripts cannam@124: make_header.bat cannam@124: @endcode cannam@124: cannam@124: Build the JNI DLL using the Visual Studio 2010 solution in "java/c/build/vs2010/PortAudioJNI". cannam@124: cannam@124: @section java_use_windows Using JPortAudio on Windows cannam@124: cannam@124: Put the "jportaudio.jar" in the classpath for your application. cannam@124: Place the following libraries where they can be found, typically in the same folder as your application. cannam@124: cannam@124: - portaudio_x86.dll cannam@124: - portaudio_x64.dll cannam@124: - jportaudio_x86.dll cannam@124: - jportaudio_x64.dll cannam@124: cannam@124: @section java_comp_max Building JPortAudio on Mac cannam@124: cannam@124: These are notes from building JPortAudio on a Mac with 10.6.8 and XCode 4. cannam@124: cannam@124: I created a target of type 'C' library. cannam@124: cannam@124: I added the regular PortAudio frameworks plus the JavaVM framework. cannam@124: cannam@124: I modified com_portaudio_PortAudio.h and com_portaudio_BlockingStream.h so that jni.h could found. cannam@124: cannam@124: @code cannam@124: #if defined(__APPLE__) cannam@124: #include cannam@124: #else cannam@124: #include cannam@124: #endif cannam@124: @endcode cannam@124: cannam@124: This is bad because those header files are autogenerated and will be overwritten. cannam@124: We need a better solution for this. cannam@124: cannam@124: I had trouble finding the "libjportaudio.jnilib". So I added a Build Phase that copied the library to "/Users/phil/Library/Java/Extensions". cannam@124: cannam@124: On the Mac we can create a universal library for both 32 and 64-bit JVMs. So in the JAR file I will open "jportaudio" on Apple. ON WIndows I will continue to open "jportaudio_x64" and "jportaudio_x86". cannam@124: */