pulse-simple
============

Cgo bindings to PulseAudio's Simple API,
for easily playing or capturing raw audio.

usage
-----

Basic usage is to request a playback or capture stream,
then write bytes to or read bytes from it.

Reading and writing will block until the given byte slice
is completely consumed or filled, or an error occurs.

The format of the data will be as requested on stream creation.

For example, assuming "data" contains raw bytes representing stereo int16 data
in little-endian format, the following will obtain a playback stream
and play the given data as audio on the default sound device.

    ss := pulse.SampleSpec{pulse.SAMPLE_S16LE, 44100, 2}
    stream, _ := pulse.Playback("my app", "my stream", &ss)
    defer stream.Free()
    defer stream.Drain()
    stream.Write(data)

More example usage can be found in the examples folder.

For more information, see the PulseAudio Simple API documentation at
http://www.freedesktop.org/software/pulseaudio/doxygen/simple.html

todo
----

 * channel maps and buffer attributes for streams
 * proper error reporting

license
-------

MIT (see the included LICENSE file for full license text)

authors
-------

Thomas Iorns <mesilliac@tomanui.net.nz>


pulse-simple
============

Cgo bindings to PulseAudio's Simple API,
for easily playing or capturing raw audio.

usage
-----

Basic usage is to request a playback or capture stream,
then write bytes to or read bytes from it.

Reading and writing will block until the given byte slice
is completely consumed or filled, or an error occurs.

The format of the data will be as requested on stream creation.

For example, assuming "data" contains raw bytes representing stereo int16 data
in little-endian format, the following will obtain a playback stream
and play the given data as audio on the default sound device.

    ss := pulse.SampleSpec{pulse.SAMPLE_S16LE, 44100, 2}
    stream, _ := pulse.Playback("my app", "my stream", &ss)
    defer stream.Free()
    defer stream.Drain()
    stream.Write(data)

More example usage can be found in the examples folder.

For more information, see the PulseAudio Simple API documentation at
http://www.freedesktop.org/software/pulseaudio/doxygen/simple.html

todo
----

 * channel maps and buffer attributes for streams (medium)
 * proper error reporting (easy)

license
-------

MIT (see the included LICENSE file for full license text)

authors
-------

Thomas Iorns <mesilliac@tomanui.net.nz>


Add difficulty estimates to todo list.
Add difficulty estimates to todo list.
