Home | History | Annotate | Download | only in vibrator
      1 /*
      2  * Copyright (C) 2017 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 #ifndef ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H
     17 #define ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H
     18 
     19 #include <android/hardware/vibrator/1.2/IVibrator.h>
     20 #include <hidl/Status.h>
     21 
     22 #include <fstream>
     23 
     24 namespace android {
     25 namespace hardware {
     26 namespace vibrator {
     27 namespace V1_2 {
     28 namespace implementation {
     29 
     30 class Vibrator : public IVibrator {
     31 public:
     32     Vibrator(std::ofstream&& activate, std::ofstream&& duration,
     33             std::ofstream&& state, std::ofstream&& rtpinput,
     34             std::ofstream&& mode, std::ofstream&& sequencer,
     35             std::ofstream&& scale, std::ofstream&& ctrlloop, std::ofstream&& lptrigger);
     36 
     37     // Methods from ::android::hardware::vibrator::V1_0::IVibrator follow.
     38     using Status = ::android::hardware::vibrator::V1_0::Status;
     39     Return<Status> on(uint32_t timeoutMs)  override;
     40     Return<Status> off()  override;
     41     Return<bool> supportsAmplitudeControl() override;
     42     Return<Status> setAmplitude(uint8_t amplitude) override;
     43 
     44     using EffectStrength = ::android::hardware::vibrator::V1_0::EffectStrength;
     45     Return<void> perform(V1_0::Effect effect, EffectStrength strength, perform_cb _hidl_cb)
     46             override;
     47     Return<void> perform_1_1(V1_1::Effect_1_1 effect, EffectStrength strength, perform_cb _hidl_cb)
     48             override;
     49     Return<void> perform_1_2(Effect effect, EffectStrength strength, perform_cb _hidl_cb) override;
     50 
     51 private:
     52     Return<Status> on(uint32_t timeoutMs, bool forceOpenLoop, bool isWaveform);
     53     Return<void> performEffect(Effect effect, EffectStrength strength, perform_cb _hidl_cb);
     54     std::ofstream mActivate;
     55     std::ofstream mDuration;
     56     std::ofstream mState;
     57     std::ofstream mRtpInput;
     58     std::ofstream mMode;
     59     std::ofstream mSequencer;
     60     std::ofstream mScale;
     61     std::ofstream mCtrlLoop;
     62     std::ofstream mLpTriggerEffect;
     63     int32_t mClickDuration;
     64     int32_t mTickDuration;
     65     int32_t mHeavyClickDuration;
     66 };
     67 }  // namespace implementation
     68 }  // namespace V1_2
     69 }  // namespace vibrator
     70 }  // namespace hardware
     71 }  // namespace android
     72 
     73 #endif  // ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H
     74