2017-11-14 10 views
2

amixer:-lコントロールをデバイスにマップするにはどうすればよいですか? 0コントロール-c

... 
numid=22,iface=MIXER,name='Capture Switch' 

numid=24,iface=MIXER,name='Capture Switch',index=1 

numid=21,iface=MIXER,name='Capture Volume' 

numid=23,iface=MIXER,name='Capture Volume',index=1 

... 

arecord:

card 0: PCH [HDA Intel PCH], device 0: ALC662 rev3 Analog [ALC662 rev3 Analog] 
    Subdevices: 1/1 
    Subdevice #0: subdevice #0 
card 0: PCH [HDA Intel PCH], device 2: ALC662 rev3 Alt Analog [ALC662 rev3 Alt Analog] 
    Subdevices: 1/1 
    Subdevice #0: subdevice #0 

私は、同じ名前を持つ2つのコントロールを持っています。私は知っている、それがハンドルストリームカード= 0、デバイス= 0、秒 - カード= 0、デバイス= 2です。しかし、どのように私は特定のデバイスの応答を制御する私のプログラムから得ることができますか? numid = 21のコントロールまたはnumid = 23のコントロールはデバイス2を処理しますか?

私は/ proc/asound/cord0/codec#0にそれに関する有用な情報があります。しかし、私はからに検出する必要があります。

+0

実際に解決しようとしている問題は何ですか? –

+0

リアルタイムで私はシステムで提示されたオーディオデバイスを検出します。私は彼らと一緒に作業すると、 "plughw:"のように見えます。それぞれのデバイスについては、具体的なデバイスに関連付けられているコントロールのリストを知りたい。私はコントロールを意味し、どの値がコンクリート機器からのサウンドに影響するかを変更します。 私の英語のために申し訳ありません。 – Kostya

+0

システム内の1枚のカードに同じ名前のコントロールがいくつか表示されていて、それは正面だけではありません。 – Kostya

答えて

1

インターフェイスMIXERのコントロールは、どのデバイスにも直接関連付けられていません。

さらに詳細を調べるには、ハードウェアに依存するメカニズムを使用するしかありません。ただし、HDAの場合、codec#xの読み込みは、ウィジェットをコントロールにマップするためにカーネルが使用する正確なアルゴリズムが保証されていないためあまり有用ではありません。

関連する問題