diff options
author | Jens Granseuer <jensgr@gmx.net> | 2008-10-29 18:33:24 +0000 |
---|---|---|
committer | Jens Granseuer <jensg@src.gnome.org> | 2008-10-29 18:33:24 +0000 |
commit | e66924b7139d0dff25938ab6d3a0a6f215b57473 (patch) | |
tree | ec496fc6fc2344eb838d57f212c7ecbf39131a12 | |
parent | e7143c9b5cbdd178d95921150d1cc0db2ffd437c (diff) | |
download | gnome-settings-daemon-e66924b7139d0dff25938ab6d3a0a6f215b57473.tar.gz |
Remove ESD-based sound plugin (bug #557806). This means that g-s-d will no
2008-10-29 Jens Granseuer <jensgr@gmx.net>
Remove ESD-based sound plugin (bug #557806). This means that g-s-d
will no longer start a sound server (esd or PulseAudio) at session
startup. This should be handled using the autostart mechanism of
gnome-session instead.
* configure.ac:
* plugins/Makefile.am:
* plugins/sound/Makefile.am:
* plugins/sound/gsd-sound-manager.c:
* plugins/sound/gsd-sound-manager.h:
* plugins/sound/gsd-sound-plugin.c:
* plugins/sound/gsd-sound-plugin.h:
* plugins/sound/sound.gnome-settings-plugin.in:
remove sound plugin
svn path=/trunk/; revision=568
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | configure.ac | 51 | ||||
-rw-r--r-- | plugins/Makefile.am | 1 | ||||
-rw-r--r-- | plugins/sound/Makefile.am | 47 | ||||
-rw-r--r-- | plugins/sound/gsd-sound-manager.c | 521 | ||||
-rw-r--r-- | plugins/sound/gsd-sound-manager.h | 57 | ||||
-rw-r--r-- | plugins/sound/gsd-sound-plugin.c | 104 | ||||
-rw-r--r-- | plugins/sound/gsd-sound-plugin.h | 59 | ||||
-rw-r--r-- | plugins/sound/sound.gnome-settings-plugin.in | 8 |
9 files changed, 17 insertions, 848 deletions
@@ -1,3 +1,20 @@ +2008-10-29 Jens Granseuer <jensgr@gmx.net> + + Remove ESD-based sound plugin (bug #557806). This means that g-s-d + will no longer start a sound server (esd or PulseAudio) at session + startup. This should be handled using the autostart mechanism of + gnome-session instead. + + * configure.ac: + * plugins/Makefile.am: + * plugins/sound/Makefile.am: + * plugins/sound/gsd-sound-manager.c: + * plugins/sound/gsd-sound-manager.h: + * plugins/sound/gsd-sound-plugin.c: + * plugins/sound/gsd-sound-plugin.h: + * plugins/sound/sound.gnome-settings-plugin.in: + remove sound plugin + 2008-10-29 Rodrigo Moya <rodrigo@gnome-db.org> * plugins/screensaver/gsd-screensaver-manager.c diff --git a/configure.ac b/configure.ac index d8d2af7e..70d569f3 100644 --- a/configure.ac +++ b/configure.ac @@ -216,37 +216,6 @@ AC_SUBST(LIBGNOMEKBD_CFLAGS) AC_SUBST(LIBGNOMEKBD_LIBS) dnl ============================================== -dnl Esd section -dnl ============================================== - -AC_ARG_ENABLE(esd, - AC_HELP_STRING([--disable-esd], - [turn off ESD audio support]), - [case "${enableval}" in - yes) WANT_ESD=yes ;; - no) WANT_ESD=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-esd) ;; - esac], - [WANT_ESD=yes]) dnl Default value - -if test x$WANT_ESD = xyes ; then - PKG_CHECK_MODULES(ESD, esound >= 0.2.28, - AC_DEFINE(HAVE_ESD, 1, [Define if ESD sound server should be used]), - AC_MSG_RESULT([disabled])) - - GSD_ESD_LOCATION=`pkg-config esound --variable=esd_serverdir` - if test "x$GSD_ESD_LOCATION" != "x"; then - # Add slash so that if the ESD pkgconfig file does not - # specify esd_serverdir, g-s-d will look in the PATH - GSD_ESD_LOCATION="$GSD_ESD_LOCATION/" - fi -fi - -AC_SUBST(ESD_CFLAGS) -AC_SUBST(ESD_LIBS) -AC_SUBST(ESD_LOCATION) - -dnl ============================================== dnl GStreamer section dnl ============================================== GST_MAJORMINOR=auto @@ -337,23 +306,6 @@ fi AM_CONDITIONAL(HAVE_ALSA, test x"$have_alsa" = "xyes") # --------------------------------------------------------------------------- -# Enable Legacy Sound Preference -# --------------------------------------------------------------------------- -PKG_CHECK_MODULES(PULSEAUDIO, libpulse, have_pulseaudio=yes, have_pulseaudio=no) -if test x$have_pulseaudio = xyes; then - default_enable_legacy_sound_pref=no -else - default_enable_legacy_sound_pref=yes -fi -AC_ARG_ENABLE(legacy-sound-pref, - [AC_HELP_STRING([--enable-legacy-sound-pref], - [check for preference to start ESD])], - ,enable_legacy_sound_pref=$default_enable_legacy_sound_pref) -if test "x$enable_legacy_sound_pref" = "xyes"; then - AC_DEFINE(ENABLE_LEGACY_SOUND_PREF,1,[enable preference for ESD startup]) -fi - -# --------------------------------------------------------------------------- # Enable Profiling # --------------------------------------------------------------------------- AC_ARG_ENABLE(profiling, @@ -453,8 +405,6 @@ plugins/media-keys/Makefile plugins/media-keys/actions/Makefile plugins/mouse/Makefile plugins/screensaver/Makefile -plugins/sound/Makefile -plugins/sound/libsounds/Makefile plugins/typing-break/Makefile plugins/xrandr/Makefile plugins/xrdb/Makefile @@ -495,7 +445,6 @@ echo " OSS support: ${have_oss} ALSA support: ${have_alsa} GStreamer support: ${have_gstreamer} - ESD support: ${WANT_ESD} Profiling support: ${enable_profiling} " diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 2d33061d..6796dcdb 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -13,7 +13,6 @@ SUBDIRS = \ media-keys \ mouse \ screensaver \ - sound \ typing-break \ xrandr \ xrdb \ diff --git a/plugins/sound/Makefile.am b/plugins/sound/Makefile.am deleted file mode 100644 index 1e6a1d40..00000000 --- a/plugins/sound/Makefile.am +++ /dev/null @@ -1,47 +0,0 @@ -SUBDIRS = libsounds - -plugin_LTLIBRARIES = \ - libsound.la - -libsound_la_SOURCES = \ - gsd-sound-plugin.h \ - gsd-sound-plugin.c \ - gsd-sound-manager.h \ - gsd-sound-manager.c - -libsound_la_CPPFLAGS = \ - -I$(top_srcdir)/gnome-settings-daemon \ - -I$(top_srcdir)/plugins/sounds/libsounds \ - -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \ - $(AM_CPPFLAGS) - -libsound_la_CFLAGS = \ - -DESD_LOCATION=\"$(ESD_LOCATION)\" \ - $(SETTINGS_PLUGIN_CFLAGS) \ - $(GNOME_CFLAGS) \ - $(ESD_CFLAGS) \ - $(AM_CFLAGS) - -libsound_la_LDFLAGS = \ - $(GSD_PLUGIN_LDFLAGS) - -libsound_la_LIBADD = \ - $(top_builddir)/plugins/sound/libsounds/libsounds.la \ - $(SETTINGS_PLUGIN_LIBS) \ - $(ESD_LIBS) - -plugin_in_files = \ - sound.gnome-settings-plugin.in - -plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin) - -EXTRA_DIST = \ - $(plugin_in_files) - -CLEANFILES = \ - $(plugin_DATA) - -DISTCLEANFILES = \ - $(plugin_DATA) - -@GSD_INTLTOOL_PLUGIN_RULE@ diff --git a/plugins/sound/gsd-sound-manager.c b/plugins/sound/gsd-sound-manager.c deleted file mode 100644 index ddaf90f2..00000000 --- a/plugins/sound/gsd-sound-manager.c +++ /dev/null @@ -1,521 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - * - * Copyright © 2001 Ximian, Inc. - * Copyright (C) 2007 William Jon McCann <mccann@jhu.edu> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - */ - -#include "config.h" - -#include <sys/types.h> -#include <sys/wait.h> -#include <stdlib.h> -#include <stdio.h> -#include <unistd.h> -#include <string.h> -#include <errno.h> - -#include <locale.h> - -#include <glib.h> -#include <glib/gi18n.h> -#include <gdk/gdk.h> -#include <gdk/gdkx.h> -#include <gtk/gtk.h> -#include <gconf/gconf-client.h> - -#ifdef HAVE_ESD -# include <esd.h> -#endif - -#include <libgnome/gnome-sound.h> -#include <libgnome/gnome-exec.h> -#include <libgnome/gnome-program.h> -#include "libsounds/sound-properties.h" - -#include "gsd-sound-manager.h" -#include "gnome-settings-profile.h" - -#define GSD_SOUND_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_SOUND_MANAGER, GsdSoundManagerPrivate)) - -struct GsdSoundManagerPrivate -{ - /* esd/PulseAudio pid */ - GPid pid; - guint child_watch_id; - - gboolean inited; - guint notify; -}; - -#define GCONF_SOUND_DIR "/desktop/gnome/sound" - -static void gsd_sound_manager_class_init (GsdSoundManagerClass *klass); -static void gsd_sound_manager_init (GsdSoundManager *sound_manager); -static void gsd_sound_manager_finalize (GObject *object); - -G_DEFINE_TYPE (GsdSoundManager, gsd_sound_manager, G_TYPE_OBJECT) - -static gpointer manager_object = NULL; - -static void -reset_esd_pid (GPid pid, - int status, - GsdSoundManager *manager) -{ - g_debug ("GsdSoundManager: **** child (pid:%d) done (%s:%d)", - (int) pid, - WIFEXITED (status) ? "status" - : WIFSIGNALED (status) ? "signal" - : "unknown", - WIFEXITED (status) ? WEXITSTATUS (status) - : WIFSIGNALED (status) ? WTERMSIG (status) - : -1); - - if (pid == manager->priv->pid) { - manager->priv->pid = 0; - } - - g_spawn_close_pid (manager->priv->pid); - manager->priv->child_watch_id = 0; -} - -static gboolean -start_gnome_sound (GsdSoundManager *manager) -{ - char *argv[] = { ESD_LOCATION "esd", "-nobeeps", NULL}; - GError *error; - gboolean res; - time_t starttime; - gboolean ret; - - ret = FALSE; - - gnome_settings_profile_start (NULL); - - error = NULL; - res = g_spawn_async (NULL, - argv, - NULL, - G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, - NULL, - NULL, - &manager->priv->pid, - &error); - if (! res) { - g_printerr ("Could not start esd: %s\n", error->message); - g_error_free (error); - goto out; - } - - manager->priv->child_watch_id = g_child_watch_add (manager->priv->pid, - (GChildWatchFunc)reset_esd_pid, - manager); - - starttime = time (NULL); - gnome_sound_init (NULL); - - while (gnome_sound_connection_get () < 0 - && ((time (NULL) - starttime) < 4)) { - g_usleep (200); - gnome_sound_init (NULL); - } - - ret = gnome_sound_connection_get () >= 0; - - out: - gnome_settings_profile_end (NULL); - - return ret; -} - -static int -wait_on_child (int pid) -{ - int status; - - wait_again: - if (waitpid (pid, &status, 0) < 0) { - if (errno == EINTR) { - goto wait_again; - } else if (errno == ECHILD) { - ; /* do nothing, child already reaped */ - } else { - g_debug ("GsdSoundManager: waitpid () should not fail"); - } - } - - return status; -} - -static void -stop_child (GsdSoundManager *manager) -{ - int exit_status; - - if (manager->priv->pid <= 0) { - return; - } - - if (manager->priv->child_watch_id > 0) { - g_source_remove (manager->priv->child_watch_id); - manager->priv->child_watch_id = 0; - } - - if (kill (manager->priv->pid, SIGTERM) == -1) { - g_printerr ("Failed to kill esd (pid %d)\n", manager->priv->pid); - return; - } - - exit_status = wait_on_child (manager->priv->pid); - - g_spawn_close_pid (manager->priv->pid); - manager->priv->pid = -1; -} - -#ifdef HAVE_ESD -static gboolean set_esd_standby = TRUE; -#endif - -static void -stop_gnome_sound (GsdSoundManager *manager) -{ -#ifdef HAVE_ESD - /* Can't think of a way to do this reliably, so we fake it for now */ - esd_standby (gnome_sound_connection_get ()); - set_esd_standby = TRUE; -#else - gnome_sound_shutdown (); - - stop_child (manager); -#endif -} - -struct reload_foreach_closure { - gboolean enable_system_sounds; -}; - -/* reload_foreach_cb - * - * For a given SoundEvent, reload the sound file associate with the event. - */ -static void -reload_foreach_cb (SoundEvent *event, gpointer data) -{ - struct reload_foreach_closure *closure; - char *key, *file; - int sid; - gboolean do_load; - - closure = data; - - gnome_settings_profile_start (NULL); - - key = sound_event_compose_key (event); - -#ifdef HAVE_ESD - /* We need to free up the old sample, because - * esd allows multiple samples with the same name, - * putting memory to waste. */ - sid = esd_sample_getid (gnome_sound_connection_get (), key); - if (sid >= 0) { - esd_sample_free (gnome_sound_connection_get (), sid); - } -#endif - /* We only disable sounds for system events. Other events, like sounds - * in games, should be preserved. The games should have their own - * configuration for sound anyway. - */ - if ((strcmp (event->category, "gnome-2") == 0 - || strcmp (event->category, "gtk-events-2") == 0)) { - do_load = closure->enable_system_sounds; - } else { - do_load = TRUE; - } - - if (!do_load) { - goto out; - } - - if (!event->file || !strcmp (event->file, "")) { - goto out; - } - - if (event->file[0] == '/') { - file = g_strdup (event->file); - } else { - file = gnome_program_locate_file (NULL, - GNOME_FILE_DOMAIN_SOUND, - event->file, TRUE, NULL); - } - - if (!file) { - goto out; - } - - sid = gnome_sound_sample_load (key, file); - - if (sid < 0) { - g_warning (_("Couldn't load sound file %s as sample %s"), - file, key); - } - - g_free (file); - - out: - gnome_settings_profile_end (NULL); - - g_free (key); -} - -static void -apply_settings (GsdSoundManager *manager) -{ - GConfClient *client; - gboolean enable_sound; - gboolean event_sounds; - struct reload_foreach_closure closure; - - gnome_settings_profile_start (NULL); - - client = gconf_client_get_default (); - - /* The "preference" here was just around because ESD introduced tradeoffs and was generally - poor software. Pulseaudio is better and notably releases the sound device when not in - use, so should have no impact for legacy applications. The reason we don't actually want - to even read from the preference is because someone may have set it to false intending - to disable ESD, but they will then disable Pulseaudio later. - https://bugzilla.redhat.com/show_bug.cgi?id=430624 - */ -#ifdef ENABLE_LEGACY_SOUND_PREF - enable_sound = gconf_client_get_bool (client, "/desktop/gnome/sound/enable_esd", NULL); -#else - enable_sound = TRUE; -#endif - event_sounds = gconf_client_get_bool (client, "/desktop/gnome/sound/event_sounds", NULL); - - closure.enable_system_sounds = event_sounds; - - if (enable_sound) { - if (gnome_sound_connection_get () < 0) { - if (!start_gnome_sound (manager)) { - goto out; - } - } -#ifdef HAVE_ESD - else if (set_esd_standby) { - esd_resume (gnome_sound_connection_get ()); - set_esd_standby = FALSE; - } -#endif - } else { -#ifdef HAVE_ESD - if (! set_esd_standby) -#endif - stop_gnome_sound (manager); - } - - if (enable_sound && !manager->priv->inited) { - SoundProperties *props; - - manager->priv->inited = TRUE; - props = sound_properties_new (); - sound_properties_add_defaults (props, NULL); - sound_properties_foreach (props, reload_foreach_cb, &closure); - gtk_object_destroy (GTK_OBJECT (props)); - } - out: - gnome_settings_profile_end (NULL); - -} - -static guint -register_config_callback (GsdSoundManager *manager, - const char *path, - GConfClientNotifyFunc func) -{ - GConfClient *client; - guint notify; - - client = gconf_client_get_default (); - - gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_NONE, NULL); - notify = gconf_client_notify_add (client, path, func, manager, NULL, NULL); - - g_object_unref (client); - return notify; -} - -static void -sound_callback (GConfClient *client, - guint cnxn_id, - GConfEntry *entry, - GsdSoundManager *manager) -{ - apply_settings (manager); -} - -gboolean -gsd_sound_manager_start (GsdSoundManager *manager, - GError **error) -{ - g_debug ("Starting sound manager"); - - gnome_settings_profile_start (NULL); - - manager->priv->notify = - register_config_callback (manager, - GCONF_SOUND_DIR, - (GConfClientNotifyFunc) sound_callback); - apply_settings (manager); - - gnome_settings_profile_end (NULL); - - return TRUE; -} - -void -gsd_sound_manager_stop (GsdSoundManager *manager) -{ - GsdSoundManagerPrivate *p = manager->priv; - - g_debug ("Stopping sound manager"); - - if (p->notify != 0) { - GConfClient *client = gconf_client_get_default (); - gconf_client_remove_dir (client, GCONF_SOUND_DIR, NULL); - gconf_client_notify_remove (client, p->notify); - g_object_unref (client); - p->notify = 0; - } - - stop_gnome_sound (manager); - p->inited = FALSE; -} - -static void -gsd_sound_manager_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - GsdSoundManager *self; - - self = GSD_SOUND_MANAGER (object); - - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gsd_sound_manager_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GsdSoundManager *self; - - self = GSD_SOUND_MANAGER (object); - - switch (prop_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static GObject * -gsd_sound_manager_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam *construct_properties) -{ - GsdSoundManager *sound_manager; - GsdSoundManagerClass *klass; - - klass = GSD_SOUND_MANAGER_CLASS (g_type_class_peek (GSD_TYPE_SOUND_MANAGER)); - - sound_manager = GSD_SOUND_MANAGER (G_OBJECT_CLASS (gsd_sound_manager_parent_class)->constructor (type, - n_construct_properties, - construct_properties)); - - return G_OBJECT (sound_manager); -} - -static void -gsd_sound_manager_dispose (GObject *object) -{ - GsdSoundManager *manager; - - manager = GSD_SOUND_MANAGER (object); - - stop_child (manager); - - G_OBJECT_CLASS (gsd_sound_manager_parent_class)->dispose (object); -} - -static void -gsd_sound_manager_class_init (GsdSoundManagerClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->get_property = gsd_sound_manager_get_property; - object_class->set_property = gsd_sound_manager_set_property; - object_class->constructor = gsd_sound_manager_constructor; - object_class->dispose = gsd_sound_manager_dispose; - object_class->finalize = gsd_sound_manager_finalize; - - g_type_class_add_private (klass, sizeof (GsdSoundManagerPrivate)); -} - -static void -gsd_sound_manager_init (GsdSoundManager *manager) -{ - manager->priv = GSD_SOUND_MANAGER_GET_PRIVATE (manager); - -} - -static void -gsd_sound_manager_finalize (GObject *object) -{ - GsdSoundManager *sound_manager; - - g_return_if_fail (object != NULL); - g_return_if_fail (GSD_IS_SOUND_MANAGER (object)); - - sound_manager = GSD_SOUND_MANAGER (object); - - g_return_if_fail (sound_manager->priv != NULL); - - G_OBJECT_CLASS (gsd_sound_manager_parent_class)->finalize (object); -} - -GsdSoundManager * -gsd_sound_manager_new (void) -{ - if (manager_object != NULL) { - g_object_ref (manager_object); - } else { - manager_object = g_object_new (GSD_TYPE_SOUND_MANAGER, NULL); - g_object_add_weak_pointer (manager_object, - (gpointer *) &manager_object); - } - - return GSD_SOUND_MANAGER (manager_object); -} diff --git a/plugins/sound/gsd-sound-manager.h b/plugins/sound/gsd-sound-manager.h deleted file mode 100644 index b14a3334..00000000 --- a/plugins/sound/gsd-sound-manager.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - * - * Copyright (C) 2007 William Jon McCann <mccann@jhu.edu> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - */ - -#ifndef __GSD_SOUND_MANAGER_H -#define __GSD_SOUND_MANAGER_H - -#include <glib-object.h> - -G_BEGIN_DECLS - -#define GSD_TYPE_SOUND_MANAGER (gsd_sound_manager_get_type ()) -#define GSD_SOUND_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_SOUND_MANAGER, GsdSoundManager)) -#define GSD_SOUND_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_SOUND_MANAGER, GsdSoundManagerClass)) -#define GSD_IS_SOUND_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_SOUND_MANAGER)) -#define GSD_IS_SOUND_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_SOUND_MANAGER)) -#define GSD_SOUND_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_SOUND_MANAGER, GsdSoundManagerClass)) - -typedef struct GsdSoundManagerPrivate GsdSoundManagerPrivate; - -typedef struct -{ - GObject parent; - GsdSoundManagerPrivate *priv; -} GsdSoundManager; - -typedef struct -{ - GObjectClass parent_class; -} GsdSoundManagerClass; - -GType gsd_sound_manager_get_type (void); - -GsdSoundManager * gsd_sound_manager_new (void); -gboolean gsd_sound_manager_start (GsdSoundManager *manager, - GError **error); -void gsd_sound_manager_stop (GsdSoundManager *manager); - -G_END_DECLS - -#endif /* __GSD_SOUND_MANAGER_H */ diff --git a/plugins/sound/gsd-sound-plugin.c b/plugins/sound/gsd-sound-plugin.c deleted file mode 100644 index 2b29d271..00000000 --- a/plugins/sound/gsd-sound-plugin.c +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - * - * Copyright (C) 2007 William Jon McCann <mccann@jhu.edu> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - */ - -#include "config.h" - -#include <glib/gi18n-lib.h> -#include <gmodule.h> - -#include "gnome-settings-plugin.h" -#include "gsd-sound-plugin.h" -#include "gsd-sound-manager.h" - -struct GsdSoundPluginPrivate { - GsdSoundManager *manager; -}; - -#define GSD_SOUND_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSD_TYPE_SOUND_PLUGIN, GsdSoundPluginPrivate)) - -GNOME_SETTINGS_PLUGIN_REGISTER (GsdSoundPlugin, gsd_sound_plugin) - -static void -gsd_sound_plugin_init (GsdSoundPlugin *plugin) -{ - plugin->priv = GSD_SOUND_PLUGIN_GET_PRIVATE (plugin); - - g_debug ("GsdSoundPlugin initializing"); - - plugin->priv->manager = gsd_sound_manager_new (); -} - -static void -gsd_sound_plugin_finalize (GObject *object) -{ - GsdSoundPlugin *plugin; - - g_return_if_fail (object != NULL); - g_return_if_fail (GSD_IS_SOUND_PLUGIN (object)); - - g_debug ("GsdSoundPlugin finalizing"); - - plugin = GSD_SOUND_PLUGIN (object); - - g_return_if_fail (plugin->priv != NULL); - - if (plugin->priv->manager != NULL) { - g_object_unref (plugin->priv->manager); - } - - G_OBJECT_CLASS (gsd_sound_plugin_parent_class)->finalize (object); -} - -static void -impl_activate (GnomeSettingsPlugin *plugin) -{ - gboolean res; - GError *error; - - g_debug ("Activating sound plugin"); - - error = NULL; - res = gsd_sound_manager_start (GSD_SOUND_PLUGIN (plugin)->priv->manager, &error); - if (! res) { - g_warning ("Unable to start sound manager: %s", error->message); - g_error_free (error); - } -} - -static void -impl_deactivate (GnomeSettingsPlugin *plugin) -{ - g_debug ("Deactivating sound plugin"); - gsd_sound_manager_stop (GSD_SOUND_PLUGIN (plugin)->priv->manager); -} - -static void -gsd_sound_plugin_class_init (GsdSoundPluginClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS (klass); - - object_class->finalize = gsd_sound_plugin_finalize; - - plugin_class->activate = impl_activate; - plugin_class->deactivate = impl_deactivate; - - g_type_class_add_private (klass, sizeof (GsdSoundPluginPrivate)); -} diff --git a/plugins/sound/gsd-sound-plugin.h b/plugins/sound/gsd-sound-plugin.h deleted file mode 100644 index 9f41099b..00000000 --- a/plugins/sound/gsd-sound-plugin.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - * - * Copyright (C) 2007 William Jon McCann <mccann@jhu.edu> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - */ - -#ifndef __GSD_SOUND_PLUGIN_H__ -#define __GSD_SOUND_PLUGIN_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gmodule.h> - -#include "gnome-settings-plugin.h" - -G_BEGIN_DECLS - -#define GSD_TYPE_SOUND_PLUGIN (gsd_sound_plugin_get_type ()) -#define GSD_SOUND_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSD_TYPE_SOUND_PLUGIN, GsdSoundPlugin)) -#define GSD_SOUND_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_SOUND_PLUGIN, GsdSoundPluginClass)) -#define GSD_IS_SOUND_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSD_TYPE_SOUND_PLUGIN)) -#define GSD_IS_SOUND_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSD_TYPE_SOUND_PLUGIN)) -#define GSD_SOUND_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSD_TYPE_SOUND_PLUGIN, GsdSoundPluginClass)) - -typedef struct GsdSoundPluginPrivate GsdSoundPluginPrivate; - -typedef struct -{ - GnomeSettingsPlugin parent; - GsdSoundPluginPrivate *priv; -} GsdSoundPlugin; - -typedef struct -{ - GnomeSettingsPluginClass parent_class; -} GsdSoundPluginClass; - -GType gsd_sound_plugin_get_type (void) G_GNUC_CONST; - -/* All the plugins must implement this function */ -G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module); - -G_END_DECLS - -#endif /* __GSD_SOUND_PLUGIN_H__ */ diff --git a/plugins/sound/sound.gnome-settings-plugin.in b/plugins/sound/sound.gnome-settings-plugin.in deleted file mode 100644 index 3d43ee86..00000000 --- a/plugins/sound/sound.gnome-settings-plugin.in +++ /dev/null @@ -1,8 +0,0 @@ -[GNOME Settings Plugin] -Module=sound -IAge=0 -_Name=Sound -_Description=Sound plugin -Authors= -Copyright=Copyright © 2007 -Website= |