extern
rhino
demo
c
dr_libs
tests
external
miniaudio
examples
rhino/demo/c/dr_libs/tests/external/miniaudio/examples/simple_duplex.c
Go to the documentation of this file.
1
#define MINIAUDIO_IMPLEMENTATION
2
#include "../miniaudio.h"
3
4
#define DR_WAV_IMPLEMENTATION
5
#include "../extras/dr_wav.h"
6
7
#include <stdio.h>
8
9
#ifdef __EMSCRIPTEN__
10
void
main_loop__em()
11
{
12
}
13
#endif
14
15
void
data_callback
(
ma_device
* pDevice,
void
* pOutput,
const
void
* pInput,
ma_uint32
frameCount)
16
{
17
MA_ASSERT
(pDevice->
capture
.
format
== pDevice->
playback
.
format
);
18
MA_ASSERT
(pDevice->
capture
.
channels
== pDevice->
playback
.
channels
);
19
20
/* In this example the format and channel count are the same for both input and output which means we can just memcpy(). */
21
MA_COPY_MEMORY
(pOutput, pInput, frameCount *
ma_get_bytes_per_frame
(pDevice->
capture
.
format
, pDevice->
capture
.
channels
));
22
}
23
24
int
main
(
int
argc,
char
**
argv
)
25
{
26
ma_result
result;
27
ma_device_config
deviceConfig;
28
ma_device
device
;
29
30
deviceConfig =
ma_device_config_init
(
ma_device_type_duplex
);
31
deviceConfig.
capture
.
pDeviceID
=
NULL
;
32
deviceConfig.
capture
.
format
=
ma_format_s16
;
33
deviceConfig.
capture
.
channels
= 2;
34
deviceConfig.
capture
.
shareMode
=
ma_share_mode_shared
;
35
deviceConfig.
playback
.
pDeviceID
=
NULL
;
36
deviceConfig.
playback
.
format
=
ma_format_s16
;
37
deviceConfig.
playback
.
channels
= 2;
38
deviceConfig.
dataCallback
=
data_callback
;
39
result =
ma_device_init
(
NULL
, &deviceConfig, &
device
);
40
if
(result !=
MA_SUCCESS
) {
41
return
result;
42
}
43
44
#ifdef __EMSCRIPTEN__
45
getchar();
46
#endif
47
48
ma_device_start
(&
device
);
49
50
#ifdef __EMSCRIPTEN__
51
emscripten_set_main_loop(main_loop__em, 0, 1);
52
#else
53
printf(
"Press Enter to quit...\n"
);
54
getchar();
55
#endif
56
57
ma_device_uninit
(&
device
);
58
59
(void)argc;
60
(void)
argv
;
61
return
0;
62
}
ma_get_bytes_per_frame
static MA_INLINE ma_uint32 ma_get_bytes_per_frame(ma_format format, ma_uint32 channels)
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:2673
ma_device_config::pDeviceID
ma_device_id * pDeviceID
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3127
data_callback
void data_callback(ma_device *pDevice, void *pOutput, const void *pInput, ma_uint32 frameCount)
Definition:
rhino/demo/c/dr_libs/tests/external/miniaudio/examples/simple_duplex.c:15
ma_device_config::shareMode
ma_share_mode shareMode
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3131
ma_device_uninit
void ma_device_uninit(ma_device *pDevice)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:27425
ma_device_start
ma_result ma_device_start(ma_device *pDevice)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:27485
NULL
#define NULL
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/speex_resampler/thirdparty/resample.c:92
ma_device::channels
ma_uint32 channels
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3626
ma_device::format
ma_format format
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3625
ma_device_config::dataCallback
ma_device_callback_proc dataCallback
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3110
device
ma_device device
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_deviceio/ma_test_deviceio.c:57
ma_device_config::capture
struct ma_device_config::@98 capture
MA_COPY_MEMORY
#define MA_COPY_MEMORY(dst, src, sz)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:754
ma_result
int ma_result
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
ma_share_mode_shared
@ ma_share_mode_shared
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3020
ma_format_s16
@ ma_format_s16
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1787
MA_ASSERT
#define MA_ASSERT(condition)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:770
ma_uint32
uint32_t ma_uint32
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1503
ma_device_config::format
ma_format format
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3128
ma_device_config_init
ma_device_config ma_device_config_init(ma_device_type deviceType)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:27034
ma_device_config::channels
ma_uint32 channels
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3129
python.test_porcupine.argv
argv
Definition:
test_porcupine.py:158
ma_device_init
ma_result ma_device_init(ma_context *pContext, const ma_device_config *pConfig, ma_device *pDevice)
Definition:
porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:27048
ma_device
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3584
ma_device_config
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3100
ma_device::capture
struct ma_device::@116 capture
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:
rhino/demo/c/dr_libs/tests/external/miniaudio/examples/simple_duplex.c:24
ma_device_config::playback
struct ma_device_config::@97 playback
ma_device_type_duplex
@ ma_device_type_duplex
Definition:
porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3014
ma_device::playback
struct ma_device::@115 playback
picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:14:50