You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							30 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							30 lines
						
					
					
						
							1.0 KiB
						
					
					
				| #pragma once
 | |
| 
 | |
| #include <map>
 | |
| #include <QSoundEffect>
 | |
| #include "cereal/gen/cpp/log.capnp.h"
 | |
| 
 | |
| typedef cereal::CarControl::HUDControl::AudibleAlert AudibleAlert;
 | |
| 
 | |
| static std::map<AudibleAlert, std::pair<const char *, int>> sound_map {
 | |
|   // AudibleAlert, (file path, loop count)
 | |
|   {AudibleAlert::CHIME_DISENGAGE, {"../assets/sounds/disengaged.wav", 0}},
 | |
|   {AudibleAlert::CHIME_ENGAGE, {"../assets/sounds/engaged.wav", 0}},
 | |
|   {AudibleAlert::CHIME_WARNING1, {"../assets/sounds/warning_1.wav", 0}},
 | |
|   {AudibleAlert::CHIME_WARNING2, {"../assets/sounds/warning_2.wav", 0}},
 | |
|   {AudibleAlert::CHIME_WARNING2_REPEAT, {"../assets/sounds/warning_2.wav", 3}},
 | |
|   {AudibleAlert::CHIME_WARNING_REPEAT, {"../assets/sounds/warning_repeat.wav", -1}},
 | |
|   {AudibleAlert::CHIME_ERROR, {"../assets/sounds/error.wav", 0}},
 | |
|   {AudibleAlert::CHIME_PROMPT, {"../assets/sounds/error.wav", 0}}
 | |
| };
 | |
| 
 | |
| class Sound {
 | |
| public:
 | |
|   Sound();
 | |
|   void play(AudibleAlert alert);
 | |
|   void stop();
 | |
|   float volume = 0;
 | |
| 
 | |
| private:
 | |
|   std::map<AudibleAlert, QSoundEffect> sounds;
 | |
| };
 | |
| 
 |