# JailAudio v1.2 JailAudio es una xicoteta api per a reemplaçar lo basic de *SDL_mixer*. Amb ella es poden carregar cançons en format **OGG** o sons en format **WAV**. Per a usar-la nomes tindreu que incloure els arxius `jail_audio.cpp`, `jail_audio.h` i `stb_vorbis.c` al vostre projecte. El seu us es molt senzill i es pot vore un example a l'arxiu `main.cpp`. ## Inicialització ### `void JA_Init(const int freq, const SDL_AudioFormat format, const int channels);` Inicialitza el subsistema de audio. Es pot especificar la _frequència_, _format_ i _canals_, de la mateixa forma que abans creaveu el `SDL_AudioDevice`. ### `void JA_Quit();` Tanquem la paraeta. ## Música ### `JA_Music JA_LoadMusic(const char* filename);` Carrega un arxiu **OGG** en memoria i el guarda a una variable de tipus `JA_Music`. Es un punter opac, així que nomes val pa usar-lo com a referència a l'hora de fer-lo sonar. ### `void JA_PlayMusic(JA_Music music, const int loop);` Comença a tocar un **OGG**. Se li pot dir que faça loop (`-1` fa loop, `0` no fa loop (sona 1 vegada), `1` repeteix el so (sona 2 vegades), etc...). Si estava sonant altra musica, pos la para i a prendre per cul. ### `void JA_PauseMusic();` Pausa la música. ### `void JA_ResumeMusic();` Continúa la música per on s’havia pausat. ### `void JA_StopMusic();` Pos això... ### `int JA_SetVolume(int volume);` Canvia el volum de la música. Es un valor entre 0 i 128. Per defecte està a 128. ### `JA_Music_state JA_GetMusicState();` Torna el estat de la música, que pot ser `JA_MUSIC_INVALID`, `JA_MUSIC_PLAYING`, `JA_MUSIC_PAUSED`o `JA_MUSIC_STOPPED`. ### `void JA_DeleteMusic(JA_Music music);` Esborra de la memòria una cançò prèviament carregada. Si está sonant pos para de sonar, ningún problema. ## Efectes de só ### `JA_Sound JA_NewSound(Uint8* buffer, Uint32 length);` Crea un nou só a partir d'un buffer en memòria. ### `JA_Sound JA_LoadSound(const char* filename);` Carrega un àudio des d'un arxiu **WAV** i el guarda a una variable de tipus `JA_Sound`. Es un punter opac, així que nomes val pa usar-lo com a referència a l'hora de fer-lo sonar. ### `int JA_PlaySound(JA_Sound sound, const int loop);` Fa sonar un só prèviament carregat. Se li pot dir que faça loop (`-1` fa loop, `0` no fa loop (sona 1 vegada), `1` repeteix el so (sona 2 vegades), etc...). Torna el número del canal en el que està sonant. ### `void JA_DeleteSound(JA_Sound sound);` Esborra de la memòria un só prèviament carregat. Si el só estava sonant en eixe moment, pos el para, ningún problema. ## Canals de só ### `void JA_PauseChannel(const int channel);` Pausa el só que estiga sonant en el canal especificat. Si s'especifica `-1`, pausa tots els canals que estigueren sonant en eixe moment. ### `void JA_ResumeChannel(const int channel);` Continua sonant el canal especificat, si es que estava pausat. Si s'especifica `-1`, fa que tots els canals que estigueren pausats es despausen i continuen. ### `void JA_StopChannel(const int channel);` Para un canal i el deixa lliure. Si s'especifica `-1`, para tots els canals que estigueren sonant en eixe moment. ### `JA_Channel_state JA_GetChannelState(const int channel);` Torna el estat del canal especificat, que pot ser `JA_CHANNEL_INVALID`, `JA_CHANNEL_FREE`,`JA_CHANNEL_PLAYING` o `JA_CHANNEL_PAUSED`. ### `int JA_SetChannelVolume(const int channel, int volume);` Especifica el volum de un canal. Es un valor entre 0 i 128. Per defecte està a 64.