Commit Graph

309 Commits

Author SHA1 Message Date
Caleb Heydon
58fe34d9cc
[raudio] Fixed buffer overflow when loading WAV files (#4539) 2024-11-28 22:58:35 +01:00
veins1
11429b48eb
Fix for #4521 (#4523) 2024-11-20 21:28:46 +01:00
Ray
8cbf34ddc4 WARNING: BREAKING: Renamed several functions for data validation #3930 2024-10-16 19:26:12 +02:00
konstruktor227
b0c3013b51
[raudio] Support 24-bit FLACs in LoadMusicStreamFromMemory (#4279)
Force conversion to 16-bit, same as how it is done in `LoadMusicStream`.
This fixes the problem where 24-bit FLACs play silence or broken sound.
2024-08-23 22:51:29 +02:00
Ray
3abe728712 Minor tweaks 2024-07-08 22:54:19 +02:00
Ray
17cbc75aa7 REVIEWED: Formatting, follow raylib coding conventions 2024-06-30 11:07:38 +02:00
listeria
df849d2fb0
[raudio] fix mapping of wave data in LoadWaveSamples() (#4062)
Co-authored-by: Listeria monocytogenes <listeria@disroot.org>
2024-06-13 16:05:22 +02:00
Alexey Kutepov
33c598123c
[raudio] Add 24 bits samples support for FLAC format (#4058)
Similarly to how it's done for WAV format, by forcing the conversion
to s16 on UpdateMusicStream().
2024-06-12 11:42:41 +02:00
listeria
b429dbdc4b
fix WaveCrop(): update wave->frameCount (#4003)
also allow `finalFrame = wave->frameCount' as the range of frames does
not include it.

Co-authored-by: Listeria monocytogenes <listeria@disroot.org>
2024-05-24 18:24:40 +02:00
listeria
bb9bd73f43
fix WaveCrop() and use frames instead of samples (#3994)
Co-authored-by: Listeria monocytogenes <listeria@disroot.org>
2024-05-21 08:13:46 +02:00
FishingHacks
3d70d6179c
[raudio] Removed drwav_uninit in LoadMusicStream to fix a crash (#3986) 2024-05-16 19:47:39 +02:00
veins1
1aa3559155
Fixes for loading Music (#3966)
* Fixes for loading Music

Fix for #3889
Fixes for QOA crashes.
Memory leak FIX on unsuccessful .wav loading.

* Added comments
2024-05-07 20:44:41 +02:00
Ray
3caa424ad4 Review formatting 2024-04-21 12:29:09 +02:00
Ray
c1943f0f7c REVIEWED: Move some functions, made them static 2024-04-20 20:30:35 +02:00
Christian Haas
d80a622972
[raudio] Fix 3664: crash in raudio from multithreading issues (#3907)
* Flip release of buffer;

First it needs to be taken out of the processing chain, then it can be released. The inverse of the initialization.

* Add mutex locks to audio buffer functions; Separate those used from both threads

* Flip release of buffer;

First it needs to be taken out of the processing chain, then it can be released. The inverse of the initialization.

* Remove TODO marker; The buffer is in stopped state and its data won't be accessed

* Add mutex locks to music/stream functions directly operating on buffer

* Secure UpdateMusicStream/PlayMusicStream/UpdateAudioStream;

This change is twofold:
* Add locks to UpdateMusicStream/UpdateAudioStream (second one needed separation)
* Remove unnecessary hack to restart music - inlining the statements resulted in a no-op

Especially the second part made it easier to ensure thread-safety overall

* Remove redundant check; Already checked at beginning of function
2024-04-20 20:15:09 +02:00
Ray
29ce13b777 Code gardening
- Review formatting
 - Improve readability for some functions result return
 - Minimize early returns
 - Align LoadFileData() to UnloadFileData()
2024-04-20 13:53:13 +02:00
veins1
289e7d3a6c
Reset music.ctxType if loading wasn't succesful (#3917)
Fixes some crashes, e.g. calling StopMusicStream after trying to load Music from a non-existant .mp3 file
2024-04-14 00:15:50 +02:00
Ray
646d70e93a Remove trailing spaces 2024-04-02 09:38:06 +02:00
IoIxD
7ec43022c1
Fix segfault in ExportWaveAsCode (#3769)
`char *txtData = (char *)RL_CALLOC(waveDataSize * 6 + 2000, sizeof(char));`

assumes every chunk being added to txtData is 6 bytes. This is not always true, sometimes a newline is involved and the data becomes 12 bytes instead, and this can cause a random segfault.

This commit changes `6` to `12`, and explains why in the comment.
2024-02-01 21:16:57 +01:00
Alessandro Nikolaev
cf10cdd6b3
Added missing "standalone" functions to raudio.c & fixed return bug (#3760)
* Added GetFileNameWithoutExt, GetFileName & strprbrk to raudio.c

* Gave return values to SaveFileData & SaveFileText in raudio.c
2024-01-28 13:46:27 +01:00
Idir Carlos Aliane
6f1c31b25d
Change some minor comments to align with comments style (#3755) 2024-01-22 21:26:18 +01:00
Ray
c95b71d40d Update raudio.c 2024-01-05 22:33:02 +01:00
Ray
3f1e59a7cf Update copyright to 2024 2024-01-02 20:58:12 +01:00
Alexandre Almeida
f6de0358e1
Disable unused miniaudio features (#3544)
* Disable unused miniaudio features

* Fix mistakes
2023-11-18 20:06:19 +01:00
Ray
f88604e6d5 Reviewed QOA seek PR 2023-10-31 15:54:38 +01:00
veins1
6842012748
Fix QOA seeking (#3494) 2023-10-31 15:48:24 +01:00
Lukas
daf227a185
Fixes a memory leak as a result of creating an AudioBuffer* with the old source.frameCount. This internally allocates memory to the structs data pointer which is then later overridden by the correct sound data of the source sound. (#3458)
Additionally added a volume assignment from old to new as currently there is no way to get the volume of a sound and the AudioBuffer struct is not reachable from user code due to opaque definition.
2023-10-23 18:16:28 +02:00
Alexey Kutepov
d7d04a07a2
[raudio] Implement GetMasterVolume() (#3434)
It feels a little unfinished when you can SetMasterVolume but can't
really Get it. So to finish the symmetry here is the GetMasterVolume
implementation.
2023-10-17 23:35:38 +02:00
Daniil Kisel
5a0d9c8d43
Fix UpdateSound parameter name (#3405) 2023-10-13 19:54:43 +02:00
Ray
f93d0ff9bc Update raudio.c 2023-10-09 11:17:09 +02:00
Le Juez Victor
4d2906b0a5
Move mutex initialization before ma_device_start() (#3325) 2023-09-18 18:50:22 +02:00
Ray
0f447f1fb6 REVIEWED: Data size type consistency between functions #3168 2023-09-02 12:05:34 +02:00
Ray
93f59a6f59 Review tabs and trail-spaces 2023-08-10 22:47:17 +02:00
Ray
42cfabc670 REVIEWED: Old pragma formating 2023-08-09 10:00:26 +02:00
Jeffery Myers
601cadbae6
[AUDIO] Add a function to make an alias of a sound and share it's sample data (#3219)
* Add a function to clone a sound and share data with another sound.

* rename items based on feedback

* PR Feedback, use custom unload for sound alias, not variant of normal sound unloading
2023-08-04 16:40:10 +02:00
Ray
7d68aa6869 REVIEWED: Modules description layout 2023-05-01 14:04:22 +02:00
Ray
838fc7e303 REVIEWED: Some old TODOs 2023-04-22 21:17:53 +02:00
RadsammyT
e2da32e2da
[raudio] Rewritten ExportWaveAsCode() file saving to be more like rtextures ExportImageAsCode() (#3013)
* Update raudio.c

Review `raudio.c`: rewritten `ExportWaveAsCode()` to be more like rtextures.c `ExportImageAsCode()'

* no tab november

accidentally inserted a tab somewhere. corrected it.
2023-04-15 10:58:00 +02:00
Ray
709b14180a Make assets loading extension case insensitive #3008 2023-04-13 23:08:32 +02:00
Jeffery Myers
e57ee9c0e8
Fix warnings in raylib for MSVC (#3004) 2023-04-09 22:42:15 +02:00
Webfra
08670ecea1
Add const qualifier to char * path argument in qoaplay_open() (#2972)
* Add const qualifier to char * path argument
in qoa_open()

* Remove unnecessary cast
2023-03-19 20:34:22 +01:00
Rob Loach
c14c7f0b69
raudio: Fix warning on discarded const qualifier (#2967)
The `qoaplay_open()` function expects a `char *`, but we are passing in a `const char *`. While this works just fine, it does issue a compiler warning when strict:

```
src/raudio.c: In function ‘LoadMusicStream’:
src/raudio.c:1290:45: warning: passing argument 1 of ‘qoaplay_open’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 1290 |         qoaplay_desc *ctxQoa = qoaplay_open(fileName);
      |                                             ^~~~~~~~
In file included from src/raudio.c:233:
src/external/qoaplay.c:86:34: note: expected ‘char *’ but argument is of type ‘const char *’
   86 | qoaplay_desc *qoaplay_open(char *path)
      |                            ~~~~~~^~~~
```

This change casts the argument to a `char *` to fix the warning.
2023-03-19 11:16:52 +01:00
veins1
cf04425bc2
Spelling (#2957) 2023-03-14 19:23:17 +01:00
Ray
ab1e246367 REVIEWED: Data types validation 2023-03-07 20:33:45 +01:00
Ray
ae53600d31 WARNING: REMOVED: Multichannel audio support API 2023-03-07 19:54:53 +01:00
Ray
1b873b028f WARNING: REMOVED: Multichannel audio support API
It was quite restrictive and hacky implementation, just load multiple types same sound to play multiple instances.
2023-03-07 19:48:47 +01:00
Ray
aae7ab64c7 Update raudio.c 2023-03-06 13:00:30 +01:00
Ray
68ee0bb8dd ADDED: QOA music streaming (with auxiliar lib)
Some format tweaks
2023-03-06 12:33:49 +01:00
Ray
9614d3353b REVIEWED: QOA audio file export 2023-03-05 13:49:18 +01:00
Ray
5492f52adc Change default threading model for COM objects
It shouldn't matter much but it could avoid some conflicts with other libraries in the future (like `tinyfiledialogs`).
2023-03-05 00:09:56 +01:00
Ray
d5a31168ce REVIEWED: Data validation 2023-02-23 18:08:15 +01:00
hkc
d26a56d4e1
Added mixed audio processor (#2929)
* Use RL_QUADS/RL_TRIANGLES for single-pixel drawing

Addresses problem mentioned in
https://github.com/raysan5/raylib/issues/2744#issuecomment-1273568263
(in short: when drawing pixels using DrawPixel{,V} in camera mode,
upscaled pixel becomes a line instead of bigger pixel)

* [rtextures] Fixed scaling down in ImageTextEx

Closes #2755

* Added global audio processor

* Renamed struct member to follow naming conventions

* Added example for AttachAudioMixedProcessor
2023-02-20 11:13:24 +01:00
Julio C. Galindo
6ae21d6581
Fixed some grammar mistakes and typos. (#2914)
* Fixed some grammar mistakes.

* Fixed some typos.
2023-02-09 13:17:47 +01:00
Ray
e187b693ea Update raudio.c 2023-02-06 11:02:46 +01:00
Ray
1fea266472 Clean trailing spaces 2023-02-05 16:30:23 +01:00
Ray
c91190fc6e Review QOA sound loading -WIP- 2023-02-05 16:28:04 +01:00
Ray
589892af07 Support QOA audio format on ExportWave() -WIP- 2023-02-04 20:27:47 +01:00
Ray
901c4553d2 ADDED: QOA audio format support -WIP- 2023-02-04 20:20:21 +01:00
Ray
d827a65e59 Update external libraries
Switch to official `stb_vorbis.c` instead of using an outdated fork
2023-02-01 11:45:42 +01:00
Rob Loach
83ff7b2466
ADDED: IsShaderReady(), IsImageReady(), IsFontReady(), IsWaveReady(), IsSoundReady(), IsMusicReady() (#2892)
These IsReady() functions provide a method in order to verify whether or not the object was loaded successfully. They're useful to make sure the assets are there prior to using them.
2023-01-27 19:24:03 +01:00
Jeffery Myers
edaca16d7c
Fix warnings in raylib project from MSVC (#2871) 2023-01-20 16:05:19 +01:00
Ray
b59fab7ee6 Update year to 2023 2023-01-01 16:00:56 +01:00
veins1
2872b2fff5
Clear PCM buffer state when closing audio device (#2736)
Fix for #2714
2022-10-02 19:30:26 +02:00
veins1
d70e5cd26b
Small simplifications (#2615) 2022-08-05 12:16:49 +02:00
veins1
82b76149da
GetMusicTimePlayed bug fix (#2614)
GetMusicTimePlayed() was calculated using buffered frames, not played frames.
For example: calling LoadMusicStream->UpdateMusicStream->GetMusicTimePlayed would return non-zero value, even though no music was playing.
2022-08-05 08:36:59 +02:00
Ray
fd191a32ea Remove trailing spaces 2022-08-02 00:36:31 +02:00
veins1
a6b3c8aa1e
Music doesn't stop looping fix (#2605)
This PR fixes a bug when music.looping is set to false but the music continues looping.
Also using proper functions to seek to start of an audio file.
Removed old comment.
2022-08-01 20:07:32 +02:00
veins1
0ef3e4c4d5
Audio looping fix (#2579)
* WAVs looping fix. But broke other formats looping

* Fix audio looping issue

* Follow raylib formatting

* Cast void* to char* to make MSVC compiler happy

Co-authored-by: Ray <raysan5@gmail.com>
2022-07-29 13:10:59 +02:00
Jeffery Myers
e9029d3d00
[CORE] Fix Warnings (#2582)
* Fix raymath warning with floor to floorf

* signed unsigned missmatches
2022-07-19 06:36:03 +02:00
Ray
cccea34c6f Update raudio.c 2022-07-15 19:09:14 +02:00
Ray
8aa105fd5b WARNING: REMOVED: raudio_standalone example
Moved to raudio library repo: https://github.com/raysan5/raudio
2022-07-15 19:05:05 +02:00
Ray
3ebfee5dbc REVIEWED: UpdateMusicStream() #2228
Trying to implement proper looping, independently of frame rate.
2022-07-11 21:19:21 +02:00
Ray
0379b94b7a Minor tweaks 2022-07-11 21:18:31 +02:00
Ray
b92573e711 Update raudio.c 2022-07-10 23:00:09 +02:00
Ray
2245500245 Added comment about buffer refill issue on looping #2228 2022-07-10 21:39:13 +02:00
Ray
066bd5be87 Reviewed formating 2022-07-10 21:38:33 +02:00
veclavtalica
63568721f9
fix: precision loss, discard unused (#2541) 2022-06-24 10:59:31 +02:00
Dan Bechard
8bd3ecaa66
Share PCM streaming buffer to reduce dynamic allocations (#2532) 2022-06-21 19:26:21 +02:00
Ray
8d9c45a08a tweak 2022-06-17 21:24:59 +02:00
Jonathan Poncelet
5bdd8f134f
Improved boolean definitions (#2485) 2022-05-19 21:21:09 +02:00
Crydsch
020e903193
Fix lgtm warnings (#2477)
* Comparison is always true because finalSample >= 1

* Comparison is always false because keyCount >= 0
2022-05-14 15:02:29 +02:00
Ray
f3aac87422 Some minor tweaks 2022-05-12 16:35:28 +02:00
Ray
ed2ab55034 Remove line ending spaces 2022-05-05 20:39:14 +02:00
Ray
1612ba63ab ADDED: Audio stream processors support -WIP- #2212
This feature is still under consideration/testing and it doesn't work properly, at least the Delay Effect processor.
2022-03-30 20:13:02 +02:00
Ray
8e28872fe1 Rename audio callback 2022-03-25 10:19:40 +01:00
Ray
381236051f ADDED: Audio stream input callback #2212 -WIP-
WARNING: This addition is based on a PR and it's still under review, not sure if it will be maintained in the future. In general, raylib tries to avoid callbacks usage mechanisms.
2022-03-24 20:49:11 +01:00
Ray
bcd84cd36d Some code reviews -WIP- 2022-03-24 18:56:53 +01:00
Ray
22c17da4d7 Update to miniaudio 11.8 2022-03-24 18:22:09 +01:00
raysan5
937e7b3dd9 REVIEWED: Some functions input parametes that should be const 2022-02-20 20:35:28 +01:00
raysan5
d4382f4a52 Removed trailing spaces 2022-02-18 20:30:46 +01:00
raysan5
15b36e04b2 Review formating 2022-01-16 17:16:04 +01:00
ptarabbia
5ac07122bd
Add panning to raudio and update audio_raw_stream example. (#2205)
* Add panning to raudio and update audio_raw_stream example.

* remove pan smoothing, code formatting changes following pull request comments

Co-authored-by: Ray <raysan5@gmail.com>
2022-01-16 12:49:58 +01:00
Ray
62858e11f7 Review tracelogs 2022-01-03 20:45:19 +01:00
raysan5
a940f41b4b Update year to 2022 2021-12-31 20:06:22 +01:00
raysan5
423fdb320a Update raudio.c 2021-12-24 19:57:32 +01:00
Ray
4874c45ebf REVIEWED: ExportWaveAsCode() 2021-12-23 11:02:20 +01:00
Ray
9e5a9892be REVIEWED: PlaySoundMulti() #2231 2021-12-21 23:57:13 +01:00
raysan5
58f2bf4181 REVIEWED: Export format for float 32bit 2021-12-21 20:32:58 +01:00
Ray
f09a916587 Update raudio.c 2021-12-08 14:02:54 +01:00
Ray
e637ad9d2a Support custom modules inclusion
Allow to choose which modules are compiled with raylib, if some modules are excluded from compilation, required functionality is not available but smaller builds are possible.
2021-12-04 19:56:02 +01:00