The audiots device uses the ALI M5451 audio processor and an AC-97 Codec to implement the audio device interface.
This interface is described in the mixer(7I) and audio(7I) man pages.
Applications that open /dev/audio may use the AUDIO_GETDEV ioctl(2) to determine which audio device is being used. The audiots driver will return the string SUNW,audiots in the name field of the audio_device structure. The version field will contain a letter (defined in the table below) and the config field will contain the string onboard1.
|Sun Blade 100||a||Y||Y||Y||Y||Y||N|
Key to the above table: Ver. = Version. Out = Line Out. H. Phone = Head Phone. Spkr = Internal Speaker. In = Line In. Mic. = Microphone. CD = CD=ROM
The audiots device provides support for the internal speaker, headphone, line out, line in, and microphone. The play.mod_ports and record.mod_ports fields of the audio_info structure (see audio(7I)) indicate which ports may be manipulated.
The configuration file /kernel/drv/audiots.conf is used to configure the audiots driver so that the audio mixer is enabled or disabled. See the mixer(7I) manual page for details. The audio mixer mode may be changed at any time using the sdtaudiocontrol(1) or mixerctl(1) commands.
The audiots device supports 8-bit μ-law and A-law, 8-bit linear and 16-bit linear encodings in mono and stereo. With the mixer enabled, a continuous range of sample rates from 5510 to 48000 Hz is supported. With the mixer disabled, the following sample rates are supported: 5510, 6620, 8000, 9600, 11025, 16000, 18900, 22050, 27420, 32000, 33075, 37800, 4410, and 48000 Hz. When the audio mixer is disabled and the device is opened for simultaneous play and record, the input and out data formats may be different.
Because the audiots device manipulates buffers of audio data, the reported input and output sample counts will vary at any given time from the actual sample count by no more than the size of the buffers the audiots driver is transferring. In general, programs should not rely on the absolute accuracy of the play.samples and record.samples fields of the audio_info structure.
The driver determines how often play and record interrupts should take place. For playing audio, this determines how often and how much audio is requested from the audio mixer. The impact of interrupts on recording is minimal. However, if a very small read buffer size is set, the record interrupt rate should be increased to prevent the buffer from overflowing. The play and record interrupt rates are tunable in the /kernel/drv/audiots.conf file.
As described in the audio(7I) and mixer(7I) man pages, it is possible to request asynchronous notification of changes in the state of an audio device.
audiots errors are described in the audio(7I) man page.
Symbolic link to the system's primary audio device. (Not necessarily an audiots audio device).
/dev/audioctl Control device for the primary audio device.
/dev/sound/0 Represents the first audio device on the system. (Not necessarily an audiots audio device).
/dev/sound/0ctl Audio control for /dev/sound/0.
/usr/share/audio/samples Audio sample files.
64-bit audiots driver
/kernel/drv/audiots.conf audiots driver configuration file.
See attributes(5) for a descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
|Availability||SUNWaudd, SUNWauddx, SUNWauda|
mixerctl(1), sdtaudiocontrol(1), ioctl(2), attributes(5), audio(7I), mixer(7I), streamio(7I)
Acer Laboratories Inc. M5451 PCI Audio Processor Technical Specification
In addition to being logged, the following messages may appear on the system console:
init_state() play interrupt rate set too low
The play interrupt rate in audiots.conf is set too low. It has been reset to the rate specified in the message. Update audiots.conf to a higher play interrupt rate.
init_state() play interrupt rate set too high
The play interrupt rate set in audiots.conf is set too high. It has been reset to the rate specified in the message. Update audiots.conf to a lower play interrupt rate.
init_state() record interrupt rate set too low
The record interrupt rate in audiots.conf is set too low. It has been reset to the rate specified in the message. Update audiots.conf to a higher record interrupt rate.
init_state() record interrupt rate set too high
The record interrupt rate in audiots.conf is set too high. It has been reset to the rate specified in the message. Update audiots.conf to a lower record interrupt rate.