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
};

おすすめ記事