Patent ID: 8166194

Claim:
An article of manufacture comprising: a computer readable storage device; and computer-executable instructions stored on the computer readable storage device that, when executed by a computing device, program the computing device to perform operations including: writing audio data to a plurality of shared buffers, the writing being performed by a plurality of client applications of the computing device, wherein the writing is performed by a first of the client applications in response to receiving a signal from a thread-based signaling mechanism of an audio engine of the computing device, by a second of the client applications in response to receiving a signal from an event handle-based signaling mechanism of the audio engine, and by a third of the client applications in response to receiving a signal from a client timer signaling mechanism, each shared buffer is associated with one of the client applications, none of the plurality of shared buffers is associated with a lock, and sharing of the shared buffers occurs between the client application associated with each shared buffer and the audio engine; simultaneously reading, by the audio engine, audio data from multiple ones of the shared buffers; and issuing, periodically an audio engine signal to prompt the client applications to write more audio data to the shared buffers, wherein the signaling mechanisms of the audio engine enable lock-free reading and writing from the shared buffers, wherein the audio engine signal prompts one of the client applications to obtain a status of the shared buffer associated with that client application, and wherein one of the client applications decides not to write audio data to the shared buffer associated with the one of the client applications if the status indicates that the shared buffer includes a predetermined number of unread audio frames.