libcanberra [LSARC/2008/534 FastTrack timeout 08/27/2008]
Brian Cameron
Brian.Cameron at sun.com
Tue Aug 19 15:44:46 PDT 2008
All,
I am sponsoring this case for the JDS team in Ireland. The project
directory contains the attached proposal. I have set the timer for
Monday, August 27th, 2008.
This project proposes to integrate libcanberra into a Minor release of
Solaris (i.e., Nevada/Open Solaris). This library manages the playback
of audio events. These are the audio sounds that are played when you do
things like click on a widget.
The GNOME community recently decided that this new libcanberra audio
event library is now a hard dependency of gnome-control-center. The
GNOME desktop will not continue to work with the old libgnome
and ESD interfaces for playing desktop audio events.
We plan to integrate libcanberra along with GNOME 2.24 so that users
have no interruptions with their audio event experience.
Thanks,
Brian
-------- Original Message --------
Subject: libcanberra [LSARC/2008/534 FastTrack timeout 08/27/2008]
Date: Tue, 19 Aug 2008 15:37:48 -0700 (PDT)
From: Brian Cameron <bc99092 at sac.sfbay.sun.com>
To: LSARC at sac.sfbay.sun.com
CC: jds-dev at sun.com
Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
libcanberra
1.2. Name of Document Author/Supplier:
Author: Jerry Tan
1.3 Date of This Document:
19 August, 2008
4. Technical Description
1. Introduction
1.1. Project/Component Working Name:
libcanberra
1.2. Name of Document Author/Supplier:
Author: Jerry Tan
Sponsor:
1.3. Date of This Document:
18/08/2008
1.4. Name of Major Document Customer(s)/Consumer(s):
1.4.1. The PAC or CPT you expect to review your project:
Solaris PAC
1.4.2. The ARC(s) you expect to review your project:
LSARC
1.4.3. The Director/VP who is "Sponsoring" this project:
Robert O'Dea
1.4.4. The name of your business unit:
Software - OPG
1.5. Email Aliases:
1.5.1. Responsible Manager: leo.binchy at sun.com
1.5.2. Responsible Engineer: jerry.tan at sun.com
1.5.3. Interest List: jds-dev at sun.com
2. Project Summary
2.1. Project Description:
libcanberra is a desktop event sound library.
3. Business Summary
Sound effects are an important part of the usability of modern
desktops.
In the past, GNOME events have been managed by ESD, and managed by
libgnome.
The GNOME community has long been interested in deprecating the usage
of both ESD and libgnome, so this library is intended to be the
replacement.
The previous solution had a number of problems: a minimal set of
defined
sound events, no support for theming, and poor integration into
applications.
libcanberra has been introduced to resolve these problems.
4. Technical Description:
4.1. Details:
Similar to the XDG Icon Naming Specification and the XDG Icon Theme
Specification, the FreeDesktop.org community has been working to unify
event sounds on desktop, so they have created the XDG Sound Theme
Specification and the XDG Sound Name Specification. The intent is that
these two new specifications will be established as the future
standard for
sound event theming for free desktops.
The libcanberra library is a very small and lean implementation of these
specifications. It is also very powerful and provides a more rich
set of
interfaces.
An event sound is triggered via libcanberra by calling the
ca_context_play()
function on a previously created ca_context object. The
ca_context_play()
takes a list of key-value pairs that describe the event sound to
generate as
closely as possible. The most important property is CA_PROP_EVENT_ID
which
defines the XDG sound name for the sound to play.
Here is a code sample:
ca_context *c = NULL;
/* Create a context for the event sounds for your application */
ca_context_create(&c);
/* Set a few application-global properties */
ca_context_change_props(c,
CA_PROP_APPLICATION_NAME, "An example",
CA_PROP_APPLICATION_ID, "org.freedesktop.libcanberra.Test",
CA_PROP_APPLICATION_ICON_NAME, "libcanberra-test",
NULL);
/* ... */
/* Trigger an event sound */
ca_context_play(c, 0,
CA_PROP_EVENT_ID, "button-pressed", /* The XDG sound name */
CA_PROP_MEDIA_NAME, "The user pressed the button foobar",
CA_PROP_EVENT_MOUSE_X, "555",
CA_PROP_EVENT_MOUSE_Y, "666",
CA_PROP_WINDOW_NAME, "Foobar Dialog",
CA_PROP_WINDOW_ICON_NAME, "libcanberra-test-foobar-dialog",
CA_PROP_WINDOW_X11_DISPLAY, ":0",
CA_PROP_WINDOW_X11_XID, "4711",
NULL);
/* ... */
ca_context_destroy(&c);
To simplify libcanberra usage from a GTK+ program, GTK+ bindings are
provided by the libcanberra-gtk library.
The libcanberra GTK+ module library is used so that sounds
associated with
GTK+ widget events are played. In other words, by making sure that
all GTK+
based programs load this module, they will automatically support
sound event
theming according to the FreeDesktop specifications.
libcanberra supports ogg-vorbis for default system sounds since
ogg-vorbis
is a good free, compressed standard for desktop audio.
4.2. Interfaces:
Exported Interfaces
Interface Classification Comments
--------------- --------------
---------------------
SUNWlibcanberra Uncommitted the package
SUNWlibcanberra-devel Uncommitted the dev package
/usr/bin/canberra-gtk-play Volatile tool to play
event
sounds
/usr/lib/libcanberra-gtk.so.0.0.0 Volatile libcanberra
library
/usr/lib/libcanberra.so.0.0.0 Volatile libcanberra-gtk
library
/usr/lib/gtk-2.0/modules/ Volatile libcanberra GTK+
libcanberra-gtk-module.so module
/usr/lib/libcanberra/ Volatile Plugin directory
/usr/lib/libcanberra/sunaudio.so Volatile SunAudio back-end
plugin.
/usr/lib/pkgconfig/libcanberra-gtk.pc Volatile libcanberra
/usr/lib/pkgconfig/libcanberra.pc Volatile pkg-config files
/usr/include/canberra-gtk.h Volatile libcanberra-gtk
header file
/usr/include/canberra.h Volatile libcanberra
header
file
/usr/share/gnome/autostart Volatile login sound
/libcanberra-login-sound.desktop
/usr/share/gnome/shutdown Volatile logout sound
/libcanberra-logout-sound.sh
Imported Interfaces
Interface Classification Comments
--------- -------------- --------
OGG/Vorbis Volatile LSARC/2008/510
GTK+ Uncommitted LSARC/2008/510
SATA (Sun Audio) Committed PSARC/2001/226
4.3. Doc Impact:
Man page is needed.
4.4. Packaging & Delivery:
SUNWlibcanberra - the package for libcanberra
SUNWlibcanberra-devel - the dev package for libcanberra
4.5. Dependencies:
4.6. L10N Impact:
The Desktop team is working with the G11N to evaluate and provide
I18N/L10N support
4.7 Security Impact:
None.
5. Reference Documents:
http://0pointer.de/blog/projects/sixfold-announcement.html
http://0pointer.de/public/sound-theme-spec.html
http://0pointer.de/public/sound-naming-spec.html
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
GNOME
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open
More information about the opensolaris-arc
mailing list