Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9747e96b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Decouple HapticScale and ExternalVibratorService scale."

parents bb26732f be9d0e1e
Loading
Loading
Loading
Loading
+20 −9
Original line number Diff line number Diff line
@@ -22,15 +22,6 @@
#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);
@@ -74,5 +65,25 @@ inline bool ExternalVibration::operator==(const ExternalVibration& rhs) const {
    return mToken == rhs.mToken;
}

os::HapticScale ExternalVibration::externalVibrationScaleToHapticScale(int externalVibrationScale) {
    switch (externalVibrationScale) {
        case IExternalVibratorService::SCALE_MUTE:
            return os::HapticScale::MUTE;
        case IExternalVibratorService::SCALE_VERY_LOW:
            return os::HapticScale::VERY_LOW;
        case IExternalVibratorService::SCALE_LOW:
            return os::HapticScale::LOW;
        case IExternalVibratorService::SCALE_NONE:
            return os::HapticScale::NONE;
        case IExternalVibratorService::SCALE_HIGH:
            return os::HapticScale::HIGH;
        case IExternalVibratorService::SCALE_VERY_HIGH:
            return os::HapticScale::VERY_HIGH;
        default:
          ALOGE("Unknown ExternalVibrationScale %d, not applying scaling", externalVibrationScale);
          return os::HapticScale::NONE;
      }
}

} // namespace os
} // namespace android
+6 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <binder/Parcelable.h>
#include <system/audio.h>
#include <utils/RefBase.h>
#include <vibrator/ExternalVibrationUtils.h>

namespace android {
namespace os {
@@ -44,6 +45,10 @@ public :
    audio_attributes_t getAudioAttributes() const { return mAttrs; }
    sp<IExternalVibrationController> getController() { return mController; }

    /* Converts the scale from non-public ExternalVibrationService into the HapticScale
     * used by the utils.
     */
    static os::HapticScale externalVibrationScaleToHapticScale(int externalVibrationScale);

private:
    int32_t mUid;
@@ -53,7 +58,7 @@ private:
    sp<IBinder> mToken = new BBinder();
};

} // namespace android
} // namespace os
} // namespace android

#endif // ANDROID_EXTERNAL_VIBRATION_H
+0 −2
Original line number Diff line number Diff line
@@ -19,8 +19,6 @@

namespace android::os {

// Copied from frameworks/base/core/java/android/os/IExternalVibratorService.aidl
// The values are checked in ExternalVibration.cpp
enum class HapticScale {
    MUTE = -100,
    VERY_LOW = -2,