Lines Matching refs:control

392 	hda_multi_mixer_control control;
394 control.nid = widget.node_id;
395 control.input = input;
396 control.mute = 0;
397 control.gain = 0;
398 control.capabilities = capabilities;
399 control.index = inputIndex;
400 control.mix_control.master = MULTI_CONTROL_MASTERID;
401 control.mix_control.parent = parent;
404 control.mix_control.id = MULTI_CONTROL_FIRSTID + i;
405 control.mix_control.flags = B_MULTI_MIX_ENABLE;
406 control.mix_control.string = S_MUTE;
407 control.type = B_MIX_MUTE;
408 multi->controls[i++] = control;
409 TRACE("control nid %" B_PRIu32 " mute\n", control.nid);
414 control.mix_control.gain.granularity = AMP_CAP_STEP_SIZE(capabilities);
415 control.mix_control.gain.min_gain = (0.0 - AMP_CAP_OFFSET(capabilities))
416 * control.mix_control.gain.granularity;
417 control.mix_control.gain.max_gain = (AMP_CAP_NUM_STEPS(capabilities)
419 * control.mix_control.gain.granularity;
421 control.mix_control.id = MULTI_CONTROL_FIRSTID + i;
422 control.mix_control.flags = B_MULTI_MIX_GAIN;
423 control.mix_control.string = S_null;
424 control.type = B_MIX_GAIN;
425 strcpy(control.mix_control.name, "Gain");
426 multi->controls[i++] = control;
427 id = control.mix_control.id;
430 control.mix_control.id = MULTI_CONTROL_FIRSTID + i;
431 control.mix_control.master = id;
432 multi->controls[i++] = control;
433 TRACE("control nid %" B_PRIu32 " %f min %f max %f\n", control.nid,
434 control.mix_control.gain.granularity,
435 control.mix_control.gain.min_gain,
436 control.mix_control.gain.max_gain);
449 hda_multi_mixer_control control;
452 control.nid = widget.node_id;
453 control.input = true;
454 control.mute = 0;
455 control.gain = 0;
456 control.mix_control.master = MULTI_CONTROL_MASTERID;
457 control.mix_control.parent = parent;
458 control.mix_control.id = MULTI_CONTROL_FIRSTID + i;
459 control.mix_control.flags = B_MULTI_MIX_MUX;
460 control.mix_control.string = S_null;
461 control.type = widget.type == WT_AUDIO_MIXER
463 multi->controls[i] = control;
466 parent2 = control.mix_control.id;
473 control.nid = widget.node_id;
474 control.input = true;
475 control.mix_control.id = MULTI_CONTROL_FIRSTID + i;
476 control.mix_control.flags = B_MULTI_MIX_MUX_VALUE;
477 control.mix_control.parent = parent2;
478 control.mix_control.string = S_null;
479 multi->controls[i] = control;
675 hda_multi_mixer_control *control, uint32 *resp)
679 control->nid,
681 (control->input ? AMP_GET_INPUT : AMP_GET_OUTPUT)
682 | AMP_GET_LEFT_CHANNEL | AMP_GET_INPUT_INDEX(control->index));
684 control->nid,
686 (control->input ? AMP_GET_INPUT : AMP_GET_OUTPUT)
687 | AMP_GET_RIGHT_CHANNEL | AMP_GET_INPUT_INDEX(control->index));
696 hda_multi_mixer_control *control = NULL;
700 dprintf("hda: get_mix : invalid control id requested : %" B_PRId32
704 control = &audioGroup->multi->controls[id];
706 if ((control->mix_control.flags
709 get_control_gain_mute(audioGroup, control, resp);
710 if ((control->mix_control.flags & B_MULTI_MIX_ENABLE) != 0) {
712 TRACE("get_mix: %" B_PRId32 " mute: %d\n", control->nid,
714 } else if ((control->mix_control.flags & B_MULTI_MIX_GAIN) != 0) {
716 if (control->mix_control.master == MULTI_CONTROL_MASTERID)
720 mmvi->values[i].gain = (0.0 + value - AMP_CAP_OFFSET(control->capabilities))
721 * AMP_CAP_STEP_SIZE(control->capabilities);
723 control->nid, mmvi->values[i].gain, value);
726 } else if ((control->mix_control.flags & B_MIX_MUX_MIXER) != 0) {
728 control->nid);
732 control->nid, VID_GET_AMPLIFIER_GAIN_MUTE, AMP_GET_INPUT
737 " is %smute\n", control->nid,
748 control->nid, mmvi->values[i].mux);
749 } else if ((control->mix_control.flags & B_MIX_MUX_SELECTOR) != 0) {
750 uint32 verb = MAKE_VERB(audioGroup->codec->addr, control->nid,
756 control->nid, mmvi->values[i].mux);
767 hda_multi_mixer_control *control = NULL;
771 dprintf("set_mix : invalid control id requested : %" B_PRId32 "\n",
775 control = &audioGroup->multi->controls[id];
777 if ((control->mix_control.flags & B_MULTI_MIX_ENABLE) != 0) {
778 control->mute = (mmvi->values[i].enable ? AMP_MUTE : 0);
779 TRACE("set_mix: %" B_PRId32 " mute: %" B_PRIx32 "\n", control->nid,
780 control->mute);
782 get_control_gain_mute(audioGroup, control, resp);
786 control->nid,
788 (control->input ? AMP_SET_INPUT : AMP_SET_OUTPUT)
790 | AMP_SET_INPUT_INDEX(control->index)
791 | control->mute
794 B_PRIx32 " %x %lx\n", control->nid,
795 control->mute, resp[0] & AMP_GAIN_MASK, control->input,
796 (control->input ? AMP_SET_INPUT : AMP_SET_OUTPUT)
798 | AMP_SET_INPUT_INDEX(control->index)
799 | control->mute
802 control->nid,
804 (control->input ? AMP_SET_INPUT : AMP_SET_OUTPUT)
806 | AMP_SET_INPUT_INDEX(control->index)
807 | control->mute
810 " %" B_PRIx32 " %x\n", control->nid, control->mute,
811 resp[1] & AMP_GAIN_MASK, control->input);
813 } else if ((control->mix_control.flags & B_MULTI_MIX_GAIN) != 0) {
818 dprintf("set_mix : invalid control id requested : %"
822 if (control2->mix_control.master != control->mix_control.id)
827 if (control->mix_control.master == MULTI_CONTROL_MASTERID) {
828 control->gain = (uint32)(mmvi->values[i].gain
829 / AMP_CAP_STEP_SIZE(control->capabilities)
830 + AMP_CAP_OFFSET(control->capabilities));
840 " gain: %" B_PRIx32 "\n", control->nid, control->gain,
843 get_control_gain_mute(audioGroup, control, resp);
844 control->mute = resp[0] & AMP_MUTE;
850 control->nid,
852 (control->input ? AMP_SET_INPUT : AMP_SET_OUTPUT)
854 | AMP_SET_INPUT_INDEX(control->index)
855 | (control->mute & AMP_MUTE)
856 | (control->gain & AMP_GAIN_MASK));
858 B_PRIx32 " %x %lx\n", control->nid,
859 control->mute, control->gain, control->input,
860 (control->input ? AMP_SET_INPUT : AMP_SET_OUTPUT)
862 | AMP_SET_INPUT_INDEX(control->index)
863 | (control->mute & AMP_MUTE)
864 | (control->gain & AMP_GAIN_MASK));
869 (control->input ? AMP_SET_INPUT : AMP_SET_OUTPUT)
871 | AMP_SET_INPUT_INDEX(control->index)
882 } else if ((control->mix_control.flags & B_MIX_MUX_MIXER) != 0) {
884 control->nid, mmvi->values[i].mux);
886 control->nid);
890 control->nid, VID_SET_AMPLIFIER_GAIN_MUTE, AMP_SET_INPUT
895 B_PRIu32 ")\n", control->nid,
901 B_PRIu32 "!\n", mmvi->values[i].mux, control->nid);
902 } else if ((control->mix_control.flags & B_MIX_MUX_SELECTOR) != 0) {
903 uint32 verb = MAKE_VERB(audioGroup->codec->addr, control->nid,
908 control->nid);
911 control->nid, mmvi->values[i].mux);