26 lines
		
	
	
	
		
			699 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			699 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| #include <string>
 | |
| #include <filesystem>
 | |
| #include <memory>
 | |
| #include <unordered_map>
 | |
| #include <SFML/Audio.hpp>
 | |
| 
 | |
| namespace sound {
 | |
|   struct SoundPair {
 | |
|     std::shared_ptr<sf::SoundBuffer> buffer;
 | |
|     std::shared_ptr<sf::Sound> sound;
 | |
|   };
 | |
| 
 | |
|   struct SoundManager {
 | |
|     std::unordered_map<std::string, SoundPair> sounds;
 | |
|   };
 | |
| 
 | |
|   void init();
 | |
|   void load(const std::string& name, const std::string& path);
 | |
|   void play(const std::string& name, bool loop=false);
 | |
|   void play_at(const std::string& name, float x, float y, float z);
 | |
|   void stop(const std::string& name);
 | |
|   void mute(bool setting);
 | |
|   bool playing(const std::string& name);
 | |
|   SoundPair& get_sound_pair(const std::string& name);
 | |
| }
 | 
