When using alsactl to save or restore the card settings, it currently
skips over controls that don't have the appropriate read/write
permissions. It should also skip over inactive controls, otherwise it
will get an error when it tries to access that control, and will fail to
save the card state (or fully restore it.)
From: Dave Dillow <dave@thedillows.org>
snd_pcm_drain() doesn't block when running with O_NONBLOCK.
Reset the non-blocking mode before calling snd_pcm_drain() properly
(and restore again for any further operations).
Set -F option as default for restore. There are still too many systems
that are too lazy to set -F option...
Added the new -P option to back to the old behavior.
When alsactl saved state has dB level information and an attribute
of a control element is changed after save (e.g. volume range is
changed), try to restore the values to keep the same dB level.
This change requires the new alsa-lib functions for TLV dB
conversion, so we check it in configure (until AM_PATH_ALSA(1.0.16)
works).
Make "alsactl restore" a bit more robust. Now it tries to parse the
compound items in the case that the number of channels was changed.
The former mono-value is expanded to all channels.
cset accepts only integer values as indices, so far, but it's a bit
unfriendly. Now it accepts the item name as a string argument, too.
The index can be given using numbers as fallback.
The item names with channel specifier cannot be chosen correctly
via amixer sset. For example, 'Front Mic' is handled as 'Mic' since
the channel specificier 'Front' is omitted.
The idea of channel specifier is basically non-sense for enum items,
and this also makes the code very messy.
The patch fixes the behavior of enum items and gives the code clean-up
for sset command.
adds a space in the help text between "restore" and "<card>" and indents
the rest of the text accordingly to fit.
From: Tomas Pospisek <tpo2@sourcepole.ch>
Use local definitions of .EX/.EE or .DS/.DE to avoid low-level troff
requests in the page body. There are plans to add these to groff man;
in the interim, this patch adds a compatible definition.
From: Eric S. Raymond <esr@thyrsus.com>
Make sure that the sequencer output buffer is big enough to handle all
events that we send, and split large SysEx commands into one-second
chunks so that the sequencer kernel code can handle them.