I'm trying to load audio data using ExtAudioFileOpenURL() in the AudioToolbox, but seem to have a problem with the pointer gymnastics involved.
First I created a BridgeSuppport file using: gen_bridge_metadata -f AudioToolbox -o AudioToolbox.bridgesupport I'm then using code like this: #load bridgesuppport file framework 'AudioToolbox' load_bridge_support_file "#{File.dirname(__FILE__)}/AudioToolbox.bridgesupport" #open audio file fileURL = NSURL.fileURLWithPath "#{File.dirname(__FILE__)}/Blow.aiff" fileRef = Pointer.new_with_type '^{OpaqueExtAudioFile}' raise "Can't open audio file" unless ExtAudioFileOpenURL(fileURL, fileRef)==0 #ok #read audio file ioNumberFramesPtr = Pointer.new_with_type 'I' ioNumberFramesPtr[0] = 800 ioDataPtr = Pointer.new_with_type '^{AudioBufferList}' raise "Can't read audio file" unless ExtAudioFileRead(fileRef[0], ioNumberFramesPtr, ioDataPtr)==0 # error but runnig this from xcode the last line causes: /Users/emiltin/Desktop/builds/Debug/Waveform.app/Contents/Resources/MyView.rb:101:in `awakeFromNib': unrecognized runtime type `{OpaqueExtAudioFile}' (TypeError) from /Users/emiltin/Desktop/builds/Debug/Waveform.app/Contents/Resources/rb_main.rb:11:in `<main>' The problem seem to occur where I access fileRef[0]. Am I doing something wrong here? Thanks, Emil From the generated BridgeSupport file: <function name='ExtAudioFileOpenURL'> <arg type='^{__CFURL=}'/> <arg type='^^{OpaqueExtAudioFile}'/> <retval type='l'/> </function> <function name='ExtAudioFileRead'> <arg type='^{OpaqueExtAudioFile=}'/> <arg type='^I'/> <arg type='^{AudioBufferList=I[1{AudioBuffer=II^v}]}'/> <retval type='l'/> </function>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel