diff --git a/miniaudio.h b/miniaudio.h index a5828bc9..52c6a72e 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -10755,6 +10755,7 @@ typedef struct } ma_waveform; MA_API ma_result ma_waveform_init(const ma_waveform_config* pConfig, ma_waveform* pWaveform); +MA_API ma_result ma_waveform_init_copy(ma_waveform* pWaveform, ma_waveform* pNewWaveform); MA_API void ma_waveform_uninit(ma_waveform* pWaveform); MA_API ma_result ma_waveform_read_pcm_frames(ma_waveform* pWaveform, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); MA_API ma_result ma_waveform_seek_to_pcm_frame(ma_waveform* pWaveform, ma_uint64 frameIndex); @@ -77185,6 +77186,11 @@ static void ma_waveform__data_source_on_uninit(ma_data_source* pDataSource) ma_waveform_uninit((ma_waveform*)pDataSource); } +static ma_result ma_waveform__data_source_on_copy(ma_data_source* pDataSource, ma_data_source* pNewDataSource) +{ + return ma_waveform_init_copy((ma_waveform*)pDataSource, (ma_waveform*)pNewDataSource); +} + static ma_result ma_waveform__data_source_on_read(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) { return ma_waveform_read_pcm_frames((ma_waveform*)pDataSource, pFramesOut, frameCount, pFramesRead); @@ -77230,7 +77236,7 @@ static ma_data_source_vtable ma_gDataSourceVTable_Waveform = { ma_waveform__data_source_on_sizeof, ma_waveform__data_source_on_uninit, - NULL, /* onCopy */ + ma_waveform__data_source_on_copy, ma_waveform__data_source_on_read, ma_waveform__data_source_on_seek, ma_waveform__data_source_on_get_data_format, @@ -77265,6 +77271,19 @@ MA_API ma_result ma_waveform_init(const ma_waveform_config* pConfig, ma_waveform return MA_SUCCESS; } +MA_API ma_result ma_waveform_init_copy(ma_waveform* pWaveform, ma_waveform* pNewWaveform) +{ + ma_waveform_config config; + + if (pNewWaveform == NULL || pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + config = pWaveform->config; + + return ma_waveform_init(&config, pNewWaveform); +} + MA_API void ma_waveform_uninit(ma_waveform* pWaveform) { if (pWaveform == NULL) {