Sounderer.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef SOUNDERER_H_INCLUDED
  2. #define SOUNDERER_H_INCLUDED
  3. #include <iostream>
  4. #include <string>
  5. #include <map>
  6. #include <SDL/SDL.h>
  7. #include <SDL/SDL_mixer.h>
  8. #define EXT_WAV 0
  9. #define EXT_OGG 1
  10. #define INFINITY_LOOP -1
  11. class Sounderer
  12. {
  13. public:
  14. Sounderer();
  15. Sounderer(std::string folder);
  16. ~Sounderer();
  17. bool init();// à appeler avant utilisation
  18. bool preLoad(std::string nom, short extension = EXT_WAV);// Précharge le son pour accélerer sa premièrer lecture [!] Dossier et extension auto
  19. bool play(std::string nom, int repetition = 0);// Joue le son choisi, le charge automatiquement si pas encore chargé
  20. bool fadePlay(std::string nom, int crescendoLenght, int repetition = 0);// Démarre le son par un crescendo d'une longueur voulue
  21. bool stop(std::string nom);// Stoppe le son choisi
  22. void stopAll();
  23. void assignFolder(std::string folder);// Situe le dossier où sont contenus les sons
  24. private:
  25. int m_lastCanal;
  26. std::string m_folder;
  27. std::map<std::string, int> m_channel;//Channel on which our sound is played
  28. std::map<std::string, Mix_Chunk*>::iterator m_it;
  29. std::map<std::string, Mix_Chunk*> m_paquet;
  30. int m_rate;// = 22050 : Frequency of audio playback
  31. Uint16 m_format;// = AUDIO_S16SYS : Format of the audio we're playing
  32. int m_nbChannels;// = 2 : 2 channels = stereo
  33. int m_bufferSize;// = 4096 : Size of the audio buffers in memory
  34. };
  35. #endif // SOUNDERER_H_INCLUDED