This patch provides a bunch of improvements / fixes /
rearrangements / clarifications to the linuxaudiodev
module:
* Don't put the device in non-blocking mode at open()
time; this makes
it impossible to access blocking mode!
* Rename write() to writeall(), and add a write()
method that just
does one write().
* Rearrange/simplify writeall(): in particular, don't
supply a timeout
to select. Let it block forever if it has to.
* Add a bunch of simple ioctl() wrappers: nonblock(),
setfmt(),
getfmts(), channels(), speed(), sync(), reset(),
post(). These
wrap, respectively, SNDCTL_DSP_NONBLOCK,
SNDCTL_DSP_SETFMT, SNDCTL_DSP_GETFMTS, etc.
* Reduce flush() (which was a wrapper for the
SNDCTL_DSP_SYNC
ioctl) to an alias for sync().
* Rearrange the lad_methods list to reflect the order
in which the
methods are defined, and add some grouping comments.
With this patch, the module now acts sanely enough that
it's worth documenting (IMHO). And I understand it
well enough to write some docs!
|