|  |  | @ -863,16 +863,14 @@ Sound LoadSoundFromWave(Wave wave) | 
		
	
		
			
			|  |  |  | void UnloadWave(Wave wave) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | if (wave.data != NULL) RL_FREE(wave.data); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | TRACELOG(LOG_INFO, "WAVE: Unloaded wave data from RAM"); | 
		
	
		
			
			|  |  |  | //TRACELOG(LOG_INFO, "WAVE: Unloaded wave data from RAM"); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Unload sound | 
		
	
		
			
			|  |  |  | void UnloadSound(Sound sound) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | UnloadAudioBuffer(sound.stream.buffer); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | TRACELOG(LOG_INFO, "WAVE: Unloaded sound data from RAM"); | 
		
	
		
			
			|  |  |  | //TRACELOG(LOG_INFO, "SOUND: Unloaded sound data from RAM"); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Update sound buffer with new data | 
		
	
	
		
			
				|  |  | @ -947,7 +945,7 @@ bool ExportWaveAsCode(Wave wave, const char *fileName) | 
		
	
		
			
			|  |  |  | int byteCount = 0; | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "\n//////////////////////////////////////////////////////////////////////////////////\n"); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "//                                                                              //\n"); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "// WaveAsCode exporter v1.0 - Wave data exported as an array of bytes           //\n"); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "// WaveAsCode exporter v1.1 - Wave data exported as an array of bytes           //\n"); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "//                                                                              //\n"); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "// more info and bugs-report:  github.com/raysan5/raylib                        //\n"); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "// feedback and support:       ray[at]raylib.com                                //\n"); | 
		
	
	
		
			
				|  |  | @ -956,26 +954,32 @@ bool ExportWaveAsCode(Wave wave, const char *fileName) | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "//                                                                              //\n"); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "//////////////////////////////////////////////////////////////////////////////////\n\n"); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | char varFileName[256] = { 0 }; | 
		
	
		
			
			|  |  |  | #if !defined(RAUDIO_STANDALONE) | 
		
	
		
			
			|  |  |  | // Get file name from path and convert variable name to uppercase | 
		
	
		
			
			|  |  |  | strcpy(varFileName, GetFileNameWithoutExt(fileName)); | 
		
	
		
			
			|  |  |  | for (int i = 0; varFileName[i] != '\0'; i++) if (varFileName[i] >= 'a' && varFileName[i] <= 'z') { varFileName[i] = varFileName[i] - 32; } | 
		
	
		
			
			|  |  |  | #else | 
		
	
		
			
			|  |  |  | strcpy(varFileName, fileName); | 
		
	
		
			
			|  |  |  | #endif | 
		
	
		
			
			|  |  |  | char fileNameLower[256] = { 0 }; | 
		
	
		
			
			|  |  |  | char fileNameUpper[256] = { 0 }; | 
		
	
		
			
			|  |  |  | for (int i = 0; fileName[i] != '.'; i++) { fileNameLower[i] = fileName[i]; }      // Get filename without extension | 
		
	
		
			
			|  |  |  | for (int i = 0; fileNameLower[i] != '\0'; i++) if (fileNameLower[i] >= 'a' && fileNameLower[i] <= 'z') { fileNameUpper[i] = fileNameLower[i] - 32; } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "// Wave data information\n"); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "#define %s_FRAME_COUNT      %u\n", varFileName, wave.frameCount); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "#define %s_SAMPLE_RATE      %u\n", varFileName, wave.sampleRate); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "#define %s_SAMPLE_SIZE      %u\n", varFileName, wave.sampleSize); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "#define %s_CHANNELS         %u\n\n", varFileName, wave.channels); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Write byte data as hexadecimal text | 
		
	
		
			
			|  |  |  | // NOTE: Frame data exported is interlaced: Frame01[Sample-Channel01, Sample-Channel02, ...], Frame02[], Frame03[] | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "static unsigned char %s_DATA[%i] = { ", varFileName, waveDataSize); | 
		
	
		
			
			|  |  |  | for (int i = 0; i < waveDataSize - 1; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "0x%x,\n" : "0x%x, "), ((unsigned char *)wave.data)[i]); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "0x%x };\n", ((unsigned char *)wave.data)[waveDataSize - 1]); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "#define %s_FRAME_COUNT      %u\n", fileNameUpper, wave.frameCount); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "#define %s_SAMPLE_RATE      %u\n", fileNameUpper, wave.sampleRate); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "#define %s_SAMPLE_SIZE      %u\n", fileNameUpper, wave.sampleSize); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "#define %s_CHANNELS         %u\n\n", fileNameUpper, wave.channels); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // Write wave data as an array of values | 
		
	
		
			
			|  |  |  | // Wave data is exported as byte array for 8/16bit and float array for 32bit float data | 
		
	
		
			
			|  |  |  | // NOTE: Frame data exported is channel-interlaced: frame01[sampleChannel1, sampleChannel2, ...], frame02[], frame03[] | 
		
	
		
			
			|  |  |  | if (wave.sampleSize == 32) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "static float %sData[%i] = {\n", fileNameLower, waveDataSize/4); | 
		
	
		
			
			|  |  |  | for (int i = 1; i < waveDataSize/4; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "%.4ff,\n    " : "%.4ff, "), ((float *)wave.data)[i - 1]); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "%.4ff };\n", ((float *)wave.data)[waveDataSize/4 - 1]); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | else | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "static unsigned char %sData[%i] = { ", fileNameLower, waveDataSize); | 
		
	
		
			
			|  |  |  | for (int i = 1; i < waveDataSize; i++) byteCount += sprintf(txtData + byteCount, ((i%TEXT_BYTES_PER_LINE == 0)? "0x%x,\n    " : "0x%x, "), ((unsigned char *)wave.data)[i - 1]); | 
		
	
		
			
			|  |  |  | byteCount += sprintf(txtData + byteCount, "0x%x };\n", ((unsigned char *)wave.data)[waveDataSize - 1]); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | // NOTE: Text data length exported is determined by '\0' (NULL) character | 
		
	
		
			
			|  |  |  | success = SaveFileText(fileName, txtData); | 
		
	
	
		
			
				|  |  |  |