From 1e9a9c27b960199e8040cc8a8d30146e4a9b4845 Mon Sep 17 00:00:00 2001 From: wanghongen Date: Thu, 7 Aug 2025 17:32:09 +0800 Subject: [PATCH 1/7] =?UTF-8?q?audio=20=E5=91=8A=E8=AD=A6=E6=B8=85?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wanghongen --- audio/hal/pathselect/src/audio_pathselect.c | 16 ++++++++-------- .../hdi_service/primary_impl/src/audio_capture.c | 2 +- .../hdi_service/primary_impl/src/audio_manager.c | 7 ++++++- .../hdi_service/primary_impl/src/audio_render.c | 2 +- .../adm_adapter/src/audio_interface_lib_common.c | 1 - 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/audio/hal/pathselect/src/audio_pathselect.c b/audio/hal/pathselect/src/audio_pathselect.c index 0e985b7b61..73878748db 100644 --- a/audio/hal/pathselect/src/audio_pathselect.c +++ b/audio/hal/pathselect/src/audio_pathselect.c @@ -224,7 +224,7 @@ static int32_t SetCapturePathDefaultValue(cJSON *captureSwObj, struct AudioHwCap } static int32_t SetRenderPathValue( - int32_t tpins, cJSON *renderObj, struct AudioHwRenderParam *renderParam, int32_t value) + uint32_t tpins, cJSON *renderObj, struct AudioHwRenderParam *renderParam, int32_t value) { if (renderObj == NULL || renderParam == NULL) { AUDIO_FUNC_LOGE("param Is NULL"); @@ -281,7 +281,7 @@ static int32_t SetRenderPathValue( } static int32_t SetMatchRenderDevicePath( - int32_t tpins, struct AudioHwRenderParam *renderParam, cJSON *cJsonObj, const char *deviceType, int32_t value) + uint32_t tpins, struct AudioHwRenderParam *renderParam, cJSON *cJsonObj, const char *deviceType, int32_t value) { if (cJsonObj == NULL || renderParam == NULL) { AUDIO_FUNC_LOGE("param Is NULL"); @@ -323,7 +323,7 @@ static int32_t SetMatchRenderDefaultDevicePath(struct AudioHwRenderParam *render } static int32_t SetMatchRenderOtherDevicePath( - int32_t tpins, struct AudioHwRenderParam *renderParam, cJSON *cJsonObj, int32_t value) + uint32_t tpins, struct AudioHwRenderParam *renderParam, cJSON *cJsonObj, int32_t value) { int32_t ret; if (cJsonObj == NULL || renderParam == NULL) { @@ -351,7 +351,7 @@ static int32_t AudioRenderParseDevice(struct AudioHwRenderParam *renderParam, cJ } uint32_t pins = renderParam->renderMode.hwInfo.deviceDescript.pins; - int32_t tpins = pins & OUTPUT_MASK; + uint32_t tpins = pins & OUTPUT_MASK; if ((pins >> OUTPUT_OFFSET) != 0) { AUDIO_FUNC_LOGE("pins: %d, error!\n", pins); return HDF_FAILURE; @@ -460,7 +460,7 @@ static int32_t AudioPathSelGetPlanRender(struct AudioHwRenderParam *renderParam) } static int32_t SetCapturePathValue( - int32_t tpins, cJSON *captureSwitchObj, struct AudioHwCaptureParam *captureParam, int32_t value) + uint32_t tpins, cJSON *captureSwitchObj, struct AudioHwCaptureParam *captureParam, int32_t value) { if (captureParam == NULL || captureSwitchObj == NULL) { AUDIO_FUNC_LOGE("param Is NULL"); @@ -517,7 +517,7 @@ static int32_t SetCapturePathValue( } static int32_t SetMatchCaptureDevicePath( - struct AudioHwCaptureParam *captureParam, cJSON *cJsonObj, int32_t tpins, char *deviceType, int32_t value) + struct AudioHwCaptureParam *captureParam, cJSON *cJsonObj, uint32_t tpins, char *deviceType, int32_t value) { if (captureParam == NULL || cJsonObj == NULL) { AUDIO_FUNC_LOGE("param Is NULL"); @@ -561,7 +561,7 @@ static int32_t SetMatchCaptureDefaultDevicePath(struct AudioHwCaptureParam *capt } static int32_t SetMatchCaptureOtherDevicePath( - struct AudioHwCaptureParam *captureParam, cJSON *cJsonObj, int32_t tpins, int32_t value) + struct AudioHwCaptureParam *captureParam, cJSON *cJsonObj, uint32_t tpins, int32_t value) { int32_t ret; uint32_t i; @@ -600,7 +600,7 @@ static int32_t AudioCaptureParseDevice(struct AudioHwCaptureParam *captureParam, return HDF_SUCCESS; } - int32_t tpins = pins & INPUT_MASK; + uint32_t tpins = pins & INPUT_MASK; switch (tpins) { case (1 << INPUT_OFFSET): /* pins = 0, parse default value */ diff --git a/audio/hdi_service/primary_impl/src/audio_capture.c b/audio/hdi_service/primary_impl/src/audio_capture.c index 007c89bff6..1227c4ff93 100644 --- a/audio/hdi_service/primary_impl/src/audio_capture.c +++ b/audio/hdi_service/primary_impl/src/audio_capture.c @@ -722,7 +722,7 @@ static void LogErrorCapture(AudioHandle handle, int errorCode, int reason) } if (errorCode == WRITE_FRAME_ERROR_CODE) { hwCapture->errorLog.errorDump[hwCapture->errorLog.iter].errorCode = errorCode; - hwCapture->errorLog.errorDump[hwCapture->errorLog.iter].count = hwCapture->errorLog.iter; + hwCapture->errorLog.errorDump[hwCapture->errorLog.iter].count = (uint32_t)hwCapture->errorLog.iter; hwCapture->errorLog.errorDump[hwCapture->errorLog.iter].frames = hwCapture->captureParam.frameCaptureMode.frames; hwCapture->errorLog.iter++; diff --git a/audio/hdi_service/primary_impl/src/audio_manager.c b/audio/hdi_service/primary_impl/src/audio_manager.c index ef92774a59..8ac84f5035 100644 --- a/audio/hdi_service/primary_impl/src/audio_manager.c +++ b/audio/hdi_service/primary_impl/src/audio_manager.c @@ -535,7 +535,12 @@ int32_t AudioManagerLoadAdapter( return AudioManagerIncreaseAdapterRef(manager, pos, adapter); } - pos = AudioManagerServiceGetFreeAdapterPos(manager, desc->adapterName); + int32_t freePos = AudioManagerServiceGetFreeAdapterPos(manager, desc->adapterName); + if (freePos < 0) { + AUDIO_FUNC_LOGE("AudioManagerServiceGetFreeAdapterPos is negative!"); + return HDF_FAILURE; + } + pos = (uint32_t)AudioManagerServiceGetFreeAdapterPos(manager, desc->adapterName); if (pos >= SUPPORT_ADAPTER_NUM_MAX) { AUDIO_FUNC_LOGE("AudioManagerServiceGetFreeAdapterPos failed!"); return HDF_FAILURE; diff --git a/audio/hdi_service/primary_impl/src/audio_render.c b/audio/hdi_service/primary_impl/src/audio_render.c index af00ed2ddf..1f1257a6b8 100644 --- a/audio/hdi_service/primary_impl/src/audio_render.c +++ b/audio/hdi_service/primary_impl/src/audio_render.c @@ -798,7 +798,7 @@ static void LogError(AudioHandle handle, int32_t errorCode, int reason) if (errorCode == WRITE_FRAME_ERROR_CODE) { hwRender->errorLog.errorDump[hwRender->errorLog.iter].errorCode = errorCode; - hwRender->errorLog.errorDump[hwRender->errorLog.iter].count = hwRender->errorLog.iter; + hwRender->errorLog.errorDump[hwRender->errorLog.iter].count = (uint32_t)hwRender->errorLog.iter; hwRender->errorLog.errorDump[hwRender->errorLog.iter].frames = hwRender->renderParam.frameRenderMode.frames; hwRender->errorLog.iter++; } diff --git a/audio/supportlibs/adm_adapter/src/audio_interface_lib_common.c b/audio/supportlibs/adm_adapter/src/audio_interface_lib_common.c index c71034f205..86179815f4 100644 --- a/audio/supportlibs/adm_adapter/src/audio_interface_lib_common.c +++ b/audio/supportlibs/adm_adapter/src/audio_interface_lib_common.c @@ -360,7 +360,6 @@ static int32_t AudioReadCardPortToDesc(struct HdfSBuf *reply, struct AudioAdapte desc->ports[i].portName = strdup("AOIP"); } else { AudioMemFree((void **)&desc->ports); - AUDIO_FUNC_LOGE("desc->ports[i].dir = %{public}d", desc->ports[i].dir); return HDF_FAILURE; } desc->ports[i].portId = portId; -- Gitee From 32068f5fd3607dd15f245a412837529869b89f13 Mon Sep 17 00:00:00 2001 From: wanghongenaf Date: Fri, 8 Aug 2025 06:36:03 +0000 Subject: [PATCH 2/7] update audio/hdi_service/primary_impl/src/audio_manager.c. Signed-off-by: wanghongenaf --- audio/hdi_service/primary_impl/src/audio_manager.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/audio/hdi_service/primary_impl/src/audio_manager.c b/audio/hdi_service/primary_impl/src/audio_manager.c index 8ac84f5035..053bf147a0 100644 --- a/audio/hdi_service/primary_impl/src/audio_manager.c +++ b/audio/hdi_service/primary_impl/src/audio_manager.c @@ -536,12 +536,7 @@ int32_t AudioManagerLoadAdapter( } int32_t freePos = AudioManagerServiceGetFreeAdapterPos(manager, desc->adapterName); - if (freePos < 0) { - AUDIO_FUNC_LOGE("AudioManagerServiceGetFreeAdapterPos is negative!"); - return HDF_FAILURE; - } - pos = (uint32_t)AudioManagerServiceGetFreeAdapterPos(manager, desc->adapterName); - if (pos >= SUPPORT_ADAPTER_NUM_MAX) { + if (freePos < 0 || freePos >= SUPPORT_ADAPTER_NUM_MAX) { AUDIO_FUNC_LOGE("AudioManagerServiceGetFreeAdapterPos failed!"); return HDF_FAILURE; } -- Gitee From 8b7b8cd4f9c06905d95053163c360a003396c11a Mon Sep 17 00:00:00 2001 From: wanghongenaf Date: Fri, 8 Aug 2025 06:41:27 +0000 Subject: [PATCH 3/7] update audio/hal/pathselect/src/audio_pathselect.c. Signed-off-by: wanghongenaf --- audio/hal/pathselect/src/audio_pathselect.c | 23 ++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/audio/hal/pathselect/src/audio_pathselect.c b/audio/hal/pathselect/src/audio_pathselect.c index 73878748db..85566d5c32 100644 --- a/audio/hal/pathselect/src/audio_pathselect.c +++ b/audio/hal/pathselect/src/audio_pathselect.c @@ -305,7 +305,7 @@ static int32_t SetMatchRenderDefaultDevicePath(struct AudioHwRenderParam *render return HDF_ERR_INVALID_PARAM; } for (uint32_t i = PIN_OUT_SPEAKER; i <= PIN_OUT_EARPIECE; i = i << 1) { - const char *deviceType = AudioPathSelGetDeviceType((int32_t)i); + const char *deviceType = AudioPathSelGetDeviceType(i); if (deviceType == NULL) { AUDIO_FUNC_LOGE("DeviceType not found."); return HDF_FAILURE; @@ -373,7 +373,10 @@ static int32_t AudioRenderParseDevice(struct AudioHwRenderParam *renderParam, cJ ret = SetMatchRenderDevicePath(tpins, renderParam, cJsonObj, SPEAKER, AUDIO_DEV_ON); #ifndef ALSA_LIB_MODE /* 2.close headphones */ - ret |= SetMatchRenderDevicePath(PIN_OUT_HEADSET, renderParam, cJsonObj, HEADPHONES, AUDIO_DEV_OFF); + if (SetMatchRenderDevicePath(PIN_OUT_HEADSET, renderParam, cJsonObj, HEADPHONES, AUDIO_DEV_OFF) == + HDF_SUCCESS) { + ret = HDF_SUCCESS; + } #endif break; case PIN_OUT_HEADSET: @@ -381,7 +384,10 @@ static int32_t AudioRenderParseDevice(struct AudioHwRenderParam *renderParam, cJ ret = SetMatchRenderDevicePath(tpins, renderParam, cJsonObj, HEADPHONES, AUDIO_DEV_ON); #ifndef ALSA_LIB_MODE /* 2、close speaker */ - ret |= SetMatchRenderDevicePath(PIN_OUT_SPEAKER, renderParam, cJsonObj, SPEAKER, AUDIO_DEV_OFF); + if (SetMatchRenderDevicePath(PIN_OUT_SPEAKER, renderParam, cJsonObj, SPEAKER, AUDIO_DEV_OFF) == + HDF_SUCCESS) { + ret = HDF_SUCCESS; + } #endif break; case PIN_OUT_EARPIECE: @@ -611,7 +617,11 @@ static int32_t AudioCaptureParseDevice(struct AudioHwCaptureParam *captureParam, ret = SetMatchCaptureDevicePath(captureParam, cJsonObj, tpins, MIC, AUDIO_DEV_ON); #ifndef ALSA_LIB_MODE /* 2.close headset mic */ - ret |= SetMatchCaptureDevicePath(captureParam, cJsonObj, PIN_IN_HS_MIC, HS_MIC, AUDIO_DEV_OFF); + if (SetMatchCaptureDevicePath(captureParam, cJsonObj, PIN_IN_HS_MIC, HS_MIC, AUDIO_DEV_OFF) == + HDF_SUCCESS) + { + ret = HDF_SUCCESS; + } #endif break; case PIN_IN_HS_MIC: @@ -619,7 +629,10 @@ static int32_t AudioCaptureParseDevice(struct AudioHwCaptureParam *captureParam, ret = SetMatchCaptureDevicePath(captureParam, cJsonObj, tpins, HS_MIC, AUDIO_DEV_ON); #ifndef ALSA_LIB_MODE /* 2、close main mic */ - ret |= SetMatchCaptureDevicePath(captureParam, cJsonObj, PIN_IN_MIC, MIC, AUDIO_DEV_OFF); + if (SetMatchCaptureDevicePath(captureParam, cJsonObj, PIN_IN_MIC, MIC, AUDIO_DEV_OFF) == + HDF_SUCCESS) { + ret = HDF_SUCCESS; + } #endif break; case PIN_IN_BLUETOOTH_SCO_HEADSET: -- Gitee From 8924bbfc0c0c5ed145e2a5fa0fa036722d7ecc71 Mon Sep 17 00:00:00 2001 From: wanghongenaf Date: Fri, 8 Aug 2025 07:17:41 +0000 Subject: [PATCH 4/7] update audio/hal/pathselect/src/audio_pathselect.c. Signed-off-by: wanghongenaf --- audio/hal/pathselect/src/audio_pathselect.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/audio/hal/pathselect/src/audio_pathselect.c b/audio/hal/pathselect/src/audio_pathselect.c index 85566d5c32..7a7defedc4 100644 --- a/audio/hal/pathselect/src/audio_pathselect.c +++ b/audio/hal/pathselect/src/audio_pathselect.c @@ -342,16 +342,16 @@ static int32_t SetMatchRenderOtherDevicePath( return HDF_SUCCESS; } -static int32_t AudioRenderParseDevice(struct AudioHwRenderParam *renderParam, cJSON *cJsonObj) +static int32_t ParseRenderDevice(const cJSON *cJsonObj, const struct AudioHwRenderParam *renderParam) { - int32_t ret; if (cJsonObj == NULL || renderParam == NULL) { AUDIO_FUNC_LOGE("param Is NULL"); return HDF_ERR_INVALID_PARAM; } - uint32_t pins = renderParam->renderMode.hwInfo.deviceDescript.pins; + uint32_t pins = renderParam->renderMode.hwInfo.deviceDescript.pins; uint32_t tpins = pins & OUTPUT_MASK; + if ((pins >> OUTPUT_OFFSET) != 0) { AUDIO_FUNC_LOGE("pins: %d, error!\n", pins); return HDF_FAILURE; @@ -362,6 +362,16 @@ static int32_t AudioRenderParseDevice(struct AudioHwRenderParam *renderParam, cJ return HDF_SUCCESS; } + return HDF_SUCCESS; +} + +static int32_t AudioRenderParseDevice(struct AudioHwRenderParam *renderParam, cJSON *cJsonObj) +{ + int32_t ret = ParseRenderDevice(cJsonObj, renderParam); + if (ret != HDF_SUCCESS) { + return ret; + } + switch (tpins) { case PIN_NONE: /* pins = 0, parse default value */ @@ -618,8 +628,7 @@ static int32_t AudioCaptureParseDevice(struct AudioHwCaptureParam *captureParam, #ifndef ALSA_LIB_MODE /* 2.close headset mic */ if (SetMatchCaptureDevicePath(captureParam, cJsonObj, PIN_IN_HS_MIC, HS_MIC, AUDIO_DEV_OFF) == - HDF_SUCCESS) - { + HDF_SUCCESS) { ret = HDF_SUCCESS; } #endif -- Gitee From 76bfabf5d81dd0590c6762fdac488f4b5212aa7d Mon Sep 17 00:00:00 2001 From: wanghongenaf Date: Fri, 8 Aug 2025 07:52:57 +0000 Subject: [PATCH 5/7] update audio/hal/pathselect/src/audio_pathselect.c. Signed-off-by: wanghongenaf --- audio/hal/pathselect/src/audio_pathselect.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/audio/hal/pathselect/src/audio_pathselect.c b/audio/hal/pathselect/src/audio_pathselect.c index 7a7defedc4..6cdd9c40b2 100644 --- a/audio/hal/pathselect/src/audio_pathselect.c +++ b/audio/hal/pathselect/src/audio_pathselect.c @@ -350,8 +350,6 @@ static int32_t ParseRenderDevice(const cJSON *cJsonObj, const struct AudioHwRend } uint32_t pins = renderParam->renderMode.hwInfo.deviceDescript.pins; - uint32_t tpins = pins & OUTPUT_MASK; - if ((pins >> OUTPUT_OFFSET) != 0) { AUDIO_FUNC_LOGE("pins: %d, error!\n", pins); return HDF_FAILURE; @@ -371,7 +369,7 @@ static int32_t AudioRenderParseDevice(struct AudioHwRenderParam *renderParam, cJ if (ret != HDF_SUCCESS) { return ret; } - + uint32_t tpins = pins & OUTPUT_MASK; switch (tpins) { case PIN_NONE: /* pins = 0, parse default value */ -- Gitee From 537c0ff06767797cd2faa7cb381874d315a57c99 Mon Sep 17 00:00:00 2001 From: wanghongenaf Date: Fri, 8 Aug 2025 08:29:51 +0000 Subject: [PATCH 6/7] update audio/hal/pathselect/src/audio_pathselect.c. Signed-off-by: wanghongenaf --- audio/hal/pathselect/src/audio_pathselect.c | 1 + 1 file changed, 1 insertion(+) diff --git a/audio/hal/pathselect/src/audio_pathselect.c b/audio/hal/pathselect/src/audio_pathselect.c index 6cdd9c40b2..08487a95dc 100644 --- a/audio/hal/pathselect/src/audio_pathselect.c +++ b/audio/hal/pathselect/src/audio_pathselect.c @@ -369,6 +369,7 @@ static int32_t AudioRenderParseDevice(struct AudioHwRenderParam *renderParam, cJ if (ret != HDF_SUCCESS) { return ret; } + uint32_t pins = renderParam->renderMode.hwInfo.deviceDescript.pins; uint32_t tpins = pins & OUTPUT_MASK; switch (tpins) { case PIN_NONE: -- Gitee From 8a7b3d21d558b7d27bccc7be009b45ae17c3e60d Mon Sep 17 00:00:00 2001 From: wanghongenaf Date: Sat, 9 Aug 2025 11:11:09 +0000 Subject: [PATCH 7/7] update audio/hdi_service/primary_impl/src/audio_manager.c. Signed-off-by: wanghongenaf --- audio/hdi_service/primary_impl/src/audio_manager.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/audio/hdi_service/primary_impl/src/audio_manager.c b/audio/hdi_service/primary_impl/src/audio_manager.c index 053bf147a0..8a8d0779bd 100644 --- a/audio/hdi_service/primary_impl/src/audio_manager.c +++ b/audio/hdi_service/primary_impl/src/audio_manager.c @@ -548,11 +548,11 @@ int32_t AudioManagerLoadAdapter( return ret; } - ret = AudioManagerServiceAddAdapter(manager, *adapter, pos); + ret = AudioManagerServiceAddAdapter(manager, *adapter, freePos); if (ret != AUDIO_SUCCESS) { AUDIO_FUNC_LOGE("Add adapter to list failed."); - AudioManagerEnforceClearRef(manager, pos); - AudioManagerServiceRemvAdapter(manager, pos); + AudioManagerEnforceClearRef(manager, (uint32_t)freePos); + AudioManagerServiceRemvAdapter(manager, (uint32_t)freePos); return ret; } -- Gitee