Oh yeah! Nothing like a working program to make you feel good in the morning! I've got libao pretty much working now. Multiple device support is working too. (Let this be a lesson to you: Beware of pointers to pointers. Dereferencing them improperly leads to madness.) I just ran ogg123 and let the output go to the null device, the soundcard, and a wav file all at once. Whee!
Now I've got to clean up the code and make the build process more slick. I should also write an ogg123 man page. I wonder how you do that.