[MacRuby-devel] [MacRuby] #733: Proc as callback function for CoreAudio(AudioDeviceCreateIOProcID) isn't called
MacRuby
ruby-noreply at macosforge.org
Mon May 31 07:37:38 PDT 2010
#733: Proc as callback function for CoreAudio(AudioDeviceCreateIOProcID) isn't
called
-----------------------------------+----------------------------------------
Reporter: nagachika00@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
-----------------------------------+----------------------------------------
I'm trying to output arbitrary waveform data to audio device with
CoreAudio Framework, and confront a callback function problem. I attach
sample scripts.
At first, I have to apply a small dirty patch to MacRuby to avoid
{{{"unrecognized runtime type `?'"}}} exception. The function
AudioDeviceStart/Stop take an argument has type `"^?"`, but MacRuby
doesn't allow that type. I attach the patch too.
In my sample, register Proc as callback function with
AudioDeviceCreateIOProcID() seems success. Then call AudioDeviceStart() to
start playback, but the Proc object seems never called.
The sample script intends play silent waveform, so make no sound is OK,
but log message to stdout with Kernel#p method isn't available.
The callback function in CoreAudio is called from CoreAudio internal
thread. Is that the cause of the problem?
{{{
$ macruby -I. coreaudio_sample.rb
Default Output Device ID = 268
#<Pointer:0x2002565a0>
start
sleep
macruby(19434,0x103cc7000) malloc: *** auto malloc[19434]: error: GC
operation on unregistered thread. Thread registered implicitly. Break on
auto_zone_thread_registration_error() to debug.
stop
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/733>
MacRuby <http://macruby.org/>
More information about the MacRuby-devel
mailing list