Modified to JPortAudio to support builds on Macintosh.

This commit is contained in:
philburk 2012-09-02 01:43:30 +00:00
commit ac4bb571cb
4 changed files with 36 additions and 3 deletions

View file

@ -1,5 +1,10 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#if defined(__APPLE__)
#include <JavaVM/jni.h>
#else
#include <jni.h>
#endif
/* Header for class com_portaudio_BlockingStream */
#ifndef _Included_com_portaudio_BlockingStream

View file

@ -1,5 +1,5 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
#include <JavaVM/jni.h>
/* Header for class com_portaudio_PortAudio */
#ifndef _Included_com_portaudio_PortAudio

View file

@ -178,8 +178,12 @@ jint jpa_ThrowError( JNIEnv *env, const char *message )
// Throw an exception on error.
jint jpa_CheckError( JNIEnv *env, PaError err )
{
if( err < 0 )
if( err == -1 )
{
return jpa_ThrowError( env, "-1, possibly no available default device" );
}
else if( err < 0 )
{
if( err == paUnanticipatedHostError )
{
const PaHostErrorInfo *hostErrorInfo = Pa_GetLastHostErrorInfo();

View file

@ -34,4 +34,28 @@ Place the following libraries where they can be found, typically in the same fol
- jportaudio_x86.dll
- jportaudio_x64.dll
*/
@section java_comp_max Building JPortAudio on Mac
These are notes from building JPortAudio on a Mac with 10.6.8 and XCode 4.
I created a target of type 'C' library.
I added the regular PortAudio frameworks plus the JavaVM framework.
I modified com_portaudio_PortAudio.h and com_portaudio_BlockingStream.h so that jni.h could found.
@code
#if defined(__APPLE__)
#include <JavaVM/jni.h>
#else
#include <jni.h>
#endif
@endcode
This is bad because those header files are autogenerated and will be overwritten.
We need a better solution for this.
I had trouble finding the "libjportaudio.jnilib". So I added a Build Phase that copied the library to "/Users/phil/Library/Java/Extensions".
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".
*/