13#ifndef SDLAUDIO_MODULE_HPP
14#define SDLAUDIO_MODULE_HPP
16#include "IAudioModule.hpp"
38 const char *
type()
const override {
return IAudioModule::contract; }
39 const char *
name()
const override {
return "sdl2"; }
48 void deleteMusic(audio::IMusic *music)
override { drop(music); }
60 audio::ISound *
createSound(audio::ISoundBuffer *buffer)
override {
66 void deleteSound(audio::ISound *sound)
override { drop(sound); }
73 if (SDL_InitSubSystem(SDL_INIT_AUDIO) != 0)
75 if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048) != 0) {
76 SDL_QuitSubSystem(SDL_INIT_AUDIO);
87 SDL_QuitSubSystem(SDL_INIT_AUDIO);
93 void drop(T *
object) {
103 unsigned _opened = 0;
104 bool _started =
false;
SDL_mixer derriere IAudioModule.
Definition SdlAudioModule.hpp:32
~SdlAudioModule()
Definition SdlAudioModule.hpp:36
audio::IMusic * createMusic(std::string path) override
Definition SdlAudioModule.hpp:42
void deleteSoundBuffer(audio::ISoundBuffer *buffer) override
Definition SdlAudioModule.hpp:57
audio::ISoundBuffer * createSoundBuffer(std::string path) override
Definition SdlAudioModule.hpp:51
void deleteSound(audio::ISound *sound) override
Definition SdlAudioModule.hpp:66
const char * type() const override
Definition SdlAudioModule.hpp:38
audio::ISound * createSound(audio::ISoundBuffer *buffer) override
Definition SdlAudioModule.hpp:60
void deleteMusic(audio::IMusic *music) override
Definition SdlAudioModule.hpp:48
const char * name() const override
Definition SdlAudioModule.hpp:39
Un flux long, decode au fil de la lecture.
Definition SdlMusic.hpp:32
Un echantillon decode en memoire, partageable par plusieurs sons.
Definition SdlSoundBuffer.hpp:30
Une lecture d'un tampon, sur son propre canal.
Definition SdlSound.hpp:29