Sean P. DeNigris wrote
> I'm wrapping the FMOD cross-platform audio library
> [snip]
> I have a few more questions

======== 
Problem #1: 
======== 

I have the following callout:
        <primitive: #primitiveNativeCall module: #NativeBoostPlugin>
        
        "FMOD_RESULT FMOD_System_Init(
                FMOD_SYSTEM *system,
                int maxchannels,
                FMOD_INITFLAGS flags,
                void *extradriverdata);"
        
        ^ self nbCall: #(FMOD_RESULT System_Init(NBExternalAddress system, 32, 
0,
nil)). 

It works fine on Mac. On Windows, it returns some crazy error code that is
not listed in the API.

However, if I wrap the FMOD DLL in another DLL that just forwards all calls:
  FMOD_RESULT System_Init(FMOD_SYSTEM *system, int maxchannels,
FMOD_INITFLAGS flags, void *extradriverdata)
  {
        return FMOD_System_Init(system, maxchannels, flags, extradriverdata);
  }
When I call out to the wrapper DLL, it works! Does that provide a clue as to
what's going wrong when calling from NB?

Other info:
- Other dll functions succeed, so there is communication with the library.
In fact, if I proceed past that first error, a sound starts to play... but
then the VM crashes...

======== 
Problem #2: 
======== 
(much less important)

I wanted to be able to bundle the DLL with the image so one doesn't have to
copy it into the VM folder. If I use the full path for the wrapper DLL
described above, it is found, but when it calls fmodL.dll, which is in the
same directory, it can't be found. I could only get it to work if at least
fmodL.dll is in the VM plugins folder. Is there a way to specify more search
locations for dynamic libraries from the image side?

Thanks!



-----
Cheers,
Sean
--
View this message in context: 
http://forum.world.st/NativeBoost-Questions-while-wrapping-FMOD-tp4724116p4725188.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.

Reply via email to