Controlling feature/effect units in USB (UAC2) audio devices

Mark Kuckian Cowan via Alsa-user <[email protected]> Sat, 5 Nov 2022 22:37:29 +0200
Newsgroups gmane.linux.alsa.user
Message-ID <CAJQL7_rSwP1dVEm3sMxWWJy+ki3COMPdgN4fHg_LQ+BnRaCgZQ@mail.gmail.com>
For USB audio devices ("USB Audio Class 2" / UAC2 in my case):

Does ALSA expose an interface for controlling "feature units" or "effect units"?

I'm building a UAC2 device.
It has a feature unit currently.

The "volume" and "mute" controls of the feature unit appear in
alsamixer and work correctly.

A "graphic equaliser" set of controls on the same feature unit do not
appear in alsamixer (expected I guess, "mixer" is in the name).

But I also haven't been able to find anything in /sys for interacting
with them either.
Perhaps I need to talk to the device via /dev?

Does ALSA expose any interface for talking to controls on "feature
units" or "effect units" of UAC2 devices?

Descriptor of the feature unit, from `lsusb -v`:

      AudioControl Interface Descriptor:
        bLength                18
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 2
        bSourceID               1
        bmaControls(0)     0x00000c0f
          Mute Control (read/write)
          Volume Control (read/write)
          Graphic Equalizer Control (read/write)
        bmaControls(1)     0x00000000
        bmaControls(2)     0x00000000
        iFeature               10


Thanks,
  Mark