diff options
| author | 2022-10-17 17:10:42 +0000 | |
|---|---|---|
| committer | 2022-10-17 17:10:42 +0000 | |
| commit | 3a785048711ccd973dfc700394ccdbc98a71f31f (patch) | |
| tree | 48b9cd237d8a484fd08479d4ff123014f7f5f0f9 /libs | |
| parent | eade3e9d85d81da6bf583cabbb65e4fdfb960833 (diff) | |
| parent | 124390a576e09c764f42f28dfb13dea07adf7e72 (diff) | |
Merge "Use hardcoded value for HapticScale" am: 4e5ceff198 am: 7c4e004316 am: 124390a576
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2231627
Change-Id: Iac65efb9ce93589f9da868a55ea54778b96fdf96
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/vibrator/Android.bp | 60 | ||||
| -rw-r--r-- | libs/vibrator/ExternalVibration.cpp | 11 | ||||
| -rw-r--r-- | libs/vibrator/include/vibrator/ExternalVibrationUtils.h | 16 |
3 files changed, 63 insertions, 24 deletions
diff --git a/libs/vibrator/Android.bp b/libs/vibrator/Android.bp index 83c250a24f..2af51a722c 100644 --- a/libs/vibrator/Android.bp +++ b/libs/vibrator/Android.bp @@ -21,10 +21,30 @@ package { default_applicable_licenses: ["frameworks_native_license"], } +cc_defaults { + name: "libvibrator_defaults", + + cflags: [ + "-Wall", + "-Werror", + "-Wno-missing-field-initializers", + "-Wno-unused-variable", + "-Wno-unused-parameter", + ], + + export_include_dirs: ["include"], + + host_supported: true, + target: { + darwin: { + enabled: false, + }, + }, +} + cc_library { name: "libvibrator", - vendor_available: true, - double_loadable: true, + defaults: ["libvibrator_defaults"], shared_libs: [ "libbinder", @@ -32,6 +52,10 @@ cc_library { "libutils", ], + whole_static_libs: [ + "libvibratorutils", + ], + header_libs: [ "libaudio_system_headers", ], @@ -44,23 +68,27 @@ cc_library { srcs: [ ":libvibrator_aidl", - "*.cpp", + "ExternalVibration.cpp", ], +} - cflags: [ - "-Wall", - "-Werror", - "-Wno-missing-field-initializers", - "-Wno-unused-variable", - "-Wno-unused-parameter", +cc_library { + name: "libvibratorutils", + defaults: ["libvibrator_defaults"], + + vendor_available: true, + double_loadable: true, + + shared_libs: [ + "libutils", ], - export_include_dirs: ["include"], + srcs: [ + "ExternalVibrationUtils.cpp", + ], - host_supported: true, - target: { - darwin: { - enabled: false, - }, - }, + visibility: [ + "//frameworks/native/libs/vibrator", + "//frameworks/av/media/libeffects/hapticgenerator", + ], } diff --git a/libs/vibrator/ExternalVibration.cpp b/libs/vibrator/ExternalVibration.cpp index f6fc19e05d..ec906458a3 100644 --- a/libs/vibrator/ExternalVibration.cpp +++ b/libs/vibrator/ExternalVibration.cpp @@ -15,11 +15,22 @@ */ #include <vibrator/ExternalVibration.h> +#include <vibrator/ExternalVibrationUtils.h> +#include <android/os/IExternalVibratorService.h> #include <binder/Parcel.h> #include <log/log.h> #include <utils/Errors.h> + +// To guarantee if HapticScale enum has the same value as IExternalVibratorService +static_assert(static_cast<int>(android::os::HapticScale::MUTE) == static_cast<int>(android::os::IExternalVibratorService::SCALE_MUTE)); +static_assert(static_cast<int>(android::os::HapticScale::VERY_LOW) == static_cast<int>(android::os::IExternalVibratorService::SCALE_VERY_LOW)); +static_assert(static_cast<int>(android::os::HapticScale::LOW) == static_cast<int>(android::os::IExternalVibratorService::SCALE_LOW)); +static_assert(static_cast<int>(android::os::HapticScale::NONE) == static_cast<int>(android::os::IExternalVibratorService::SCALE_NONE)); +static_assert(static_cast<int>(android::os::HapticScale::HIGH) == static_cast<int>(android::os::IExternalVibratorService::SCALE_HIGH)); +static_assert(static_cast<int>(android::os::HapticScale::VERY_HIGH) == static_cast<int>(android::os::IExternalVibratorService::SCALE_VERY_HIGH)); + void writeAudioAttributes(const audio_attributes_t& attrs, android::Parcel* out) { out->writeInt32(attrs.usage); out->writeInt32(attrs.content_type); diff --git a/libs/vibrator/include/vibrator/ExternalVibrationUtils.h b/libs/vibrator/include/vibrator/ExternalVibrationUtils.h index 84357fcb35..c588bfdedd 100644 --- a/libs/vibrator/include/vibrator/ExternalVibrationUtils.h +++ b/libs/vibrator/include/vibrator/ExternalVibrationUtils.h @@ -17,17 +17,17 @@ #ifndef ANDROID_EXTERNAL_VIBRATION_UTILS_H #define ANDROID_EXTERNAL_VIBRATION_UTILS_H -#include <android/os/IExternalVibratorService.h> - namespace android::os { +// Copied from frameworks/base/core/java/android/os/IExternalVibratorService.aidl +// The values are checked in ExternalVibration.cpp enum class HapticScale { - MUTE = IExternalVibratorService::SCALE_MUTE, - VERY_LOW = IExternalVibratorService::SCALE_VERY_LOW, - LOW = IExternalVibratorService::SCALE_LOW, - NONE = IExternalVibratorService::SCALE_NONE, - HIGH = IExternalVibratorService::SCALE_HIGH, - VERY_HIGH = IExternalVibratorService::SCALE_VERY_HIGH, + MUTE = -100, + VERY_LOW = -2, + LOW = -1, + NONE = 0, + HIGH = 1, + VERY_HIGH = 2, }; bool isValidHapticScale(HapticScale scale); |