porcupine/demo/c/dr_libs/tests/external/miniaudio/examples/simple_playback.c
Go to the documentation of this file.
1 #define DR_FLAC_IMPLEMENTATION
2 #include "../extras/dr_flac.h" /* Enables FLAC decoding. */
3 #define DR_MP3_IMPLEMENTATION
4 #include "../extras/dr_mp3.h" /* Enables MP3 decoding. */
5 #define DR_WAV_IMPLEMENTATION
6 #include "../extras/dr_wav.h" /* Enables WAV decoding. */
7 
8 #define MINIAUDIO_IMPLEMENTATION
9 #include "../miniaudio.h"
10 
11 #include <stdio.h>
12 
13 void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount)
14 {
15  ma_decoder* pDecoder = (ma_decoder*)pDevice->pUserData;
16  if (pDecoder == NULL) {
17  return;
18  }
19 
20  ma_decoder_read_pcm_frames(pDecoder, pOutput, frameCount);
21 
22  (void)pInput;
23 }
24 
25 int main(int argc, char** argv)
26 {
27  ma_result result;
29  ma_device_config deviceConfig;
31 
32  if (argc < 2) {
33  printf("No input file.\n");
34  return -1;
35  }
36 
37  result = ma_decoder_init_file(argv[1], NULL, &decoder);
38  if (result != MA_SUCCESS) {
39  return -2;
40  }
41 
43  deviceConfig.playback.format = decoder.outputFormat;
44  deviceConfig.playback.channels = decoder.outputChannels;
45  deviceConfig.sampleRate = decoder.outputSampleRate;
46  deviceConfig.dataCallback = data_callback;
47  deviceConfig.pUserData = &decoder;
48 
49  if (ma_device_init(NULL, &deviceConfig, &device) != MA_SUCCESS) {
50  printf("Failed to open playback device.\n");
52  return -3;
53  }
54 
56  printf("Failed to start playback device.\n");
59  return -4;
60  }
61 
62  printf("Press Enter to quit...");
63  getchar();
64 
67 
68  return 0;
69 }
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_decoder_uninit
ma_result ma_decoder_uninit(ma_decoder *pDecoder)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:44739
decoder
ma_decoder decoder
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_deviceio/ma_test_deviceio.c:61
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
ma_decoder::outputFormat
ma_format outputFormat
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5203
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.c:25
ma_result
int ma_result
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
ma_device::pUserData
void * pUserData
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:3592
ma_decoder
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5193
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_decoder_read_pcm_frames
ma_uint64 ma_decoder_read_pcm_frames(ma_decoder *pDecoder, void *pFramesOut, ma_uint64 frameCount)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:44808
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_decoder::outputChannels
ma_uint32 outputChannels
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5204
ma_decoder_init_file
ma_result ma_decoder_init_file(const char *pFilePath, const ma_decoder_config *pConfig, ma_decoder *pDecoder)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:44687
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.c:13
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_decoder::outputSampleRate
ma_uint32 outputSampleRate
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:5205
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