All, Please find attached a conceptual new API between the audio service and whatever audio framework we have (ALSA, GStreamer, PulseAudio, or whatever). :-) This new API would be defined under LGPL, so that guys like me can use it for some in house closed source projects( Luiz, and Johan, i hope that's OK with you :-) ). The principles of the API are the following: - define a set of messages (that would be the functions in traditionnal C programming) - define a set of structs, *one per message* (that would be the list of arguments in traditionnal C programming). - define a reduced set of a few helper functions to bootstrap the message exchange process, as well as to retrieve the data fd through ancilliary data. The usage of the API should be relatively straightforward : you would use bz_audio_service_open() to retrieve the file descriptor, and then integrated it in your main loop or whatever. Then you would read fixed size data chunks that you would cast to t_bz_audio_msg_header to retrieve the message type. Once you have the message type, you would cast again the result to a structure that matches the message name, and obtain the list of parameters that are relevant for this message. I didn't want to bring more features in the API as otherwise we would start to implement toolkit-dependant behaviours (such as need a mainloop, or a need for GLIB, or ...) I think this API is a lot easier to maintain in the long term that what we have today, where structure are shared between messages, and some messages have more that one data structure. :-) If we can reach an agreement quite rapidly (that would mean today :-)), then i could start implementing it right away and hopefully have a mostly working implementation on sunday night. As always, comments are welcomed ! Cheers, Fabien