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

Reply via email to