Lines Matching refs:elem

69 	snd_hctl_elem_t *elem;
240 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
259 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
277 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
306 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
318 static int selem_read(snd_mixer_elem_t *elem)
326 assert(snd_mixer_elem_get_type(elem) == SND_MIXER_ELEM_SIMPLE);
327 s = snd_mixer_elem_get_private(elem);
338 if (s->ctls[CTL_GLOBAL_ENUM].elem) {
345 if (s->ctls[CTL_CAPTURE_ENUM].elem) {
352 if (s->ctls[CTL_PLAYBACK_ENUM].elem) {
360 if (s->ctls[CTL_PLAYBACK_VOLUME].elem)
362 else if (s->ctls[CTL_GLOBAL_VOLUME].elem)
364 else if (s->ctls[CTL_SINGLE].elem &&
374 if (s->ctls[CTL_PLAYBACK_SWITCH].elem) {
379 if (s->ctls[CTL_GLOBAL_SWITCH].elem) {
384 if (s->ctls[CTL_SINGLE].elem &&
390 if (s->ctls[CTL_PLAYBACK_ROUTE].elem) {
395 if (s->ctls[CTL_GLOBAL_ROUTE].elem) {
402 if (s->ctls[CTL_CAPTURE_VOLUME].elem)
404 else if (s->ctls[CTL_GLOBAL_VOLUME].elem)
406 else if (s->ctls[CTL_SINGLE].elem &&
416 if (s->ctls[CTL_CAPTURE_SWITCH].elem) {
421 if (s->ctls[CTL_GLOBAL_SWITCH].elem) {
426 if (s->ctls[CTL_SINGLE].elem &&
432 if (s->ctls[CTL_CAPTURE_ROUTE].elem) {
437 if (s->ctls[CTL_GLOBAL_ROUTE].elem) {
442 if (s->ctls[CTL_CAPTURE_SOURCE].elem) {
445 err = snd_hctl_elem_read(c->elem, &ctl);
473 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
478 if ((err = snd_hctl_elem_write(c->elem, &ctl)) < 0)
489 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
494 if ((err = snd_hctl_elem_write(c->elem, &ctl)) < 0)
505 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
509 if ((err = snd_hctl_elem_write(c->elem, &ctl)) < 0)
520 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
527 if ((err = snd_hctl_elem_write(c->elem, &ctl)) < 0)
548 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
553 if ((err = snd_hctl_elem_write(c->elem, &ctl)) < 0)
558 static int selem_write_main(snd_mixer_elem_t *elem)
564 assert(snd_mixer_elem_get_type(elem) == SND_MIXER_ELEM_SIMPLE);
565 s = snd_mixer_elem_get_private(elem);
567 if (s->ctls[CTL_GLOBAL_ENUM].elem)
570 if (s->ctls[CTL_PLAYBACK_ENUM].elem)
573 if (s->ctls[CTL_CAPTURE_ENUM].elem)
576 if (s->ctls[CTL_SINGLE].elem) {
584 if (s->ctls[CTL_GLOBAL_VOLUME].elem) {
589 if (s->ctls[CTL_GLOBAL_SWITCH].elem) {
590 if (s->ctls[CTL_PLAYBACK_SWITCH].elem &&
591 s->ctls[CTL_CAPTURE_SWITCH].elem)
599 if (s->ctls[CTL_PLAYBACK_VOLUME].elem) {
604 if (s->ctls[CTL_PLAYBACK_SWITCH].elem) {
609 if (s->ctls[CTL_PLAYBACK_ROUTE].elem) {
614 if (s->ctls[CTL_CAPTURE_VOLUME].elem) {
619 if (s->ctls[CTL_CAPTURE_SWITCH].elem) {
624 if (s->ctls[CTL_CAPTURE_ROUTE].elem) {
629 if (s->ctls[CTL_CAPTURE_SOURCE].elem) {
632 if ((err = snd_hctl_elem_read(c->elem, &ctl)) < 0)
639 if ((err = snd_hctl_elem_write(c->elem, &ctl)) < 0)
642 err = selem_read(elem);
649 static int selem_write(snd_mixer_elem_t *elem)
653 err = selem_write_main(elem);
655 selem_read(elem);
659 static void selem_free(snd_mixer_elem_t *elem)
661 selem_none_t *simple = snd_mixer_elem_get_private(elem);
662 assert(snd_mixer_elem_get_type(elem) == SND_MIXER_ELEM_SIMPLE);
688 if (ctl->elem) {
698 if (ctl->elem) {
706 if (ctl->elem) {
714 if (ctl->elem) {
730 if (ctl->elem) {
737 if (ctl->elem) {
744 if (ctl->elem) {
751 if (ctl->elem) {
758 if (ctl->elem) {
769 if (ctl->elem) {
780 if (ctl->elem) {
787 if (ctl->elem) {
793 if (ctl->elem) {
799 if (ctl->elem) {
817 if (simple->ctls[CTL_SINGLE].elem &&
824 if (simple->ctls[CTL_GLOBAL_ROUTE].elem ||
825 (simple->ctls[CTL_GLOBAL_SWITCH].elem &&
829 if (simple->ctls[CTL_GLOBAL_VOLUME].elem &&
835 if (simple->ctls[CTL_PLAYBACK_ROUTE].elem ||
836 (simple->ctls[CTL_PLAYBACK_SWITCH].elem &&
840 if (simple->ctls[CTL_PLAYBACK_VOLUME].elem &&
846 if (simple->ctls[CTL_CAPTURE_ROUTE].elem ||
847 (simple->ctls[CTL_CAPTURE_SWITCH].elem &&
849 (simple->ctls[CTL_CAPTURE_SOURCE].elem &&
853 if (simple->ctls[CTL_CAPTURE_VOLUME].elem &&
965 static int _snd_mixer_selem_set_volume(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, long value)
967 selem_none_t *s = snd_mixer_elem_get_private(elem);
984 static int _snd_mixer_selem_set_switch(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, int value)
986 selem_none_t *s = snd_mixer_elem_get_private(elem);
1006 static int is_ops(snd_mixer_elem_t *elem, int dir, int cmd, int val)
1008 selem_none_t *s = snd_mixer_elem_get_private(elem);
1015 if (s->ctls[ctl].elem != NULL && s->ctls[ctl].inactive)
1041 if (! s->ctls[CTL_GLOBAL_ENUM].elem)
1046 if (! s->ctls[CTL_PLAYBACK_ENUM].elem)
1051 if (! s->ctls[CTL_CAPTURE_ENUM].elem)
1061 static int get_range_ops(snd_mixer_elem_t *elem, int dir,
1064 selem_none_t *s = snd_mixer_elem_get_private(elem);
1070 static int set_range_ops(snd_mixer_elem_t *elem, int dir,
1073 selem_none_t *s = snd_mixer_elem_get_private(elem);
1079 if ((err = selem_read(elem)) < 0)
1084 static int get_volume_ops(snd_mixer_elem_t *elem, int dir,
1087 selem_none_t *s = snd_mixer_elem_get_private(elem);
1158 if (! c->elem)
1160 if (! c->elem)
1162 if (! c->elem)
1178 static int get_dB_range_ops(snd_mixer_elem_t *elem, int dir,
1181 selem_none_t *s = snd_mixer_elem_get_private(elem);
1189 return get_dB_range(c->elem, &s->str[dir], min, max);
1202 static int ask_vol_dB_ops(snd_mixer_elem_t *elem,
1207 selem_none_t *s = snd_mixer_elem_get_private(elem);
1213 int res = convert_to_dB(c->elem, &s->str[dir], value, dBvalue);
1217 static int get_dB_ops(snd_mixer_elem_t *elem,
1222 selem_none_t *s = snd_mixer_elem_get_private(elem);
1232 if ((err = get_volume_ops(elem, dir, channel, &volume)) < 0)
1234 if ((err = convert_to_dB(c->elem, &s->str[dir], volume, &db_gain)) < 0)
1242 static int get_switch_ops(snd_mixer_elem_t *elem, int dir,
1245 selem_none_t *s = snd_mixer_elem_get_private(elem);
1254 static int set_volume_ops(snd_mixer_elem_t *elem, int dir,
1258 changed = _snd_mixer_selem_set_volume(elem, dir, channel, value);
1262 return selem_write(elem);
1266 static int ask_dB_vol_ops(snd_mixer_elem_t *elem, int dir,
1269 selem_none_t *s = snd_mixer_elem_get_private(elem);
1277 return convert_from_dB(c->elem, &s->str[dir], dbValue, value, xdir);
1280 static int set_dB_ops(snd_mixer_elem_t *elem, int dir,
1284 selem_none_t *s = snd_mixer_elem_get_private(elem);
1294 err = convert_from_dB(c->elem, &s->str[dir], db_gain, &value, xdir);
1297 return set_volume_ops(elem, dir, channel, value);
1300 static int set_switch_ops(snd_mixer_elem_t *elem, int dir,
1304 selem_none_t *s = snd_mixer_elem_get_private(elem);
1314 changed = _snd_mixer_selem_set_switch(elem, dir, channel, value);
1318 return selem_write(elem);
1322 static int enum_item_name_ops(snd_mixer_elem_t *elem,
1326 selem_none_t *s = snd_mixer_elem_get_private(elem);
1332 helem = s->ctls[type].elem;
1335 helem = s->ctls[type].elem;
1339 helem = s->ctls[type].elem;
1351 static int get_enum_item_ops(snd_mixer_elem_t *elem,
1355 selem_none_t *s = snd_mixer_elem_get_private(elem);
1362 helem = s->ctls[CTL_GLOBAL_ENUM].elem;
1363 if (!helem) helem = s->ctls[CTL_PLAYBACK_ENUM].elem;
1364 if (!helem) helem = s->ctls[CTL_CAPTURE_ENUM].elem;
1372 static int set_enum_item_ops(snd_mixer_elem_t *elem,
1376 selem_none_t *s = snd_mixer_elem_get_private(elem);
1386 helem = s->ctls[type].elem;
1389 helem = s->ctls[type].elem;
1393 helem = s->ctls[type].elem;
1554 if (simple->ctls[type].elem) {
1565 simple->ctls[type].elem = helem;
1666 if (simple->ctls[k].elem == helem)
1670 simple->ctls[k].elem = NULL;