diff --git a/ChangeLog b/ChangeLog index 76d9c48fe9..0adbdc6c30 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,12 +24,6 @@ * configure.ac: check to define LAMEPRESET. Fixes #151232. -2004-08-29 Ronald S. Bultje > - - * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): - * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new): - Add switches (simple boolean on/off). - 2004-08-27 David Schleef * sys/glsink/glimagesink.c: (gst_glimagesink_ximage_put), diff --git a/ext/alsa/gstalsamixer.c b/ext/alsa/gstalsamixer.c index fb664d5131..d8867d61e3 100644 --- a/ext/alsa/gstalsamixer.c +++ b/ext/alsa/gstalsamixer.c @@ -266,7 +266,6 @@ gst_alsa_mixer_build_list (GstAlsaMixer * mixer) for (i = 0; i < count; i++) { gint channels = 0; gint flags = GST_MIXER_TRACK_OUTPUT; - gboolean got_it = FALSE; if (snd_mixer_selem_has_capture_switch (element)) { if (dir != GST_PAD_SRC && dir != GST_PAD_UNKNOWN) @@ -280,10 +279,13 @@ gst_alsa_mixer_build_list (GstAlsaMixer * mixer) if (snd_mixer_selem_has_capture_volume (element)) { while (snd_mixer_selem_has_capture_channel (element, channels)) channels++; + if (first) { + first = FALSE; + flags |= GST_MIXER_TRACK_MASTER; + } track = gst_alsa_mixer_track_new (element, i, channels, flags, GST_ALSA_MIXER_TRACK_CAPTURE); mixer->tracklist = g_list_append (mixer->tracklist, track); - got_it = TRUE; } if (snd_mixer_selem_has_playback_volume (element)) { @@ -296,23 +298,11 @@ gst_alsa_mixer_build_list (GstAlsaMixer * mixer) track = gst_alsa_mixer_track_new (element, i, channels, flags, GST_ALSA_MIXER_TRACK_PLAYBACK); mixer->tracklist = g_list_append (mixer->tracklist, track); - got_it = TRUE; } if (snd_mixer_selem_is_enumerated (element)) { opts = gst_alsa_mixer_options_new (element, i); mixer->tracklist = g_list_append (mixer->tracklist, opts); - got_it = TRUE; - } - - if (!got_it) { - if (flags == GST_MIXER_TRACK_OUTPUT && - snd_mixer_selem_has_playback_switch (element)) { - /* simple mute switch */ - track = gst_alsa_mixer_track_new (element, i, 0, - flags, GST_ALSA_MIXER_TRACK_PLAYBACK); - mixer->tracklist = g_list_append (mixer->tracklist, track); - } } element = snd_mixer_elem_next (element); diff --git a/ext/alsa/gstalsamixertrack.c b/ext/alsa/gstalsamixertrack.c index 7db05016d5..c6a8f14117 100644 --- a/ext/alsa/gstalsamixertrack.c +++ b/ext/alsa/gstalsamixertrack.c @@ -86,12 +86,10 @@ gst_alsa_mixer_track_new (snd_mixer_elem_t * element, alsa_track->track_num = track_num; /* set volume information */ - if (channels) { - if (alsa_flags & GST_ALSA_MIXER_TRACK_PLAYBACK) { - snd_mixer_selem_get_playback_volume_range (element, &min, &max); - } else if (alsa_flags & GST_ALSA_MIXER_TRACK_CAPTURE) { - snd_mixer_selem_get_capture_volume_range (element, &min, &max); - } + if (alsa_flags & GST_ALSA_MIXER_TRACK_PLAYBACK) { + snd_mixer_selem_get_playback_volume_range (element, &min, &max); + } else if (alsa_flags & GST_ALSA_MIXER_TRACK_CAPTURE) { + snd_mixer_selem_get_capture_volume_range (element, &min, &max); } track->min_volume = (gint) min; track->max_volume = (gint) max;