Commit Graph

310 Commits

Author SHA1 Message Date
Ray
962f1c26ff Review formatting to follow raylib conventions 2024-12-01 23:10:59 +01:00
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