On Fri, Jul 17, 2009 at 09:12:58PM +0200, Daniel Mack wrote: > http://pulseaudio.org/wiki/BuildingOnMacOSX > > I thought about the necessary steps a little more and will see how much > I can do over the weekend. I'll get back to you as soon as I got > something. I've put some pieces together now and what I got is - a kernel module that loads and unloads fine and offers a virtual stereo soundcard which can be selected by any CoreAudio application. - a user space interface to share the ring buffers with application so that audio can be transported in and out. - a skeleton for an application that connects to that interface and maps the shared memory buffers. - a PreferencePane which has no function yet but can be used later to control setting for the virtual audio device and the local sound server. Sounds like a lot, but there's still a long way to go until we'll hear anything. There are a number of issues I'm struggling with and I would like to get some help or input for. 1. When PA is build using the instructions I posted, the executables are linked fine, but they won't run. The error I'm getting is $ ./pulseaudio dyld: Symbol not found: _g_get_application_name Referenced from: /Users/daniel/src/pa/pulseaudio/src/.libs/libpulsecommon-0.9.16.dylib Expected in: dynamic lookup (otool -L is similar to ldd on Linux) $ otool -L /Users/daniel/src/pa/pulseaudio/src/.libs/libpulsecommon-0.9.16.dylib /Users/daniel/src/pa/pulseaudio/src/.libs/libpulsecommon-0.9.16.dylib: /usr/local/lib/libpulsecommon-0.9.16.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/local/lib/libintl.8.dylib (compatibility version 9.0.0, current version 9.2.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) /usr/lib/libwrap.7.dylib (compatibility version 7.0.0, current version 7.6.0) /opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0) /opt/local/lib/libsndfile.1.dylib (compatibility version 2.0.0, current version 2.20.0) /opt/local/lib/libFLAC.8.dylib (compatibility version 11.0.0, current version 11.0.0) /opt/local/lib/libvorbisenc.2.dylib (compatibility version 3.0.0, current version 3.3.0) /opt/local/lib/libvorbis.0.dylib (compatibility version 5.0.0, current version 5.0.0) /opt/local/lib/libogg.0.dylib (compatibility version 6.0.0, current version 6.3.0) /opt/local/lib/libgdbm.3.dylib (compatibility version 4.0.0, current version 4.0.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) So it seams that libglib2 is missing in the linker list. Haven't debugged any further, hoping that someone has a solution already :) 2. The CoreAudio backend needs a clock for the internal ring buffer motor. There are two different possible aproaches. Either the audio driver clocks itself using a timer and then is the clock master to the user space. Or the user space appliction obtains the clock from PA and clocks the kernel module. I'm sure there is a clearly preferred way to go for PA, but I'm uncertain which one that is. And how is that handled for both directions? 3. Once the linker problem is solved, is anyone willing and able to care for the implementation of the CoreAudio source/sink modules (iow, using CoreAudio devices from PA)? Daniel