diff options
| author | listeria <[email protected]> | 2024-05-21 03:13:46 -0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-05-21 08:13:46 +0200 |
| commit | bb9bd73f435892b6f6f17d7068a7fe56dfca235d (patch) | |
| tree | a16a53a8d0dbaa4e70a12e7e57f52833a0379e7e /src/raudio.c | |
| parent | 9d67f4734b59244b5b10d45ce7c8eed76323c3b5 (diff) | |
| download | raylib-bb9bd73f435892b6f6f17d7068a7fe56dfca235d.tar.gz raylib-bb9bd73f435892b6f6f17d7068a7fe56dfca235d.zip | |
fix WaveCrop() and use frames instead of samples (#3994)
Co-authored-by: Listeria monocytogenes <[email protected]>
Diffstat (limited to 'src/raudio.c')
| -rw-r--r-- | src/raudio.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/raudio.c b/src/raudio.c index 8f4bf7a5..e74f8590 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1274,17 +1274,17 @@ Wave WaveCopy(Wave wave) return newWave; } -// Crop a wave to defined samples range +// Crop a wave to defined frames range // NOTE: Security check in case of out-of-range -void WaveCrop(Wave *wave, int initSample, int finalSample) +void WaveCrop(Wave *wave, int initFrame, int finalFrame) { - if ((initSample >= 0) && (initSample < finalSample) && ((unsigned int)finalSample < (wave->frameCount*wave->channels))) + if ((initFrame >= 0) && (initFrame < finalFrame) && ((unsigned int)finalFrame < wave->frameCount)) { - int sampleCount = finalSample - initSample; + int frameCount = finalFrame - initFrame; - void *data = RL_MALLOC(sampleCount*wave->sampleSize/8); + void *data = RL_MALLOC(frameCount*wave->channels*wave->sampleSize/8); - memcpy(data, (unsigned char *)wave->data + (initSample*wave->channels*wave->sampleSize/8), sampleCount*wave->sampleSize/8); + memcpy(data, (unsigned char *)wave->data + (initFrame*wave->channels*wave->sampleSize/8), frameCount*wave->channels*wave->sampleSize/8); RL_FREE(wave->data); wave->data = data; |
