mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-23 08:44:04 +02:00
Merge branch 'dev' of git://github.com/mackron/miniaudio
This commit is contained in:
+16
-7
@@ -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.
|
Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file.
|
||||||
miniaudio - v0.10.33 - 2021-04-04
|
miniaudio - v0.10.34 - TBD
|
||||||
|
|
||||||
David Reid - mackron@gmail.com
|
David Reid - mackron@gmail.com
|
||||||
|
|
||||||
@@ -1510,7 +1510,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define MA_VERSION_MAJOR 0
|
#define MA_VERSION_MAJOR 0
|
||||||
#define MA_VERSION_MINOR 10
|
#define MA_VERSION_MINOR 10
|
||||||
#define MA_VERSION_REVISION 33
|
#define MA_VERSION_REVISION 34
|
||||||
#define MA_VERSION_STRING MA_XSTRINGIFY(MA_VERSION_MAJOR) "." MA_XSTRINGIFY(MA_VERSION_MINOR) "." MA_XSTRINGIFY(MA_VERSION_REVISION)
|
#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__)
|
#if defined(_MSC_VER) && !defined(__clang__)
|
||||||
@@ -3605,7 +3605,7 @@ typedef struct
|
|||||||
ma_device_type deviceType;
|
ma_device_type deviceType;
|
||||||
void* pAudioClient;
|
void* pAudioClient;
|
||||||
void** ppAudioClientService;
|
void** ppAudioClientService;
|
||||||
ma_result result; /* The result from creating the audio client service. */
|
ma_result* pResult; /* The result from creating the audio client service. */
|
||||||
} createAudioClient;
|
} createAudioClient;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
@@ -12381,6 +12381,7 @@ static ma_result ma_context_enumerate_devices__null(ma_context* pContext, ma_enu
|
|||||||
ma_device_info deviceInfo;
|
ma_device_info deviceInfo;
|
||||||
MA_ZERO_OBJECT(&deviceInfo);
|
MA_ZERO_OBJECT(&deviceInfo);
|
||||||
ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), "NULL Playback Device", (size_t)-1);
|
ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), "NULL Playback Device", (size_t)-1);
|
||||||
|
deviceInfo.isDefault = MA_TRUE; /* Only one playback and capture device for the null backend, so might as well mark as default. */
|
||||||
cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData);
|
cbResult = callback(pContext, ma_device_type_playback, &deviceInfo, pUserData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12389,6 +12390,7 @@ static ma_result ma_context_enumerate_devices__null(ma_context* pContext, ma_enu
|
|||||||
ma_device_info deviceInfo;
|
ma_device_info deviceInfo;
|
||||||
MA_ZERO_OBJECT(&deviceInfo);
|
MA_ZERO_OBJECT(&deviceInfo);
|
||||||
ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), "NULL Capture Device", (size_t)-1);
|
ma_strncpy_s(deviceInfo.name, sizeof(deviceInfo.name), "NULL Capture Device", (size_t)-1);
|
||||||
|
deviceInfo.isDefault = MA_TRUE; /* Only one playback and capture device for the null backend, so might as well mark as default. */
|
||||||
cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData);
|
cbResult = callback(pContext, ma_device_type_capture, &deviceInfo, pUserData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12412,6 +12414,8 @@ static ma_result ma_context_get_device_info__null(ma_context* pContext, ma_devic
|
|||||||
ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), "NULL Capture Device", (size_t)-1);
|
ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), "NULL Capture Device", (size_t)-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pDeviceInfo->isDefault = MA_TRUE; /* Only one playback and capture device for the null backend, so might as well mark as default. */
|
||||||
|
|
||||||
/* Support everything on the null backend. */
|
/* Support everything on the null backend. */
|
||||||
pDeviceInfo->nativeDataFormats[0].format = ma_format_unknown;
|
pDeviceInfo->nativeDataFormats[0].format = ma_format_unknown;
|
||||||
pDeviceInfo->nativeDataFormats[0].channels = 0;
|
pDeviceInfo->nativeDataFormats[0].channels = 0;
|
||||||
@@ -13973,9 +13977,9 @@ static ma_thread_result MA_THREADCALL ma_context_command_thread__wasapi(void* pU
|
|||||||
case MA_CONTEXT_COMMAND_CREATE_IAUDIOCLIENT__WASAPI:
|
case MA_CONTEXT_COMMAND_CREATE_IAUDIOCLIENT__WASAPI:
|
||||||
{
|
{
|
||||||
if (cmd.data.createAudioClient.deviceType == ma_device_type_playback) {
|
if (cmd.data.createAudioClient.deviceType == ma_device_type_playback) {
|
||||||
result = ma_result_from_HRESULT(ma_IAudioClient_GetService((ma_IAudioClient*)cmd.data.createAudioClient.pAudioClient, &MA_IID_IAudioRenderClient, cmd.data.createAudioClient.ppAudioClientService));
|
*cmd.data.createAudioClient.pResult = ma_result_from_HRESULT(ma_IAudioClient_GetService((ma_IAudioClient*)cmd.data.createAudioClient.pAudioClient, &MA_IID_IAudioRenderClient, cmd.data.createAudioClient.ppAudioClientService));
|
||||||
} else {
|
} else {
|
||||||
result = ma_result_from_HRESULT(ma_IAudioClient_GetService((ma_IAudioClient*)cmd.data.createAudioClient.pAudioClient, &MA_IID_IAudioCaptureClient, cmd.data.createAudioClient.ppAudioClientService));
|
*cmd.data.createAudioClient.pResult = ma_result_from_HRESULT(ma_IAudioClient_GetService((ma_IAudioClient*)cmd.data.createAudioClient.pAudioClient, &MA_IID_IAudioCaptureClient, cmd.data.createAudioClient.ppAudioClientService));
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
@@ -14018,18 +14022,19 @@ static ma_thread_result MA_THREADCALL ma_context_command_thread__wasapi(void* pU
|
|||||||
static ma_result ma_device_create_IAudioClient_service__wasapi(ma_context* pContext, ma_device_type deviceType, ma_IAudioClient* pAudioClient, void** ppAudioClientService)
|
static ma_result ma_device_create_IAudioClient_service__wasapi(ma_context* pContext, ma_device_type deviceType, ma_IAudioClient* pAudioClient, void** ppAudioClientService)
|
||||||
{
|
{
|
||||||
ma_result result;
|
ma_result result;
|
||||||
|
ma_result cmdResult;
|
||||||
ma_context_command__wasapi cmd = ma_context_init_command__wasapi(MA_CONTEXT_COMMAND_CREATE_IAUDIOCLIENT__WASAPI);
|
ma_context_command__wasapi cmd = ma_context_init_command__wasapi(MA_CONTEXT_COMMAND_CREATE_IAUDIOCLIENT__WASAPI);
|
||||||
cmd.data.createAudioClient.deviceType = deviceType;
|
cmd.data.createAudioClient.deviceType = deviceType;
|
||||||
cmd.data.createAudioClient.pAudioClient = (void*)pAudioClient;
|
cmd.data.createAudioClient.pAudioClient = (void*)pAudioClient;
|
||||||
cmd.data.createAudioClient.ppAudioClientService = ppAudioClientService;
|
cmd.data.createAudioClient.ppAudioClientService = ppAudioClientService;
|
||||||
cmd.data.createAudioClient.result = MA_SUCCESS;
|
cmd.data.createAudioClient.pResult = &cmdResult; /* Declared locally, but won't be dereferenced after this function returns since execution of the command will wait here. */
|
||||||
|
|
||||||
result = ma_context_post_command__wasapi(pContext, &cmd); /* This will not return until the command has actually been run. */
|
result = ma_context_post_command__wasapi(pContext, &cmd); /* This will not return until the command has actually been run. */
|
||||||
if (result != MA_SUCCESS) {
|
if (result != MA_SUCCESS) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
return cmd.data.createAudioClient.result;
|
return *cmd.data.createAudioClient.pResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* Not used at the moment, but leaving here for future use. */
|
#if 0 /* Not used at the moment, but leaving here for future use. */
|
||||||
@@ -64571,6 +64576,10 @@ The following miscellaneous changes have also been made.
|
|||||||
/*
|
/*
|
||||||
REVISION HISTORY
|
REVISION HISTORY
|
||||||
================
|
================
|
||||||
|
v0.10.34 - TBD
|
||||||
|
- WASAPI: Fix a bug where a result code is not getting checked at initialization time.
|
||||||
|
- Mark devices as default on the null backend.
|
||||||
|
|
||||||
v0.10.33 - 2021-04-04
|
v0.10.33 - 2021-04-04
|
||||||
- Core Audio: Fix a memory leak.
|
- Core Audio: Fix a memory leak.
|
||||||
- Core Audio: Fix a bug where the performance profile is not being used by playback devices.
|
- Core Audio: Fix a bug where the performance profile is not being used by playback devices.
|
||||||
|
|||||||
+546
-397
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user