porcupine/demo/c/dr_libs/tests/external/miniaudio/examples/simple_playback_sine.c
Go to the documentation of this file.
1 #define MA_NO_DECODING
2 #define MINIAUDIO_IMPLEMENTATION
3 #include "../miniaudio.h"
4 
5 #include <stdio.h>
6 
7 #ifdef __EMSCRIPTEN__
8 #include <emscripten.h>
9 
10 void main_loop__em()
11 {
12 }
13 #endif
14 
15 #define DEVICE_FORMAT ma_format_f32
16 #define DEVICE_CHANNELS 2
17 #define DEVICE_SAMPLE_RATE 48000
18 
19 void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount)
20 {
21  ma_waveform* pSineWave;
22 
24 
25  pSineWave = (ma_waveform*)pDevice->pUserData;
26  MA_ASSERT(pSineWave != NULL);
27 
28  ma_waveform_read_pcm_frames(pSineWave, pOutput, frameCount);
29 
30  (void)pInput; /* Unused. */
31 }
32 
33 int main(int argc, char** argv)
34 {
35  ma_waveform sineWave;
36  ma_device_config deviceConfig;
38  ma_waveform_config sineWaveConfig;
39 
41  ma_waveform_init(&sineWaveConfig, &sineWave);
42 
44  deviceConfig.playback.format = DEVICE_FORMAT;
45  deviceConfig.playback.channels = DEVICE_CHANNELS;
46  deviceConfig.sampleRate = DEVICE_SAMPLE_RATE;
47  deviceConfig.dataCallback = data_callback;
48  deviceConfig.pUserData = &sineWave;
49 
50  if (ma_device_init(NULL, &deviceConfig, &device) != MA_SUCCESS) {
51  printf("Failed to open playback device.\n");
52  return -4;
53  }
54 
55  printf("Device Name: %s\n", device.playback.name);
56 
58  printf("Failed to start playback device.\n");
60  return -5;
61  }
62 
63 #ifdef __EMSCRIPTEN__
64  emscripten_set_main_loop(main_loop__em, 0, 1);
65 #else
66  printf("Press Enter to quit...\n");
67  getchar();
68 #endif
69 
71 
72  (void)argc;
73  (void)argv;
74  return 0;
75 }
DEVICE_FORMAT
#define DEVICE_FORMAT
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/examples/simple_playback_sine.c:15
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
data_callback
void data_callback(ma_device *pDevice, void *pOutput, const void *pInput, ma_uint32 frameCount)
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/examples/simple_playback_sine.c:19
ma_waveform_config
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5361
ma_device_type_playback
@ ma_device_type_playback
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3012
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
main
int main(int argc, char **argv)
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/examples/simple_playback_sine.c:33
ma_waveform_init
ma_result ma_waveform_init(const ma_waveform_config *pConfig, ma_waveform *pWaveform)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45445
ma_device::pUserData
void * pUserData
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3592
MA_ASSERT
#define MA_ASSERT(condition)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:770
ma_waveform_config_init
ma_waveform_config ma_waveform_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_waveform_type type, double amplitude, double frequency)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45369
DEVICE_CHANNELS
#define DEVICE_CHANNELS
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/examples/simple_playback_sine.c:16
ma_waveform_type_sine
@ ma_waveform_type_sine
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5359
ma_device::name
char name[256]
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3620
ma_uint32
uint32_t ma_uint32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1503
ma_waveform
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5373
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
ma_waveform_read_pcm_frames
ma_uint64 ma_waveform_read_pcm_frames(ma_waveform *pWaveform, void *pFramesOut, ma_uint64 frameCount)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:45751
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_config::sampleRate
ma_uint32 sampleRate
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3103
MA_SUCCESS
#define MA_SUCCESS
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1659
ma_device_config::playback
struct ma_device_config::@97 playback
ma_device::playback
struct ma_device::@115 playback
DEVICE_SAMPLE_RATE
#define DEVICE_SAMPLE_RATE
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/examples/simple_playback_sine.c:17
ma_device_config::pUserData
void * pUserData
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3112


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