There are several updates to the case materials that the Boomer project team would like to announce. I'll be modifying the actual documents soon, but a quick summary here may be easier to read.
1) The audiosup (and related shim logic) has been removed. The project team found it easy enough to just convert the native Solaris drivers to first class Boomer native drivers that this work has been completed. This eliminates extra processing and latency from the path for those drivers that were still using the shim. (It also allowed some of those drivers to more accurately express their hardware capabilities than was previously possible.) 2) As a consequence of item #1, the SADA driver layer is completely gone. Only boomer native drivers will be supported after Boomer integrates. 3) Exception to #2 above is Sun Ray audio, which doesn't use SADA. Sun Ray audio will ultimately need to be converted as part of a follow on project, but in the meantime, it can still be used with the legacy Sun audio(7i) API. As Sun Ray is not supported on OpenSolaris (officially) yet, the project team doesn't feel this is a big problem. The next phase (which we will be working on soon) will add Sun Ray support, which will be detailed in a separate PSARC case of its own. 4) Access to hardware controls is restricted to the OSS v4.x mixer API. This means that only applications which understand the new style OSS v4.x mixer API will be able to manage master hardware volumes, etc. A Gstreamer plugin will be supplied for gnome applications such as gnome-volume-control and mixer_applet2. Legacy Sun applications will lose this ability. This is necessary because with some hardware the Sun APIs were inadequate to support the full expression of device features. (For example, many devices can have multiple monitors active, with different gains, at the same time. A single monitor gain control can't properly express this.) 5) For now, sdtaudiocontrol can be used to adjust per-application volumes, and master record and playback volume, but not balance nor monitor gain nor input or output port selection. The project team is undertaking a separate LSARC case to EOF sdtaudiocontrol altogether. gnome-volume-control is the replacement. 6) gnome-volume-control cannot display per-application volume settings like sdtaudiocontrol's -ac option. Architecturally, nothing prevents us from supporting this in gnome-volume-control, but it isn't clear that we will have code to do this ready in time for integration of Phase I. If anyone believes this feature regression is unacceptable for Phase I delivery, then the project team would like to hear about it as soon as possible. 7) The ability to use the command line options in audioplay and audiorecord to adjust hardware settings (including record port, monitor gain, and master hardware levels) is removed as part of #4 above. These applications can still manage their own local playback and record gains, but those settings affect only the particular instance of the application that is using them. The switches which would attempt to change master settings will be modified to issue a warning about their use, but will otherwise be ignored. 8) mixerctl has grown the ability to access and manage all hardware settings for these audio devices from the command line. An updated man page will be posted in the commitment materials directory soon. 9) Per application volume controls, as well as "master PCM volume" are implemented as monophonic values. Attempts to change balance will be ignored. Balance of output levels of the master settings can be used by adjusting individual speaker volumes using the OSS 4.x API. This change is required to support multichannel audio. (Stereo levels don't make sense with 5.1 audio, for example.) We believe that users need to adjust the levels of different channels as a result of different speaker positioning and volumes. We don't believe that a need to adjust balance in one application independently from another application exists. (However, the need to adjust the overall output volume in different applications independently does exist.) 10) The monophonic master output volume control expressed in Boomer is implemented as an attenuation of PCM data. It does not affect the levels associated with any monitors. It will affect the volume of any PCM data generated by the system regardless of whether it is played back over analog or digital interfaces. (Legacy Sun drivers were not consistent in how this was implemented. We believe Boomer's implementation offers the least surprise to users.) 11) While the framework fully supports 192kHz (and possibly beyond) and 24-bit audio, the project team has not updated any of the drivers to support this yet. It is unclear whether this work will be complete before integration. (In many drivers, selection of higher frequencies or bit resolutions must be made at the sacrifice of other features, such as number of channels.) Architecturally this doesn't represent a change -- its just a change in what we actually deliver at first integration. (This could easily change if there is a key RFE to support high definition audio.) 12) Many, many more devices now support multichannel audio in Boomer. Some audioens hardware can support 4.0, and 5.1 is supported in capable audio810, audiovia823x, and audioixp systems. 7.1 is supported on audiohd. 13) For now, the project team would like to limit the exposure of the OSS API somewhat. Specifically, the project team would like to: * restrict the new style 4.x mixer API to Consolidation/Contract Private. We will work with the GStreamer team to get a contract in place. We have some "constraints" on the names and values expressed in this API, which will allow Gnome to provide better support for localization and a11y than would otherwise be possible. (This will require the Gnome team to #include an additional header file to import the macros with the names.) * restrict the old style 3.x mixer API to Obsolete Uncommited. (Actually, we'd go further than that, and say that we're implementing it only for compatibility, and only then a subset of functionality and semantics, just enough to make existing legacy apps happy. We would prefer developers not use this API in any new code. Our preference would be not to document these APIs at all, or document them only with a statement "for legacy compatibility only" and say nothing else about them.) * mark much of the dsp API Obsolete Uncommitted. There are many, many ioctls in the API. Many of which we don't think developers should use (many of which are redundant or otherwise Obsolete.) Again, these would preferably either be undocumented, or documented only in a form of "don't use this in new code". * the remaining OSS API, which should be sufficient to access all the needs of any reasonable audio application, we would mark Uncommitted. The full set of which portions of the API we believe should fall into which classification will be posted later. 14) mmap(2) support is not being delivered in Phase I. This was already detailed in the inception review materials. Please let us know if there are any concerns about any of the above. -- Garrett