AlGetSourcef

void alGetSourcef(ALuint source, ALenum param, ALfloat *value): permite obtener las propiedades que le asignamos a la fuente con alSourcef.

source: es la fuente de sonido de la que queremos optener los datos.

param: es el tipo de propiddad de la que queremos saber los datos. value: alli pasamos el puntero de la variable en la que queremos almacenar el dato.
 * AL_PICH: es la velocidad de reproduccion.
 * AL_GAIN: es el volumen del sonido
 * AL_MIN_GAIN: es el volumen minimo del sonido.
 * AL_MAX_GAIN: es el volumen máximo del sonido.
 * AL_MAX_DISTANCE: es la distancia máxima hasta la que se aplica la atenuación.
 * AL_ROLLOFF_FACTOR: se aplica cuando la sitacia es mayor que la de AL_REFERENCE_DISTANCE, cuando más grande es, mas rapido es la atenuación.
 * AL_CONE_GAIN: es el volumen de sonido entre el primer y segundo cono. Recuerde que de la fuente del sonido salen como dos iconos.
 * AL_CONE_INNER_ANGLE: es el ángulo del cono interno.
 * AL_CONE_OUTER_ANGLE: es el ángulo del cono externo.
 * AL_REFERENCE_DISTANCE: hasta esa distancia el sonido disminuye hasta la mitad.

Errores que puede generar
Receurde que erl error se puede optener mediante alGetError.
 * AL_INVALID_VALUE: el valor de "value" es incorecto.
 * AL_INVALID_ENUM: el valor de "param" no es valido.
 * AL_INVALID_NAME: el identificador de la fuente no es correcta.
 * AL_INVALID_OPERATION: el contexto en la que se encuantra la funión es incorrecta.

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 alSourcef(fuente,AL_PICH,2.0);//el identificador del buffer es un entero alGetSourcef(fuente, AL_BUFFER, &dato); //hacer algo con dato return 0; }
 * 1) include 