pvrecorder/src/miniaudio/examples/simple_enumeration.c
Go to the documentation of this file.
1 /*
2 Demonstrates how to enumerate over devices.
3 
4 Device enumaration requires a `ma_context` object which is initialized with `ma_context_init()`. Conceptually, the
5 context sits above a device. You can have many devices to one context.
6 
7 If you use device enumeration, you should explicitly specify the same context you used for enumeration in the call to
8 `ma_device_init()` when you initialize your devices.
9 */
10 #define MINIAUDIO_IMPLEMENTATION
11 #include "../miniaudio.h"
12 
13 #include <stdio.h>
14 
15 int main(int argc, char** argv)
16 {
17  ma_result result;
19  ma_device_info* pPlaybackDeviceInfos;
20  ma_uint32 playbackDeviceCount;
21  ma_device_info* pCaptureDeviceInfos;
22  ma_uint32 captureDeviceCount;
23  ma_uint32 iDevice;
24 
25  if (ma_context_init(NULL, 0, NULL, &context) != MA_SUCCESS) {
26  printf("Failed to initialize context.\n");
27  return -2;
28  }
29 
30  result = ma_context_get_devices(&context, &pPlaybackDeviceInfos, &playbackDeviceCount, &pCaptureDeviceInfos, &captureDeviceCount);
31  if (result != MA_SUCCESS) {
32  printf("Failed to retrieve device information.\n");
33  return -3;
34  }
35 
36  printf("Playback Devices\n");
37  for (iDevice = 0; iDevice < playbackDeviceCount; ++iDevice) {
38  printf(" %u: %s\n", iDevice, pPlaybackDeviceInfos[iDevice].name);
39  }
40 
41  printf("\n");
42 
43  printf("Capture Devices\n");
44  for (iDevice = 0; iDevice < captureDeviceCount; ++iDevice) {
45  printf(" %u: %s\n", iDevice, pCaptureDeviceInfos[iDevice].name);
46  }
47 
48 
50 
51  (void)argc;
52  (void)argv;
53  return 0;
54 }
context
ma_context context
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_deviceio/ma_test_deviceio.c:56
NULL
#define NULL
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/speex_resampler/thirdparty/resample.c:92
python.setup.name
name
Definition: porcupine/binding/python/setup.py:69
ma_context_uninit
ma_result ma_context_uninit(ma_context *pContext)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:26757
ma_result
int ma_result
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
ma_device_info
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3073
ma_context_get_devices
ma_result ma_context_get_devices(ma_context *pContext, ma_device_info **ppPlaybackDeviceInfos, ma_uint32 *pPlaybackDeviceCount, ma_device_info **ppCaptureDeviceInfos, ma_uint32 *pCaptureDeviceCount)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:26866
ma_uint32
uint32_t ma_uint32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1503
python.test_porcupine.argv
argv
Definition: test_porcupine.py:158
ma_context
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3210
ma_context_init
ma_result ma_context_init(const ma_backend backends[], ma_uint32 backendCount, const ma_context_config *pConfig, ma_context *pContext)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:26550
MA_SUCCESS
#define MA_SUCCESS
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1659
main
int main(int argc, char **argv)
Definition: pvrecorder/src/miniaudio/examples/simple_enumeration.c:15


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:14:50