ALuint Audio::creerBufferPas() { Random rand; int numero = rand.generer(1, 4); ALuint Buffer; switch (numero) { case 1: Buffer = creerBuffer("./data/sound/step1.wav"); break; case 2: Buffer = creerBuffer("./data/sound/step2.wav"); break; case 3: Buffer = creerBuffer("./data/sound/step3.wav"); break; case 4: Buffer = creerBuffer("./data/sound/step4.wav"); break; default: std::cerr << "erreur de random en carton c'est la faute a cephise !" << std::endl; } return Buffer; }
ALuint Audio::creerBufferEpee() { Random rand; int numero = rand.generer(1, 2); ALuint Buffer; switch (numero) { case 1: Buffer = creerBuffer("./data/sound/knife_slash1.wav"); break; case 2: Buffer = creerBuffer("./data/sound/knife_slash2.wav"); break; default: std::cerr << "erreur de random en carton c'est la faute a cephise !" << std::endl; } return Buffer; }
/** * \brief "reception" permet l'inscription de la trame code, obtenue par file de messages depuis "code", dans un buffer. On envoie donc la trame code au processus "decode" par ce moyen, en s'aidant d'une synchronisation par mutex. Le processus s'arrête à la réception de la phrase "fin". */ int main(){ signal(SIGINT, arretForce); printf("Ouverture de la file de message.\n Création du buffer et du mutex.\n"); int file = creerBal(100); int buffer = creerBuffer(200); printf("Numéro de buffer obtenu : -%d-\n", buffer); char *chaineBuffer = attacherBuffer(buffer); int mutex = creerSemaphore(500); setValeurSemaphore(mutex, 1); send(&buffer, BUFFER, file); while(1){ printf("**** Nouvelle itération.\n\n"); char *chaineCourante = malloc(sizeof(char) * (TAILLE_MAX+3)); receive(chaineCourante, CODE, file); printf("1) Trame code obtenue : -%s-\n\n", chaineCourante); down(mutex); int i; if(strcmp(chaineCourante, "fin") == 0){ printf("Fin normale du processus de réception.\n"); up(mutex); free(chaineCourante); break; } for(i=0; i<(TAILLE_MAX+3); i++){ chaineBuffer[i] = chaineCourante[i]; } printf("2) Chaine lisible dans le buffer : -%s-\n\n", chaineBuffer); up(mutex); free(chaineCourante); printf("**** Fin de l'itération.\n\n"); } fin(chaineBuffer, buffer); return EXIT_SUCCESS; }
ALuint Audio::playFichier(const std::string Filename, ALboolean loop) { // Chargement du fichier audio Buffer = creerBuffer(Filename); if (Buffer == 0) { return EXIT_FAILURE; } // Création d'une source alGenSources(1, &Source); // On attache le tampon contenant les échantillons audio à la source alSourcei(Source, AL_BUFFER, Buffer); // Définition du mode de lecture de la source alSourcei(Source, AL_LOOPING, loop); // Lecture du son alSourcePlay(Source); return 0; }
ALuint Audio::creerBufferVent() { return creerBuffer("./data/sound/wind.wav"); }
ALuint Audio::creerBufferTonnerre() { return creerBuffer("./data/sound/thunder_clap.wav"); }
ALuint Audio::creerBufferOiseau() { return creerBuffer("./data/sound/thunder_clap.wav"); }
ALuint Audio::creerBufferMusiqueExploration() { return creerBuffer("./data/sound/26.wav"); }
ALuint Audio::creerBufferMusiqueCombat() { return creerBuffer("./data/sound/26.wav"); }
ALuint Audio::creerBufferEau() { return creerBuffer("./data/sound/fallscream.wav"); }