Lines Matching defs:control

200 		_("Left    Move to the previous control"),
201 _("Right Move to the next control"),
240 static struct control *get_focus_control(unsigned int type)
251 static void change_enum_to_percent(struct control *control, int value)
259 i = ffs(control->enum_channel_bits) - 1;
260 err = snd_mixer_selem_get_enum_item(control->elem, i, &index);
267 items = snd_mixer_selem_get_enum_items(control->elem);
275 if (control->enum_channel_bits & (1 << i))
276 snd_mixer_selem_set_enum_item(control->elem, i, new_index);
279 static void change_enum_relative(struct control *control, int delta)
287 items = snd_mixer_selem_get_enum_items(control->elem);
290 err = snd_mixer_selem_get_enum_item(control->elem, 0, &index);
301 if (control->enum_channel_bits & (1 << i))
302 snd_mixer_selem_set_enum_item(control->elem, i, new_index);
305 static void change_volume_to_percent(struct control *control, int value, unsigned int channels)
309 if (!(control->flags & HAS_VOLUME_1))
311 if (control->flags & TYPE_PVOLUME)
316 set_func(control->elem, control->volume_channels[0], value / 100.0, 0);
318 set_func(control->elem, control->volume_channels[1], value / 100.0, 0);
330 static void change_volume_relative(struct control *control, int delta, unsigned int channels)
337 if (!(control->flags & HAS_VOLUME_1))
339 if (control->flags & TYPE_PVOLUME) {
347 left = get_func(control->elem, control->volume_channels[0]);
349 right = get_func(control->elem, control->volume_channels[1]);
353 set_func(control->elem, control->volume_channels[0], left, dir);
357 set_func(control->elem, control->volume_channels[1], right, dir);
363 struct control *control;
365 control = get_focus_control(TYPE_PVOLUME | TYPE_CVOLUME | TYPE_ENUM);
366 if (!control)
368 if (control->flags & TYPE_ENUM)
369 change_enum_to_percent(control, value);
371 change_volume_to_percent(control, value, channels);
377 struct control *control;
379 control = get_focus_control(TYPE_PVOLUME | TYPE_CVOLUME | TYPE_ENUM);
380 if (!control)
382 if (control->flags & TYPE_ENUM)
383 change_enum_relative(control, delta);
385 change_volume_relative(control, delta, channels);
391 struct control *control;
399 control = get_focus_control(type);
400 if (!control)
406 channel_ids[0] = control->pswitch_channels[0];
407 channel_ids[1] = control->pswitch_channels[1];
412 channel_ids[0] = control->cswitch_channels[0];
413 channel_ids[1] = control->cswitch_channels[1];
415 if (!(control->flags & switch_1_mask))
418 err = get_func(control->elem, channel_ids[0], &left);
423 err = get_func(control->elem, channel_ids[1], &right);
428 set_func(control->elem, channel_ids[0], !left);
430 set_func(control->elem, channel_ids[1], !right);
446 struct control *control;
449 control = get_focus_control(TYPE_PVOLUME | TYPE_CVOLUME);
450 if (!control || !(control->flags & HAS_VOLUME_1))
452 if (control->flags & TYPE_PVOLUME) {
453 left = get_normalized_playback_volume(control->elem, control->volume_channels[0]);
454 right = get_normalized_playback_volume(control->elem, control->volume_channels[1]);
456 left = get_normalized_capture_volume(control->elem, control->volume_channels[0]);
457 right = get_normalized_capture_volume(control->elem, control->volume_channels[1]);
460 if (control->flags & TYPE_PVOLUME) {
461 set_normalized_playback_volume(control->elem, control->volume_channels[0], left, 0);
462 set_normalized_playback_volume(control->elem, control->volume_channels[1], left, 0);
464 set_normalized_capture_volume(control->elem, control->volume_channels[0], left, 0);
465 set_normalized_capture_volume(control->elem, control->volume_channels[1], left, 0);
475 struct control *control;
536 control = get_focus_control(TYPE_ENUM);
537 if (control &&
538 (snd_mixer_selem_get_enum_item(control->elem, 0, &index) >= 0)) {