Copyright 2008-2012 Lennart Poettering <mzyvopnaoreen (at) 0pointer (dot) de>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
Version 0.30 released; Port to GStreamer 1.0.
Version 0.29 released; A couple of bugfixes, drop GConf usage.
Version 0.28 released; Hook properly into GNOME 3.0 sessions; this drops support for GNOME 2.0 sessions, but not applications.
Version 0.27 released; Gtk+ 3.x fixes; add new tool to implement boot-up sounds when used with systemd; other fixes
Version 0.26 released; Gtk+ 3.x fixes.
Version 0.25 released; Optionally build with Gtk+ 3.x in addition to Gtk+ 2.x.
Version 0.24 released; GTK code is now fine with GSEAL. Minor fixes in the PulseAudio backend, other fixes.
Version 0.23 released; various minor fixes in the pulse and gstreamer backends as well in the Vala API. Support for the recently standardized Vorbis 6.1/7.1 multichannel modes.
Version 0.22 released; small fix to make sure we don't dereference a null pointer.
Version 0.21 released; suppress casting warning
Version 0.20 released; minor casting fix
Version 0.19 released; some important fixes for the Gtk support
Version 0.18 released; numerous updates for the Gtk support
Version 0.17 released; add vala vapi file; numerous updates to Gtk support
Version 0.16 released; add new ca_context_playing() call
Version 0.15 released; bug fixes
Version 0.14 released; bug fixes
Version 0.13 released; multichannel support; gtk multihead support; bug fixes
Version 0.12 released; changes include: various fixes and updates for the PulseAudio backend; detect forks and return an error for all functions in that case
Version 0.11 released; changes include: major GStreamer backend fixes; update to libtool 2.2; a few other fixes
Version 0.10 released; changes include: install Gtk+ module using GConf; a few other fixes
Version 0.9 released; changes include: GStreamer fixes, include (optional) libtdb based lookup cache.
Version 0.8 released; changes include: new OSS and GStreamer backend; portability fixes for FreeBSD/Solaris; the multi backend works now
Version 0.7 released; changes include: documentation updates; various bug fixes; add this web site/README; allow playback of event sounds with only a sound file path specified; other changes
libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops, such as GNOME. It comes with several backends (ALSA, PulseAudio, OSS, GStreamer, null) and is designed to be portable. It consists of the following parts:
For more information see the original announcement.
libcanberra is mostly feature complete. For now however it includes backends only for ALSA, PulseAudio, OSS and GStreamer.
libcanberra has been declared a blessed GNOME dependency.
The OSS driver is incomplete: only sound files that are in a format natively understood by the sound card are supported. If the sample type, channel map or sampling rate of the sound file are not supported by the sound card no automatic conversion will take place and the file will not be played. Also note that the OSS backend is most likely incompatible with OSS4, due to subtle incompatibilities between OSS4 and the OSS 3.x.
It is recommended to always take the "shortest" path from libcanberra to the audio device. I.e. don't use the GStreamer plugin if libcanberra supports the final output target natively. Besides being more resource-friendly and less error-prone, some advanced functionality might get lost with each layer you add to your stack. For example: while you could use libcanberra's Gstreamer backend to output to a PulseAudio server this will not be able to make use of sample cacheing or will be able to attach additional meta data to the sounds played, which might be necessary for effects like positional event sounds.
You may browse the gtkdoc generated programing documentation of the API.
Currently, libcanberra is tested on Linux only.
libcanberra was developed and tested on Fedora Rawhide from August 2008, it should work on most other Linux distributions (and maybe Unix versions) since it uses GNU autoconf and GNU libtool for source code configuration and shared library management.
libcanberra has no dependencies besides the OGG Vorbis development headers and whatever the selected backends require. Gtk+ support is optional. An optional lookup cache can be used if Samba's tdb trivial database is available.
As this package is made with the GNU autotools you should run ./configure inside the distribution directory for configuring the source tree. After that you should run make for compilation and make install (as root) for installation of libcanberra.
Marc-André Lureau and Brian Cameron for the GStreamer backend.
Joe Marcus Clarke for the OSS backend.
Diego Elio Pettenò for various build system fixes.
The newest release is always available from http://0pointer.de/lennart/projects/libcanberra/
The current release is 0.30
Get libcanberra's development sources from the GIT repository (gitweb):
git clone git://git.0pointer.de/libcanberra
If you want to report bugs, have questions or want to be notified about new releases, please join the libcanberra-discuss mailing list.
If you want to be notified about new git commits, please join the libcanberra-commits mailing list.
libcanberra's bugs are tracked at bugs.freedesktop.org.