mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-24 09:14:04 +02:00
WASAPI: Update to new device info system.
This commit is contained in:
+11
-9
@@ -22451,18 +22451,20 @@ static ma_result ma_device_create_IAudioClient_service__wasapi(ma_context* pCont
|
|||||||
|
|
||||||
static void ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(const MA_WAVEFORMATEX* pWF, ma_share_mode shareMode, ma_device_info* pInfo)
|
static void ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(const MA_WAVEFORMATEX* pWF, ma_share_mode shareMode, ma_device_info* pInfo)
|
||||||
{
|
{
|
||||||
|
ma_uint32 flags;
|
||||||
|
ma_format format;
|
||||||
|
ma_uint32 channels;
|
||||||
|
ma_uint32 sampleRate;
|
||||||
|
|
||||||
MA_ASSERT(pWF != NULL);
|
MA_ASSERT(pWF != NULL);
|
||||||
MA_ASSERT(pInfo != NULL);
|
MA_ASSERT(pInfo != NULL);
|
||||||
|
|
||||||
if (pInfo->nativeDataFormatCount >= ma_countof(pInfo->nativeDataFormats)) {
|
flags = (shareMode == ma_share_mode_exclusive) ? MA_DATA_FORMAT_FLAG_EXCLUSIVE_MODE : 0;
|
||||||
return; /* Too many data formats. Need to ignore this one. Don't think this should ever happen with WASAPI. */
|
format = ma_format_from_WAVEFORMATEX(pWF);
|
||||||
}
|
channels = pWF->nChannels;
|
||||||
|
sampleRate = pWF->nSamplesPerSec;
|
||||||
|
|
||||||
pInfo->nativeDataFormats[pInfo->nativeDataFormatCount].format = ma_format_from_WAVEFORMATEX(pWF);
|
ma_device_info_add_native_data_format_ex(pInfo, flags, format, channels, channels, sampleRate, sampleRate);
|
||||||
pInfo->nativeDataFormats[pInfo->nativeDataFormatCount].channels = pWF->nChannels;
|
|
||||||
pInfo->nativeDataFormats[pInfo->nativeDataFormatCount].sampleRate = pWF->nSamplesPerSec;
|
|
||||||
pInfo->nativeDataFormats[pInfo->nativeDataFormatCount].flags = (shareMode == ma_share_mode_exclusive) ? MA_DATA_FORMAT_FLAG_EXCLUSIVE_MODE : 0;
|
|
||||||
pInfo->nativeDataFormatCount += 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context* pContext, /*ma_IMMDevice**/ void* pMMDevice, ma_IAudioClient* pAudioClient, ma_device_info* pInfo)
|
static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context* pContext, /*ma_IMMDevice**/ void* pMMDevice, ma_IAudioClient* pAudioClient, ma_device_info* pInfo)
|
||||||
@@ -22544,7 +22546,7 @@ static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context
|
|||||||
wf.wBitsPerSample = (WORD)(ma_get_bytes_per_sample(format)*8);
|
wf.wBitsPerSample = (WORD)(ma_get_bytes_per_sample(format)*8);
|
||||||
wf.nBlockAlign = (WORD)(wf.nChannels * wf.wBitsPerSample / 8);
|
wf.nBlockAlign = (WORD)(wf.nChannels * wf.wBitsPerSample / 8);
|
||||||
wf.nAvgBytesPerSec = wf.nBlockAlign * wf.nSamplesPerSec;
|
wf.nAvgBytesPerSec = wf.nBlockAlign * wf.nSamplesPerSec;
|
||||||
wf.Samples.wValidBitsPerSample = /*(format == ma_format_s24_32) ? 24 :*/ wf.wBitsPerSample;
|
wf.Samples.wValidBitsPerSample = wf.wBitsPerSample;
|
||||||
if (format == ma_format_f32) {
|
if (format == ma_format_f32) {
|
||||||
wf.SubFormat = MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT;
|
wf.SubFormat = MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user