pulseaudio is a simple library that controls a pulseaudio server through its D-Bus interface.
- Control your audio cards and streams in pure go.
- Native implementation of the pulseaudio D-Bus protocol.
- Small lib pretty close to the DBus API rather than trying to abstract everything.
- Splitted interface to allow clients to implement only what they need.
- Test coverage 86%, missing 9 lines in errors paths harder to test.
- Only one dependency, the dbus library: github.com/godbus/dbus
- Permissive software licence: ISC
This packages requires Go 1.7 (for the dbus lib). If you installed it and set up your GOPATH, just run:
go get -u github.com/sqp/pulseaudio
The complete package documentation is available at godoc.org. See also:
- The package example with a short overview of the basic usage.
- A real use in a cairo-dock applet.
You will have to enable the dbus module of your pulseaudio server.
This can now be done with pulseaudio.LoadModule()
function (requires the pacmd command, in package pulseaudio-utils
on debian).
or as a permanent config by adding this line in /etc/pulse/default.pa
load-module module-dbus-protocol
If system-wide daemon mode is used, the file to edit is /etc/pulse/system.pa
- The base API has been stable for years and there's no plan to improve it for now.
- A higher level API could be designed to cover simple frequent needs. Open an issue to discuss it if you want.
- The lib may at some point move to a community repo. This could be an opportunity to change a little the API, so we'll need some feedback.
Please open an issue or submit a pull request if:
- You tried or use this library, let us know if you saw things to improve, especially in the doc if you're a native English speaker.
- You want your code to be listed as example.