summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRay <[email protected]>2023-11-09 23:22:30 +0100
committerRay <[email protected]>2023-11-09 23:22:30 +0100
commitc471d22965ee214ff573321a01195360291c794b (patch)
treefd4968f2c03f161549d0ddabfbe36f330730b7a9
parent21dc42d2ad02cafed83cd39afd7305212787c114 (diff)
downloadraylib-c471d22965ee214ff573321a01195360291c794b.tar.gz
raylib-c471d22965ee214ff573321a01195360291c794b.zip
Update miniaudio.h
-rw-r--r--src/external/miniaudio.h99
1 files changed, 48 insertions, 51 deletions
diff --git a/src/external/miniaudio.h b/src/external/miniaudio.h
index b5a8771f..e0728243 100644
--- a/src/external/miniaudio.h
+++ b/src/external/miniaudio.h
@@ -1,6 +1,6 @@
/*
Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file.
-miniaudio - v0.11.19 - 2023-11-04
+miniaudio - v0.11.20 - 2023-11-10
David Reid - [email protected]
@@ -3723,7 +3723,7 @@ extern "C" {
#define MA_VERSION_MAJOR 0
#define MA_VERSION_MINOR 11
-#define MA_VERSION_REVISION 19
+#define MA_VERSION_REVISION 20
#define MA_VERSION_STRING MA_XSTRINGIFY(MA_VERSION_MAJOR) "." MA_XSTRINGIFY(MA_VERSION_MINOR) "." MA_XSTRINGIFY(MA_VERSION_REVISION)
#if defined(_MSC_VER) && !defined(__clang__)
@@ -17820,7 +17820,7 @@ MA_API ma_handle ma_dlopen(ma_log* pLog, const char* filename)
#ifdef MA_WIN32
/* From MSDN: Desktop applications cannot use LoadPackagedLibrary; if a desktop application calls this function it fails with APPMODEL_ERROR_NO_PACKAGE.*/
- #if !defined(MA_WIN32_UWP)
+ #if !defined(MA_WIN32_UWP) || !(defined(WINAPI_FAMILY) && ((defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)))
handle = (ma_handle)LoadLibraryA(filename);
#else
/* *sigh* It appears there is no ANSI version of LoadPackagedLibrary()... */
@@ -18668,19 +18668,6 @@ static void ma_device__on_notification_rerouted(ma_device* pDevice)
}
#endif
-/* Interruptions are only used on some platforms. */
-#if defined(MA_APPLE_MOBILE)
-static void ma_device__on_notification_interruption_began(ma_device* pDevice)
-{
- ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_interruption_began));
-}
-
-static void ma_device__on_notification_interruption_ended(ma_device* pDevice)
-{
- ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_interruption_ended));
-}
-#endif
-
static void ma_device__on_data_inner(ma_device* pDevice, void* pFramesOut, const void* pFramesIn, ma_uint32 frameCount)
{
@@ -23511,6 +23498,39 @@ static ma_result ma_context_init__wasapi(ma_context* pContext, const ma_context_
MA_ZERO_OBJECT(&pContext->wasapi);
+
+ #if defined(MA_WIN32_UWP)
+ {
+ /* Link to mmdevapi so we can get access to ActivateAudioInterfaceAsync(). */
+ pContext->wasapi.hMMDevapi = ma_dlopen(ma_context_get_log(pContext), "mmdevapi.dll");
+ if (pContext->wasapi.hMMDevapi) {
+ pContext->wasapi.ActivateAudioInterfaceAsync = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hMMDevapi, "ActivateAudioInterfaceAsync");
+ if (pContext->wasapi.ActivateAudioInterfaceAsync == NULL) {
+ ma_dlclose(ma_context_get_log(pContext), pContext->wasapi.hMMDevapi);
+ return MA_NO_BACKEND; /* ActivateAudioInterfaceAsync() could not be loaded. */
+ }
+ } else {
+ return MA_NO_BACKEND; /* Failed to load mmdevapi.dll which is required for ActivateAudioInterfaceAsync() */
+ }
+ }
+ #endif
+
+ /* Optionally use the Avrt API to specify the audio thread's latency sensitivity requirements */
+ pContext->wasapi.hAvrt = ma_dlopen(ma_context_get_log(pContext), "avrt.dll");
+ if (pContext->wasapi.hAvrt) {
+ pContext->wasapi.AvSetMmThreadCharacteristicsA = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hAvrt, "AvSetMmThreadCharacteristicsA");
+ pContext->wasapi.AvRevertMmThreadcharacteristics = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hAvrt, "AvRevertMmThreadCharacteristics");
+
+ /* If either function could not be found, disable use of avrt entirely. */
+ if (!pContext->wasapi.AvSetMmThreadCharacteristicsA || !pContext->wasapi.AvRevertMmThreadcharacteristics) {
+ pContext->wasapi.AvSetMmThreadCharacteristicsA = NULL;
+ pContext->wasapi.AvRevertMmThreadcharacteristics = NULL;
+ ma_dlclose(ma_context_get_log(pContext), pContext->wasapi.hAvrt);
+ pContext->wasapi.hAvrt = NULL;
+ }
+ }
+
+
/*
Annoyingly, WASAPI does not allow you to release an IAudioClient object from a different thread
than the one that retrieved it with GetService(). This can result in a deadlock in two
@@ -23554,41 +23574,6 @@ static ma_result ma_context_init__wasapi(ma_context* pContext, const ma_context_
ma_mutex_uninit(&pContext->wasapi.commandLock);
return result;
}
-
- #if defined(MA_WIN32_UWP)
- {
- /* Link to mmdevapi so we can get access to ActivateAudioInterfaceAsync(). */
- pContext->wasapi.hMMDevapi = ma_dlopen(ma_context_get_log(pContext), "mmdevapi.dll");
- if (pContext->wasapi.hMMDevapi) {
- pContext->wasapi.ActivateAudioInterfaceAsync = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hMMDevapi, "ActivateAudioInterfaceAsync");
- if (pContext->wasapi.ActivateAudioInterfaceAsync == NULL) {
- ma_semaphore_uninit(&pContext->wasapi.commandSem);
- ma_mutex_uninit(&pContext->wasapi.commandLock);
- ma_dlclose(ma_context_get_log(pContext), pContext->wasapi.hMMDevapi);
- return MA_NO_BACKEND; /* ActivateAudioInterfaceAsync() could not be loaded. */
- }
- } else {
- ma_semaphore_uninit(&pContext->wasapi.commandSem);
- ma_mutex_uninit(&pContext->wasapi.commandLock);
- return MA_NO_BACKEND; /* Failed to load mmdevapi.dll which is required for ActivateAudioInterfaceAsync() */
- }
- }
- #endif
-
- /* Optionally use the Avrt API to specify the audio thread's latency sensitivity requirements */
- pContext->wasapi.hAvrt = ma_dlopen(ma_context_get_log(pContext), "avrt.dll");
- if (pContext->wasapi.hAvrt) {
- pContext->wasapi.AvSetMmThreadCharacteristicsA = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hAvrt, "AvSetMmThreadCharacteristicsA");
- pContext->wasapi.AvRevertMmThreadcharacteristics = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hAvrt, "AvRevertMmThreadCharacteristics");
-
- /* If either function could not be found, disable use of avrt entirely. */
- if (!pContext->wasapi.AvSetMmThreadCharacteristicsA || !pContext->wasapi.AvRevertMmThreadcharacteristics) {
- pContext->wasapi.AvSetMmThreadCharacteristicsA = NULL;
- pContext->wasapi.AvRevertMmThreadcharacteristics = NULL;
- ma_dlclose(ma_context_get_log(pContext), pContext->wasapi.hAvrt);
- pContext->wasapi.hAvrt = NULL;
- }
- }
}
@@ -31884,6 +31869,18 @@ size, allocate a block of memory of that size and then call AudioObjectGetProper
AudioDeviceID's so just do "dataSize/sizeof(AudioDeviceID)" to know the device count.
*/
+#if defined(MA_APPLE_MOBILE)
+static void ma_device__on_notification_interruption_began(ma_device* pDevice)
+{
+ ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_interruption_began));
+}
+
+static void ma_device__on_notification_interruption_ended(ma_device* pDevice)
+{
+ ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_interruption_ended));
+}
+#endif
+
static ma_result ma_result_from_OSStatus(OSStatus status)
{
switch (status)