- [CHG] Retocat el mòdul JAudio per a adaptar-se a les necesitats del joc.

- [NEW] audio::getCurrentMusic()
- [NEW] audio::stopAllChannels()
- [FIX] El JAudio i JInput han de inicialitzarse abans de entrar al Init del joc
- Afegides músiques i alguns sons
- Comence a fer que sone cada musica i so en el seu lloc
- [TOFIX] LAG EN EL AUDIO!
This commit is contained in:
2024-10-03 13:09:44 +02:00
parent c92f2a13aa
commit e009aef341
20 changed files with 109 additions and 74 deletions

View File

@@ -21,25 +21,16 @@ namespace audio
MUSIC_STOPPED
};
// Estructures per a gestionar música i só
struct sound;
struct music;
/// @brief Inicialitza el sistema de só
void init();
/// @brief Tanca el sistema de só
void quit();
/// @brief Carrega un arxiu de música en format OGG
/// @brief Comença a reproduïr la música des d'un arxiu
/// @param filename nom de l'arxiu
/// @return punter a la música
const music *loadMusic(const std::string filename);
/// @brief Comença a reproduïr la música en questió
/// @param mus punter a la música
/// @param loop quants bucles farà (-1=infinit, 0=no repeteix, 1=repeteix 1 vegada...)
void playMusic(const music *mus, const int loop = -1);
void playMusic(const std::string filename, const int loop = -1);
/// @brief Pausa la música que està sonant ara
void pauseMusic();
@@ -54,20 +45,19 @@ namespace audio
/// @return estat actual de la música (MUSIC_INVALID, MUSIC_PLAYING, MUSIC_PAUSED o MUSIC_STOPPED)
const music_state getMusicState();
/// @brief Allibera una música
/// @param mus punter a la música a alliberar
void deleteMusic(music *mus);
/// @brief Obté el nom de la música actual
/// @return nom de la cançò
const std::string getCurrentMusic();
/// @brief Carrega un só des d'un arxiu WAV
/// @brief Precarrega un só des d'un arxiu WAV
/// @param filename nom de l'arxiu
/// @return un punter al só
sound *loadSound(const std::string filename);
void loadSound(const std::string filename);
/// @brief Comença a reproduïr el só especificat
/// @param snd punter al só a reproduïr
/// @param loop si es fa bucle (-1=infinit, 0=no repeteix, 1=repeteix 1 vegada...)
/// @return número del canal en que està sonant el só
const int playSound(sound *snd, const int loop = 0);
const int playSound(const std::string name, const int priority, const int loop = 0);
/// @brief Pausa un canal en el que s'estava reproduïnt un só
/// @param channel número del canal a pausar
@@ -81,15 +71,14 @@ namespace audio
/// @param channel número del canal a parar
void stopChannel(const int channel);
/// @brief Para tots els canals
void stopAllChannel();
/// @brief Obté l'estat d'un canal
/// @param channel canal del que es vol obtindre l'estat
/// @return estat del canal (CHANNEL_INVALID, CHANNEL_FREE, CHANNEL_PLAYING o CHANNEL_PAUSED)
const channel_state getChannelState(const int channel);
/// @brief Allibera un só
/// @param snd punter al só
void deleteSound(sound *snd);
/// @brief Estableix el volum general
/// @param volume valor a establir com a volum (128 màxim)
/// @return el volum anterior