The following case proposes some incompatible changes to an Uncommitted
interface. However, since the interfaces involved were only introduced in
snv_115, and are not included in any actual official product, I think we can
safely fix this with a fast track.
Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
This information is Copyright 2009 Sun Microsystems
1. Introduction
1.1. Project/Component Working Name:
mixerctl improvements
1.2. Name of Document Author/Supplier:
Author: Garrett D'Amore
1.3 Date of This Document:
13 November, 2009
4. Technical Description
Mixerctl Improvements
PSARC 2008/318 introduced a new command, /usr/sbin/mixerctl, which could be
used to adjust settings for audio devices.
However, there are several problems with the current implementation, and
this case seeks to improve these.
1) Usability: the names of audio devices displayed are not the same as names
used for the command line parser. (Display uses "audiohd#0", but command
requires an actal /dev name to be supplied, e.g. /dev/sound/0ctl.
2) Usability: the use of getopt() instead of subcommands for all values
makes using the command a bit awkward. We believe subcommands with a
few "main" parameter arguments (such as the precedent set by zoneadm and
the ZFS administration commands) is more intuitive.
3) Usability: the command is supplied in /usr/sbin, where it is not on the
default path for many users.
4) Commitment: the single Uncommitted binding previously used was a bit
vague, and in some cases inaccurate. A significant clarification is
called for.
Specific Changes:
1) Device names generated on output will be of the form "driver:instance",
and will be usable as arguments when a device name is called for.
2) A completely new command syntax, specified in the attached man page,
shall replace the old syntax. The new syntax uses major subcommands to
split apart major functionality, and should be a lot more intuitive.
(E.g. to change the master volume to 50 percent, one can just execute
"mixerctl set volume 50")
3) The command will be moved to /usr/bin. We can leave a symbolic link in
/usr/sbin, but we see little merit in doing so as the original case was
Uncommitted and the command has not been in any offical product release yet.
4) The man page supplies much more detail about the exact commitment
levels:
The mixerctl command and the subcommands are Committed.
The human readable output from this command is Not An Interface.
The device names, control names, and values are Uncommitted.
The format of the state files used by the save and restore commands
is Committed Private.
6. Resources and Schedule
6.4. Steering Committee requested information
6.4.1. Consolidation C-team Name:
ON
6.5. ARC review type: FastTrack
6.6. ARC Exposure: open