comparison src/alsa-ng/alsa-core.c @ 3178:4634dab72608

alsa-ng: Add get_volume() implementation.
author William Pitcock <nenolod@atheme.org>
date Wed, 10 Jun 2009 00:06:15 -0500
parents 1117166277f7
children 2e7a64bb33cd
comparison
equal deleted inserted replaced
3177:1117166277f7 3178:4634dab72608
155 } 155 }
156 156
157 snd_mixer_handle_events(amixer); 157 snd_mixer_handle_events(amixer);
158 } 158 }
159 159
160 static void
161 alsaplug_get_volume(gint *l, gint *r)
162 {
163 snd_mixer_elem_t *elem = alsaplug_guess_mixer_elem(amixer);
164
165 if (elem == NULL)
166 return;
167
168 snd_mixer_handle_events(amixer);
169
170 *l = 0;
171 *r = 0;
172
173 if (snd_mixer_selem_is_playback_mono(elem))
174 {
175 snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, (glong *) l);
176 snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_MONO, (glong *) r);
177 }
178 else
179 {
180 snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_FRONT_LEFT, (glong *) l);
181 snd_mixer_selem_get_playback_volume(elem, SND_MIXER_SCHN_FRONT_RIGHT, (glong *) r);
182 }
183 }
184
160 /******************************************************************************** 185 /********************************************************************************
161 * ALSA PCM I/O functions. * 186 * ALSA PCM I/O functions. *
162 ********************************************************************************/ 187 ********************************************************************************/
163 188
164 static void 189 static void
454 .buffer_free = alsaplug_buffer_free, 479 .buffer_free = alsaplug_buffer_free,
455 .buffer_playing = alsaplug_buffer_playing, 480 .buffer_playing = alsaplug_buffer_playing,
456 .flush = alsaplug_flush, 481 .flush = alsaplug_flush,
457 .pause = alsaplug_pause, 482 .pause = alsaplug_pause,
458 .set_volume = alsaplug_set_volume, 483 .set_volume = alsaplug_set_volume,
484 .get_volume = alsaplug_get_volume,
459 }; 485 };
460 486
461 OutputPlugin *alsa_oplist[] = { &alsa_op, NULL }; 487 OutputPlugin *alsa_oplist[] = { &alsa_op, NULL };
462 SIMPLE_OUTPUT_PLUGIN(alsa, alsa_oplist); 488 SIMPLE_OUTPUT_PLUGIN(alsa, alsa_oplist);