2004-02-25 18:00:37 +00:00
|
|
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
|
|
|
|
|
|
/* acme-volume-gstreamer.c
|
|
|
|
|
|
|
|
Copyright (C) 2002, 2003 Bastien Nocera
|
|
|
|
Copyright (C) 2004 Novell, Inc.
|
|
|
|
|
|
|
|
The Gnome Library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Library General Public License as
|
|
|
|
published by the Free Software Foundation; either version 2 of the
|
|
|
|
License, or (at your option) any later version.
|
|
|
|
|
|
|
|
The Gnome Library 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
|
|
|
|
Library General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Library General Public
|
|
|
|
License along with the Gnome Library; see the file COPYING.LIB. If not,
|
|
|
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
Boston, MA 02111-1307, USA.
|
|
|
|
|
|
|
|
Author: Bastien Nocera <hadess@hadess.net>
|
|
|
|
Jon Trowbridge <trow@ximian.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
#include "acme-volume-gstreamer.h"
|
|
|
|
|
2006-01-15 21:56:50 +00:00
|
|
|
#include <gst/gst.h>
|
2006-04-28 10:34:16 +00:00
|
|
|
#include <gst/audio/mixerutils.h>
|
2006-01-15 21:56:50 +00:00
|
|
|
#include <gst/interfaces/mixer.h>
|
|
|
|
#include <gst/interfaces/propertyprobe.h>
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
|
|
|
|
#include <gconf/gconf-client.h>
|
2004-02-25 18:00:37 +00:00
|
|
|
|
2004-06-15 15:39:36 +00:00
|
|
|
#include <string.h>
|
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
#define TIMEOUT 4000
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
|
|
|
|
#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device"
|
|
|
|
#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks"
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
|
2004-02-25 18:00:37 +00:00
|
|
|
struct AcmeVolumeGStreamerPrivate
|
|
|
|
{
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
GstMixer *mixer;
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
GList *mixer_tracks;
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
guint timer_id;
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
gdouble volume;
|
|
|
|
gboolean mute;
|
|
|
|
GConfClient *gconf_client;
|
2004-02-25 18:00:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
static GObjectClass *parent_class = NULL;
|
|
|
|
|
2004-06-15 15:39:36 +00:00
|
|
|
G_DEFINE_TYPE (AcmeVolumeGStreamer, acme_volume_gstreamer, ACME_TYPE_VOLUME)
|
|
|
|
|
2004-02-25 18:00:37 +00:00
|
|
|
static int acme_volume_gstreamer_get_volume (AcmeVolume *self);
|
|
|
|
static void acme_volume_gstreamer_set_volume (AcmeVolume *self, int val);
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
static gboolean acme_volume_gstreamer_open (AcmeVolumeGStreamer *self);
|
|
|
|
static void acme_volume_gstreamer_close (AcmeVolumeGStreamer *self);
|
|
|
|
static gboolean acme_volume_gstreamer_close_real (AcmeVolumeGStreamer *self);
|
2004-02-25 18:00:37 +00:00
|
|
|
|
|
|
|
static void
|
|
|
|
acme_volume_gstreamer_finalize (GObject *object)
|
|
|
|
{
|
|
|
|
AcmeVolumeGStreamer *self;
|
|
|
|
|
|
|
|
g_return_if_fail (object != NULL);
|
|
|
|
g_return_if_fail (ACME_IS_VOLUME_GSTREAMER (object));
|
|
|
|
|
|
|
|
self = ACME_VOLUME_GSTREAMER (object);
|
|
|
|
|
|
|
|
g_return_if_fail (self->_priv != NULL);
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
|
|
|
|
if (self->_priv->timer_id != 0)
|
|
|
|
{
|
|
|
|
g_source_remove (self->_priv->timer_id);
|
|
|
|
self->_priv->timer_id = 0;
|
2004-02-25 18:00:37 +00:00
|
|
|
}
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
acme_volume_gstreamer_close_real (self);
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
|
|
|
|
if (self->_priv->gconf_client != NULL) {
|
|
|
|
g_object_unref (G_OBJECT (self->_priv->gconf_client));
|
|
|
|
self->_priv->gconf_client = NULL;
|
|
|
|
}
|
|
|
|
|
2004-02-25 18:00:37 +00:00
|
|
|
g_free (self->_priv);
|
|
|
|
|
|
|
|
G_OBJECT_CLASS (parent_class)->finalize (object);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
acme_volume_gstreamer_set_mute (AcmeVolume *vol, gboolean val)
|
|
|
|
{
|
|
|
|
AcmeVolumeGStreamer *self = (AcmeVolumeGStreamer *) vol;
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
GList *t;
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
|
|
|
|
if (acme_volume_gstreamer_open (self) == FALSE)
|
2004-02-25 18:00:37 +00:00
|
|
|
return;
|
2005-06-05 13:04:26 +00:00
|
|
|
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
for (t = self->_priv->mixer_tracks; t != NULL; t = t->next)
|
|
|
|
{
|
|
|
|
GstMixerTrack *track = GST_MIXER_TRACK (t->data);
|
|
|
|
gst_mixer_set_mute (self->_priv->mixer, track, val);
|
|
|
|
}
|
2005-06-05 13:04:26 +00:00
|
|
|
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
if (val)
|
|
|
|
{
|
|
|
|
self->_priv->mute = TRUE;
|
|
|
|
} else {
|
|
|
|
self->_priv->mute = FALSE;
|
|
|
|
|
|
|
|
for (t = self->_priv->mixer_tracks; t != NULL; t = t->next)
|
|
|
|
{
|
|
|
|
GstMixerTrack *track = GST_MIXER_TRACK (t->data);
|
|
|
|
gint *volumes, n;
|
|
|
|
gdouble scale = (track->max_volume - track->min_volume) / 100.0;
|
|
|
|
gint vol = (gint) self->_priv->volume * scale + track->min_volume;
|
|
|
|
|
|
|
|
volumes = g_new0 (gint, track->num_channels);
|
|
|
|
for (n = 0; n < track->num_channels; n++)
|
|
|
|
volumes[n] = vol;
|
|
|
|
gst_mixer_set_volume (self->_priv->mixer, track, volumes);
|
|
|
|
g_free (volumes);
|
|
|
|
}
|
2005-06-05 13:04:26 +00:00
|
|
|
}
|
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
acme_volume_gstreamer_close (self);
|
2004-02-25 18:00:37 +00:00
|
|
|
}
|
|
|
|
|
2005-06-05 13:04:26 +00:00
|
|
|
static void
|
|
|
|
update_state (AcmeVolumeGStreamer * self)
|
|
|
|
{
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
gint *volumes, n;
|
|
|
|
gdouble vol;
|
|
|
|
GstMixerTrack *track = GST_MIXER_TRACK(self->_priv->mixer_tracks->data);
|
2005-06-05 13:04:26 +00:00
|
|
|
|
|
|
|
/* update mixer by getting volume */
|
|
|
|
volumes = g_new0 (gint, track->num_channels);
|
|
|
|
gst_mixer_get_volume (self->_priv->mixer, track, volumes);
|
|
|
|
for (n = 0; n < track->num_channels; n++)
|
|
|
|
vol += volumes[n];
|
|
|
|
g_free (volumes);
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
vol /= track->num_channels;
|
|
|
|
vol = 100 * vol / (track->max_volume - track->min_volume);
|
2005-06-05 13:04:26 +00:00
|
|
|
|
|
|
|
/* update mute flag, and volume if not muted */
|
|
|
|
if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE) ||
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
(vol == 0 && self->_priv->volume != 0))
|
|
|
|
self->_priv->mute = TRUE;
|
2005-06-05 13:04:26 +00:00
|
|
|
else
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
self->_priv->volume = vol;
|
2005-06-05 13:04:26 +00:00
|
|
|
}
|
|
|
|
|
2004-02-25 18:00:37 +00:00
|
|
|
static gboolean
|
|
|
|
acme_volume_gstreamer_get_mute (AcmeVolume *vol)
|
|
|
|
{
|
|
|
|
AcmeVolumeGStreamer *self = (AcmeVolumeGStreamer *) vol;
|
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
if (acme_volume_gstreamer_open (self) == FALSE)
|
2004-02-25 18:00:37 +00:00
|
|
|
return FALSE;
|
|
|
|
|
2005-06-05 13:04:26 +00:00
|
|
|
update_state (self);
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
acme_volume_gstreamer_close (self);
|
|
|
|
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
return self->_priv->mute;
|
2004-02-25 18:00:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
|
|
|
acme_volume_gstreamer_get_volume (AcmeVolume *vol)
|
|
|
|
{
|
|
|
|
AcmeVolumeGStreamer *self = (AcmeVolumeGStreamer *) vol;
|
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
if (acme_volume_gstreamer_open (self) == FALSE)
|
2004-02-25 18:00:37 +00:00
|
|
|
return 0;
|
|
|
|
|
2005-06-05 13:04:26 +00:00
|
|
|
update_state (self);
|
2004-02-25 18:00:37 +00:00
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
acme_volume_gstreamer_close (self);
|
2004-02-25 18:00:37 +00:00
|
|
|
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
return (gint) self->_priv->volume;
|
2004-02-25 18:00:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
acme_volume_gstreamer_set_volume (AcmeVolume *vol, int val)
|
|
|
|
{
|
|
|
|
AcmeVolumeGStreamer *self = (AcmeVolumeGStreamer *) vol;
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
GList *t;
|
2004-02-25 18:00:37 +00:00
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
if (acme_volume_gstreamer_open (self) == FALSE)
|
2004-02-25 18:00:37 +00:00
|
|
|
return;
|
|
|
|
|
|
|
|
val = CLAMP (val, 0, 100);
|
|
|
|
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
for (t = self->_priv->mixer_tracks; t != NULL; t = t->next)
|
|
|
|
{
|
|
|
|
GstMixerTrack *track = GST_MIXER_TRACK (t->data);
|
|
|
|
gint *volumes, n;
|
|
|
|
gdouble scale = (track->max_volume - track->min_volume) / 100.0;
|
|
|
|
gint vol = (gint) val * scale + track->min_volume;
|
2004-02-25 18:00:37 +00:00
|
|
|
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
volumes = g_new0 (gint, track->num_channels);
|
|
|
|
for (n = 0; n < track->num_channels; n++)
|
|
|
|
volumes[n] = vol;
|
|
|
|
gst_mixer_set_volume (self->_priv->mixer, track, volumes);
|
|
|
|
g_free (volumes);
|
|
|
|
}
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
|
2005-06-05 13:04:26 +00:00
|
|
|
/* update state */
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
self->_priv->volume = val;
|
2005-06-05 13:04:26 +00:00
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
acme_volume_gstreamer_close (self);
|
|
|
|
}
|
|
|
|
|
|
|
|
static gboolean
|
|
|
|
acme_volume_gstreamer_close_real (AcmeVolumeGStreamer *self)
|
|
|
|
{
|
|
|
|
if (self->_priv == NULL)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
if (self->_priv->mixer != NULL)
|
|
|
|
{
|
|
|
|
gst_element_set_state (GST_ELEMENT(self->_priv->mixer), GST_STATE_NULL);
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
gst_object_unref (GST_OBJECT (self->_priv->mixer));
|
|
|
|
g_list_foreach (self->_priv->mixer_tracks, (GFunc)g_object_unref, NULL);
|
|
|
|
g_list_free (self->_priv->mixer_tracks);
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
self->_priv->mixer=NULL;
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
self->_priv->mixer_tracks=NULL;
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
self->_priv->timer_id = 0;
|
|
|
|
return FALSE;
|
2004-02-25 18:00:37 +00:00
|
|
|
}
|
|
|
|
|
2006-01-15 21:56:50 +00:00
|
|
|
/*
|
|
|
|
* _acme_set_mixer
|
|
|
|
* Arguments: mixer - pointer to mixer element
|
|
|
|
* data - pointer to user data (AcmeVolumeGStreamer to be modified)
|
|
|
|
* Returns: gboolean indicating success
|
|
|
|
*/
|
|
|
|
static gboolean
|
|
|
|
_acme_set_mixer(GstMixer *mixer, gpointer user_data)
|
|
|
|
{
|
|
|
|
const GList *tracks;
|
|
|
|
|
|
|
|
tracks = gst_mixer_list_tracks (mixer);
|
|
|
|
|
|
|
|
while (tracks != NULL) {
|
|
|
|
GstMixerTrack *track = GST_MIXER_TRACK (tracks->data);
|
|
|
|
|
|
|
|
if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
|
|
|
|
AcmeVolumeGStreamer *self;
|
|
|
|
|
|
|
|
self = ACME_VOLUME_GSTREAMER (user_data);
|
|
|
|
|
|
|
|
self->_priv->mixer = mixer;
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
|
2006-01-15 21:56:50 +00:00
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
tracks = tracks->next;
|
|
|
|
}
|
|
|
|
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
2004-02-25 18:00:37 +00:00
|
|
|
/* This is a modified version of code from gnome-media's gst-mixer */
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
static gboolean
|
|
|
|
acme_volume_gstreamer_open (AcmeVolumeGStreamer *vol)
|
2004-02-25 18:00:37 +00:00
|
|
|
{
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
AcmeVolumeGStreamer *self = (AcmeVolumeGStreamer *) vol;
|
2007-01-10 17:33:07 +00:00
|
|
|
gchar *mixer_device, **factory_and_device = NULL;
|
2006-02-15 14:20:38 +00:00
|
|
|
GList *mixer_list;
|
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
if (self->_priv == NULL)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
if (self->_priv->timer_id != 0)
|
|
|
|
{
|
|
|
|
g_source_remove (self->_priv->timer_id);
|
|
|
|
self->_priv->timer_id = 0;
|
|
|
|
return TRUE;
|
|
|
|
}
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
|
|
|
|
mixer_device = gconf_client_get_string (self->_priv->gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL);
|
2007-01-10 17:33:07 +00:00
|
|
|
if (mixer_device != NULL)
|
|
|
|
{
|
|
|
|
factory_and_device = g_strsplit (mixer_device, ":", 2);
|
|
|
|
}
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
|
|
|
|
if (factory_and_device != NULL && factory_and_device[0] != NULL)
|
|
|
|
{
|
|
|
|
GstElement *element;
|
|
|
|
|
|
|
|
element = gst_element_factory_make (factory_and_device[0], NULL);
|
|
|
|
|
|
|
|
if (element != NULL) {
|
|
|
|
gst_element_set_state (element, GST_STATE_READY);
|
|
|
|
|
|
|
|
if (!GST_IS_MIXER (element))
|
|
|
|
{
|
2004-02-25 18:00:37 +00:00
|
|
|
gst_element_set_state (element, GST_STATE_NULL);
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
gst_object_unref (element);
|
|
|
|
} else {
|
|
|
|
self->_priv->mixer = GST_MIXER (element);
|
|
|
|
|
|
|
|
if (factory_and_device[1] != NULL &&
|
|
|
|
g_object_class_find_property (G_OBJECT_GET_CLASS (self->_priv->mixer), "device"))
|
|
|
|
{
|
|
|
|
g_object_set (G_OBJECT (self->_priv->mixer), "device", &factory_and_device[1], NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
g_free (mixer_device);
|
|
|
|
g_strfreev (factory_and_device);
|
|
|
|
|
|
|
|
if (self->_priv->mixer != NULL)
|
|
|
|
{
|
|
|
|
const GList *m;
|
|
|
|
GSList *tracks, *t;
|
|
|
|
|
|
|
|
/* Try to use tracks saved in GConf */
|
|
|
|
tracks = gconf_client_get_list (self->_priv->gconf_client, DEFAULT_MIXER_TRACKS_KEY, GCONF_VALUE_STRING, NULL);
|
|
|
|
|
|
|
|
for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next)
|
|
|
|
{
|
|
|
|
GstMixerTrack *track = GST_MIXER_TRACK (m->data);
|
|
|
|
|
|
|
|
for (t = tracks; t != NULL; t = t->next)
|
|
|
|
{
|
|
|
|
if (!strcmp (t->data, track->label))
|
|
|
|
{
|
|
|
|
self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
|
|
|
|
}
|
2004-02-25 18:00:37 +00:00
|
|
|
}
|
|
|
|
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
g_slist_foreach (tracks, (GFunc)g_free, NULL);
|
|
|
|
g_slist_free (tracks);
|
|
|
|
|
|
|
|
/* If no track stored in GConf is avaiable try to use master track */
|
|
|
|
if (self->_priv->mixer_tracks == NULL)
|
|
|
|
{
|
|
|
|
for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next)
|
|
|
|
{
|
|
|
|
GstMixerTrack *track = GST_MIXER_TRACK (m->data);
|
|
|
|
|
2004-09-29 20:29:12 +00:00
|
|
|
if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, track);
|
|
|
|
break;
|
2004-02-25 18:00:37 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
|
|
|
|
if (self->_priv->mixer != NULL)
|
|
|
|
{
|
|
|
|
if (self->_priv->mixer_tracks != NULL)
|
|
|
|
{
|
|
|
|
return TRUE;
|
|
|
|
} else {
|
|
|
|
gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
|
|
|
|
gst_object_unref (self->_priv->mixer);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Go through all elements of a certain class and check whether
|
|
|
|
* they implement a mixer. If so, walk through the tracks and look
|
|
|
|
* for first one named "volume".
|
|
|
|
*
|
|
|
|
* We should probably do something intelligent if we don't find an
|
|
|
|
* appropriate mixer/track. But now we do something stupid...
|
|
|
|
* everything just becomes a no-op.
|
|
|
|
*/
|
|
|
|
mixer_list = gst_audio_default_registry_mixer_filter (_acme_set_mixer,
|
|
|
|
TRUE,
|
|
|
|
self);
|
|
|
|
|
|
|
|
if (mixer_list == NULL)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
/* do not unref the mixer as we keep the ref for self->priv->mixer */
|
|
|
|
g_list_free (mixer_list);
|
|
|
|
|
|
|
|
return TRUE;
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
acme_volume_gstreamer_close (AcmeVolumeGStreamer *self)
|
|
|
|
{
|
|
|
|
self->_priv->timer_id = g_timeout_add (TIMEOUT,
|
|
|
|
(GSourceFunc) acme_volume_gstreamer_close_real, self);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
acme_volume_gstreamer_init (AcmeVolumeGStreamer *self)
|
|
|
|
{
|
|
|
|
|
|
|
|
self->_priv = g_new0 (AcmeVolumeGStreamerPrivate, 1);
|
Fixes #173035
2007-01-08 Jan Arne Petersen <jpetersen@jpetersen.org>
Fixes #173035
* configure.in: updated sound capplet requirements.
* gnome-settings-daemon/actions/Makefile.am:
* gnome-settings-daemon/actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(update_state), (acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (_acme_set_mixer),
(acme_volume_gstreamer_open), (acme_volume_gstreamer_init): added
support for multiple mixer tracks. Added support for gconf device and
track selection.
* capplets/sound/Makefile.am, mixer-support.c, mixer-support.h: Add new files.
* capplets/sound/sound-properties-capplet.c: (mixer_device_combobox_changed),
(add_track_label_to_list), (mixer_tracks_selection_changed),
(update_mixer_tracks_selection), (default_mixer_tracks_notify),
(update_mixer_device_combobox), (default_mixer_device_notify),
(setup_default_mixer), (setup_dialog):
* capplets/sound/sound-properties.glade: added support for selecting mixer device and
tracks in the capplet.
svn path=/trunk/; revision=7113
2007-01-08 22:50:39 +00:00
|
|
|
|
|
|
|
self->_priv->gconf_client = gconf_client_get_default ();
|
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
if (acme_volume_gstreamer_open (self) == FALSE)
|
|
|
|
{
|
|
|
|
g_free (self->_priv);
|
|
|
|
self->_priv = NULL;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (self->_priv->mixer != NULL) {
|
|
|
|
acme_volume_gstreamer_close_real (self);
|
|
|
|
return;
|
|
|
|
}
|
2004-02-25 18:00:37 +00:00
|
|
|
}
|
|
|
|
|
free the alsa device, after 4 seconds, with gstreamer too. Patch from
2004-11-30 Sebastien Bacher <seb128@debian.org>
* actions/acme-volume-gstreamer.c:
(acme_volume_gstreamer_finalize), (acme_volume_gstreamer_set_mute),
(acme_volume_gstreamer_get_mute),
(acme_volume_gstreamer_get_volume),
(acme_volume_gstreamer_set_volume),
(acme_volume_gstreamer_close_real), (acme_volume_gstreamer_open),
(acme_volume_gstreamer_close), (acme_volume_gstreamer_init):
free the alsa device, after 4 seconds, with gstreamer too.
Patch from Arnaud Patard <Arnaud Patard> (Closes: #141793).
2004-11-30 16:46:38 +00:00
|
|
|
|
2004-02-25 18:00:37 +00:00
|
|
|
static void
|
|
|
|
acme_volume_gstreamer_class_init (AcmeVolumeGStreamerClass *klass)
|
|
|
|
{
|
|
|
|
AcmeVolumeClass *volume_class = ACME_VOLUME_CLASS (klass);
|
|
|
|
G_OBJECT_CLASS (klass)->finalize = acme_volume_gstreamer_finalize;
|
|
|
|
|
2004-03-01 13:38:36 +00:00
|
|
|
gst_init (NULL, NULL);
|
|
|
|
|
2004-02-25 18:00:37 +00:00
|
|
|
parent_class = g_type_class_peek_parent (klass);
|
|
|
|
|
|
|
|
volume_class->set_volume = acme_volume_gstreamer_set_volume;
|
|
|
|
volume_class->get_volume = acme_volume_gstreamer_get_volume;
|
|
|
|
volume_class->set_mute = acme_volume_gstreamer_set_mute;
|
|
|
|
volume_class->get_mute = acme_volume_gstreamer_get_mute;
|
|
|
|
}
|
|
|
|
|