Skip to content

Pure-Go (no libpulse) implementation of the PulseAudio native protocol.

License

Notifications You must be signed in to change notification settings

The-Jonsey/pulseaudio

 
 

Repository files navigation

pulseaudio GoDoc

Package pulseaudio is a pure-Go (no libpulse) implementation of the PulseAudio native protocol.

Download:

go get github.com/the-jonsey/pulseaudio

Package pulseaudio is a pure-Go (no libpulse) implementation of the PulseAudio native protocol.

This library is a fork of https://github.com/mafik/pulseaudio The original library deliberately tries to hide pulseaudio internals and doesn't expose them.

Rather than exposing the PulseAudio protocol directly this library attempts to hide the PulseAudio complexity behind a Go interface. Some of the things which are deliberately not exposed in the API are:

→ backwards compatibility for old PulseAudio servers

→ transport mechanism used for the connection (Unix sockets / memfd / shm)

→ encoding used in the pulseaudio-native protocol

→ wors with pipewire as long as pipewire-pulse is installed and running

Working features

Querying and setting the volume.

Querying and setting mute.

Listing audio sinks/sources/outputs/inputs.

Changing the default audio output.

Notifications on config updates.

Filtering config update notifications by event type.

About

Pure-Go (no libpulse) implementation of the PulseAudio native protocol.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%