18 #define MA_STRINGIFY(x) #x
19 #define MA_XSTRINGIFY(x) MA_STRINGIFY(x)
21 #define MA_VERSION_MAJOR 0
22 #define MA_VERSION_MINOR 10
23 #define MA_VERSION_REVISION 41
24 #define MA_VERSION_STRING MA_XSTRINGIFY(MA_VERSION_MAJOR) "." MA_XSTRINGIFY(MA_VERSION_MINOR) "." MA_XSTRINGIFY(MA_VERSION_REVISION)
26 #if defined(_MSC_VER) && !defined(__clang__)
28 #pragma warning(disable:4201)
29 #pragma warning(disable:4214)
30 #pragma warning(disable:4324)
31 #elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))
32 #pragma GCC diagnostic push
33 #pragma GCC diagnostic ignored "-Wpedantic"
34 #if defined(__clang__)
35 #pragma GCC diagnostic ignored "-Wc11-extensions"
42 #if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
45 #define MA_WIN32_DESKTOP
53 #if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
84 #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
85 #pragma GCC diagnostic push
86 #pragma GCC diagnostic ignored "-Wlong-long"
87 #if defined(__clang__)
88 #pragma GCC diagnostic ignored "-Wc++11-long-long"
93 #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
94 #pragma GCC diagnostic pop
97 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(__powerpc64__)
112 #if defined(_MSC_VER) && !defined(_WCHAR_T_DEFINED)
121 #if defined(SIZE_MAX)
122 #define MA_SIZE_MAX SIZE_MAX
124 #define MA_SIZE_MAX 0xFFFFFFFF
129 #define MA_INLINE __forceinline
130 #elif defined(__GNUC__)
138 #if defined(__STRICT_ANSI__)
139 #define MA_INLINE __inline__ __attribute__((always_inline))
141 #define MA_INLINE inline __attribute__((always_inline))
143 #elif defined(__WATCOMC__)
144 #define MA_INLINE __inline
152 #define MA_DLL_IMPORT __declspec(dllimport)
153 #define MA_DLL_EXPORT __declspec(dllexport)
154 #define MA_DLL_PRIVATE static
156 #if defined(__GNUC__) && __GNUC__ >= 4
157 #define MA_DLL_IMPORT __attribute__((visibility("default")))
158 #define MA_DLL_EXPORT __attribute__((visibility("default")))
159 #define MA_DLL_PRIVATE __attribute__((visibility("hidden")))
161 #define MA_DLL_IMPORT
162 #define MA_DLL_EXPORT
163 #define MA_DLL_PRIVATE static
167 #if defined(MINIAUDIO_IMPLEMENTATION) || defined(MA_IMPLEMENTATION)
168 #define MA_API MA_DLL_EXPORT
170 #define MA_API MA_DLL_IMPORT
172 #define MA_PRIVATE MA_DLL_PRIVATE
174 #define MA_API extern
175 #define MA_PRIVATE static
180 #define MA_SIMD_ALIGNMENT 64
208 #define MA_LOG_LEVEL_DEBUG 4
209 #define MA_LOG_LEVEL_INFO 3
210 #define MA_LOG_LEVEL_WARNING 2
211 #define MA_LOG_LEVEL_ERROR 1
214 #define MA_LOG_LEVEL_VERBOSE MA_LOG_LEVEL_DEBUG
218 #define MA_LOG_LEVEL MA_LOG_LEVEL_ERROR
231 #define MA_CHANNEL_NONE 0
232 #define MA_CHANNEL_MONO 1
233 #define MA_CHANNEL_FRONT_LEFT 2
234 #define MA_CHANNEL_FRONT_RIGHT 3
235 #define MA_CHANNEL_FRONT_CENTER 4
236 #define MA_CHANNEL_LFE 5
237 #define MA_CHANNEL_BACK_LEFT 6
238 #define MA_CHANNEL_BACK_RIGHT 7
239 #define MA_CHANNEL_FRONT_LEFT_CENTER 8
240 #define MA_CHANNEL_FRONT_RIGHT_CENTER 9
241 #define MA_CHANNEL_BACK_CENTER 10
242 #define MA_CHANNEL_SIDE_LEFT 11
243 #define MA_CHANNEL_SIDE_RIGHT 12
244 #define MA_CHANNEL_TOP_CENTER 13
245 #define MA_CHANNEL_TOP_FRONT_LEFT 14
246 #define MA_CHANNEL_TOP_FRONT_CENTER 15
247 #define MA_CHANNEL_TOP_FRONT_RIGHT 16
248 #define MA_CHANNEL_TOP_BACK_LEFT 17
249 #define MA_CHANNEL_TOP_BACK_CENTER 18
250 #define MA_CHANNEL_TOP_BACK_RIGHT 19
251 #define MA_CHANNEL_AUX_0 20
252 #define MA_CHANNEL_AUX_1 21
253 #define MA_CHANNEL_AUX_2 22
254 #define MA_CHANNEL_AUX_3 23
255 #define MA_CHANNEL_AUX_4 24
256 #define MA_CHANNEL_AUX_5 25
257 #define MA_CHANNEL_AUX_6 26
258 #define MA_CHANNEL_AUX_7 27
259 #define MA_CHANNEL_AUX_8 28
260 #define MA_CHANNEL_AUX_9 29
261 #define MA_CHANNEL_AUX_10 30
262 #define MA_CHANNEL_AUX_11 31
263 #define MA_CHANNEL_AUX_12 32
264 #define MA_CHANNEL_AUX_13 33
265 #define MA_CHANNEL_AUX_14 34
266 #define MA_CHANNEL_AUX_15 35
267 #define MA_CHANNEL_AUX_16 36
268 #define MA_CHANNEL_AUX_17 37
269 #define MA_CHANNEL_AUX_18 38
270 #define MA_CHANNEL_AUX_19 39
271 #define MA_CHANNEL_AUX_20 40
272 #define MA_CHANNEL_AUX_21 41
273 #define MA_CHANNEL_AUX_22 42
274 #define MA_CHANNEL_AUX_23 43
275 #define MA_CHANNEL_AUX_24 44
276 #define MA_CHANNEL_AUX_25 45
277 #define MA_CHANNEL_AUX_26 46
278 #define MA_CHANNEL_AUX_27 47
279 #define MA_CHANNEL_AUX_28 48
280 #define MA_CHANNEL_AUX_29 49
281 #define MA_CHANNEL_AUX_30 50
282 #define MA_CHANNEL_AUX_31 51
283 #define MA_CHANNEL_LEFT MA_CHANNEL_FRONT_LEFT
284 #define MA_CHANNEL_RIGHT MA_CHANNEL_FRONT_RIGHT
285 #define MA_CHANNEL_POSITION_COUNT (MA_CHANNEL_AUX_31 + 1)
291 #define MA_INVALID_ARGS -2
292 #define MA_INVALID_OPERATION -3
293 #define MA_OUT_OF_MEMORY -4
294 #define MA_OUT_OF_RANGE -5
295 #define MA_ACCESS_DENIED -6
296 #define MA_DOES_NOT_EXIST -7
297 #define MA_ALREADY_EXISTS -8
298 #define MA_TOO_MANY_OPEN_FILES -9
299 #define MA_INVALID_FILE -10
300 #define MA_TOO_BIG -11
301 #define MA_PATH_TOO_LONG -12
302 #define MA_NAME_TOO_LONG -13
303 #define MA_NOT_DIRECTORY -14
304 #define MA_IS_DIRECTORY -15
305 #define MA_DIRECTORY_NOT_EMPTY -16
306 #define MA_AT_END -17
307 #define MA_NO_SPACE -18
309 #define MA_IO_ERROR -20
310 #define MA_INTERRUPT -21
311 #define MA_UNAVAILABLE -22
312 #define MA_ALREADY_IN_USE -23
313 #define MA_BAD_ADDRESS -24
314 #define MA_BAD_SEEK -25
315 #define MA_BAD_PIPE -26
316 #define MA_DEADLOCK -27
317 #define MA_TOO_MANY_LINKS -28
318 #define MA_NOT_IMPLEMENTED -29
319 #define MA_NO_MESSAGE -30
320 #define MA_BAD_MESSAGE -31
321 #define MA_NO_DATA_AVAILABLE -32
322 #define MA_INVALID_DATA -33
323 #define MA_TIMEOUT -34
324 #define MA_NO_NETWORK -35
325 #define MA_NOT_UNIQUE -36
326 #define MA_NOT_SOCKET -37
327 #define MA_NO_ADDRESS -38
328 #define MA_BAD_PROTOCOL -39
329 #define MA_PROTOCOL_UNAVAILABLE -40
330 #define MA_PROTOCOL_NOT_SUPPORTED -41
331 #define MA_PROTOCOL_FAMILY_NOT_SUPPORTED -42
332 #define MA_ADDRESS_FAMILY_NOT_SUPPORTED -43
333 #define MA_SOCKET_NOT_SUPPORTED -44
334 #define MA_CONNECTION_RESET -45
335 #define MA_ALREADY_CONNECTED -46
336 #define MA_NOT_CONNECTED -47
337 #define MA_CONNECTION_REFUSED -48
338 #define MA_NO_HOST -49
339 #define MA_IN_PROGRESS -50
340 #define MA_CANCELLED -51
341 #define MA_MEMORY_ALREADY_MAPPED -52
344 #define MA_FORMAT_NOT_SUPPORTED -100
345 #define MA_DEVICE_TYPE_NOT_SUPPORTED -101
346 #define MA_SHARE_MODE_NOT_SUPPORTED -102
347 #define MA_NO_BACKEND -103
348 #define MA_NO_DEVICE -104
349 #define MA_API_NOT_FOUND -105
350 #define MA_INVALID_DEVICE_CONFIG -106
354 #define MA_DEVICE_NOT_INITIALIZED -200
355 #define MA_DEVICE_ALREADY_INITIALIZED -201
356 #define MA_DEVICE_NOT_STARTED -202
357 #define MA_DEVICE_NOT_STOPPED -203
360 #define MA_FAILED_TO_INIT_BACKEND -300
361 #define MA_FAILED_TO_OPEN_BACKEND_DEVICE -301
362 #define MA_FAILED_TO_START_BACKEND_DEVICE -302
363 #define MA_FAILED_TO_STOP_BACKEND_DEVICE -303
366 #define MA_MIN_CHANNELS 1
367 #ifndef MA_MAX_CHANNELS
368 #define MA_MAX_CHANNELS 32
372 #ifndef MA_MAX_FILTER_ORDER
373 #define MA_MAX_FILTER_ORDER 8
437 #define MA_MIN_SAMPLE_RATE (ma_uint32)ma_standard_sample_rate_min
438 #define MA_MAX_SAMPLE_RATE (ma_uint32)ma_standard_sample_rate_max
473 void* (* onMalloc)(
size_t sz,
void*
pUserData);
474 void* (* onRealloc)(
void* p,
size_t sz,
void*
pUserData);
475 void (* onFree)(
void* p,
void*
pUserData);
484 #ifndef MA_NO_THREADING
501 #if defined(MA_WIN32)
504 #if defined(MA_POSIX)
508 #if defined(MA_WIN32)
511 #if defined(MA_POSIX)
515 #if defined(MA_WIN32)
518 #if defined(MA_POSIX)
527 #if defined(MA_WIN32)
530 #if defined(MA_POSIX)
540 #ifndef MA_NO_DEVICE_IO
541 #error "MA_NO_THREADING cannot be used without MA_NO_DEVICE_IO";
564 #if defined(__has_attribute)
565 #if __has_attribute(format)
566 #define MA_ATTRIBUTE_FORMAT(fmt, va) __attribute__((format(printf, fmt, va)))
569 #ifndef MA_ATTRIBUTE_FORMAT
570 #define MA_ATTRIBUTE_FORMAT(fmt,va)
573 #ifndef MA_MAX_LOG_CALLBACKS
574 #define MA_MAX_LOG_CALLBACKS 4
593 #ifndef MA_NO_THREADING
661 double cutoffFrequency;
697 double cutoffFrequency;
730 double cutoffFrequency;
766 double cutoffFrequency;
799 double cutoffFrequency;
821 double cutoffFrequency;
976 double lpfNyquistFactor;
1027 double lpfNyquistFactor;
1045 void* pSpeexResamplerState;
1194 double lpfNyquistFactor;
1276 #define MA_CHANNEL_INDEX_NULL 255
1529 #ifndef MA_NO_DEVICE_IO
1531 #if defined(MA_WIN32)
1532 #define MA_SUPPORT_WASAPI
1533 #if defined(MA_WIN32_DESKTOP)
1534 #define MA_SUPPORT_DSOUND
1535 #define MA_SUPPORT_WINMM
1536 #define MA_SUPPORT_JACK
1539 #if defined(MA_UNIX)
1540 #if defined(MA_LINUX)
1541 #if !defined(MA_ANDROID)
1542 #define MA_SUPPORT_ALSA
1545 #if !defined(MA_BSD) && !defined(MA_ANDROID) && !defined(MA_EMSCRIPTEN)
1546 #define MA_SUPPORT_PULSEAUDIO
1547 #define MA_SUPPORT_JACK
1549 #if defined(MA_ANDROID)
1550 #define MA_SUPPORT_AAUDIO
1551 #define MA_SUPPORT_OPENSL
1553 #if defined(__OpenBSD__)
1554 #define MA_SUPPORT_SNDIO
1556 #if defined(__NetBSD__) || defined(__OpenBSD__)
1557 #define MA_SUPPORT_AUDIO4
1559 #if defined(__FreeBSD__) || defined(__DragonFly__)
1560 #define MA_SUPPORT_OSS
1563 #if defined(MA_APPLE)
1564 #define MA_SUPPORT_COREAUDIO
1566 #if defined(MA_EMSCRIPTEN)
1567 #define MA_SUPPORT_WEBAUDIO
1571 #define MA_SUPPORT_CUSTOM
1574 #if !defined(MA_EMSCRIPTEN)
1575 #define MA_SUPPORT_NULL
1579 #if defined(MA_SUPPORT_WASAPI) && !defined(MA_NO_WASAPI) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_WASAPI))
1580 #define MA_HAS_WASAPI
1582 #if defined(MA_SUPPORT_DSOUND) && !defined(MA_NO_DSOUND) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_DSOUND))
1583 #define MA_HAS_DSOUND
1585 #if defined(MA_SUPPORT_WINMM) && !defined(MA_NO_WINMM) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_WINMM))
1586 #define MA_HAS_WINMM
1588 #if defined(MA_SUPPORT_ALSA) && !defined(MA_NO_ALSA) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_ALSA))
1591 #if defined(MA_SUPPORT_PULSEAUDIO) && !defined(MA_NO_PULSEAUDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_PULSEAUDIO))
1592 #define MA_HAS_PULSEAUDIO
1594 #if defined(MA_SUPPORT_JACK) && !defined(MA_NO_JACK) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_JACK))
1597 #if defined(MA_SUPPORT_COREAUDIO) && !defined(MA_NO_COREAUDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_COREAUDIO))
1598 #define MA_HAS_COREAUDIO
1600 #if defined(MA_SUPPORT_SNDIO) && !defined(MA_NO_SNDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_SNDIO))
1601 #define MA_HAS_SNDIO
1603 #if defined(MA_SUPPORT_AUDIO4) && !defined(MA_NO_AUDIO4) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_AUDIO4))
1604 #define MA_HAS_AUDIO4
1606 #if defined(MA_SUPPORT_OSS) && !defined(MA_NO_OSS) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_OSS))
1609 #if defined(MA_SUPPORT_AAUDIO) && !defined(MA_NO_AAUDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_AAUDIO))
1610 #define MA_HAS_AAUDIO
1612 #if defined(MA_SUPPORT_OPENSL) && !defined(MA_NO_OPENSL) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_OPENSL))
1613 #define MA_HAS_OPENSL
1615 #if defined(MA_SUPPORT_WEBAUDIO) && !defined(MA_NO_WEBAUDIO) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_WEBAUDIO))
1616 #define MA_HAS_WEBAUDIO
1618 #if defined(MA_SUPPORT_CUSTOM) && !defined(MA_NO_CUSTOM) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_CUSTOM))
1619 #define MA_HAS_CUSTOM
1621 #if defined(MA_SUPPORT_NULL) && !defined(MA_NO_NULL) && (!defined(MA_ENABLE_ONLY_SPECIFIC_BACKENDS) || defined(MA_ENABLE_NULL))
1625 #define MA_STATE_UNINITIALIZED 0
1626 #define MA_STATE_STOPPED 1
1627 #define MA_STATE_STARTED 2
1628 #define MA_STATE_STARTING 3
1629 #define MA_STATE_STOPPING 4
1631 #ifdef MA_SUPPORT_WASAPI
1638 } ma_IMMNotificationClient;
1661 #define MA_BACKEND_COUNT (ma_backend_null+1)
1880 char coreaudio[256];
1901 #define MA_DATA_FORMAT_FLAG_EXCLUSIVE_MODE (1U << 1)
1934 } nativeDataFormats[ 64];
2188 } createAudioClient;
2193 } releaseAudioClient;
2217 #ifdef MA_SUPPORT_WASAPI
2228 #ifdef MA_SUPPORT_DSOUND
2233 ma_proc DirectSoundEnumerateA;
2234 ma_proc DirectSoundCaptureCreate;
2235 ma_proc DirectSoundCaptureEnumerateA;
2238 #ifdef MA_SUPPORT_WINMM
2247 ma_proc waveOutUnprepareHeader;
2255 ma_proc waveInUnprepareHeader;
2261 #ifdef MA_SUPPORT_ALSA
2267 ma_proc snd_pcm_hw_params_sizeof;
2268 ma_proc snd_pcm_hw_params_any;
2269 ma_proc snd_pcm_hw_params_set_format;
2270 ma_proc snd_pcm_hw_params_set_format_first;
2271 ma_proc snd_pcm_hw_params_get_format_mask;
2272 ma_proc snd_pcm_hw_params_set_channels;
2273 ma_proc snd_pcm_hw_params_set_channels_near;
2274 ma_proc snd_pcm_hw_params_set_channels_minmax;
2275 ma_proc snd_pcm_hw_params_set_rate_resample;
2276 ma_proc snd_pcm_hw_params_set_rate;
2277 ma_proc snd_pcm_hw_params_set_rate_near;
2278 ma_proc snd_pcm_hw_params_set_buffer_size_near;
2279 ma_proc snd_pcm_hw_params_set_periods_near;
2280 ma_proc snd_pcm_hw_params_set_access;
2281 ma_proc snd_pcm_hw_params_get_format;
2282 ma_proc snd_pcm_hw_params_get_channels;
2283 ma_proc snd_pcm_hw_params_get_channels_min;
2284 ma_proc snd_pcm_hw_params_get_channels_max;
2285 ma_proc snd_pcm_hw_params_get_rate;
2286 ma_proc snd_pcm_hw_params_get_rate_min;
2287 ma_proc snd_pcm_hw_params_get_rate_max;
2288 ma_proc snd_pcm_hw_params_get_buffer_size;
2289 ma_proc snd_pcm_hw_params_get_periods;
2290 ma_proc snd_pcm_hw_params_get_access;
2291 ma_proc snd_pcm_hw_params_test_format;
2292 ma_proc snd_pcm_hw_params_test_channels;
2293 ma_proc snd_pcm_hw_params_test_rate;
2295 ma_proc snd_pcm_sw_params_sizeof;
2296 ma_proc snd_pcm_sw_params_current;
2297 ma_proc snd_pcm_sw_params_get_boundary;
2298 ma_proc snd_pcm_sw_params_set_avail_min;
2299 ma_proc snd_pcm_sw_params_set_start_threshold;
2300 ma_proc snd_pcm_sw_params_set_stop_threshold;
2302 ma_proc snd_pcm_format_mask_sizeof;
2303 ma_proc snd_pcm_format_mask_test;
2312 ma_proc snd_device_name_get_hint;
2314 ma_proc snd_device_name_free_hint;
2326 ma_proc snd_pcm_info_get_name;
2327 ma_proc snd_pcm_poll_descriptors;
2328 ma_proc snd_pcm_poll_descriptors_count;
2329 ma_proc snd_pcm_poll_descriptors_revents;
2330 ma_proc snd_config_update_free_global;
2336 #ifdef MA_SUPPORT_PULSEAUDIO
2346 ma_proc pa_threaded_mainloop_new;
2347 ma_proc pa_threaded_mainloop_free;
2348 ma_proc pa_threaded_mainloop_start;
2349 ma_proc pa_threaded_mainloop_stop;
2350 ma_proc pa_threaded_mainloop_lock;
2351 ma_proc pa_threaded_mainloop_unlock;
2352 ma_proc pa_threaded_mainloop_wait;
2353 ma_proc pa_threaded_mainloop_signal;
2354 ma_proc pa_threaded_mainloop_accept;
2355 ma_proc pa_threaded_mainloop_get_retval;
2356 ma_proc pa_threaded_mainloop_get_api;
2357 ma_proc pa_threaded_mainloop_in_thread;
2358 ma_proc pa_threaded_mainloop_set_name;
2362 ma_proc pa_context_disconnect;
2363 ma_proc pa_context_set_state_callback;
2365 ma_proc pa_context_get_sink_info_list;
2366 ma_proc pa_context_get_source_info_list;
2367 ma_proc pa_context_get_sink_info_by_name;
2368 ma_proc pa_context_get_source_info_by_name;
2370 ma_proc pa_operation_get_state;
2371 ma_proc pa_channel_map_init_extend;
2373 ma_proc pa_channel_map_compatible;
2376 ma_proc pa_stream_connect_playback;
2377 ma_proc pa_stream_connect_record;
2380 ma_proc pa_stream_get_sample_spec;
2381 ma_proc pa_stream_get_channel_map;
2382 ma_proc pa_stream_get_buffer_attr;
2383 ma_proc pa_stream_set_buffer_attr;
2384 ma_proc pa_stream_get_device_name;
2385 ma_proc pa_stream_set_write_callback;
2386 ma_proc pa_stream_set_read_callback;
2387 ma_proc pa_stream_set_suspended_callback;
2388 ma_proc pa_stream_is_suspended;
2394 ma_proc pa_stream_begin_write;
2398 ma_proc pa_stream_writable_size;
2399 ma_proc pa_stream_readable_size;
2405 #ifdef MA_SUPPORT_JACK
2411 ma_proc jack_client_name_size;
2412 ma_proc jack_set_process_callback;
2413 ma_proc jack_set_buffer_size_callback;
2430 #ifdef MA_SUPPORT_COREAUDIO
2438 ma_proc AudioObjectGetPropertyData;
2439 ma_proc AudioObjectGetPropertyDataSize;
2440 ma_proc AudioObjectSetPropertyData;
2441 ma_proc AudioObjectAddPropertyListener;
2442 ma_proc AudioObjectRemovePropertyListener;
2445 ma_proc AudioComponentFindNext;
2446 ma_proc AudioComponentInstanceDispose;
2447 ma_proc AudioComponentInstanceNew;
2450 ma_proc AudioUnitAddPropertyListener;
2451 ma_proc AudioUnitGetPropertyInfo;
2461 #ifdef MA_SUPPORT_SNDIO
2484 #ifdef MA_SUPPORT_AUDIO4
2490 #ifdef MA_SUPPORT_OSS
2497 #ifdef MA_SUPPORT_AAUDIO
2501 ma_proc AAudio_createStreamBuilder;
2502 ma_proc AAudioStreamBuilder_delete;
2503 ma_proc AAudioStreamBuilder_setDeviceId;
2504 ma_proc AAudioStreamBuilder_setDirection;
2505 ma_proc AAudioStreamBuilder_setSharingMode;
2506 ma_proc AAudioStreamBuilder_setFormat;
2507 ma_proc AAudioStreamBuilder_setChannelCount;
2508 ma_proc AAudioStreamBuilder_setSampleRate;
2509 ma_proc AAudioStreamBuilder_setBufferCapacityInFrames;
2510 ma_proc AAudioStreamBuilder_setFramesPerDataCallback;
2511 ma_proc AAudioStreamBuilder_setDataCallback;
2512 ma_proc AAudioStreamBuilder_setErrorCallback;
2513 ma_proc AAudioStreamBuilder_setPerformanceMode;
2514 ma_proc AAudioStreamBuilder_setUsage;
2515 ma_proc AAudioStreamBuilder_setContentType;
2516 ma_proc AAudioStreamBuilder_setInputPreset;
2517 ma_proc AAudioStreamBuilder_openStream;
2519 ma_proc AAudioStream_getState;
2520 ma_proc AAudioStream_waitForStateChange;
2521 ma_proc AAudioStream_getFormat;
2522 ma_proc AAudioStream_getChannelCount;
2523 ma_proc AAudioStream_getSampleRate;
2524 ma_proc AAudioStream_getBufferCapacityInFrames;
2525 ma_proc AAudioStream_getFramesPerDataCallback;
2526 ma_proc AAudioStream_getFramesPerBurst;
2527 ma_proc AAudioStream_requestStart;
2528 ma_proc AAudioStream_requestStop;
2531 #ifdef MA_SUPPORT_OPENSL
2536 ma_handle SL_IID_AUDIOIODEVICECAPABILITIES;
2537 ma_handle SL_IID_ANDROIDSIMPLEBUFFERQUEUE;
2545 #ifdef MA_SUPPORT_WEBAUDIO
2551 #ifdef MA_SUPPORT_NULL
2676 #ifdef MA_SUPPORT_WASAPI
2679 ma_ptr pAudioClientPlayback;
2680 ma_ptr pAudioClientCapture;
2683 ma_ptr pDeviceEnumerator;
2684 ma_IMMNotificationClient notificationClient;
2687 ma_uint32 actualPeriodSizeInFramesPlayback;
2688 ma_uint32 actualPeriodSizeInFramesCapture;
2690 ma_uint32 originalPeriodSizeInMilliseconds;
2700 ma_bool8 allowCaptureAutoStreamRouting;
2701 ma_bool8 allowPlaybackAutoStreamRouting;
2706 #ifdef MA_SUPPORT_DSOUND
2710 ma_ptr pPlaybackPrimaryBuffer;
2716 #ifdef MA_SUPPORT_WINMM
2730 ma_uint8* pIntermediaryBufferPlayback;
2731 ma_uint8* pIntermediaryBufferCapture;
2735 #ifdef MA_SUPPORT_ALSA
2740 void* pPollDescriptorsPlayback;
2741 void* pPollDescriptorsCapture;
2742 int pollDescriptorCountPlayback;
2743 int pollDescriptorCountCapture;
2744 int wakeupfdPlayback;
2745 int wakeupfdCapture;
2750 #ifdef MA_SUPPORT_PULSEAUDIO
2757 #ifdef MA_SUPPORT_JACK
2763 float* pIntermediaryBufferPlayback;
2764 float* pIntermediaryBufferCapture;
2767 #ifdef MA_SUPPORT_COREAUDIO
2772 ma_ptr audioUnitPlayback;
2778 ma_uint32 originalPeriodSizeInMilliseconds;
2785 void* pRouteChangeHandler;
2788 #ifdef MA_SUPPORT_SNDIO
2797 #ifdef MA_SUPPORT_AUDIO4
2804 #ifdef MA_SUPPORT_OSS
2811 #ifdef MA_SUPPORT_AAUDIO
2818 #ifdef MA_SUPPORT_OPENSL
2825 ma_ptr pAudioRecorderObj;
2827 ma_ptr pBufferQueuePlayback;
2828 ma_ptr pBufferQueueCapture;
2837 #ifdef MA_SUPPORT_WEBAUDIO
2844 #ifdef MA_SUPPORT_NULL
2864 #if defined(_MSC_VER) && !defined(__clang__)
2865 #pragma warning(pop)
2866 #elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))
2867 #pragma GCC diagnostic pop
4339 #ifndef MA_NO_THREADING
4548 #if defined(MA_EXPERIMENTAL__DATA_LOOPING_AND_CHAINING)
4633 #define MA_OPEN_MODE_READ 0x00000001
4634 #define MA_OPEN_MODE_WRITE 0x00000002
4686 #if !defined(MA_NO_DECODING) || !defined(MA_NO_ENCODING)
4711 #ifndef MA_NO_DECODING
4916 #ifndef MA_NO_ENCODING
4963 #ifndef MA_NO_GENERATION