From 643285d3100fb1da1299d19c1658f817cd54848b Mon Sep 17 00:00:00 2001 From: shenpeixing Date: Sat, 10 May 2025 10:56:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A1=A8=E5=86=A0=E9=9C=87?= =?UTF-8?q?=E5=8A=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shenpeixing --- .../include/miscdevice_service.h | 3 +++ .../src/miscdevice_service.cpp | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/services/miscdevice_service/include/miscdevice_service.h b/services/miscdevice_service/include/miscdevice_service.h index 2c15952..c73c4ad 100644 --- a/services/miscdevice_service/include/miscdevice_service.h +++ b/services/miscdevice_service/include/miscdevice_service.h @@ -75,6 +75,9 @@ private: bool InitInterface(); bool InitLightInterface(); std::string GetPackageName(AccessTokenID tokenId); +#ifdef OHOS_BUILD_ENABLE_VIBRATOR_PRESET_INFO + int32_t FastVibratorEffect(const VibrateInfo &info); +#endif // OHOS_BUILD_ENABLE_VIBRATOR_PRESET_INFO void StartVibrateThread(VibrateInfo info); int32_t StopVibratorService(int32_t vibratorId); void StopVibrateThread(); diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index 41447db..c4f130b 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -468,6 +468,11 @@ int32_t MiscdeviceService::PlayVibratorEffect(int32_t vibratorId, const std::str MISC_HILOGE("%{public}s:vibration is ignored and high priority is vibrating", curVibrateTime.c_str()); return ERROR; } +#ifdef OHOS_BUILD_ENABLE_VIBRATOR_PRESET_INFO + if (count == 1) { + return FastVibratorEffect(info); + } +#endif // OHOS_BUILD_ENABLE_VIBRATOR_PRESET_INFO StartVibrateThread(info); MISC_HILOGI("Start vibrator, currentTime:%{public}s, package:%{public}s, pid:%{public}d, usage:%{public}d," "vibratorId:%{public}d, duration:%{public}d, effect:%{public}s, count:%{public}d", curVibrateTime.c_str(), @@ -1080,6 +1085,11 @@ int32_t MiscdeviceService::PlayPrimitiveEffect(int32_t vibratorId, const std::st MISC_HILOGE("%{public}s:vibration is ignored and high priority is vibrating", curVibrateTime.c_str()); return ERROR; } +#ifdef OHOS_BUILD_ENABLE_VIBRATOR_PRESET_INFO + if (count == 1) { + return FastVibratorEffect(info); + } +#endif // OHOS_BUILD_ENABLE_VIBRATOR_PRESET_INFO StartVibrateThread(info); MISC_HILOGI("Start vibrator, currentTime:%{public}s, package:%{public}s, pid:%{public}d, usage:%{public}d," "vibratorId:%{public}d, duration:%{public}d, effect:%{public}s, intensity:%{public}d", curVibrateTime.c_str(), @@ -1087,6 +1097,17 @@ int32_t MiscdeviceService::PlayPrimitiveEffect(int32_t vibratorId, const std::st return NO_ERROR; } +#ifdef OHOS_BUILD_ENABLE_VIBRATOR_PRESET_INFO +int32_t MiscdeviceService::FastVibratorEffect(const VibrateInfo &info) +{ + int32_t ret = VibratorDevice.StartByIntensity(info.effect, info.intensity); + if (ret != SUCCESS) { + MISC_HILOGE("Vibrate effect %{public}s failed, ", info.effect.c_str()); + } + return NO_ERROR; +} +#endif // OHOS_BUILD_ENABLE_VIBRATOR_PRESET_INFO + int32_t MiscdeviceService::PlayPrimitiveEffectCheckAuthAndParam(int32_t intensity, int32_t usage) { PermissionUtil &permissionUtil = PermissionUtil::GetInstance(); -- Gitee