From 315726a9538cb573c8562ba296157287f241f506 Mon Sep 17 00:00:00 2001 From: mwx1350003 Date: Wed, 4 Jun 2025 11:00:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E9=A9=AC=E8=BE=BE=E5=A4=9A=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=20=20=20Signed-off-by:lixiangpeng5=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: mwx1350003 --- .../src/miscdevice_service.cpp | 69 ++++++++++--------- 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index b9a4bc1..b836376 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -707,16 +707,16 @@ int32_t MiscdeviceService::PlayVibratorCustom(const VibratorIdentifierIPC& ident .systemUsage = customHapticInfoIPC.systemUsage, .package = package, }; - VibratorCapacity g_capacity; - if (GetHapticCapacityInfo(identifier, g_capacity) != ERR_OK) { + VibratorCapacity capacity; + if (GetHapticCapacityInfo(identifier, capacity) != ERR_OK) { MISC_HILOGE("GetVibratorCapacity failed"); return ERROR; } - if (g_capacity.isSupportHdHaptic) { + if (capacity.isSupportHdHaptic) { info.mode = VIBRATE_CUSTOM_HD; - } else if (g_capacity.isSupportPresetMapping) { + } else if (capacity.isSupportPresetMapping) { info.mode = VIBRATE_CUSTOM_COMPOSITE_EFFECT; - } else if (g_capacity.isSupportTimeDelay) { + } else if (capacity.isSupportTimeDelay) { info.mode = VIBRATE_CUSTOM_COMPOSITE_TIME; } std::lock_guard lock(vibratorThreadMutex_); @@ -749,12 +749,12 @@ int32_t MiscdeviceService::CheckAuthAndParam(int32_t usage, const VibrateParamet MISC_HILOGE("CheckVibratePermission failed, ret:%{public}d", ret); return PERMISSION_DENIED; } - VibratorCapacity g_capacity; - if (GetHapticCapacityInfo(identifier, g_capacity) != ERR_OK) { + VibratorCapacity capacity; + if (GetHapticCapacityInfo(identifier, capacity) != ERR_OK) { MISC_HILOGE("GetVibratorCapacity failed"); return ERROR; } - if (!(g_capacity.isSupportHdHaptic || g_capacity.isSupportPresetMapping || g_capacity.isSupportTimeDelay)) { + if (!(capacity.isSupportHdHaptic || capacity.isSupportPresetMapping || capacity.isSupportTimeDelay)) { MISC_HILOGE("The device does not support this operation"); return IS_NOT_SUPPORTED; } @@ -941,21 +941,21 @@ int32_t MiscdeviceService::PlayPattern(const VibratorIdentifierIPC& identifier, .usage = customHapticInfoIPC.usage, .systemUsage = customHapticInfoIPC.systemUsage }; - VibratorCapacity g_capacity; - if (GetHapticCapacityInfo(identifier, g_capacity) != ERR_OK) { + VibratorCapacity capacity; + if (GetHapticCapacityInfo(identifier, capacity) != ERR_OK) { MISC_HILOGE("GetVibratorCapacity failed"); return ERROR; } - if (g_capacity.isSupportHdHaptic) { + if (capacity.isSupportHdHaptic) { int32_t result = PerformVibrationControl(identifier, pattern, info); if (result != ERR_OK) { MISC_HILOGE("PerformVibrationControl failed"); return result; } return vibratorHdiConnection_.PlayPattern(identifier, package.patterns.front()); - } else if (g_capacity.isSupportPresetMapping) { + } else if (capacity.isSupportPresetMapping) { info.mode = VIBRATE_CUSTOM_COMPOSITE_EFFECT; - } else if (g_capacity.isSupportTimeDelay) { + } else if (capacity.isSupportTimeDelay) { info.mode = VIBRATE_CUSTOM_COMPOSITE_TIME; } info.package = package; @@ -985,12 +985,12 @@ int32_t MiscdeviceService::GetDelayTime(const VibratorIdentifierIPC& identifier, { std::string packageName = GetPackageName(GetCallingTokenID()); MISC_HILOGD("GetDelayTime, package:%{public}s", packageName.c_str()); - VibratorCapacity g_capacity; - if (GetHapticCapacityInfo(identifier, g_capacity) != ERR_OK) { + VibratorCapacity capacity; + if (GetHapticCapacityInfo(identifier, capacity) != ERR_OK) { MISC_HILOGE("GetVibratorCapacity failed"); return ERROR; } - return vibratorHdiConnection_.GetDelayTime(identifier, g_capacity.GetVibrateMode(), delayTime); + return vibratorHdiConnection_.GetDelayTime(identifier, capacity.GetVibrateMode(), delayTime); } bool MiscdeviceService::CheckVibratorParmeters(const VibrateParameter ¶meter) @@ -1395,15 +1395,16 @@ int32_t MiscdeviceService::SubscribeVibratorPlugInfo(const sptr & return ERR_OK; } -int32_t MiscdeviceService::GetVibratorCapacity(const VibratorIdentifierIPC& identifier, VibratorCapacity &capacity) +int32_t MiscdeviceService::GetVibratorCapacity(const VibratorIdentifierIPC& identifier, + VibratorCapacity &vibratorCapacity) { CALL_LOG_ENTER; - VibratorCapacity g_capacity; - if (GetHapticCapacityInfo(identifier, g_capacity) != ERR_OK) { + VibratorCapacity capacity; + if (GetHapticCapacityInfo(identifier, capacity) != ERR_OK) { MISC_HILOGE("GetVibratorCapacity failed"); return ERROR; } - capacity = g_capacity; + vibratorCapacity = capacity; return ERR_OK; } @@ -1447,8 +1448,8 @@ int32_t MiscdeviceService::GetHapticCapacityInfo(const VibratorIdentifierIPC& id capacityInfo = deviceIt->second.capacityInfo; return ERR_OK; } - MISC_HILOGE("No vibrator information found for device ID: %{public}d", identifier.deviceId); - return PARAMETER_ERROR; + MISC_HILOGW("No vibrator capacity information found for device ID: %{public}d", identifier.deviceId); + return ERR_OK; } for (const auto& pair : devicesManageMap_) { for (const auto& info : pair.second.baseInfo) { @@ -1458,8 +1459,8 @@ int32_t MiscdeviceService::GetHapticCapacityInfo(const VibratorIdentifierIPC& id } } } - MISC_HILOGE("No vibrator information found for device ID: %{public}d", identifier.deviceId); - return PARAMETER_ERROR; + MISC_HILOGW("No local vibrator capacity information found for device ID: %{public}d", identifier.deviceId); + return ERR_OK; } int32_t MiscdeviceService::GetAllWaveInfo(const VibratorIdentifierIPC& identifier, @@ -1527,18 +1528,17 @@ bool MiscdeviceService::UpdateVibratorAllInfo(const VibratorIdentifierIPC &ident } VibratorAllInfos tVibratorInfo(vibratorIdList); vibratorAllInfos = tVibratorInfo; - VibratorCapacity vibratorCapacity; - ret = vibratorHdiConnection_.GetVibratorCapacity(identifier, vibratorCapacity); + VibratorCapacity capacity; + ret = vibratorHdiConnection_.GetVibratorCapacity(identifier, capacity); if (ret != NO_ERROR) { - MISC_HILOGE("HDI::GetHapticCapacity return error"); - return false; + MISC_HILOGW("HDI::GetHapticCapacity return error, then fill the default capacity"); } std::vector waveInfo; ret = vibratorHdiConnection_.GetAllWaveInfo(identifier, waveInfo); if (ret != NO_ERROR) { MISC_HILOGW("HDI::GetAllWaveInfo return error"); } - (void)ConvertToServerInfos(baseInfo, vibratorCapacity, waveInfo, info, vibratorAllInfos); + (void)ConvertToServerInfos(baseInfo, capacity, waveInfo, info, vibratorAllInfos); devicesManageMap_.insert(std::make_pair(identifier.deviceId, vibratorAllInfos)); return true; } @@ -1575,18 +1575,23 @@ void MiscdeviceService::GetLocalVibratorInfo() std::vector localInfo; HdfVibratorPlugInfo mockInfo; mockInfo.deviceName = ""; - VibratorIdentifierIPC param; for (auto &info : vibratorInfo) { if (info.isLocal == 1) { localInfo.emplace_back(info); + } + } + VibratorIdentifierIPC param; + for (auto &info : vibratorInfo) { + if (info.isLocal == 1) { param.deviceId = info.deviceId; + param.vibratorId = info.vibratorId; + break; } } VibratorCapacity capacity; ret = vibratorHdiConnection_.GetVibratorCapacity(param, capacity); if (ret != NO_ERROR) { - MISC_HILOGE("Get local hapticCapacity fail"); - return; + MISC_HILOGW("HDI::Get local hapticCapacity fail, then fill the default capacity"); } std::vector waveInfo; ret = vibratorHdiConnection_.GetAllWaveInfo(param, waveInfo); -- Gitee