According to its manual
(
http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html#a0a12735ac191200f696a43b87667b714)
stream
The address of a PaStream pointer which will receive a pointer to the newly opened stream.
So, what you need to pass is a pointer to location where pointer will be stored.
The simplest way how to do it (without explaining you how to use NBExternalValue)
just do a following:
PaError Pa_OpenDefaultStream(NBExternalAddress * stream ... )
then your call site will look like following:
streamHandle := NBExternalAddress new.
self Pa_opendefaultBlah: streamHandle�� ...
The 'NBExternalAddress *' type treated specially, because usually for most cases
if you pass an instance of NBExternalAddress to any function which expects some pointer, NB will pass the value of NBExternalAddress, however if type is
NBExternalAddress * , then NB will pass a pointer where pointer value is stored (which�� effectively means pointer to pointer)
that should do the trick.
But hold on, next thing you will stuck with is callback ... hehe :)
ah.. ok, according to manual, you can simply skip this one by passing NULL (nil)
for that, again you can just change the function signature and instead of putting
put nil. (yes, nil literal)