AlGetSourcei

 void alGetSourcei(ALuint source, ALenum pname, ALint *value): permite saber que propiededes se asignaron a la fuente, usando alSourcei.

source: el nombre de la fuente cuyas propiedades queremos saber.

pname: hay que especiaficar el tipo de propiedadad que queremos consultar.
 * AL_SOURCE_RELATIVE: sirve para saber si la posición de la fuente se expresa respecto a  la coordinada de la fuente o de forma normal. El valor que puede tomar la variable que ponemos donde esta "value", puede tomar los valores: AL_TRUE o AL_FALSE.
 * AL_BUFFER: sirve para saber el ID del buffer(s) asociado al buffer(s).
 * AL_SOURCE_STATE: nos permite saber si la fuente esta en el estado AL_PLAYING,  AL_STOPPED ...
 * AL_BUFFERS_QUEUED: El número de bufferes asociados a la fuente.
 * AL_BUFFERS_PROCESSED: El número de bufferes de la cola que ya han sido procesados
 * AL_BUFFERS_PROCESSED: El número de bufferes de la cola que ya han sido procesados

value: es el puntero de la variable en la que se almacenara la propiedad.

Pueden devolver distintos errores
Receurde que el error se optine por medio de alGetError.
 * AL_INVALID_VALUE: value es invalido, es decir el puntero que pasastes.
 * AL_INVALID_ENUM: lo que pusistes en pname es invalido
 * AL_INVALID_NAME: el valor de source es invalido.
 * AL_INVALID_OPERATION: el contexto en el que se encuentra la función es invalida.

Ejemplo
//para compilarlo en linux: gcc nombre_del_fichero.c -lopenal //comprobar que las librerias de openal esten instaladas int main { int buffer; int fuente; int dato; alGenSources(1,&fuente); alGenBuffers(1,&buffer); //cargar un archivo en al buffer alSourcei(fuente,AL_BUFFER,buffer);//el identificador del buffer es un entero alGetSourcei(fuente, AL_BUFFER, &dato); //hacer algo con dato return 0; }
 * 1) include 