USB Wireless device support

Takashi Iwai tiwai at suse.de
Wed Jan 13 16:08:51 CET 2021


On Wed, 13 Jan 2021 16:03:39 +0100,
Bastien Nocera wrote:
> 
> On Wed, 2021-01-13 at 15:49 +0100, Takashi Iwai wrote:
> > On Wed, 13 Jan 2021 15:36:19 +0100,
> > Bastien Nocera wrote:
> > > 
> > > Hey,
> > > 
> > > On Wed, 2020-12-09 at 14:30 +0100, Bastien Nocera wrote:
> > > > Hey,
> > > > 
> > > > I've recently bought a SteelSeries Arctis 1 wireless headset:
> > > > https://steelseries.com/gaming-headsets/arctis-1-wireless-xbox
> > > > and wanted to write a kernel driver to export a few features of
> > > > the
> > > > device, and needed some help getting started.
> > > > 
> > > > The receiver shows up as a audio class USB device, with extra
> > > > features
> > > > on a separate USB interface.[1]
> > > > 
> > > > The extra features that can be accessed are:
> > > > - Presence detection. I wanted to use that so PulseAudio or
> > > > Pipewire
> > > > could make routing decisions based on whether the headset is
> > > > available,
> > > > or probably better, implementing a "jack detection" emulation for
> > > > the
> > > > main audio interface?
> > > > - A slider to change the sidetone volume
> > > > - Export the battery level
> > > > 
> > > > The latter is the only one I know how to do, so I'd be happy with
> > > > any
> > > > pointers or examples about the first two items.
> > > 
> > > 
> > > I sent this in December and didn't get any answers, and I would
> > > appreciate any guidance/examples if you have any into implementing
> > > this.
> > 
> > Judging from the link, is it controlled through HID?  If so, it's
> > primarily done by a HID driver, and it doesn't belong to the sound
> > card stuff, so far.
> > Though....
> > 
> > > I would imagine that the new features would be implemented through
> > > a
> > > separate ALSA device with few features, which PulseAudio/Pipewire
> > > could
> > > merge with the existing USB audio device.
> > 
> > ... given that it's implemented in a HID driver, the integration to
> > the system is a different question.  But unless it's implemented as a
> > sound card device, the rest will become a totally different,
> > e.g. another PA or PW module.
> 
> I think that it might be good to have the sidetone configuration
> implemented as a channel mixer, so it could be shown along with the
> device volume in sound settings.
> 
> I believe there's already a device group feature in PulseAudio that
> could be used to merge the sidetone level with the rest of the USB
> audio mixers.
> 
> Is there an example of a mixer like that implemented in a hid or
> another type of non-ALSA/sound driver?

Nothing so far, and that's the problem.  HID is managed in a
completely different layer, hence the integration needs to be done in
a higher level like PA, I suppose.  In theory we might be able to
extend UCM to handle the other external devices, though.


Takashi


More information about the Alsa-devel mailing list