FFI Help wrapping ObjC
Posted: Tue Apr 17, 2018 5:50 pm
I got this code, seems like it should work, tried a bunch of various combinations, different methods, etc.
No matter what I do I get execution error at line 16 which is called from
line 16 is :
A little help would be much appreciated. T.I.A.
Code: Select all
private foreign handler objC_NSURLinitURLWithString(in pURLString as ObjcId) returns ObjcId binds to "objc:NSURL.-URLWithString:"
private foreign handler objC_AVMIDIPlayer(in pFileURL as ObjcId, in pSoundFontURL as optional ObjcId, out pNSError as optional ObjcId ) returns ObjcId binds to "objc:AVMIDIPlayer.-initWithContentsOfURL:soundBankURL:error:"
private foreign handler objC_AVMIDIPlayerPrepare(in pAVPlayerRef as ObjcId) returns ObjcId binds to "objc:AVMIDIPlayer.-prepareToPlay:"
private foreign handler objC_AVMIDIPlayerPlay(in pAVPlayerRef as ObjcId) returns ObjcId binds to "objc:AVMIDIPlayer.-play:"
private foreign handler objC_AVMIDIPlayerStop(in pAVPlayerRef as ObjcId) returns ObjcId binds to "objc:AVMIDIPlayer.-stop:"
--------------------- Public handler:
public handler MakeAVMIDIPlayerInstance(in pFileURL as String, in pSoundFontURL as String) returns ObjcId
unsafe
variable tAVMIDIPlayerInstance as ObjcId
variable tFileNSURL as ObjcId
variable tSoundFontNSURL as ObjcId
variable tOutError as ObjcId
--- need NSURL obj to pass to AVMIDIplayer
put objC_NSURLinitURLwithString(StringToNSString(tFileNSURL)) into tFileNSURL
put objC_NSURLinitURLwithString(StringToNSString(pSoundFontURL)) into tSoundFontNSURL
put objC_AVMIDIPlayer(tFileURLNSString,tSoundFontURLNSString,) into tAVMIDIPlayerInstance
--- objC_AVMIDIPlayerPrepare(tAVPlayerInstance)
objC_AVMIDIPlayerPlay(tAVMIDIPlayerInstance)\
end unsafe
end handler
Code: Select all
put objC_AVMIDIPlayer(tFileURLNSString,tSoundFontURLNSString,) into tAVMIDIPlayerInstance
Code: Select all
private foreign handler objC_AVMIDIPlayer(in pFileURL as ObjcId, in pSoundFontURL as optional ObjcId, out pNSError as optional ObjcId ) returns ObjcId binds to "objc:AVMIDIPlayer.-initWithContentsOfURL:soundBankURL:error:"