@ -370,17 +370,17 @@ static void InitAudioBufferPool(void);                  // Initialise the multic  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  void  CloseAudioBufferPool ( void ) ;                  / /  Close  the  audio  buffers  pool  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_WAV)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadWAV ( const  char  * fileName ) ;                / /  Load  WAV  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadWAV ( const  char  * fileData ,  unsigned  int  fileSize ) ;     / /  Load  WAV  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  int  SaveWAV ( Wave  wave ,  const  char  * fileName ) ;     / /  Save  wave  data  as  WAV  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_OGG)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadOGG ( const  char  * fileName ) ;                / /  Load  OGG  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadOGG ( const  char  * fileData ,  unsigned  int  fileSize ) ;     / /  Load  OGG  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_FLAC)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadFLAC ( const  char  * fileName ) ;               / /  Load  FLAC  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadFLAC ( const  char  * fileData ,  unsigned  int  fileSize ) ;    / /  Load  FLAC  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_MP3)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadMP3 ( const  char  * fileName ) ;                / /  Load  MP3  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadMP3 ( const  char  * fileData ,  unsigned  int  fileSize ) ;     / /  Load  MP3  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(RAUDIO_STANDALONE)  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -689,22 +689,42 @@ void UntrackAudioBuffer(AudioBuffer *buffer)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			Wave  LoadWave ( const  char  * fileName )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Wave  wave  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Loading  file  to  memory   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  int  fileSize  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  char  * fileData  =  LoadFileData ( fileName ,  & fileSize ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Loading  wave  from  memory  data   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    wave  =  LoadWaveFromMemory ( GetFileExtension ( fileName ) ,  ( char  * ) fileData ,  fileSize ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( fileData ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  wave ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  wave  from  memory  buffer ,  fileType  refers  to  extension :  i . e .  " wav "  
			
		 
		
	
		
			
			 
			 
			
			 
			
			Wave  LoadWaveFromMemory ( const  char  * fileType ,  const  char  * fileData ,  int  dataSize )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Wave  wave  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    char  fileExtLower [ 16 ]  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    strcpy ( fileExtLower ,  TextToLower ( fileType ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( false )  {  }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_WAV)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( IsFileExtension ( fileName ,  " .wav " ) )  wave  =  LoadWAV ( fileName ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( TextIsEqual ( fileExtLower ,  " wav " ) )  wave  =  LoadWAV ( fileData ,  dataSiz e ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_OGG)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( IsFileExtension ( fileName ,  " .ogg " ) )  wave  =  LoadOGG ( fileName ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( TextIsEqual ( fileExtLower ,  " ogg " ) )  wave  =  LoadOGG ( fileData ,  dataSiz e ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_FLAC)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( IsFileExtension ( fileName ,  " .flac " ) )  wave  =  LoadFLAC ( fileName ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( TextIsEqual ( fileExtLower ,  " flac " ) )  wave  =  LoadFLAC ( fileData ,  dataSiz e ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_MP3)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( IsFileExtension ( fileName ,  " . mp3" ) )  wave  =  LoadMP3 ( fileNam e ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  if  ( TextIsEqual ( fileExtLower ,  " mp3 " ) )  wave  =  LoadMP3 ( fileData ,  dataSiz e ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  TRACELOG ( LOG_WARNING ,  " FILEIO: [%s]  File format not supported",  fileName  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  TRACELOG ( LOG_WARNING ,  " WAVE:  File format not supported" ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  wave ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
	
		
			
				
				
					
						 
					 
				
				
					
						 
					 
				
				
				 
			
			 
			
			@ -1889,15 +1909,11 @@ static void CloseAudioBufferPool(void)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_WAV)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  WAV  file  into  Wave  structure  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadWAV ( const  char  * fileName )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  WAV  file  data  into  Wave  structure  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  NOTE :  Using  dr_wav  library  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadWAV ( const  char  * fileData ,  unsigned  int  fileSize )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Wave  wave  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Loading  WAV  from  memory  to  avoid  FILE  accesses   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  int  fileSize  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  char  * fileData  =  LoadFileData ( fileName ,  & fileSize ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    drwav  wav  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    bool  success  =  drwav_init_memory ( & wav ,  fileData ,  fileSize ,  NULL ) ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -1911,15 +1927,15 @@ static Wave LoadWAV(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . data  =  ( short  * ) RL_MALLOC ( wave . sampleCount * sizeof ( short ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        drwav_read_pcm_frames_s16 ( & wav ,  wav . totalPCMFrameCount ,  wave . data ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  TRACELOG ( LOG_WARNING ,  " FILEIO: [%s]  Failed to load WAV data",  fileName  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  TRACELOG ( LOG_WARNING ,  " WAVE:  Failed to load WAV data" ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    drwav_uninit ( & wav ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( fileData ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  wave ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Save  wave  data  as  WAV  file  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  NOTE :  Using  dr_wav  library  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  int  SaveWAV ( Wave  wave ,  const  char  * fileName )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    drwav  wav  =  {  0  } ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -1944,94 +1960,77 @@ static int SaveWAV(Wave wave, const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_OGG)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  OGG  file  into  Wave  structure  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  OGG  file  data   into  Wave  structure  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  NOTE :  Using  stb_vorbis  library  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadOGG ( const  char  * fileNam e )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadOGG ( const  char  * fileData ,  unsigned  int  fileSiz e )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Wave  wave  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Loading  OGG  from  memory  to  avoid  FILE  accesses   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  int  fileSize  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  char  * fileData  =  LoadFileData ( fileName ,  & fileSize ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    stb_vorbis  * oggFile  =  stb_vorbis_open_memory ( fileData ,  fileSize ,  NULL ,  NULL ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    stb_vorbis  * oggData  =  stb_vorbis_open_memory ( ( unsigned  char  * ) fileData ,  fileSize ,  NULL ,  NULL ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( oggFile  = =  NULL )  TRACELOG ( LOG_WARNING ,  " FILEIO: [%s] Failed to open OGG file " ,  fileName ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( oggData  ! =  NULL )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        stb_vorbis_info  info  =  stb_vorbis_get_info ( oggFile  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        stb_vorbis_info  info  =  stb_vorbis_get_info ( oggData ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . sampleRate  =  info . sample_rate ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . sampleSize  =  16 ;                    / /  16  bit  per  sample  ( short )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . channels  =  info . channels ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . sampleCount  =  ( unsigned  int ) stb_vorbis_stream_length_in_samples ( oggFile  ) * info . channels ;   / /  Independent  by  channel   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . sampleCount  =  ( unsigned  int ) stb_vorbis_stream_length_in_samples ( oggData  ) * info . channels ;   / /  Independent  by  channel   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        float  totalSeconds  =  stb_vorbis_stream_length_in_seconds ( oggFile  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( totalSeconds  >  10 )  TRACELOG ( LOG_WARNING ,  " WAVE: [%s] Ogg audio length larger than 10 seconds (%f ), that's a big file in memory, consider music streaming ",  fileName  ,  totalSeconds ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        float  totalSeconds  =  stb_vorbis_stream_length_in_seconds ( oggData  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( totalSeconds  >  10 )  TRACELOG ( LOG_WARNING ,  " WAVE: OGG audio length larger than 10 seconds (%f sec. ), that's a big file in memory, consider music streaming " ,  totalSeconds ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . data  =  ( short  * ) RL_MALLOC ( wave . sampleCount * wave . channels * sizeof ( short ) ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  NOTE :  Returns  the  number  of  samples  to  process  ( be  careful !  we  ask  for  number  of  shorts ! )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        stb_vorbis_get_samples_short_interleaved ( oggFile  ,  info . channels ,  ( short  * ) wave . data ,  wave . sampleCount * wave . channels ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        TRACELOG ( LOG_INFO ,  " WAVE: [%s] OGG file  loaded successfully (%i Hz, %i bit, %s) ",  fileName  ,  wave . sampleRate ,  wave . sampleSize ,  ( wave . channels  = =  1 ) ?  " Mono "  :  " Stereo " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        stb_vorbis_get_samples_short_interleaved ( oggData  ,  info . channels ,  ( short  * ) wave . data ,  wave . sampleCount * wave . channels ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        TRACELOG ( LOG_INFO ,  " WAVE: OGG data  loaded successfully (%i Hz, %i bit, %s) " ,  wave . sampleRate ,  wave . sampleSize ,  ( wave . channels  = =  1 ) ?  " Mono "  :  " Stereo " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        stb_vorbis_close ( oggFile  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        stb_vorbis_close ( oggData  ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( fileData ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  TRACELOG ( LOG_WARNING ,  " WAVE: Failed to load OGG data " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  wave ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_FLAC)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  FLAC  file  into  Wave  structure  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  FLAC  file  data   into  Wave  structure  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  NOTE :  Using  dr_flac  library  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadFLAC ( const  char  * fileNam e )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadFLAC ( const  char  * fileData ,  unsigned  int  fileSiz e )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Wave  wave  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Loading  FLAC  from  memory  to  avoid  FILE  accesses   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  int  fileSize  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  char  * fileData  =  LoadFileData ( fileName ,  & fileSize ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Decode  an   entire  FLAC  file  in  one  go   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Decode  the  entire  FLAC  file  in  one  go   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  long  long  int  totalSampleCount  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    wave . data  =  drflac_open_memory_and_read_pcm_frames_s16 ( fileData ,  fileSize ,  & wave . channels ,  & wave . sampleRate ,  & totalSampleCount ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( wave . data  = =  NULL )  TRACELOG ( LOG_WARNING ,  " FILEIO: [%s] Failed to load FLAC data " ,  fileName ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( wave . data  ! =  NULL )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . sampleCount  =  ( unsigned  int ) totalSampleCount ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . sampleSize  =  16 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        TRACELOG ( LOG_INFO ,  " WAVE: [%s] FLAC file  loaded successfully (%i Hz, %i bit, %s) ",  fileName  ,  wave . sampleRate ,  wave . sampleSize ,  ( wave . channels  = =  1 ) ?  " Mono "  :  " Stereo " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        TRACELOG ( LOG_INFO ,  " WAVE: FLAC data  loaded successfully (%i Hz, %i bit, %s) " ,  wave . sampleRate ,  wave . sampleSize ,  ( wave . channels  = =  1 ) ?  " Mono "  :  " Stereo " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( fileData ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  TRACELOG ( LOG_WARNING ,  " WAVE: Failed to load FLAC data " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  wave ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# endif  
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			# if defined(SUPPORT_FILEFORMAT_MP3)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  MP3  file  into  Wave  structure  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  Load  MP3  file  data   into  Wave  structure  
			
		 
		
	
		
			
			 
			 
			
			 
			
			/ /  NOTE :  Using  dr_mp3  library  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadMP3 ( const  char  * fileNam e )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			static  Wave  LoadMP3 ( const  char  * fileData ,  unsigned  int  fileSiz e )  
			
		 
		
	
		
			
			 
			 
			
			 
			
			{  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    Wave  wave  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Loading  MP3  from  memory  to  avoid  FILE  accesses   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  int  fileSize  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  char  * fileData  =  LoadFileData ( fileName ,  & fileSize ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    drmp3_config  config  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Decode  an   entire  MP3  file  in  one  go   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    / /  Decode  the  entire  MP3  file  in  one  go   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    unsigned  long  long  int  totalFrameCount  =  0 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    drmp3_config  config  =  {  0  } ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    wave . data  =  drmp3_open_memory_and_read_f32 ( fileData ,  fileSize ,  & config ,  & totalFrameCount ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( wave . data  = =  NULL )  TRACELOG ( LOG_WARNING ,  " FILEIO: [%s] Failed to load MP3 data " ,  fileName ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    if  ( wave . data  ! =  NULL )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    {   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . channels  =  config . outputChannels ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . sampleRate  =  config . outputSampleRate ;   
			
		 
		
	
	
		
			
				
				
				
				
					
						 
					 
				
				 
			
			 
			
			@ -2039,12 +2038,12 @@ static Wave LoadMP3(const char *fileName)  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        wave . sampleSize  =  32 ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  NOTE :  Only  support  up  to  2  channels  ( mono ,  stereo )   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( wave . channels  >  2 )  TRACELOG ( LOG_WARNING ,  " WAVE: [%s] MP3 channels number (%i) not supported " ,  fileName ,  wave . channels ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        / /  TODO :  Really ?   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        if  ( wave . channels  >  2 )  TRACELOG ( LOG_WARNING ,  " WAVE: MP3 channels number (%i) not supported " ,  wave . channels ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			        TRACELOG ( LOG_INFO ,  " WAVE: [%s]  MP3 file loaded successfully (%i Hz, %i bit, %s) ",  fileName  ,  wave . sampleRate ,  wave . sampleSize ,  ( wave . channels  = =  1 ) ?  " Mono "  :  " Stereo " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			        TRACELOG ( LOG_INFO ,  " WAVE: MP3 file loaded successfully (%i Hz, %i bit, %s) " ,  wave . sampleRate ,  wave . sampleSize ,  ( wave . channels  = =  1 ) ?  " Mono "  :  " Stereo " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    }   
			
		 
		
	
		
			
			 
			 
			
			 
			
			      
			
		 
		
	
		
			
			 
			 
			
			 
			
			    RL_FREE ( fileData ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			    else  TRACELOG ( LOG_WARNING ,  " WAVE: Failed to load MP3 data " ) ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			
  
			
		 
		
	
		
			
			 
			 
			
			 
			
			    return  wave ;   
			
		 
		
	
		
			
			 
			 
			
			 
			
			}