AlSourcefv

 void alSourcefv(ALuint, ALenum, ALfloat *values): permite asignar a la fuente de sonido su: posición, velocidad y dirección.

source: es la fuente de sonido que creamos con alGenSources

param: puede tomar los siguientes valores: int fuente; alGenSources(1,&fuente); float pos[]={0.1,2.0,5.0};// la posicion x=0.1 y=2.0 z=5.0 alSourcefv(fuente,AL_POSITION,pos); int fuente; alGenSources(1,&fuente); float vel[]={1.0,0.0,0.0};// velocidad de "1" en dirección del eje x alSourcefv(fuente, AL_VELOCITY,vel); int fuente; alGenSources(1,&fuente); float ori[]={1.0,0.0,0.0,0.0,0.0,1.0};// Tengase en cuanta que openAl es como openGl, donde el vector que va hacia arriba es el de la x, y el que tenemos en frente es el de la z. //los primeros 3 numeros son del vector que sale de la cabeza (si la fuente fuera una persona) y los otrs tres el que tine en la frente. alSourcefv(fuente, AL_ORIENTATION,ori);
 * AL_POSITION:  lo que ponemos en values nos da la posición sobre los ejes x,y,z.
 * Al_VELOCITY: es un vector que nos da la velocidad. No está expresado en ninguna unidad, lo que significa que automaticamente será igual a la que uses en el juego, o aplicación que estes creando.
 * AL_ORIENTATIO: nos da la orientación del oyente. son dos vectores: El primero sale de la cabeza del oeyente, y la otra de su frente.

values: es el array que le pasamos con las coordinadoas o vectores

Errores que pude producir
Para saber cual de los sguientes errores se produjo, use alGetError.
 * AL_INVALID_VALUE: los valores pasador por el paramtero vaules, estan fuera de rango o el array que le pasamos es incorrecto.
 * AL_INVALID_ENUM: lo que psastes a pramam, es incorrecto.
 * AL_INVALID_NAME: el nombre que le pasamos como fuente (source) no es valido.
 * AL_INVALID_OPERATION: No hay un contextopara usar esa función.

Ejemplo
/para compilarlo en linux: gcc nombre_del_fichero.c -lopenal //compruebe que las librerias de openal esten instaladas int main { float pos[]={0.1,2.0,5.0}; float vel[]={1.0,0.0,0.0}; float ori[]={1.0,0.0,0.0,0.0,0.0,1.0}; int fuente; alGenSources(1,&fuente); alSourcefv(fuente,AL_POSITION,pos); alSourcefv(fuente, AL_VELOCITY,vel); alSourcefv(fuente, AL_ORIENTATION,ori); //asingar a la fuente un bufer //crear el oyente y asignarle sus propiedades corespondientes //reproducir fuente return 0; }
 * 1) include 