From 896b6260977d03237ea9e9027f75d5e7f3f461a9 Mon Sep 17 00:00:00 2001 From: Reily Date: Fri, 29 Dec 2023 10:05:56 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E7=A9=BA=E9=97=B4=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E5=BC=82=E5=B8=B8=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=8F=90=E5=89=8D=E5=90=8C=E6=AD=A5=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E6=8A=9B=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Reily --- .../napi_audio_spatialization_manager.cpp | 10 +++++- .../js/napi/common/napi_param_utils.cpp | 35 ++++++++++--------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/frameworks/js/napi/audiomanager/napi_audio_spatialization_manager.cpp b/frameworks/js/napi/audiomanager/napi_audio_spatialization_manager.cpp index deeb98ff5d..5453572d39 100644 --- a/frameworks/js/napi/audiomanager/napi_audio_spatialization_manager.cpp +++ b/frameworks/js/napi/audiomanager/napi_audio_spatialization_manager.cpp @@ -214,6 +214,10 @@ napi_value NapiAudioSpatializationManager::SetSpatializationEnabled(napi_env env NAPI_ERR_INPUT_INVALID); }; context->GetCbInfo(env, info, inputParser); + if (context->status != napi_ok) { + NapiAudioError::ThrowError(env, context->errCode); + return NapiParamUtils::GetUndefinedValue(env); + } auto executor = [context]() { CHECK_AND_RETURN_LOG(CheckContextStatus(context), "context object state is error."); @@ -267,6 +271,10 @@ napi_value NapiAudioSpatializationManager::SetHeadTrackingEnabled(napi_env env, NAPI_ERR_INPUT_INVALID); }; context->GetCbInfo(env, info, inputParser); + if (context->status != napi_ok) { + NapiAudioError::ThrowError(env, context->errCode); + return NapiParamUtils::GetUndefinedValue(env); + } auto executor = [context]() { CHECK_AND_RETURN_LOG(CheckContextStatus(context), "context object state is error."); @@ -378,7 +386,7 @@ napi_value NapiAudioSpatializationManager::UpdateSpatialDeviceState(napi_env env CHECK_AND_RETURN_RET_LOG(argc >= ARGS_ONE, ThrowErrorAndReturn(env, NAPI_ERR_INPUT_INVALID), "invalid arguments"); AudioSpatialDeviceState audioSpatialDeviceState; - if (!NapiParamUtils::GetSpatialDeviceState(env, &audioSpatialDeviceState, args[PARAM0])) { + if (NapiParamUtils::GetSpatialDeviceState(env, &audioSpatialDeviceState, args[PARAM0]) != napi_ok) { NapiAudioError::ThrowError(env, NAPI_ERR_INVALID_PARAM); return result; } diff --git a/frameworks/js/napi/common/napi_param_utils.cpp b/frameworks/js/napi/common/napi_param_utils.cpp index 323b829372..033e7f29e6 100644 --- a/frameworks/js/napi/common/napi_param_utils.cpp +++ b/frameworks/js/napi/common/napi_param_utils.cpp @@ -15,6 +15,7 @@ #include "napi_param_utils.h" #include "napi_audio_enum.h" +#include "audio_effect.h" namespace OHOS { namespace AudioStandard { @@ -955,22 +956,24 @@ napi_status NapiParamUtils::GetSpatialDeviceState(napi_env env, AudioSpatialDevi { napi_value res = nullptr; int32_t intValue = {0}; - if (napi_get_named_property(env, in, "address", &res) == napi_ok) { - spatialDeviceState->address = NapiParamUtils::GetStringArgument(env, res); - } - - if (napi_get_named_property(env, in, "isSpatializationSupported", &res) == napi_ok) { - napi_get_value_bool(env, res, &(spatialDeviceState->isSpatializationSupported)); - } - - if (napi_get_named_property(env, in, "isHeadTrackingSupported", &res) == napi_ok) { - napi_get_value_bool(env, res, &(spatialDeviceState->isHeadTrackingSupported)); - } - - if (napi_get_named_property(env, in, "spatialDeviceType", &res) == napi_ok) { - napi_get_value_int32(env, res, &intValue); - spatialDeviceState->spatialDeviceType = static_cast(intValue); - } + napi_valuetype valueType = napi_undefined; + napi_status status = napi_get_named_property(env, in, "address", &res); + CHECK_AND_RETURN_RET_LOG(status == napi_ok, status, "Get address name failed"); + napi_typeof(env, res, &valueType); + CHECK_AND_RETURN_RET_LOG(valueType == napi_string, napi_invalid_arg, "Get address type failed"); + spatialDeviceState->address = NapiParamUtils::GetStringArgument(env, res); + + status = GetValueBoolean(env, "isSpatializationSupported", spatialDeviceState->isSpatializationSupported, in); + CHECK_AND_RETURN_RET_LOG(status == napi_ok, status, "Get isSpatializationSupported failed"); + + status = GetValueBoolean(env, "isHeadTrackingSupported", spatialDeviceState->isHeadTrackingSupported, in); + CHECK_AND_RETURN_RET_LOG(status == napi_ok, status, "Get isHeadTrackingSupported failed"); + + status = GetValueInt32(env, "spatialDeviceType", intValue, in); + CHECK_AND_RETURN_RET_LOG(status == napi_ok, status, "Get spatialDeviceType failed"); + CHECK_AND_RETURN_RET_LOG((intValue >= EARPHONE_TYPE_NONE) && (intValue <= EARPHONE_TYPE_OTHERS), + napi_invalid_arg, "Get spatialDeviceType failed"); + spatialDeviceState->spatialDeviceType = static_cast(intValue); return napi_ok; } -- Gitee