[MacRuby-devel] BridgeSupport and Parameter Errors

Edward Hynes mred at dharmagaia.com
Wed Sep 9 10:00:33 PDT 2009


I'm trying to re-implement the PlaySoftMIDI example from the Xcode  
installation in MacRuby, but am getting parameter errors.  Could some  
kind soul point me in the right direction?

Below is a small example that ends with a parameter error.  The call  
to NewAUGraph appears to work, returning a zero, but the call to  
AUGraphAddNode returns -50.

framework 'AudioToolbox'
framework 'AudioUnit'
load_bridge_support_file 'bridgesupport/Application.bridgesupport'
load_bridge_support_file 'bridgesupport/AudioToolbox.bridgesupport'
load_bridge_support_file 'bridgesupport/AudioUnit.bridgesupport'

outGraph = Pointer.new_with_type '^{OpaqueAUGraph}'
result = NewAUGraph outGraph  # returns 0
puts result

cd = ComponentDescription.new
cd.componentManufacturer = KAudioUnitManufacturer_Apple
cd.componentType         = KAudioUnitType_MusicDevice
cd.componentSubType      = KAudioUnitSubType_DLSSynth

cd_ptr = Pointer.new_with_type '{ComponentDescription=IIIII}'
cd_ptr.assign cd

synthNode = Pointer.new_with_type 'i'

result = AUGraphAddNode outGraph[0], cd_ptr, synthNode  # returns -50
puts result


I generated the bridge support files with

gen_bridge_metadata -f AudioToolbox -o AudioToolbox.bridgesupport
gen_bridge_metadata -f AudioUnit -o AudioUnit.bridgesupport

The Application.bridgesupport file contains struct and cftype  
definitions for ComponentDescription.  They were generated using a  
header file since I couldn't figure out how to generate them from the  
CarbonCore framework directly.  Any help would be appreciated.


Thanks,
Ed



More information about the MacRuby-devel mailing list