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

Commit 15a4fd40 authored by Jeff Brown's avatar Jeff Brown Committed by Android Git Automerger
Browse files

am e6f0ae12: am efd3266b: Input improvements and bug fixes.

* commit 'e6f0ae12b18819424dd8395b433a8fc9caefa77b':
  Input improvements and bug fixes.
parents bc9caa37 4a5f0368
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -143,6 +143,14 @@ enum {
    POLICY_FLAG_PASS_TO_USER = 0x40000000,
};

/*
 * Button state.
 */
enum {
    // Primary button pressed (left mouse button).
    BUTTON_STATE_PRIMARY = 1 << 0,
};

/*
 * Describes the basic configuration of input devices that are present.
 */
@@ -544,6 +552,8 @@ public:
    ~InputDeviceInfo();

    struct MotionRange {
        int32_t axis;
        uint32_t source;
        float min;
        float max;
        float flat;
@@ -556,16 +566,17 @@ public:
    inline const String8 getName() const { return mName; }
    inline uint32_t getSources() const { return mSources; }

    const MotionRange* getMotionRange(int32_t axis) const;
    const MotionRange* getMotionRange(int32_t axis, uint32_t source) const;

    void addSource(uint32_t source);
    void addMotionRange(int32_t axis, float min, float max, float flat, float fuzz);
    void addMotionRange(int32_t axis, const MotionRange& range);
    void addMotionRange(int32_t axis, uint32_t source,
            float min, float max, float flat, float fuzz);
    void addMotionRange(const MotionRange& range);

    inline void setKeyboardType(int32_t keyboardType) { mKeyboardType = keyboardType; }
    inline int32_t getKeyboardType() const { return mKeyboardType; }

    inline const KeyedVector<int32_t, MotionRange> getMotionRanges() const {
    inline const Vector<MotionRange>& getMotionRanges() const {
        return mMotionRanges;
    }

@@ -575,7 +586,7 @@ private:
    uint32_t mSources;
    int32_t mKeyboardType;

    KeyedVector<int32_t, MotionRange> mMotionRanges;
    Vector<MotionRange> mMotionRanges;
};

/*
+15 −8
Original line number Diff line number Diff line
@@ -657,23 +657,30 @@ void InputDeviceInfo::initialize(int32_t id, const String8& name) {
    mMotionRanges.clear();
}

const InputDeviceInfo::MotionRange* InputDeviceInfo::getMotionRange(int32_t axis) const {
    ssize_t index = mMotionRanges.indexOfKey(axis);
    return index >= 0 ? & mMotionRanges.valueAt(index) : NULL;
const InputDeviceInfo::MotionRange* InputDeviceInfo::getMotionRange(
        int32_t axis, uint32_t source) const {
    size_t numRanges = mMotionRanges.size();
    for (size_t i = 0; i < numRanges; i++) {
        const MotionRange& range = mMotionRanges.itemAt(i);
        if (range.axis == axis && range.source == source) {
            return &range;
        }
    }
    return NULL;
}

void InputDeviceInfo::addSource(uint32_t source) {
    mSources |= source;
}

void InputDeviceInfo::addMotionRange(int32_t axis, float min, float max,
void InputDeviceInfo::addMotionRange(int32_t axis, uint32_t source, float min, float max,
        float flat, float fuzz) {
    MotionRange range = { min, max, flat, fuzz };
    addMotionRange(axis, range);
    MotionRange range = { axis, source, min, max, flat, fuzz };
    mMotionRanges.add(range);
}

void InputDeviceInfo::addMotionRange(int32_t axis, const MotionRange& range) {
    mMotionRanges.add(axis, range);
void InputDeviceInfo::addMotionRange(const MotionRange& range) {
    mMotionRanges.add(range);
}

} // namespace android