| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -62,12 +62,6 @@ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    #endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Sound source type | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			typedef struct Sound { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int source;    // Sound audio source id | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int buffer;    // Sound audio buffer id | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} Sound; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Wave type, defines audio wave data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			typedef struct Wave { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int sampleCount;   // Number of samples | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -77,9 +71,16 @@ typedef struct Wave { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    void *data;                 // Buffer data pointer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} Wave; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Sound source type | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			typedef struct Sound { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int source;        // OpenAL audio source id | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int buffer;        // OpenAL audio buffer id | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    int format;                 // OpenAL audio format specifier | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} Sound; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Music type (file streaming from memory) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// NOTE: Anything longer than ~10 seconds should be streamed | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			typedef struct Music *Music; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			typedef struct MusicData *Music; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Audio stream type | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// NOTE: Useful to create custom audio streams not bound to a specific file | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -106,13 +107,16 @@ extern "C" {            // Prevents name mangling of functions | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Module Functions Declaration | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//---------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void InitAudioDevice(void);                                     // Initialize audio device and context | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void CloseAudioDevice(void);                                    // Close the audio device and context (and music stream) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void CloseAudioDevice(void);                                    // Close the audio device and context | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			bool IsAudioDeviceReady(void);                                  // Check if audio device has been initialized successfully | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Sound LoadSound(char *fileName);                                // Load sound to memory | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Wave LoadWave(const char *fileName);                            // Load wave data from file into RAM | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Wave LoadWaveEx(float *data, int sampleCount, int sampleRate, int sampleSize, int channels); // Load wave data from float array data (32bit) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Sound LoadSound(const char *fileName);                          // Load sound to memory | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Sound LoadSoundFromWave(Wave wave);                             // Load sound to memory from wave data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Sound LoadSoundFromRES(const char *rresName, int resId);        // Load sound to memory from rRES file (raylib Resource) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void UpdateSound(Sound sound, void *data, int numSamples);      // Update sound buffer with new data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void UnloadWave(Wave wave);                                     // Unload wave data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void UnloadSound(Sound sound);                                  // Unload sound | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void PlaySound(Sound sound);                                    // Play a sound | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void PauseSound(Sound sound);                                   // Pause a sound | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -121,12 +125,15 @@ void StopSound(Sound sound);                                    // Stop playing | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			bool IsSoundPlaying(Sound sound);                               // Check if a sound is currently playing | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void SetSoundVolume(Sound sound, float volume);                 // Set volume for a sound (1.0 is max level) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void SetSoundPitch(Sound sound, float pitch);                   // Set pitch for a sound (1.0 is base level) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Music LoadMusicStream(char *fileName);                          // Load music stream from file | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels);  // Convert wave data to desired format | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Wave WaveCopy(Wave wave);                                       // Copy a wave to a new wave | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void WaveCrop(Wave *wave, int initSample, int finalSample);     // Crop a wave to defined samples range | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			float *GetWaveData(Wave wave);                                  // Get samples data from wave as a floats array | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			Music LoadMusicStream(const char *fileName);                    // Load music stream from file | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void UnloadMusicStream(Music music);                            // Unload music stream | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void PlayMusicStream(Music music);                              // Start music playing (open stream) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void PlayMusicStream(Music music);                              // Start music playing | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void UpdateMusicStream(Music music);                            // Updates buffers for music streaming | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void StopMusicStream(Music music);                              // Stop music playing (close stream) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void StopMusicStream(Music music);                              // Stop music playing | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void PauseMusicStream(Music music);                             // Pause music playing | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void ResumeMusicStream(Music music);                            // Resume playing paused music | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			bool IsMusicPlaying(Music music);                               // Check if music is playing | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -135,9 +142,9 @@ void SetMusicPitch(Music music, float pitch);                   // Set pitch for | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			float GetMusicTimeLength(Music music);                          // Get music time length (in seconds) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			float GetMusicTimePlayed(Music music);                          // Get current music time played (in seconds) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			AudioStream InitAudioStream(unsigned int sampleRate,  | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                            unsigned int sampleSize,  | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                            unsigned int channels);             // Init audio stream (to stream audio pcm data) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			AudioStream InitAudioStream(unsigned int sampleRate, | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                                  unsigned int sampleSize, | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                                  unsigned int channels);       // Init audio stream (to stream raw audio pcm data) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void UpdateAudioStream(AudioStream stream, void *data, int numSamples); // Update audio stream buffers with data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void CloseAudioStream(AudioStream stream);                      // Close audio stream and free memory | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			bool IsAudioBufferProcessed(AudioStream stream);                // Check if any audio stream buffers requires refill | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |