porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c
Go to the documentation of this file.
1 #define DR_FLAC_IMPLEMENTATION
2 #include "../../extras/dr_flac.h"
3 #define DR_MP3_IMPLEMENTATION
4 #include "../../extras/dr_mp3.h"
5 #define DR_WAV_IMPLEMENTATION
6 #include "../../extras/dr_wav.h"
7 
8 /* Make sure we include the Speex resampler so we can test it. */
9 #define MINIAUDIO_SPEEX_RESAMPLER_IMPLEMENTATION
10 #include "../../extras/speex_resampler/ma_speex_resampler.h"
11 
12 #define MINIAUDIO_IMPLEMENTATION
13 #include "../../miniaudio.h"
14 
15 #include <stdio.h>
16 
17 #define MAX_TESTS 64
18 #define TEST_OUTPUT_DIR "res/output"
19 
20 typedef int (* ma_test_entry_proc)(int argc, char** argv);
21 
22 typedef struct
23 {
24  const char* pName;
26 } ma_test;
27 
28 static struct
29 {
31  size_t count;
32 } g_Tests;
33 
34 ma_result ma_register_test(const char* pName, ma_test_entry_proc onEntry)
35 {
36  MA_ASSERT(pName != NULL);
37  MA_ASSERT(onEntry != NULL);
38 
39  if (g_Tests.count >= MAX_TESTS) {
40  printf("Failed to register test %s because there are too many tests already registered. Increase the value of MAX_TESTS\n", pName);
41  return MA_INVALID_OPERATION;
42  }
43 
44  g_Tests.pTests[g_Tests.count].pName = pName;
45  g_Tests.pTests[g_Tests.count].onEntry = onEntry;
46  g_Tests.count += 1;
47 
48  return MA_SUCCESS;
49 }
50 
52 {
53  drwav_data_format wavFormat;
54 
55  wavFormat.container = drwav_container_riff;
56  wavFormat.channels = channels;
57  wavFormat.sampleRate = sampleRate;
58  wavFormat.bitsPerSample = ma_get_bytes_per_sample(format) * 8;
59 
60  if (format == ma_format_f32) {
62  } else {
63  wavFormat.format = DR_WAVE_FORMAT_PCM;
64  }
65 
66  return wavFormat;
67 }
NULL
#define NULL
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/extras/speex_resampler/thirdparty/resample.c:92
ma_test
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:22
ma_format_f32
@ ma_format_f32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1790
ma_format
ma_format
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1779
ma_test::onEntry
ma_test_entry_proc onEntry
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:25
DR_WAVE_FORMAT_PCM
#define DR_WAVE_FORMAT_PCM
Definition: porcupine/demo/c/dr_libs/dr_wav.h:254
ma_result
int ma_result
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1658
drwav_data_format::format
drwav_uint32 format
Definition: porcupine/demo/c/dr_libs/dr_wav.h:438
drwav_data_format::channels
drwav_uint32 channels
Definition: porcupine/demo/c/dr_libs/dr_wav.h:439
MAX_TESTS
#define MAX_TESTS
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:17
ma_get_bytes_per_sample
ma_uint32 ma_get_bytes_per_sample(ma_format format)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:37199
count
size_t count
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:31
MA_INVALID_OPERATION
#define MA_INVALID_OPERATION
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1662
MA_ASSERT
#define MA_ASSERT(condition)
Definition: porcupine/demo/c/pvrecorder/src/miniaudio/extras/miniaudio_split/miniaudio.c:770
drwav_data_format::container
drwav_container container
Definition: porcupine/demo/c/dr_libs/dr_wav.h:437
drwav_container_riff
@ drwav_container_riff
Definition: porcupine/demo/c/dr_libs/dr_wav.h:276
ma_test_entry_proc
int(* ma_test_entry_proc)(int argc, char **argv)
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:20
drwav_data_format::bitsPerSample
drwav_uint32 bitsPerSample
Definition: porcupine/demo/c/dr_libs/dr_wav.h:441
pTests
ma_test pTests[MAX_TESTS]
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:30
ma_uint32
uint32_t ma_uint32
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1503
ma_register_test
ma_result ma_register_test(const char *pName, ma_test_entry_proc onEntry)
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:34
python.test_porcupine.argv
argv
Definition: test_porcupine.py:158
ma_test::pName
const char * pName
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:24
drwav_data_format::sampleRate
drwav_uint32 sampleRate
Definition: porcupine/demo/c/dr_libs/dr_wav.h:440
drwav_data_format_from_minaudio_format
drwav_data_format drwav_data_format_from_minaudio_format(ma_format format, ma_uint32 channels, ma_uint32 sampleRate)
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/tests/test_common/ma_test_common.c:51
DR_WAVE_FORMAT_IEEE_FLOAT
#define DR_WAVE_FORMAT_IEEE_FLOAT
Definition: porcupine/demo/c/dr_libs/dr_wav.h:256
MA_SUCCESS
#define MA_SUCCESS
Definition: porcupine/demo/c/dr_libs/tests/external/miniaudio/miniaudio.h:1659
g_Tests
static struct @129 g_Tests
drwav_data_format
Definition: porcupine/demo/c/dr_libs/dr_wav.h:435


picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:13:56