[Xfce4-commits] [apps/xfce4-volumed-pulse] 39/62: delete old gstmixer files
noreply at xfce.org
noreply at xfce.org
Thu Sep 8 10:33:01 CEST 2016
This is an automated email from the git hooks/post-receive script.
ochosi pushed a commit to branch master
in repository apps/xfce4-volumed-pulse.
commit 8e393dfb0eb25083b6f8ab033c47a84475e1263c
Author: Lionel Le Folgoc <lionel at lefolgoc.net>
Date: Thu May 24 22:18:41 2012 +0200
delete old gstmixer files
---
src/xvd_mixer.c | 439 --------------------------------------------------------
src/xvd_mixer.h | 78 ----------
2 files changed, 517 deletions(-)
diff --git a/src/xvd_mixer.c b/src/xvd_mixer.c
deleted file mode 100644
index 1d580bf..0000000
--- a/src/xvd_mixer.c
+++ /dev/null
@@ -1,439 +0,0 @@
-/*
- * xfce4-volumed - Volume management daemon for XFCE 4
- *
- * Copyright © 2009
- * Steve Dodier <sidnioulz at gmail.com>
- * Jannis Pohlmann <jannis at xfce.org>
- *
- * 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 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "xvd_data_types.h"
-#include "xvd_mixer.h"
-#include "xvd_xfconf.h"
-#ifdef HAVE_LIBNOTIFY
-#include "xvd_notify.h"
-#endif
-
-static gboolean
-_xvd_mixer_filter_mixer (GstMixer *tmp_mixer,
- gpointer user_data)
-{
- GstElementFactory *factory;
- const gchar *long_name;
- gchar *device_name;
- gchar *internal_name;
- gchar *name;
- gchar *p;
- gint length;
- gint *counter = user_data;
-
- /* Get long name of the mixer element */
- factory = gst_element_get_factory (GST_ELEMENT (tmp_mixer));
- long_name = gst_element_factory_get_longname (factory);
-
- /* Get the device name of the mixer element */
- if (g_object_class_find_property (G_OBJECT_GET_CLASS (G_OBJECT (tmp_mixer)), "device-name"))
- g_object_get (tmp_mixer, "device-name", &device_name, NULL);
-
- /* Fall back to default name if neccessary */
- if (G_UNLIKELY (device_name == NULL))
- device_name = g_strdup_printf ("Unknown Volume Control %d", (*counter)++);
-
- /* Build display name */
- name = g_strdup_printf ("%s (%s)", device_name, long_name);
-
- /* Free device name */
- g_free (device_name);
-
- /* Count alpha-numeric characters in the name */
- for (length = 0, p = name; *p != '\0'; ++p)
- if (g_ascii_isalnum (*p))
- ++length;
-
- /* Generate internal name */
- internal_name = g_new0 (gchar, length+1);
- for (length = 0, p = name; *p != '\0'; ++p)
- if (g_ascii_isalnum (*p))
- internal_name[length++] = *p;
- internal_name[length] = '\0';
-
- /* Remember name for use by xfce4-mixer */
- g_object_set_data_full (G_OBJECT (tmp_mixer), "xfce-mixer-internal-name", internal_name, (GDestroyNotify) g_free);
-
- g_free (name);
-
- return TRUE;
-}
-
-#ifdef HAVE_LIBNOTIFY
-static void
-_xvd_mixer_bus_message (GstBus *bus, GstMessage *message,
- gpointer data)
-{
- GstMixerMessageType type;
- GstMixerTrack *msg_track = NULL;
- gchar *label;
- gint *volumes;
- gint num_channels;
- XvdInstance *Inst = data;
-
- if (G_UNLIKELY (GST_MESSAGE_SRC (message) != GST_OBJECT (Inst->card)))
- return;
-
- type = gst_mixer_message_get_type (message);
-
- if (type == GST_MIXER_MESSAGE_MUTE_TOGGLED)
- {
- gst_mixer_message_parse_mute_toggled (message, &msg_track, &Inst->muted);
- g_object_get (msg_track, "label", &label, NULL);
- if (g_strcmp0 (Inst->track_label, label) != 0)
- return;
-#ifdef HAVE_LIBNOTIFY
- if (Inst->muted)
- xvd_notify_notification (Inst, "audio-volume-muted", 0);
- else {
- xvd_mixer_init_volume (Inst);
- xvd_notify_volume_notification (Inst);
-#endif
- }
- g_free (label);
- }
- else if (type == GST_MIXER_MESSAGE_VOLUME_CHANGED)
- {
- gst_mixer_message_parse_volume_changed (message, &msg_track, &volumes, &num_channels);
- g_object_get (msg_track, "label", &label, NULL);
- if (g_strcmp0 (Inst->track_label, label) != 0)
- return;
- xvd_calculate_avg_volume (Inst, volumes, num_channels);
-#ifdef HAVE_LIBNOTIFY
- xvd_notify_volume_notification (Inst);
-#endif
- g_free (label);
- }
- else if (type == GST_MIXER_MESSAGE_MIXER_CHANGED) {
- // This kind of message shouldn't happen on an hardware card
- g_debug ("GST_MIXER_MESSAGE_MIXER_CHANGED event\n");
- }
-}
-#endif
-
-void
-xvd_mixer_init(XvdInstance *Inst)
-{
- /* Get list of all available mixer devices */
- Inst->mixers = gst_audio_default_registry_mixer_filter (_xvd_mixer_filter_mixer, FALSE, &(Inst->nameless_cards_count));
-}
-
-#ifdef HAVE_LIBNOTIFY
-void
-xvd_mixer_init_bus(XvdInstance *Inst)
-{
- /* Create a GstBus for notifications */
- Inst->bus = gst_bus_new ();
- Inst->bus_id = g_signal_connect (Inst->bus, "message::element", G_CALLBACK (_xvd_mixer_bus_message), Inst);
- gst_bus_add_signal_watch (Inst->bus);
-}
-#endif
-
-void
-xvd_mixer_init_volume(XvdInstance *Inst)
-{
- if ((Inst->card) && (Inst->track)) {
- if (Inst->track->num_channels) {
- gint *volumes = g_malloc (sizeof (gint) * Inst->track->num_channels);
- gst_mixer_get_volume (GST_MIXER (Inst->card), Inst->track, volumes);
- xvd_calculate_avg_volume (Inst, volumes, Inst->track->num_channels);
- g_free (volumes);
- } else {
- g_debug ("Current track has no volume channels, defaulting volume to 0.\n");
- xvd_calculate_avg_volume (Inst, NULL, Inst->track->num_channels);
- }
-
- Inst->muted = (GST_MIXER_TRACK_HAS_FLAG (Inst->track, GST_MIXER_TRACK_MUTE));
- }
-}
-
-void
-xvd_get_card_from_mixer(XvdInstance *Inst,
- const gchar *wanted_card,
- const gchar *preferred_fallback)
-{
- GList *iter;
- gchar *tmp_card_name = NULL, *first_name = NULL;
- GstElement *fallback_card = NULL, *first_card = NULL;
-
- // Cleaning the current card
- Inst->card = NULL;
- xvd_clean_card_name (Inst);
-
- // We try to find the card the user wants
- for (iter = g_list_first (Inst->mixers); iter != NULL; iter = g_list_next (iter)) {
- tmp_card_name = g_object_get_data (G_OBJECT (iter->data), "xfce-mixer-internal-name");
-
- if ((wanted_card != NULL) && (G_UNLIKELY (g_strcmp0 (wanted_card, tmp_card_name) == 0))) {
- Inst->card = iter->data;
- Inst->card_name = g_strdup (wanted_card);
- break;
- }
-
- // If the fallback card label is set, we save the fallback card in case the wanted one isn't found
- if ((preferred_fallback != NULL) && (G_UNLIKELY (g_strcmp0 (preferred_fallback, tmp_card_name) == 0))) {
- fallback_card = iter->data;
- }
-
- // If no card is asked by the user, or if the asked card(s) couldn't be found, use the first one available
- if (first_name == NULL) {
- first_card = iter->data;
- first_name = g_strdup (tmp_card_name);
- if ((wanted_card == NULL) && (preferred_fallback == NULL))
- break;
- }
- }
-
- // We now check if the card was set or if we should use fallback / first instead
- if (NULL != Inst->card) {
- g_debug ("The card %s was found and set as the current card.\n", wanted_card);
- }
- else if (NULL != fallback_card) {
- g_debug ("The wanted card could not be found, using the fallback one instead.\n");
- Inst->card_name = g_strdup (preferred_fallback);
- Inst->card = fallback_card;
- }
- else if (NULL != first_card) {
- if (wanted_card != NULL) {
- g_debug ("The wanted card could not be found, using the first one instead.\n");
- }
- else {
- g_debug ("Setting the first card in the xfconf property since there was no card set.\n");
- xvd_xfconf_set_card (Inst, first_name);
- }
- Inst->card_name = g_strdup (first_name);
- Inst->card = first_card;
- }
- else {
- g_debug ("Error: there is no sound card on this machine.\n");
- return;
- }
-
- g_free (first_name);
-
- #ifdef HAVE_LIBNOTIFY
- gst_element_set_bus (Inst->card, Inst->bus);
- #endif
-}
-
-void
-xvd_get_track_from_mixer(XvdInstance *Inst,
- const gchar *wanted_track,
- const gchar *preferred_fallback)
-{
- const GList *iter;
- gchar *tmp_label = NULL, *master_label = NULL, *first_label = NULL;
- GstMixerTrack *fallback_track = NULL, *master_track = NULL, *first_track = NULL;
-
- // We clean the current track before setting another one
- xvd_clean_track (Inst);
- Inst->track = NULL;
-
- // We're going to go through the available tracks
- if (Inst->card) {
- for (iter = gst_mixer_list_tracks (GST_MIXER (Inst->card)); iter != NULL; iter = g_list_next (iter)) {
- g_object_get (GST_MIXER_TRACK (iter->data), "label", &tmp_label, NULL);
-
- // If the wanted track is requested and found
- if ((wanted_track != NULL) && (g_strcmp0 (tmp_label, wanted_track) == 0)) {
- Inst->track_label = g_strdup (tmp_label);
- Inst->track = iter->data;
- g_free (tmp_label);
- break;
- }
-
- // If the fallback track label is set, we save the fallback track in case the wanted one isn't found
- if ((preferred_fallback != NULL) && (g_strcmp0 (tmp_label, preferred_fallback) == 0)) {
- fallback_track = iter->data;
- }
-
- // If we spot a Master track in the card, we save it in case the xfconf / fallback ones can't be found
- if ((master_label == NULL) && (TRUE == GST_MIXER_TRACK_HAS_FLAG ((GstMixerTrack *)iter->data, GST_MIXER_TRACK_MASTER))) {
- master_track = iter->data;
- master_label = g_strdup (tmp_label);
- }
-
- // We save the first track of the card in case there is no xfconf / fallback / master track
- if (first_label == NULL) {
- first_track = iter->data;
- first_label = g_strdup (tmp_label);
- }
-
- g_free (tmp_label);
- }
- }
- else {
- g_debug ("Error: there is no sound card to search tracks from.\n");
- return;
- }
-
- if (NULL != Inst->track) {
- g_debug ("The track %s was found on the card and set as the current track.\n", wanted_track);
- }
- else if (NULL != fallback_track) {
- g_debug ("The wanted track could not be found, using the fallback one instead.\n");
- Inst->track_label = g_strdup (preferred_fallback);
- Inst->track = fallback_track;
- }
- else if (NULL != master_track) {
- g_debug ("The wanted track could not be found, using the first Master one instead.\n");
- Inst->track_label = g_strdup (master_label);
- Inst->track = master_track;
- }
- else if (NULL != first_track) {
- g_debug ("The wanted track could not be found, using the first one instead.\n");
- Inst->track_label = g_strdup (first_label);
- Inst->track = first_track;
- }
- else {
- g_debug ("Error: the current sound card doesn't have any track.\n");
- return;
- }
-
- g_free (first_label);
- g_free (master_label);
-}
-
-static void
-_xvd_mixer_destroy_mixer (GstMixer *mixer)
-{
- gst_element_set_state (GST_ELEMENT (mixer), GST_STATE_NULL);
- gst_object_unref (GST_OBJECT (mixer));
-}
-
-void
-xvd_clean_card_name(XvdInstance *Inst)
-{
- g_free (Inst->card_name);
-}
-
-void
-xvd_clean_cards(XvdInstance *Inst)
-{
- g_list_foreach (Inst->mixers, (GFunc) _xvd_mixer_destroy_mixer, NULL);
- g_list_free (Inst->mixers);
-}
-
-#ifdef HAVE_LIBNOTIFY
-void
-xvd_clean_mixer_bus(XvdInstance *Inst)
-{
- int i, refc = GST_OBJECT_REFCOUNT(Inst->bus);
- gst_bus_remove_signal_watch (Inst->bus);
- g_signal_handler_disconnect (Inst->bus, Inst->bus_id);
-
- for (i=0; i < refc; i++)
- gst_object_unref (Inst->bus);
-}
-#endif
-
-void
-xvd_clean_track(XvdInstance *Inst)
-{
- g_free (Inst->track_label);
-}
-
-
-void
-xvd_calculate_avg_volume(XvdInstance *Inst,
- gint *volumes,
- gint num_channels)
-{
- if (Inst->track) {
- gint i, s=0, step;
- for (i=0; i<num_channels; i++) {
- step=Inst->track->max_volume - Inst->track->min_volume;
- if (!step)
- ++step;
-
- s += ((volumes[i] - Inst->track->min_volume) * 100 / step);
- }
- if(num_channels)
- Inst->current_vol = s/num_channels;
- else
- Inst->current_vol = 0;
- }
- else {
- Inst->current_vol = 0.0;
- }
-}
-
-static gint
-_nearest_int (gdouble val)
-{
- gdouble diff = (val - (gint) val);
-
- if ((-0.5 < diff) && (diff < 0.5))
- return (gint) val;
- else if (diff > 0)
- return (gint) val + 1;
- else
- return (gint) val - 1;
-}
-
-gboolean
-xvd_mixer_change_volume(XvdInstance *Inst,
- gint step)
-{
- if ((Inst->card) && (Inst->track)) {
- if(Inst->track->num_channels) {
- gint i;
- gint *volumes = g_malloc (sizeof (gint) * Inst->track->num_channels);
-
- gst_mixer_get_volume (GST_MIXER (Inst->card), Inst->track, volumes);
-
- for (i=0; i<Inst->track->num_channels; i++) {
- volumes[i] += _nearest_int ((gdouble)(step * (Inst->track->max_volume - Inst->track->min_volume)) / 100.0);
-
- if (volumes[i] > Inst->track->max_volume)
- volumes[i] = Inst->track->max_volume;
-
- if (volumes[i] < Inst->track->min_volume)
- volumes[i] = Inst->track->min_volume;
- }
- xvd_calculate_avg_volume (Inst, volumes, Inst->track->num_channels);
-
- gst_mixer_set_volume (GST_MIXER (Inst->card), Inst->track, volumes);
- g_free (volumes);
-
- return TRUE;
- } else {
- g_debug ("Current track has no volume channels, cannot change volume.\n");
- return FALSE;
- }
- }
- return FALSE;
-}
-
-gboolean
-xvd_mixer_toggle_mute(XvdInstance *Inst)
-{
- if ((Inst->card) && (Inst->track)) {
- gst_mixer_set_mute (GST_MIXER (Inst->card), Inst->track, !(GST_MIXER_TRACK_HAS_FLAG (Inst->track, GST_MIXER_TRACK_MUTE)));
- Inst->muted = (GST_MIXER_TRACK_HAS_FLAG (Inst->track, GST_MIXER_TRACK_MUTE));
- return TRUE;
- }
- return FALSE;
-}
diff --git a/src/xvd_mixer.h b/src/xvd_mixer.h
deleted file mode 100644
index 6d22177..0000000
--- a/src/xvd_mixer.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * xfce4-volumed - Volume management daemon for XFCE 4
- *
- * Copyright © 2009 Steve Dodier <sidnioulz at gmail.com>
- *
- * 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 3 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifndef _XVD_MIXER_H
-#define _XVD_MIXER_H
-
-#include <gst/audio/mixerutils.h>
-
-#include "xvd_data_types.h"
-
-void
-xvd_mixer_init(XvdInstance *Inst);
-
-#ifdef HAVE_LIBNOTIFY
-void
-xvd_mixer_init_bus(XvdInstance *Inst);
-#endif
-
-void
-xvd_mixer_init_volume(XvdInstance *Inst);
-
-void
-xvd_get_card_from_mixer(XvdInstance *Inst,
- const gchar *wanted_card,
- const gchar *preferred_fallback);
-
-void
-xvd_get_track_from_mixer(XvdInstance *Inst,
- const gchar *wanted_track,
- const gchar *preferred_fallback);
-
-void
-xvd_clean_card_name(XvdInstance *Inst);
-
-void
-xvd_clean_cards(XvdInstance *Inst);
-
-#ifdef HAVE_LIBNOTIFY
-void
-xvd_clean_mixer_bus(XvdInstance *Inst);
-#endif
-
-void
-xvd_clean_track(XvdInstance *Inst);
-
-void
-xvd_calculate_avg_volume(XvdInstance *Inst,
- gint *volumes,
- gint num_channels);
-
-gboolean
-xvd_mixer_change_volume(XvdInstance *Inst,
- gint step);
-
-gboolean
-xvd_mixer_toggle_mute(XvdInstance *Inst);
-
-#endif
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list