mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-23 16:54:03 +02:00
sndio: Update to the new device info system.
This commit is contained in:
+41
-23
@@ -37328,39 +37328,57 @@ static ma_device_enumeration_result ma_context_enumerate_device_from_handle__snd
|
|||||||
le = caps.enc[iEncoding].le;
|
le = caps.enc[iEncoding].le;
|
||||||
msb = caps.enc[iEncoding].msb;
|
msb = caps.enc[iEncoding].msb;
|
||||||
format = ma_format_from_sio_enc__sndio(bits, bps, sig, le, msb);
|
format = ma_format_from_sio_enc__sndio(bits, bps, sig, le, msb);
|
||||||
if (format == ma_format_unknown) {
|
if (format != ma_format_unknown) {
|
||||||
continue; /* Format not supported. */
|
unsigned int minChannels = 0xFFFFFFFF;
|
||||||
}
|
unsigned int maxChannels = 0;
|
||||||
|
unsigned int minSampleRate = 0xFFFFFFFF;
|
||||||
|
unsigned int maxSampleRate = 0;
|
||||||
|
|
||||||
|
/* Channels. */
|
||||||
|
for (iChannel = 0; iChannel < MA_SIO_NCHAN; iChannel += 1) {
|
||||||
|
unsigned int chan = 0;
|
||||||
|
|
||||||
/* Channels. */
|
if (deviceType == ma_device_type_playback) {
|
||||||
for (iChannel = 0; iChannel < MA_SIO_NCHAN; iChannel += 1) {
|
chan = caps.confs[iConfig].pchan;
|
||||||
unsigned int chan = 0;
|
} else {
|
||||||
unsigned int channels;
|
chan = caps.confs[iConfig].rchan;
|
||||||
|
}
|
||||||
|
|
||||||
if (deviceType == ma_device_type_playback) {
|
if ((chan & (1UL << iChannel)) != 0) {
|
||||||
chan = caps.confs[iConfig].pchan;
|
unsigned int channels;
|
||||||
} else {
|
|
||||||
chan = caps.confs[iConfig].rchan;
|
if (deviceType == ma_device_type_playback) {
|
||||||
|
channels = caps.pchan[iChannel];
|
||||||
|
} else {
|
||||||
|
channels = caps.rchan[iChannel];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (minChannels > channels) {
|
||||||
|
minChannels = channels;
|
||||||
|
}
|
||||||
|
if (maxChannels < channels) {
|
||||||
|
maxChannels = channels;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((chan & (1UL << iChannel)) == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (deviceType == ma_device_type_playback) {
|
|
||||||
channels = caps.pchan[iChannel];
|
|
||||||
} else {
|
|
||||||
channels = caps.rchan[iChannel];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Sample Rates. */
|
/* Sample Rates. */
|
||||||
for (iRate = 0; iRate < MA_SIO_NRATE; iRate += 1) {
|
for (iRate = 0; iRate < MA_SIO_NRATE; iRate += 1) {
|
||||||
if ((caps.confs[iConfig].rate & (1UL << iRate)) != 0) {
|
if ((caps.confs[iConfig].rate & (1UL << iRate)) != 0) {
|
||||||
ma_device_info_add_native_data_format(&deviceInfo, format, channels, caps.rate[iRate], 0);
|
unsigned int sampleRate = caps.rate[iRate];
|
||||||
|
|
||||||
|
if (minSampleRate > sampleRate) {
|
||||||
|
minSampleRate = sampleRate;
|
||||||
|
}
|
||||||
|
if (maxSampleRate < sampleRate) {
|
||||||
|
maxSampleRate = sampleRate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ma_device_info_add_native_data_format_2(&deviceInfo, format, minChannels, maxChannels, minSampleRate, maxSampleRate);
|
||||||
|
} else {
|
||||||
|
/* Format not supported. */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user