From d0909bc35bc913577f609db7d7128f2d9ac488cf Mon Sep 17 00:00:00 2001 From: huchang Date: Fri, 10 May 2024 19:03:36 +0800 Subject: [PATCH 1/2] add result defination of audiorender write data callback Signed-off-by: huchang Change-Id: I40f44245e3a00db115a68125035540c22d216031 --- .../common/native_audiostream_base.h | 30 +++++++++++++++++++ .../common/native_audiostreambuilder.h | 15 ++++++++++ 2 files changed, 45 insertions(+) diff --git a/multimedia/audio_framework/common/native_audiostream_base.h b/multimedia/audio_framework/common/native_audiostream_base.h index c47def15b5a..626cbebe9ff 100644 --- a/multimedia/audio_framework/common/native_audiostream_base.h +++ b/multimedia/audio_framework/common/native_audiostream_base.h @@ -669,6 +669,36 @@ typedef enum { */ AUDIO_STREAM_PRIVACY_TYPE_PRIVATE = 1, } OH_AudioStream_PrivacyType; + +/** + * @brief Callback function of write data. + * + * This function is similar with OH_AudioRenderer_Callbacks_Struct.OH_AudioRenderer_OnWriteData instead of the return + * value. The return result of this function indicates whether the data filled in the buffer is valid or invalid. If + * result is invalid, the data filled by user will not be played. + * + * @param renderer AudioRenderer where this callback occurs. + * @param userData User data which is passed by user. + * @param audioData Audio data pointer, where user should fill in audio data. + * @param audioDataSize Size of audio data that user should fill in. + * @return Audio Data callback result. + * @see OH_AudioRenderer_Callbacks_Struct.OH_AudioRenderer_OnWriteData + * @since 12 + */ +typedef OH_AudioData_Callback_Result (*OH_AudioRenderer_OnWriteDataCallback)(OH_AudioRenderer* renderer, void* userData, + void* audioData, int32_t audioDataSize); + +/** + * @brief Defines enumeration of audio data callback result. + * + * @since 12 + */ +typedef enum { + /** Result of audio data callabck is invalid. */ + AUDIO_DATA_CALLBACK_RESULT_INVALID = -1, + /** Result of audio data callabck is valid. */ + AUDIO_DATA_CALLBACK_RESULT_VALID = 0, +} OH_AudioData_Callback_Result; #ifdef __cplusplus } #endif diff --git a/multimedia/audio_framework/common/native_audiostreambuilder.h b/multimedia/audio_framework/common/native_audiostreambuilder.h index 0fdb40557d9..82b8b233d31 100644 --- a/multimedia/audio_framework/common/native_audiostreambuilder.h +++ b/multimedia/audio_framework/common/native_audiostreambuilder.h @@ -274,6 +274,21 @@ OH_AudioStream_Result OH_AudioStreamBuilder_SetWriteDataWithMetadataCallback(OH_ OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInterruptMode(OH_AudioStreamBuilder* builder, OH_AudioInterrupt_Mode mode); +/** + * @brief Set the callback of writing data to renderer client. + * + * This function is similar with {@link OH_AudioStreamBuilder_SetRendererCallback}. Only the last callback set by + * OH_AudioStreamBuilder_SetRendererCallback or this function will become effective. + * + * @param builder Builder provided by OH_AudioStreamBuilder_Create() + * @param callback Callback to functions that will write audio data to renderer client. + * @param userData Pointer to an application data structure that will be passed to the callback functions. + * @return Result code. + * {@link AUDIOSTREAM_SUCCESS} Success. + * {@link AUDIOSTREAM_ERROR_INVALID_PARAM} Parameter is invalid, e.g. builder is nullptr, e.t.c. + */ +OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererWriteDataCallback(OH_AudioStreamBuilder* builder, + OH_AudioRenderer_OnWriteDataCallback callback, void* userData); #ifdef __cplusplus } #endif -- Gitee From b0a26e22679e102e79afe09c43397104e69805d3 Mon Sep 17 00:00:00 2001 From: huchang Date: Thu, 16 May 2024 16:09:56 +0800 Subject: [PATCH 2/2] modify missspell Signed-off-by: huchang Change-Id: I7bcde34577968bf345f9c88cf568676ed70d2585 --- .../common/native_audiostream_base.h | 28 +++++++++---------- .../common/native_audiostreambuilder.h | 1 + multimedia/audio_framework/ohaudio.ndk.json | 4 +++ 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/multimedia/audio_framework/common/native_audiostream_base.h b/multimedia/audio_framework/common/native_audiostream_base.h index 626cbebe9ff..efe0c97863d 100644 --- a/multimedia/audio_framework/common/native_audiostream_base.h +++ b/multimedia/audio_framework/common/native_audiostream_base.h @@ -510,7 +510,7 @@ typedef struct OH_AudioRenderer_Callbacks_Struct { OH_AudioRenderer* renderer, void* userData, void* buffer, - int32_t lenth); + int32_t length); /** * This function pointer will point to the callback function that @@ -563,7 +563,7 @@ typedef struct OH_AudioCapturer_Callbacks_Struct { OH_AudioCapturer* capturer, void* userData, void* buffer, - int32_t lenth); + int32_t length); /** * This function pointer will point to the callback function that @@ -670,6 +670,18 @@ typedef enum { AUDIO_STREAM_PRIVACY_TYPE_PRIVATE = 1, } OH_AudioStream_PrivacyType; +/** + * @brief Defines enumeration of audio data callback result. + * + * @since 12 + */ +typedef enum { + /** Result of audio data callabck is invalid. */ + AUDIO_DATA_CALLBACK_RESULT_INVALID = -1, + /** Result of audio data callabck is valid. */ + AUDIO_DATA_CALLBACK_RESULT_VALID = 0, +} OH_AudioData_Callback_Result; + /** * @brief Callback function of write data. * @@ -687,18 +699,6 @@ typedef enum { */ typedef OH_AudioData_Callback_Result (*OH_AudioRenderer_OnWriteDataCallback)(OH_AudioRenderer* renderer, void* userData, void* audioData, int32_t audioDataSize); - -/** - * @brief Defines enumeration of audio data callback result. - * - * @since 12 - */ -typedef enum { - /** Result of audio data callabck is invalid. */ - AUDIO_DATA_CALLBACK_RESULT_INVALID = -1, - /** Result of audio data callabck is valid. */ - AUDIO_DATA_CALLBACK_RESULT_VALID = 0, -} OH_AudioData_Callback_Result; #ifdef __cplusplus } #endif diff --git a/multimedia/audio_framework/common/native_audiostreambuilder.h b/multimedia/audio_framework/common/native_audiostreambuilder.h index 82b8b233d31..da4658fda25 100644 --- a/multimedia/audio_framework/common/native_audiostreambuilder.h +++ b/multimedia/audio_framework/common/native_audiostreambuilder.h @@ -286,6 +286,7 @@ OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInterruptMode(OH_AudioStr * @return Result code. * {@link AUDIOSTREAM_SUCCESS} Success. * {@link AUDIOSTREAM_ERROR_INVALID_PARAM} Parameter is invalid, e.g. builder is nullptr, e.t.c. + * @since 12 */ OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererWriteDataCallback(OH_AudioStreamBuilder* builder, OH_AudioRenderer_OnWriteDataCallback callback, void* userData); diff --git a/multimedia/audio_framework/ohaudio.ndk.json b/multimedia/audio_framework/ohaudio.ndk.json index 6799fa457de..81a75495f57 100644 --- a/multimedia/audio_framework/ohaudio.ndk.json +++ b/multimedia/audio_framework/ohaudio.ndk.json @@ -310,5 +310,9 @@ { "first_introduced": "12", "name": "OH_AudioRenderer_GetRendererPrivacy" + }, + { + "first_introduced": "12", + "name":"OH_AudioStreamBuilder_SetRendererWriteDataCallback" } ] -- Gitee