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.
		
		
		
		
			
				
					27 lines
				
				605 B
			
		
		
			
		
	
	
					27 lines
				
				605 B
			| 
								 
											5 years ago
										 
									 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								#include <SLES/OpenSLES.h>
							 | 
						||
| 
								 | 
							
								#include <SLES/OpenSLES_Android.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "sound.hpp"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SLSound : public Sound {
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								  SLSound();
							 | 
						||
| 
								 | 
							
								  ~SLSound();
							 | 
						||
| 
								 | 
							
								  bool play(AudibleAlert alert);
							 | 
						||
| 
								 | 
							
								  void stop();
							 | 
						||
| 
								 | 
							
								  void setVolume(int volume);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								  bool init();
							 | 
						||
| 
								 | 
							
								  SLObjectItf engine_ = nullptr;
							 | 
						||
| 
								 | 
							
								  SLObjectItf outputMix_ = nullptr;
							 | 
						||
| 
								 | 
							
								  int last_volume_ = 0;
							 | 
						||
| 
								 | 
							
								  double last_set_volume_time_ = 0.;
							 | 
						||
| 
								 | 
							
								  AudibleAlert currentSound_ = AudibleAlert::NONE;
							 | 
						||
| 
								 | 
							
								  struct Player;
							 | 
						||
| 
								 | 
							
								  std::map<AudibleAlert, Player *> player_;
							 | 
						||
| 
								 | 
							
								  friend void SLAPIENTRY slplay_callback(SLPlayItf playItf, void *context, SLuint32 event);
							 | 
						||
| 
								 | 
							
								};
							 |