alsamixer/amixer는 USB 오디오 클래스 2 컨트롤을 지원합니다.

alsamixer/amixer는 USB 오디오 클래스 2 컨트롤을 지원합니다.

저는 현재 USB 오디오 클래스 2 표준을 준수하는 USB 사운드 카드를 개발 중입니다. 현재 설정에서는 alsamixer의 여러 채널에 대한 오디오 및 음소거 제어 기능이 있습니다.

USB 오디오 클래스 2 사양은 저음, 중음, 고음, 이퀄라이저, 효과 등과 같은 다른 많은 컨트롤도 지원합니다. alsamixer가 지원하는 컨트롤 목록을 찾으려고 노력했지만 문서에는 지원되는 컨트롤 유형에 대한 구체적인 내용이 언급되어 있지 않습니다.

지원되는 컨트롤이나 대체 명령줄 프로그램 목록이 있는 사람이 있다면 크게 감사하겠습니다.

답변1

그와 같은 일은 없다

지원되는 컨트롤 목록

왜냐면...어쨌든제어 요소amixer장치에 의해 적절하게 노출된 정보는 명령에 의해 나열된 vg를 통해 고려될 수 amixer scontrols있으며 해당 유형(각각 부울, 정수 또는 열거형)에 따라 특정 버튼, 슬라이더 또는 목록을 통해 그래픽 인터페이스에서 액세스할 수 있습니다.alsalib의 snd_ctl* 함수.
이러한 제어 요소는 다양한 유형의 속성(최소/최대 값, 단계 크기, 가능한 값 목록)을 얻을 수 있습니다.
믹서 측에서는 USB 오디오 클래스 2 장치와 관련된 속성이 전혀 없습니다.

이것들제어 요소~로써 정의 된운전사struct snd_ctl_elem_info비슷한 물건들 중에서

static int snd_myctl_mono_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{
        uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
        uinfo->count = 1;
        uinfo->value.integer.min = 0;
        uinfo->value.integer.max = 1;
        return 0;
}

부울 값이란 무엇입니까?제어 요소.
자세한 내용은 위 링크를 참조하세요제어 요소게다가ALSA 핵심 API 문서사운드 드라이버 코드에 대한 공식 문서 및 자세한 예제입니다.

일부 alsa 드라이버는 문제를 해결하기 위해 일부 컨트롤을 미리 정의하여(vg는 일부 전체 목록으로 제한되지 않음) 지원을 제공할 수 있습니다.USB_오디오 드라이버구체적으로:

enum {
    USB_FEATURE_NONE = 0,
    USB_FEATURE_MUTE = 1,
    USB_FEATURE_VOLUME,
    USB_FEATURE_BASS,
    USB_FEATURE_MID,
    USB_FEATURE_TREBLE,
    USB_FEATURE_GEQ,
    USB_FEATURE_AGC,
    USB_FEATURE_DELAY,
    USB_FEATURE_BASSBOOST,
    USB_FEATURE_LOUDNESS
};

관련 정보