ma_result test_noise__by_format_and_type(ma_format format, ma_noise_type type, const char* pFileName) { ma_result result; ma_noise_config noiseConfig; ma_noise noise; ma_encoder_config encoderConfig; ma_encoder encoder; ma_uint32 iFrame; printf(" %s\n", pFileName); noiseConfig = ma_noise_config_init(format, 1, type, 0, 0.1); result = ma_noise_init(&noiseConfig, NULL, &noise); if (result != MA_SUCCESS) { return result; } encoderConfig = ma_encoder_config_init(ma_encoding_format_wav, format, noiseConfig.channels, 48000); result = ma_encoder_init_file(pFileName, &encoderConfig, &encoder); if (result != MA_SUCCESS) { printf("Failed to open \"%s\" for writing. %s\n", pFileName, ma_result_description(result)); return result; } /* We'll do a few seconds of data. */ for (iFrame = 0; iFrame < encoder.config.sampleRate * 10; iFrame += 1) { ma_uint8 temp[1024]; ma_noise_read_pcm_frames(&noise, temp, 1, NULL); ma_encoder_write_pcm_frames(&encoder, temp, 1, NULL); } ma_encoder_uninit(&encoder); ma_noise_uninit(&noise, NULL); return MA_SUCCESS; } ma_result test_noise__f32() { ma_result result; ma_bool32 hasError = MA_FALSE; result = test_noise__by_format_and_type(ma_format_f32, ma_noise_type_white, TEST_OUTPUT_DIR"/noise_f32_white.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } result = test_noise__by_format_and_type(ma_format_f32, ma_noise_type_pink, TEST_OUTPUT_DIR"/noise_f32_pink.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } result = test_noise__by_format_and_type(ma_format_f32, ma_noise_type_brownian, TEST_OUTPUT_DIR"/noise_f32_brownian.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } if (hasError) { return MA_ERROR; } else { return MA_SUCCESS; } } ma_result test_noise__s16() { ma_result result; ma_bool32 hasError = MA_FALSE; result = test_noise__by_format_and_type(ma_format_s16, ma_noise_type_white, TEST_OUTPUT_DIR"/noise_s16_white.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } result = test_noise__by_format_and_type(ma_format_s16, ma_noise_type_pink, TEST_OUTPUT_DIR"/noise_s16_pink.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } result = test_noise__by_format_and_type(ma_format_s16, ma_noise_type_brownian, TEST_OUTPUT_DIR"/noise_s16_brownian.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } if (hasError) { return MA_ERROR; } else { return MA_SUCCESS; } } ma_result test_noise__u8() { ma_result result; ma_bool32 hasError = MA_FALSE; result = test_noise__by_format_and_type(ma_format_u8, ma_noise_type_white, TEST_OUTPUT_DIR"/noise_u8_white.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } result = test_noise__by_format_and_type(ma_format_u8, ma_noise_type_pink, TEST_OUTPUT_DIR"/noise_u8_pink.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } result = test_noise__by_format_and_type(ma_format_u8, ma_noise_type_brownian, TEST_OUTPUT_DIR"/noise_u8_brownian.wav"); if (result != MA_SUCCESS) { hasError = MA_TRUE; } if (hasError) { return MA_ERROR; } else { return MA_SUCCESS; } } int test_entry__noise(int argc, char** argv) { ma_result result; ma_bool32 hasError = MA_FALSE; (void)argc; (void)argv; result = test_noise__f32(); if (result != MA_SUCCESS) { hasError = MA_TRUE; } result = test_noise__s16(); if (result != MA_SUCCESS) { hasError = MA_TRUE; } result = test_noise__u8(); if (result != MA_SUCCESS) { hasError = MA_TRUE; } if (hasError) { return -1; } else { return 0; } }