OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
audiomanager.hpp
Go to the documentation of this file.
1
5#pragma once
6
7#include <iostream>
8#include <fstream>
9#include <sstream>
10#include <unordered_map>
11
12#include <AL/al.h>
13#include <AL/alc.h>
14#include "sound.hpp"
15
16namespace Engine::Audio {
22 private:
24 static ALCdevice *device;
26 static ALCcontext *context;
27
35 static ALuint LoadWAVFromMemory(const char *buffer, size_t size);
42 static ALuint LoadWAV(const std::string& filePath);
43
44 public:
45 // Suppression du Constructeur / Destructeur pour éviter les erreurs d'inatention à l'usage (full static class)
46 AudioManager() = delete;
47 ~AudioManager() = delete;
48
50 static void Init();
52 static void Shutdown();
53
62 static Sound *LoadSound(const std::string& filepath, SoundFileType fileType = WAV, SoundType type = SFX);
72 static Sound *LoadSoundFromMemory(const char *buffer, size_t size, SoundFileType fileType = WAV, SoundType type = SFX);
73
81 static void PlaySound(Sound& sound, bool loop = false, float pitch = 1.0f);
82 };
83}
static void Init()
Fonction qui initialiser la classe AudioManager en créant le contexte et le device OpenAL.
Definition audiomanager.cpp:10
static void PlaySound(Sound &sound, bool loop=false, float pitch=1.0f)
Joue un son préalablement chargé en mémoire.
Definition audiomanager.cpp:76
static Sound * LoadSoundFromMemory(const char *buffer, size_t size, SoundFileType fileType=WAV, SoundType type=SFX)
Charge un son depuis un buffer mémoire plutôt qu'un path.
Definition audiomanager.cpp:53
static void Shutdown()
Ferme les contextes/devices OpenAL.
Definition audiomanager.cpp:22
static Sound * LoadSound(const std::string &filepath, SoundFileType fileType=WAV, SoundType type=SFX)
Charge un son avec l'API OpenAL et renvoie un pointeur vers un objet Sound.
Definition audiomanager.cpp:30
Definition audiomanager.cpp:6
SoundFileType
SounFileType est une énumération qui liste les types de fichiers audio lisibles par le système.
Definition sound.hpp:15
@ WAV
WAV est le type de fichier son par défaut du moteur : lossless et facile à lire.
Definition sound.hpp:17
SoundType
SoundType est une énumération qui liste les types de sons dispos dans le moteur.
Definition sound.hpp:23
@ SFX
SFX est le type utilisé pour les "effets" sonores, qui sont joués plusieurs fois.
Definition sound.hpp:27
Décrit la structure de donnée pour les sons en mémoire Les sons peuvent être chargés et lus avec l'ap...
Sound est un type de donnée qui contient ce qu'il faut pour jouer un son avec l'api OpenAl.
Definition sound.hpp:33