Difference between revisions of "Libcanberra"
m (→See also: update reference manual URL) |
(simplify summary) |
||
Line 1: | Line 1: | ||
[[Category:Development]] | [[Category:Development]] | ||
{{Article summary start|Summary}} | {{Article summary start|Summary}} | ||
− | {{Article summary text|This article discusses how to install and configure libcanberra | + | {{Article summary text|This article discusses how to install and configure libcanberra.}} |
{{Article summary heading|Related}} | {{Article summary heading|Related}} | ||
{{Article summary wiki|GTK+}} | {{Article summary wiki|GTK+}} |
Revision as of 13:25, 4 September 2012
Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end
Libcanberra is a simple abstract interface for playing event sounds. It implements the XDG Sound Theme and Naming Specifications for generating event sounds on free desktops, such as GNOME. Further description here
Contents
Installation
Libcanberra can be installed with the package libcanberra, available in the Official Repositories. It contains the library and a GTK+ module.
You have to choose a backend to play sounds:
- ALSA backend is included in libcanberra package
- GStreamer backend can be installed with package libcanberra-gstreamer, available in the Official Repositories.
- PulseAudio backend can be installed with package libcanberra-pulse, available in the Official Repositories.
- OSS backend can be installed with the package libcanberra-ossAUR, available in the Arch User Repository.
Also, you have to install a sound theme in order to hear any event sound:
- The default sound theme is 'freedesktop', which can be installed with the package sound-theme-freedesktop, available in the Official Repositories.
- Alternatively, you can install ubuntu-soundsAUR, available in the Arch User Repository.
Configuration
By default, the GTK+ module is loaded automatically, when a GTK+ application launched. You can overwrite default settings in user's GtkSettings file:
$HOME/.gtkrc-2.0 and $XDG_CONFIG_HOME/gtk-3.0/settings.ini
gtk-enable-event-sounds=true gtk-enable-input-feedback-sounds=true gtk-sound-theme-name=freedestop
In GNOME, these settings are managed by gnome-settings-daemon, and the configuration is available in GSettings under org.gnome.desktop.sound schema.
Tips and tricks
Write your own canberra app
You can write your own libcanberra sound events easily in some programming languages, or you can simply use bash.
Bash
- Dependency: libcanberra
hallo_world.sh
#!/bin/bash canberra-gtk-play -i phone-incoming-call -d "Hallo world"
C
- Dependency: libcanberra
- Build with:
gcc hallo_world.c -o hallo_world `pkg-config --cflags --libs glib-2.0 libcanberra`
hallo_world.c
#include <glib.h> #include <canberra.h> void main () { ca_context * Hallo; ca_context_create (&Hallo); ca_context_play (Hallo, 0, CA_PROP_EVENT_ID, "phone-incoming-call", CA_PROP_EVENT_DESCRIPTION, "Hallo world", NULL); g_usleep (2000000); }
Genie
- Dependency: libcanberra
- Makedependency: vala
- Build with:
valac --pkg libcanberra hallo_world.gs
hallo_world.gs
uses Canberra init Hallo: Context Context.create(out Hallo) Hallo.play (0, PROP_EVENT_ID, "phone-incoming-call", PROP_EVENT_DESCRIPTION, "Hallo world") Thread.usleep (2000000)
Vala
- Dependency: libcanberra
- Makedependency: vala
- Build with:
valac --pkg libcanberra hallo_world.vala
hallo_world.vala
using Canberra; public class HalloWorld { static void main () { Context Hallo; Context.create(out Hallo); Hallo.play (0, PROP_EVENT_ID, "phone-incoming-call", PROP_EVENT_DESCRIPTION, "Hallo world"); Thread.usleep (2000000); } }