|
|
@ -386,8 +386,8 @@ static Wave LoadMP3(const unsigned char *fileData, unsigned int fileSize); // |
|
|
|
#if defined(RAUDIO_STANDALONE) |
|
|
|
static bool IsFileExtension(const char *fileName, const char *ext); // Check file extension |
|
|
|
static unsigned char *LoadFileData(const char *fileName, unsigned int *bytesRead); // Load file data as byte array (read) |
|
|
|
static void SaveFileData(const char *fileName, void *data, unsigned int bytesToWrite); // Save data to file from byte array (write) |
|
|
|
static void SaveFileText(const char *fileName, char *text); // Save text data to file (write), string must be '\0' terminated |
|
|
|
static bool SaveFileData(const char *fileName, void *data, unsigned int bytesToWrite); // Save data to file from byte array (write) |
|
|
|
static bool SaveFileText(const char *fileName, char *text); // Save text data to file (write), string must be '\0' terminated |
|
|
|
#endif |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
@ -812,7 +812,7 @@ void UpdateSound(Sound sound, const void *data, int samplesCount) |
|
|
|
} |
|
|
|
|
|
|
|
// Export wave data to file |
|
|
|
void ExportWave(Wave wave, const char *fileName) |
|
|
|
bool ExportWave(Wave wave, const char *fileName) |
|
|
|
{ |
|
|
|
bool success = false; |
|
|
|
|
|
|
@ -824,17 +824,20 @@ void ExportWave(Wave wave, const char *fileName) |
|
|
|
{ |
|
|
|
// Export raw sample data (without header) |
|
|
|
// NOTE: It's up to the user to track wave parameters |
|
|
|
SaveFileData(fileName, wave.data, wave.sampleCount*wave.sampleSize/8); |
|
|
|
success = true; |
|
|
|
success = SaveFileData(fileName, wave.data, wave.sampleCount*wave.sampleSize/8); |
|
|
|
} |
|
|
|
|
|
|
|
if (success) TRACELOG(LOG_INFO, "FILEIO: [%s] Wave data exported successfully", fileName); |
|
|
|
else TRACELOG(LOG_WARNING, "FILEIO: [%s] Failed to export wave data", fileName); |
|
|
|
|
|
|
|
return success; |
|
|
|
} |
|
|
|
|
|
|
|
// Export wave sample data to code (.h) |
|
|
|
void ExportWaveAsCode(Wave wave, const char *fileName) |
|
|
|
bool ExportWaveAsCode(Wave wave, const char *fileName) |
|
|
|
{ |
|
|
|
bool success = false; |
|
|
|
|
|
|
|
#ifndef TEXT_BYTES_PER_LINE |
|
|
|
#define TEXT_BYTES_PER_LINE 20 |
|
|
|
#endif |
|
|
@ -878,9 +881,11 @@ void ExportWaveAsCode(Wave wave, const char *fileName) |
|
|
|
bytesCount += sprintf(txtData + bytesCount, "0x%x };\n", ((unsigned char *)wave.data)[waveDataSize - 1]); |
|
|
|
|
|
|
|
// NOTE: Text data length exported is determined by '\0' (NULL) character |
|
|
|
SaveFileText(fileName, txtData); |
|
|
|
success = SaveFileText(fileName, txtData); |
|
|
|
|
|
|
|
RL_FREE(txtData); |
|
|
|
|
|
|
|
return success; |
|
|
|
} |
|
|
|
|
|
|
|
// Play a sound |
|
|
@ -1942,6 +1947,8 @@ static Wave LoadWAV(const unsigned char *fileData, unsigned int fileSize) |
|
|
|
// NOTE: Using dr_wav library |
|
|
|
static int SaveWAV(Wave wave, const char *fileName) |
|
|
|
{ |
|
|
|
int success = false; |
|
|
|
|
|
|
|
drwav wav = { 0 }; |
|
|
|
drwav_data_format format = { 0 }; |
|
|
|
format.container = drwav_container_riff; |
|
|
@ -1952,14 +1959,15 @@ static int SaveWAV(Wave wave, const char *fileName) |
|
|
|
|
|
|
|
unsigned char *fileData = NULL; |
|
|
|
unsigned int fileDataSize = 0; |
|
|
|
drwav_init_memory_write(&wav, &fileData, &fileDataSize, &format, NULL); |
|
|
|
drwav_write_pcm_frames(&wav, wave.sampleCount/wave.channels, wave.data); |
|
|
|
drwav_uninit(&wav); |
|
|
|
|
|
|
|
SaveFileData(fileName, fileData, fileDataSize); |
|
|
|
success = drwav_init_memory_write(&wav, &fileData, &fileDataSize, &format, NULL); |
|
|
|
if (success) success = drwav_write_pcm_frames(&wav, wave.sampleCount/wave.channels, wave.data); |
|
|
|
drwav_result result = drwav_uninit(&wav); |
|
|
|
|
|
|
|
if (result == DRWAV_SUCCESS) success = SaveFileData(fileName, fileData, fileDataSize); |
|
|
|
|
|
|
|
drwav_free(fileData, NULL); |
|
|
|
|
|
|
|
return b">true; |
|
|
|
return ">success; |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
@ -2110,7 +2118,7 @@ static unsigned char *LoadFileData(const char *fileName, unsigned int *bytesRead |
|
|
|
} |
|
|
|
|
|
|
|
// Save data to file from buffer |
|
|
|
static void SaveFileData(const char *fileName, void *data, unsigned int bytesToWrite) |
|
|
|
static bool SaveFileData(const char *fileName, void *data, unsigned int bytesToWrite) |
|
|
|
{ |
|
|
|
if (fileName != NULL) |
|
|
|
{ |
|
|
@ -2132,7 +2140,7 @@ static void SaveFileData(const char *fileName, void *data, unsigned int bytesToW |
|
|
|
} |
|
|
|
|
|
|
|
// Save text data to file (write), string must be '\0' terminated |
|
|
|
static void SaveFileText(const char *fileName, char *text) |
|
|
|
static bool SaveFileText(const char *fileName, char *text) |
|
|
|
{ |
|
|
|
if (fileName != NULL) |
|
|
|
{ |
|
|
|