|  |  |  | @ -9,18 +9,21 @@ | 
			
		
	
		
			
				
					|  |  |  |  | #include "system/hardware/hw.h" | 
			
		
	
		
			
				
					|  |  |  |  | #include "selfdrive/ui/ui.h" | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | const std::tuple<AudibleAlert, QString, int> sound_list[] = { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | const float MAX_VOLUME = 1.0; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | const std::tuple<AudibleAlert, QString, int, float> sound_list[] = { | 
			
		
	
		
			
				
					|  |  |  |  |   // AudibleAlert, file name, loop count
 | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::ENGAGE, "engage.wav", 0}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::DISENGAGE, "disengage.wav", 0}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::REFUSE, "refuse.wav", 0}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::ENGAGE, "engage.wav", 0, MAX_VOLUME}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::DISENGAGE, "disengage.wav", 0, MAX_VOLUME}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::REFUSE, "refuse.wav", 0, MAX_VOLUME}, | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::PROMPT, "prompt.wav", 0}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::PROMPT_REPEAT, "prompt.wav", QSoundEffect::Infinite}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::PROMPT_DISTRACTED, "prompt_distracted.wav", QSoundEffect::Infinite}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::PROMPT, "prompt.wav", 0, MAX_VOLUME}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::PROMPT_REPEAT, "prompt.wav", QSoundEffect::Infinite, MAX_VOLUME}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::PROMPT_DISTRACTED, "prompt_distracted.wav", QSoundEffect::Infinite, MAX_VOLUME}, | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::WARNING_SOFT, "warning_soft.wav", QSoundEffect::Infinite}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::WARNING_IMMEDIATE, "warning_immediate.wav", QSoundEffect::Infinite}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::WARNING_SOFT, "warning_soft.wav", QSoundEffect::Infinite, MAX_VOLUME}, | 
			
		
	
		
			
				
					|  |  |  |  |   {AudibleAlert::WARNING_IMMEDIATE, "warning_immediate.wav", QSoundEffect::Infinite, MAX_VOLUME}, | 
			
		
	
		
			
				
					|  |  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | class Sound : public QObject { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |