Commit Graph

4090 Commits

Author SHA1 Message Date
David Reid c366358ed6 Try fixing a possible Emscripten error with the deviceio test. 2025-08-21 18:16:46 +10:00
David Reid 747faa3390 Fix some errors with the Emscripten build. 2025-08-21 18:01:06 +10:00
David Reid ca3ba8c1a8 Update CMake script to relax build options for examples.
This makes it so examples don't throw annoying warnings, that in order
to fix, would require making the example code unnecessarily untidy.
2025-08-21 15:35:32 +10:00
David Reid cb95cd6521 Force silence a warning in an example. 2025-08-21 14:47:11 +10:00
David Reid b37530fdd6 Merge branch 'dev' into dev-0.12 2025-08-21 14:34:11 +10:00
David Reid b1893aa8f1 Minor C89 compatibility fix. 2025-08-21 14:33:52 +10:00
David Reid df4baf8d40 Fix some errors. 2025-08-21 14:24:21 +10:00
David Reid 21237008df Silence some errors in the Steam Audio headers. 2025-08-21 14:23:31 +10:00
David Reid 7263de3b64 Delete the PipeWire test.
The PipeWire backend is now tested with the deviceio test.
2025-08-21 14:18:58 +10:00
David Reid 26a1566cb2 Fix some errors. 2025-08-21 14:09:22 +10:00
David Reid df0358c870 Merge branch 'dev' into dev-0.12 2025-08-21 14:09:02 +10:00
David Reid 587bd83cbb Update fs and fix some build errors with -std=c89. 2025-08-21 13:57:57 +10:00
David Reid 0204c7d788 Fix a compatibility error with va_copy(). 2025-08-21 12:56:20 +10:00
David Reid e826957a12 Disable the PipeWire backend when compiling as C89.
The SPA headers are not compatible with C89 which means the PipeWire
backend is not usable.
2025-08-21 07:33:08 +10:00
David Reid f6453a1418 Add ma_get_stock_device_backends().
This commit many warnings when compiling as C89.
2025-08-21 07:27:42 +10:00
David Reid c3132cb703 Fix a couple of warnings on the Emscripten build. 2025-08-20 19:20:23 +10:00
David Reid f86be65f19 Merge branch 'dev' into dev-0.12 2025-08-20 18:15:54 +10:00
David Reid b7e5451ef4 Try fixing a compilation error when pthread does not exist. 2025-08-20 18:07:59 +10:00
David Reid ba84e61a18 Try fixing a compilation error when libatomic does not exist. 2025-08-20 18:03:12 +10:00
David Reid a7ab58259e Don't try building C++ tests when forcing C89. 2025-08-20 17:36:07 +10:00
David Reid 7f2f0a5a36 Fix a C89 error. 2025-08-20 16:56:04 +10:00
David Reid 5eb78ec819 Merge branch 'dev' into dev-0.12 2025-08-20 16:40:57 +10:00
David Reid 18055f34bb voclib: Fix a compilation error. 2025-08-20 16:40:46 +10:00
David Reid 47f08262a0 For a C89 error. 2025-08-20 16:36:53 +10:00
David Reid 415c50e2f5 Fix a -Wpedantic warning. 2025-08-20 16:12:10 +10:00
David Reid db38f0b003 Merge branch 'dev' into dev-0.12 2025-08-20 16:09:58 +10:00
David Reid f6bae251bd verblib: Try fixing a compilation error on macOS. 2025-08-20 16:09:44 +10:00
David Reid 3567d5cfef Fix compilation error with MA_NO_SSE2. 2025-08-20 16:04:15 +10:00
David Reid 4e3b778c62 Silence some warnings about unused functions. 2025-08-20 15:56:43 +10:00
David Reid ba35370f74 Merge branch 'dev' into dev-0.12 2025-08-19 08:32:35 +10:00
David Reid 6315130ec6 Make ma_lcg.state uint32 to avoid UB on signed arthimethic overflow 2025-08-19 08:32:06 +10:00
David Reid 6e1cd41622 tests: fix memory leak in filtering and generation tests 2025-08-19 08:26:22 +10:00
David Reid 62c10ddd58 Fix an error with duplex mode for the new null backend. 2025-08-15 06:10:34 +10:00
David Reid d0af92764f Big simplification to the null backend.
This is the first backend to experiment with the new wait/step backend
model which, if it works out, will allow miniaudio to work in a single
threaded mode which in turn will open up the opportunity for
applications to have greater control over thread management and to
possibly allow miniaudio to work on single threaded systems like DOS.
2025-08-14 17:32:45 +10:00
David Reid 59566edddf Some fixes to the audio thread. 2025-08-11 15:53:32 +10:00
David Reid 3f3353ee39 Remove an unused variable. 2025-08-11 15:39:47 +10:00
David Reid a1bee2c673 Get device IO APIs compiling with MA_NO_THREADING.
This is only concerned with getting miniaudio compiling. As of this
commit, device IO will not actually work with this option enabled.
2025-08-11 11:45:09 +10:00
David Reid 10700ec157 Address some MA_NO_THREADING compatibility with ma_device. 2025-08-11 08:57:46 +10:00
David Reid 9b6e9b6985 Remove some now unused code. 2025-08-11 08:08:59 +10:00
David Reid 5db8fe5094 Make it so backend start/stop callbacks are fired from the audio thread. 2025-08-11 07:58:33 +10:00
David Reid 87dee0e20c Some cleanup to the new audio thread. 2025-08-11 06:47:49 +10:00
David Reid fa5f282d65 Throw down some early work for some backend refactoring.
This is still heavily WIP and should be considered unstable as of this
commit.

This is the foundation work for getting all device backend callbacks
executing from a single thread. This will not include context related
callbacks, nor the wakeup callback.

Once this work is done, backends can rely on the property that all the
main callbacks, except wakeup, will be executed from the same thread.
Where this is particularly useful is thread hostile backends like
WASAPI. In particular, we'll be able to do isolate the initialization of
COM to only the miniaudio-managed thread which make it easier to use
miniaudio alongside frameworks which do their own COM initialization,
such as Qt.
2025-08-10 17:38:18 +10:00
David Reid fc15cc66ed Minor code rearrangement to reflect correct backend prioritization. 2025-08-08 06:41:40 +10:00
David Reid a9bdbc3033 Update backend priority order in documentation. 2025-08-07 19:23:22 +10:00
David Reid e6483d8bd9 Add some fallback stubs for threading APIs.
These will be used when a platform lacks any kind of threading support,
such as DOS. This is in preparation for future work to allow the device
API to work without threading support.

With this commit, the DJGPP DOS build can be compiled without
`MA_NO_THREADING`.
2025-08-07 19:16:02 +10:00
David Reid 08b8fcd4c6 Fix timing functions with the DJGPP build. 2025-08-07 19:12:43 +10:00
David Reid 0923a484ee Merge branch 'dev' into dev-0.12 2025-08-07 18:00:40 +10:00
David Reid 78cdb9c1cb Add batch file for setting up DJGPP environment. 2025-08-07 17:44:55 +10:00
David Reid 1ea69211ad Fix some errors with the DJGPP build.
This forces `MA_NO_THREADING` and `MA_NO_RUNTIME_LINKING`.

The DOS/DJGPP build currently requires `MA_NO_DEVICE_IO`.
2025-08-07 17:44:19 +10:00
David Reid e9e8f90137 Fix an error when setting loop points.
Public issue https://github.com/mackron/miniaudio/issues/1019
2025-08-07 16:20:00 +10:00