[alsa-devel] [PATCH] control, hw, rawmidi: accept control device node as card identifier when opening

Lennart Poettering mznyfn at 0pointer.de
Tue May 12 14:29:42 CEST 2009


On Tue, 12.05.09 08:09, Jaroslav Kysela (perex at perex.cz) wrote:

> 
> On Tue, 12 May 2009, Lennart Poettering wrote:
> 
> > Heya!
> >
> > Traditionally low-level ALSA devices are opened with device strings like
> > 'hw:CARD' where CARD is either a numeric index or a card name. This
> > patch introduces a third syntax that allows you to specify the file name
> > of the control device node. The purpose for this is to make ALSA a bit
> > more like other Linux devices and allow implementaiton of udev device
> > symlinks similar to how disks are currently handled, with
> > /dev/disk/by-path/xxxx /dev/disk/by-id/xxxx and so on.
> >
> > With this patch this line:
> >
> >  aplay -f CD -D hw:/dev/snd/controlC0 < /dev/urandom
> >
> > becomes equivalent to this line:
> >
> >  aplay -f CD -D hw:0 < /dev/urandom
> >
> > A more useful example is this:
> >
> >  aplay -f CD -D hw:/dev/snd/by-path/pci-0000:00:1a.7-usb-0:2:1.2
> >
> > (this line requires a a few additional udev rules)
> >
> > This only works for control devices nodes, not for PCM or any other
> > device nodes. Since the control device node is used as 'entry point'
> > when opening PCM devices this is no limitation.
> 
> NAK. Passing control device to open() functions is not a good idea. 

Why? Please elaborate!

The whole point of this patch is to allow users to write struff like
hw:/dev/snd/by-path/pci-0000:00:1a.7-usb-0:2:1.2 whereever they could
otherwise write hw:0. Why is that a bad idea?

> The snd_card_get_index() function might be extended to allow /dev
> style argument. Returned card index can be used as argument for hw:
> devices without this massive change.

This is no improvement at all, because no application does that. The
point of the patch was to improve the flexibility for all
applications. 

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4


More information about the Alsa-devel mailing list