# At first, I'm sorry for long absent due to my health problem. # I'm fine now.
As you know, I merged isaki-audio2 branch a while ago. This will improve whole the audio system. Please test it. Summary for the userland: The most userland apps should work as it is. (Although I got some PRs already...) Existing userland API are mostly not changed but there is some changes. See also audio(4). - The open() behavior on half duplex device is clarified. - The AUMODE_PLAY_ALL flag has no meaning whether specified or not. It was not incompatible with realtime mixing. - AUDIO_GETFD/SETFD ioctl are obsoleted. Nobody wants to change duplex mode on-the-fly and any driver have not supported it. - AUDIO_GETCHAN/SETCHAN ioctl are obsoleted. It was introduced at netbsd-8 but it's unusable and insecure. I think nobody uses. Summary for the hardware drivers (lower layer drivers): All drivers should follow it. See also audio(9). I've done as much as possible but some drivers may not work yet. Please test your driver. - The calling sequence of audio_hw_if had been changed silently at netbsd-8. I clarified it. Here is the summary at least I can explain. - Drivers who resets the chip on open() or close() may not work. Resetting the chip should be done by attach. - Drivers who starts play and/or rec on init_{input,output}() may not work. Starting should be done by start_{input,output} (if you use start_* method). If your driver does not work, please confirm it on netbsd-8 (or prior to 8.99.39) and netbsd-7 (if possible). Because some of them have not worked for long time. - In the past, each drivers used to convert all userland encoding to its hardware format. But now all userland encoding/channels/ frequency conversions are handled in the upper layer (audio.c). The hardware drivers only need to handle at least one hardware encoding/precision/channels/frequency. I left some conversion code as-is in the most drivers to avoid enbug. But feel free to modify/remove it. You does not need to support many encoding/frequencies, so you will be able to make it more simple. Lastly, this work is based on Y.Sugahara's initial work. Without his help, I would not have reached here. Thanks so much. --- Tetsuya Isaki <is...@pastel-flower.jp / is...@netbsd.org>