summaryrefslogtreecommitdiffhomepage
path: root/src/raudio.c
diff options
context:
space:
mode:
authorraysan5 <[email protected]>2020-05-24 00:20:32 +0200
committerraysan5 <[email protected]>2020-05-24 00:20:32 +0200
commit8120547639e5fde9d12a85193b5b6325ab75f922 (patch)
treea3fc5bfec0f17d604b3bcc2d6ffd8f1560588a25 /src/raudio.c
parenta6fcd323395170be256b20f29f3e77a685bffd14 (diff)
downloadraylib-8120547639e5fde9d12a85193b5b6325ab75f922.tar.gz
raylib-8120547639e5fde9d12a85193b5b6325ab75f922.zip
Added LoadWAV()/SaveWAV() memory buffer sample code
It could be useful in a future...
Diffstat (limited to 'src/raudio.c')
-rw-r--r--src/raudio.c33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/raudio.c b/src/raudio.c
index d23c0317..16996260 100644
--- a/src/raudio.c
+++ b/src/raudio.c
@@ -1862,7 +1862,7 @@ static Wave LoadWAV(const char *fileName)
{
Wave wave = { 0 };
- // Decode an entire FLAC file in one go
+ // Decode an entire WAV file in one go
unsigned long long int totalPCMFrameCount = 0;
wave.data = drwav_open_file_and_read_pcm_frames_s16(fileName, &wave.channels, &wave.sampleRate, &totalPCMFrameCount, NULL);
@@ -1874,7 +1874,30 @@ static Wave LoadWAV(const char *fileName)
TRACELOG(LOG_INFO, "WAVE: [%s] WAV file loaded successfully (%i Hz, %i bit, %s)", fileName, wave.sampleRate, wave.sampleSize, (wave.channels == 1)? "Mono" : "Stereo");
}
-
+
+/*
+ // 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);
+
+ if (success)
+ {
+ wave.sampleCount = wav.totalPCMFrameCount*wav.channels;
+ wave.sampleRate = wav.sampleRate;
+ wave.sampleSize = 16; // NOTE: We are forcing conversion to 16bit
+ wave.channels = wav.channels;
+ 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);
+
+ drwav_uninit(&wav);
+ RL_FREE(fileData);
+*/
return wave;
}
@@ -1890,12 +1913,14 @@ static int SaveWAV(Wave wave, const char *fileName)
format.bitsPerSample = wave.sampleSize;
drwav_init_file_write(&wav, fileName, &format, NULL);
+ //drwav_init_memory_write(&wav, &fileData, &fileDataSize, &format, NULL); // Memory version
drwav_write_pcm_frames(&wav, wave.sampleCount/wave.channels, wave.data);
- printf("save!\n");
-
drwav_uninit(&wav);
+ // SaveFileData(fileName, fileData, fileDataSize);
+ //drwav_free(fileData, NULL);
+
return true;
}
#endif