diff --git a/mini_al.h b/mini_al.h index 08792bb4..a3e4bf41 100644 --- a/mini_al.h +++ b/mini_al.h @@ -1971,6 +1971,11 @@ mal_uint64 mal_format_converter_read(mal_format_converter* pConverter, mal_uint6 mal_uint64 mal_format_converter_read_deinterleaved(mal_format_converter* pConverter, mal_uint64 frameCount, void** ppSamplesOut, void* pUserData); +// Helper for initializing a format converter config. +mal_format_converter_config mal_format_converter_config_init_new(); +mal_format_converter_config mal_format_converter_config_init(mal_format formatIn, mal_format formatOut, mal_uint32 channels, mal_format_converter_read_proc onRead, mal_format_converter_read_deinterleaved_proc onReadDeinterleaved, void* pUserData); + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // @@ -18558,6 +18563,28 @@ mal_uint64 mal_format_converter_read_deinterleaved(mal_format_converter* pConver } +mal_format_converter_config mal_format_converter_config_init_new() +{ + mal_format_converter_config config; + mal_zero_object(&config); + + return config; +} + +mal_format_converter_config mal_format_converter_config_init(mal_format formatIn, mal_format formatOut, mal_uint32 channels, mal_format_converter_read_proc onRead, mal_format_converter_read_deinterleaved_proc onReadDeinterleaved, void* pUserData) +{ + mal_format_converter_config config = mal_format_converter_config_init_new(); + config.formatIn = formatIn; + config.formatOut = formatOut; + config.channels = channels; + config.onRead = onRead; + config.onReadDeinterleaved = onReadDeinterleaved; + config.pUserData = pUserData; + + return config; +} + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // diff --git a/tests/mal_dithering.c b/tests/mal_dithering.c index d57f9c19..1c4f8cdc 100644 --- a/tests/mal_dithering.c +++ b/tests/mal_dithering.c @@ -78,11 +78,10 @@ int do_dithering_test() mal_sine_wave_init(0.5, 400, 48000, &sineWave); mal_format srcFormat = mal_format_s24; - mal_format dstFormat = mal_format_s16; + mal_format dstFormat = mal_format_u8; mal_dither_mode ditherMode = mal_dither_mode_triangle; - mal_format_converter_config converterInConfig; - mal_zero_object(&converterInConfig); + mal_format_converter_config converterInConfig = mal_format_converter_config_init_new(); converterInConfig.formatIn = mal_format_f32; // <-- From the sine wave generator. converterInConfig.formatOut = srcFormat; converterInConfig.channels = config.channels; @@ -94,8 +93,7 @@ int do_dithering_test() return -3; } - mal_format_converter_config converterOutConfig; - mal_zero_object(&converterInConfig); + mal_format_converter_config converterOutConfig = mal_format_converter_config_init_new(); converterOutConfig.formatIn = srcFormat; converterOutConfig.formatOut = dstFormat; converterOutConfig.channels = config.channels;