SDL_mixer.h

Función Mix_SetPostMix

Sintaxis

void Mix_SetPostMix(void (SDLCALL *mix_func)(void *udata, Uint8 *stream, int len), void *arg);

Descripción

Establece una función que se llama después de realizar todas las mezclas.

Parámetros

mix_func
La función de retrollamada que se convertirá en el nuevo callback post-mix.
arg
Un puntero que se pasa, intacto, a la retrollamada.

Observaciones

Se puede utilizar para proporcionar una visualización en tiempo real del flujo de audio o añadir un filtro de mezcla personalizado para los datos del flujo.

La retrollamada se disparará cada vez que SDL_mixer esté listo para suministrar más datos al dispositivo de audio, después de que haya terminado todo su trabajo de mezcla. Esto se ejecuta dentro de una retrollamada de audio SDL, por lo que es importante que la retrollamada regrese rápidamente, o podría haber problemas en la reproducción de audio.

Los datos proporcionados a la retrollamada están en el formato en el que se abrió el dispositivo de audio, y representa la forma de onda exacta que SDL_mixer ha mezclado de todos los trozos de reproducción y música para su reproducción. Se permite modificar los datos, pero no se puede cambiar su tamaño (por lo que no se puede añadir un efecto de reverberación que vaya más allá del final del buffer sin guardar algún estado entre ejecuciones para añadirlo en la siguiente retrollamada, o remuestrear el buffer a un tamaño más pequeño para acelerarlo, etc).

El puntero arg suministrado aquí se pasa a la retrollamada tal cual, para cualquier cosa que la retrollamada quiera hacer con él (mantener un registro de algún estado en curso, ajustes, etc).

Si se pasa un callback NULL se desactiva la retrollamada post-mix hasta que se establezca una nueva.

Solo hay una retrollamada disponible. Si se necesita mezclar múltiples entradas, hay que manejarlas desde una única función.