[alsa-devel] Possible message repeat
Hello. I sent this message previously before I solidified my membership to the list and it seems my message never posted. Here it is again. My apologies if did go through and I missed it.
I am new to audio development in Linux. I have worked with user space development with respect to UVC code and I have worked with specifying an XU in UVC. I wrote a user space driver/application to talk to a device supporting the UVC XU in Linux. I am trying to specify an extension to the UAC specification and then write a user space driver/application to use the extension when a device that supports it is available in Linux. Pretty much the same situation as I have already done with UVC XU. Windows and Mac code will follow, but right now I am only concerned with Linux.
Can anyone assist me with the best path forward for writing user space code to use the XU I am going to define? Meaning generically speaking how to use UAC XU controls in ALSA. I was looking for code samples that use the audio.h header file interface, but after a day and a half I am coming to conclusion that only kernel space uses audio.h and that I will need to go through ALSA to accomplish my task. Again, this will be user space code I want distribute easily, with minimal dependencies. Our code will be apache licensed afterwards if possible, just like our UVC code was. So any work I do should be freely available to the community afterwards. **EDIT FROM PREVIOUS MESSAGE** After more searching, it appears that any XU controls would be processed through usbmixer.c, but I don't see how to use the code in usbmixer from user space. And so far I can't tell what source usbmixer resides in. I downloaded the alsa-lib source in Fedora, but I don't see that file. Is this a Linux kernel file? So far I am having lots of trouble finding anything useful regarding audio XUs in Linux. My apologies if this should be simple. Thank you in advance for any assistance.
Best Regards,
Brent
Brent Weatherall wrote:
I am trying to specify an extension to the UAC specification and then write a user space driver/application to use the extension when a device that supports it is available in Linux.
Can anyone assist me with the best path forward for writing user space code to use the XU I am going to define? Meaning generically speaking how to use UAC XU controls in ALSA.
XU controls cannot be used generically. The driver must be extended to create the vendor-specific controls of this particular device; or the driver could get a function to allow userspace to add such controls.
it appears that any XU controls would be processed through usbmixer.c, but I don't see how to use the code in usbmixer from user space.
That code creates mixer controls.
And so far I can't tell what source usbmixer resides in.
sound/usb/mixer.c in the kernel source, although such extensions probably belong into mixer_quirks.c.
Regards, Clemens
participants (2)
-
Brent Weatherall
-
Clemens Ladisch