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.