so i assume that in the man page below you'll be doing
s/mixerctl/audioctl/. if that's the case then i wonder about the need
for AUDIODEV support. AUDIODEV normally points to SADA style audio
devices, right? but since your introducting a new audioctl tool,
shouldn't it be designed to work on boomer audio devices, not SADA
devices?
ed
On Fri, Nov 13, 2009 at 07:22:40PM -0800, Garrett D'Amore wrote:
> Missing new page (sorry I forgot to hit the attach button!):
>
>
> User Commands mixerctl(1)
>
>
>
> NAME
> mixerctl - audio mixer control command line application
>
> SYNOPSIS
>
> mixerctl devices
>
> mixerctl info [-v] [-d device ]
>
> mixerctl get [-v] [-d device] [control ...]
>
> mixerctl set [-v] [-d device] control value
>
> mixerctl save [-d device] file
>
> mixerctl restore [-d device] file
>
> DESCRIPTION
> The mixerctl command is used to control various features of
> the audio mixer and to get information about the audio mixer
> and the audio device.
>
> The mixerctl command operates on the following data types:
>
> device
> A mixer device, such as audiohd:0. The subcommands
> that accept this do so as an argument to an option -d.
> If not supplied, then the default audio device is assumed.
>
> control
> A mixer control name, such as "volume".
>
> value
> The value of a control. The specific format depends on
> the type of control. Monophonic values usually use a single
> whole number between 0 and 100, inclusive. Stereo values
> use a pair of such numbers (representing right and left
> channels.) Boolean values indicate either "on" or "off".
> Enumerations take a single value of one or more names.
>
> file
> An ASCII text file of control settings.
>
> Options:
> Each subcommand has its own set of options that it takes.
> However, some subcommands support the special flag -v, which
> indicates a request for more verbose output.
>
> SUBCOMMANDS
> The following subcommands are supported:
>
> mixerctl devices
>
> List all the mixer devices on the system.
>
> mixerctl info
>
> Display general information about a device.
>
> mixerctl get [-v] [-d device] [control ...]
>
> Display the control setting values for the device. The named
> controls are displayed. If no control names are provided, then
> all control values are displayed.
>
> mixerctl set [-v] [-d device] control value
>
> Changes the value of a control to the supplied value.
>
> mixerctl save [-d device] file
>
> Saves the current state of all mixer control values to the named
> file.
>
> mixerctl restore [-d device] file
>
> Restores previously saved state in the named file for all mixer
> controls.
>
>
> ENVIRONMENT VARIABLES
> AUDIODEV If the -d and -a options are not specified, the
> AUDIODEV environment variable is consulted. If
> set, AUDIODEV contains the full path name of the
> user's default audio device. The default audio
> device is converted into a control device, and
> then used. If the AUDIODEV variable is not set,
> /dev/audioctl is used.
>
>
> FILES
> /dev/audioctl /dev/sound/{0...n}ctl
>
> ATTRIBUTES
> See attributes(5) for descriptions of the following attri-
> butes:
> ____________________________________________________________
> | ATTRIBUTE TYPE | ATTRIBUTE VALUE |
> |_____________________________|_____________________________|
> | Architecture | SPARC, x86 |
> |_____________________________|_____________________________|
> | Availability | SUNWauda |
> |_____________________________|_____________________________|
> | Stability Level | See notes |
> |_____________________________|_____________________________|
>
>
> NOTES
> 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.
>
> SEE ALSO
> audioconvert(1), audioplay(1), audiorecord(1), open(2),
> attributes(5)
>
>
> Garrett D'Amore wrote:
> >Having just written this up, I just remembered, mixerctl was not
> >an original invention of mine, but an earlier (and now useless)
> >version of it existed in Solaris 10 and earlier. I can't make
> >these incompatible changes as the case stands.
> >
> >However, there is a simple fix, with the following modification:
> >
> >1) rename "this" mixerctl to "audioctl", which frankly is a more
> >descriptive name for the command.
> >
> >2) Supply a shell script wrapper in /usr/sbin/mixerctl that offers
> >the old equivalent command line functionality, modulo the fact
> >that you obviously cannot turn a mixer "off" in Boomer.
> >
> >Thanks.
> >
> > - Garrett
> >
> >Garrett D'Amore - sun microsystems wrote:
> >>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
> >>
> >
> >