I'm doing some stuff with openal and I seem to have run into a couple problems. First of all, my programs that use OpenAL don't work on laptops (and probably other computers that don't have decent soundcards), Is there another dll or something that I need to package with my game in order for OpenAL to work in software?
The other problem I'm having is with AL_EXT_vorbis, I have an Audigy2 and the creative labs website tells me that my drivers are up to date yet I can't get it to work. I read somewhere that you need libvorbis.dll in order for it to work, but I can't seem to find this anywhere... Could I have some more information about what this file is, where I can get it, and whether it is ok for me to package it with my game or not.
I'm also wondering whether I'm going about this OpenAL programming correctly since I can't seem to find any example code that does something similar. In order to find out how many sources the user's hardware supports, I have a loop that will run 128 times (maybe it should be 64) or until OpenAL gives me an error and creates one source during each iteration, this piece I got from one of the lwjgl demos. It seems like there would be some way to just ask OpenAL how many are supported...
While I'm figuring that out, I store all the sources that are created and create no more from that point on. What I do instead is have a class that manages those sources and before I play a sound, my SoundClip class (which has an x,y position, pitch, buffer, etc.) asks this other class for a source and attaches a buffer to it and sets the other required attributes. Is some part of this going to be slow? Attaching the buffer and setting the other attributes for the source before I play it each time I mean. Btw, I'm doing this because I don't want the sound to restart if clip.play() is called again while the sound is still playing.
My class that stores all the sources (clips request a source from this class before playing it) sorts all of the sources by their distance from the listener, then by their 'priority', and finally by whether they are actually playing or not. After they are sorted, the first source in the array is returned if its priority is <= to the priority of the SoundClip that is requesting a source, otherwise -1 is returned. One of the problems with this is that I don't know how to actually check if a given source is actually playing or not... is there a way to do this? I'd be interested in hearing any other comments on my process (particularly about whether I'm doing everything completely wrong or not

).