mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
ext/alsa/: Add switches (simple boolean on/off).
Original commit message from CVS: * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new): Add switches (simple boolean on/off).
This commit is contained in:
parent
ae32253a4a
commit
afb7b74873
3 changed files with 26 additions and 8 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2004-08-29 Ronald S. Bultje <Ronald S. Bultje <rbultje@ronald.bitfreak.net>>
|
||||||
|
|
||||||
|
* 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 <ds@schleef.org>
|
2004-08-27 David Schleef <ds@schleef.org>
|
||||||
|
|
||||||
* sys/glsink/glimagesink.c: (gst_glimagesink_ximage_put),
|
* sys/glsink/glimagesink.c: (gst_glimagesink_ximage_put),
|
||||||
|
|
|
@ -266,6 +266,7 @@ gst_alsa_mixer_build_list (GstAlsaMixer * mixer)
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
gint channels = 0;
|
gint channels = 0;
|
||||||
gint flags = GST_MIXER_TRACK_OUTPUT;
|
gint flags = GST_MIXER_TRACK_OUTPUT;
|
||||||
|
gboolean got_it = FALSE;
|
||||||
|
|
||||||
if (snd_mixer_selem_has_capture_switch (element)) {
|
if (snd_mixer_selem_has_capture_switch (element)) {
|
||||||
if (dir != GST_PAD_SRC && dir != GST_PAD_UNKNOWN)
|
if (dir != GST_PAD_SRC && dir != GST_PAD_UNKNOWN)
|
||||||
|
@ -279,13 +280,10 @@ gst_alsa_mixer_build_list (GstAlsaMixer * mixer)
|
||||||
if (snd_mixer_selem_has_capture_volume (element)) {
|
if (snd_mixer_selem_has_capture_volume (element)) {
|
||||||
while (snd_mixer_selem_has_capture_channel (element, channels))
|
while (snd_mixer_selem_has_capture_channel (element, channels))
|
||||||
channels++;
|
channels++;
|
||||||
if (first) {
|
|
||||||
first = FALSE;
|
|
||||||
flags |= GST_MIXER_TRACK_MASTER;
|
|
||||||
}
|
|
||||||
track = gst_alsa_mixer_track_new (element, i, channels,
|
track = gst_alsa_mixer_track_new (element, i, channels,
|
||||||
flags, GST_ALSA_MIXER_TRACK_CAPTURE);
|
flags, GST_ALSA_MIXER_TRACK_CAPTURE);
|
||||||
mixer->tracklist = g_list_append (mixer->tracklist, track);
|
mixer->tracklist = g_list_append (mixer->tracklist, track);
|
||||||
|
got_it = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (snd_mixer_selem_has_playback_volume (element)) {
|
if (snd_mixer_selem_has_playback_volume (element)) {
|
||||||
|
@ -298,11 +296,23 @@ gst_alsa_mixer_build_list (GstAlsaMixer * mixer)
|
||||||
track = gst_alsa_mixer_track_new (element, i, channels,
|
track = gst_alsa_mixer_track_new (element, i, channels,
|
||||||
flags, GST_ALSA_MIXER_TRACK_PLAYBACK);
|
flags, GST_ALSA_MIXER_TRACK_PLAYBACK);
|
||||||
mixer->tracklist = g_list_append (mixer->tracklist, track);
|
mixer->tracklist = g_list_append (mixer->tracklist, track);
|
||||||
|
got_it = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (snd_mixer_selem_is_enumerated (element)) {
|
if (snd_mixer_selem_is_enumerated (element)) {
|
||||||
opts = gst_alsa_mixer_options_new (element, i);
|
opts = gst_alsa_mixer_options_new (element, i);
|
||||||
mixer->tracklist = g_list_append (mixer->tracklist, opts);
|
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);
|
element = snd_mixer_elem_next (element);
|
||||||
|
|
|
@ -86,10 +86,12 @@ gst_alsa_mixer_track_new (snd_mixer_elem_t * element,
|
||||||
alsa_track->track_num = track_num;
|
alsa_track->track_num = track_num;
|
||||||
|
|
||||||
/* set volume information */
|
/* set volume information */
|
||||||
if (alsa_flags & GST_ALSA_MIXER_TRACK_PLAYBACK) {
|
if (channels) {
|
||||||
snd_mixer_selem_get_playback_volume_range (element, &min, &max);
|
if (alsa_flags & GST_ALSA_MIXER_TRACK_PLAYBACK) {
|
||||||
} else if (alsa_flags & GST_ALSA_MIXER_TRACK_CAPTURE) {
|
snd_mixer_selem_get_playback_volume_range (element, &min, &max);
|
||||||
snd_mixer_selem_get_capture_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->min_volume = (gint) min;
|
||||||
track->max_volume = (gint) max;
|
track->max_volume = (gint) max;
|
||||||
|
|
Loading…
Reference in a new issue