Difference between revisions of "Libcanberra"

From ArchWiki
Jump to: navigation, search
(Apply style guides)
m
Line 16: Line 16:
 
*Alternatively, you can install {{AUR|ubuntu-sounds}} from AUR, available in the [[Arch User Repository]].
 
*Alternatively, you can install {{AUR|ubuntu-sounds}} from AUR, available in the [[Arch User Repository]].
  
==Tips & Tricks==
+
==Tips and tricks==
  
 
===Write your own canberra app===
 
===Write your own canberra app===
Line 71: Line 71:
 
}</nowiki>}}
 
}</nowiki>}}
  
==More Resources==
+
==See also==
 
*[http://developer.gnome.org/libcanberra/0.28/ Libcanberra Reference Manual]
 
*[http://developer.gnome.org/libcanberra/0.28/ Libcanberra Reference Manual]

Revision as of 06:33, 4 November 2011

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

Installation

Libcanberra can be installed with the package libcanberra, available in the Official Repositories.

You have to choose a backend to play sounds:

Also, you have to install a sound theme in order to hear any event sound:

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

hallo_world.sh
#!/bin/bash
canberra-gtk-play -i phone-incoming-call -d "Hallo world"

C

  • Dependency: libcanberra
  • Build with: gcc -o hallo_world `pkg-config --cflags --libs glib-2.0 libcanberra` hallo_world.c
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);
	}
}

See also