Commit 02bf2a9e authored by David Reid's avatar David Reid

API CHANGE: Update ma_encoder_write_pcm_frames().

This updates ma_encoder_write_pcm_frames() to be consistent with
reading, where a result code is returned, and the number of frames
written is returned via an output parameter.
parent 7b65f374
...@@ -6487,7 +6487,7 @@ typedef size_t (* ma_encoder_write_proc) (ma_encoder* pEncoder, con ...@@ -6487,7 +6487,7 @@ typedef size_t (* ma_encoder_write_proc) (ma_encoder* pEncoder, con
typedef ma_bool32 (* ma_encoder_seek_proc) (ma_encoder* pEncoder, int byteOffset, ma_seek_origin origin); typedef ma_bool32 (* ma_encoder_seek_proc) (ma_encoder* pEncoder, int byteOffset, ma_seek_origin origin);
typedef ma_result (* ma_encoder_init_proc) (ma_encoder* pEncoder); typedef ma_result (* ma_encoder_init_proc) (ma_encoder* pEncoder);
typedef void (* ma_encoder_uninit_proc) (ma_encoder* pEncoder); typedef void (* ma_encoder_uninit_proc) (ma_encoder* pEncoder);
typedef ma_uint64 (* ma_encoder_write_pcm_frames_proc)(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount); typedef ma_result (* ma_encoder_write_pcm_frames_proc)(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount, ma_uint64* pFramesWritten);
typedef struct typedef struct
{ {
...@@ -6517,7 +6517,7 @@ MA_API ma_result ma_encoder_init(ma_encoder_write_proc onWrite, ma_encoder_seek_ ...@@ -6517,7 +6517,7 @@ MA_API ma_result ma_encoder_init(ma_encoder_write_proc onWrite, ma_encoder_seek_
MA_API ma_result ma_encoder_init_file(const char* pFilePath, const ma_encoder_config* pConfig, ma_encoder* pEncoder); MA_API ma_result ma_encoder_init_file(const char* pFilePath, const ma_encoder_config* pConfig, ma_encoder* pEncoder);
MA_API ma_result ma_encoder_init_file_w(const wchar_t* pFilePath, const ma_encoder_config* pConfig, ma_encoder* pEncoder); MA_API ma_result ma_encoder_init_file_w(const wchar_t* pFilePath, const ma_encoder_config* pConfig, ma_encoder* pEncoder);
MA_API void ma_encoder_uninit(ma_encoder* pEncoder); MA_API void ma_encoder_uninit(ma_encoder* pEncoder);
MA_API ma_uint64 ma_encoder_write_pcm_frames(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount); MA_API ma_result ma_encoder_write_pcm_frames(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount, ma_uint64* pFramesWritten);
#endif /* MA_NO_ENCODING */ #endif /* MA_NO_ENCODING */
...@@ -53869,16 +53869,23 @@ static void ma_encoder__on_uninit_wav(ma_encoder* pEncoder) ...@@ -53869,16 +53869,23 @@ static void ma_encoder__on_uninit_wav(ma_encoder* pEncoder)
ma_free(pWav, &pEncoder->config.allocationCallbacks); ma_free(pWav, &pEncoder->config.allocationCallbacks);
} }
static ma_uint64 ma_encoder__on_write_pcm_frames_wav(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount) static ma_result ma_encoder__on_write_pcm_frames_wav(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount, ma_uint64* pFramesWritten)
{ {
drwav* pWav; drwav* pWav;
ma_uint64 framesWritten;
MA_ASSERT(pEncoder != NULL); MA_ASSERT(pEncoder != NULL);
pWav = (drwav*)pEncoder->pInternalEncoder; pWav = (drwav*)pEncoder->pInternalEncoder;
MA_ASSERT(pWav != NULL); MA_ASSERT(pWav != NULL);
return drwav_write_pcm_frames(pWav, frameCount, pFramesIn); framesWritten = drwav_write_pcm_frames(pWav, frameCount, pFramesIn);
if (pFramesWritten != NULL) {
*pFramesWritten = framesWritten;
}
return MA_SUCCESS;
} }
#endif #endif
...@@ -54050,13 +54057,17 @@ MA_API void ma_encoder_uninit(ma_encoder* pEncoder) ...@@ -54050,13 +54057,17 @@ MA_API void ma_encoder_uninit(ma_encoder* pEncoder)
} }
MA_API ma_uint64 ma_encoder_write_pcm_frames(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount) MA_API ma_result ma_encoder_write_pcm_frames(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount, ma_uint64* pFramesWritten)
{ {
if (pFramesWritten != NULL) {
*pFramesWritten = 0;
}
if (pEncoder == NULL || pFramesIn == NULL) { if (pEncoder == NULL || pFramesIn == NULL) {
return 0; return MA_INVALID_ARGS;
} }
return pEncoder->onWritePCMFrames(pEncoder, pFramesIn, frameCount); return pEncoder->onWritePCMFrames(pEncoder, pFramesIn, frameCount, pFramesWritten);
} }
#endif /* MA_NO_ENCODING */ #endif /* MA_NO_ENCODING */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment