upload android base code part4
This commit is contained in:
parent
b9e30e05b1
commit
78ea2404cd
23455 changed files with 5250148 additions and 0 deletions
142
android/hardware/libhardware/tests/input/evdev/InputMocks.h
Normal file
142
android/hardware/libhardware/tests/input/evdev/InputMocks.h
Normal file
|
@ -0,0 +1,142 @@
|
|||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef ANDROID_INPUT_MOCKS_H_
|
||||
#define ANDROID_INPUT_MOCKS_H_
|
||||
|
||||
#include <map>
|
||||
#include <set>
|
||||
#include <string>
|
||||
|
||||
#include <linux/input.h>
|
||||
|
||||
#include "InputHub.h"
|
||||
|
||||
namespace android {
|
||||
|
||||
class MockInputDeviceNode : public InputDeviceNode {
|
||||
public:
|
||||
MockInputDeviceNode() = default;
|
||||
virtual ~MockInputDeviceNode() = default;
|
||||
|
||||
virtual const std::string& getPath() const override { return mPath; }
|
||||
virtual const std::string& getName() const override { return mName; }
|
||||
virtual const std::string& getLocation() const override { return mLocation; }
|
||||
virtual const std::string& getUniqueId() const override { return mUniqueId; }
|
||||
|
||||
void setPath(const std::string& path) { mPath = path; }
|
||||
void setName(const std::string& name) { mName = name; }
|
||||
void setLocation(const std::string& location) { mLocation = location; }
|
||||
void setUniqueId(const std::string& uniqueId) { mUniqueId = uniqueId; }
|
||||
|
||||
virtual uint16_t getBusType() const override { return mBusType; }
|
||||
virtual uint16_t getVendorId() const override { return mVendorId; }
|
||||
virtual uint16_t getProductId() const override { return mProductId; }
|
||||
virtual uint16_t getVersion() const override { return mVersion; }
|
||||
|
||||
void setBusType(uint16_t busType) { mBusType = busType; }
|
||||
void setVendorId(uint16_t vendorId) { mVendorId = vendorId; }
|
||||
void setProductId(uint16_t productId) { mProductId = productId; }
|
||||
void setVersion(uint16_t version) { mVersion = version; }
|
||||
|
||||
virtual bool hasKey(int32_t key) const override { return mKeys.count(key); }
|
||||
virtual bool hasKeyInRange(int32_t startKey, int32_t endKey) const override;
|
||||
virtual bool hasRelativeAxis(int axis) const override { return mRelAxes.count(axis); }
|
||||
virtual bool hasAbsoluteAxis(int32_t axis) const override { return mAbsAxes.count(axis); }
|
||||
virtual bool hasSwitch(int32_t sw) const override { return mSwitches.count(sw); }
|
||||
virtual bool hasForceFeedback(int32_t ff) const override { return mForceFeedbacks.count(ff); }
|
||||
virtual bool hasInputProperty(int32_t property) const override {
|
||||
return mInputProperties.count(property);
|
||||
}
|
||||
|
||||
// base case
|
||||
void addKeys() {}
|
||||
// inductive case
|
||||
template<typename I, typename... Is>
|
||||
void addKeys(I key, Is... keys) {
|
||||
// Add the first key
|
||||
mKeys.insert(key);
|
||||
// Recursively add the remaining keys
|
||||
addKeys(keys...);
|
||||
}
|
||||
|
||||
void addRelAxis(int32_t axis) { mRelAxes.insert(axis); }
|
||||
void addAbsAxis(int32_t axis, AbsoluteAxisInfo* info) { mAbsAxes[axis] = info; }
|
||||
void addSwitch(int32_t sw) { mSwitches.insert(sw); }
|
||||
void addForceFeedback(int32_t ff) { mForceFeedbacks.insert(ff); }
|
||||
void addInputProperty(int32_t property) { mInputProperties.insert(property); }
|
||||
|
||||
virtual int32_t getKeyState(int32_t key) const override { return 0; }
|
||||
virtual int32_t getSwitchState(int32_t sw) const override { return 0; }
|
||||
virtual const AbsoluteAxisInfo* getAbsoluteAxisInfo(int32_t axis) const override {
|
||||
auto iter = mAbsAxes.find(axis);
|
||||
if (iter != mAbsAxes.end()) {
|
||||
return iter->second;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
virtual status_t getAbsoluteAxisValue(int32_t axis, int32_t* outValue) const override {
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual void vibrate(nsecs_t duration) override {}
|
||||
virtual void cancelVibrate() override {}
|
||||
|
||||
virtual void disableDriverKeyRepeat() override { mKeyRepeatDisabled = true; }
|
||||
|
||||
bool isDriverKeyRepeatEnabled() { return mKeyRepeatDisabled; }
|
||||
|
||||
private:
|
||||
std::string mPath = "/test";
|
||||
std::string mName = "Test Device";
|
||||
std::string mLocation = "test/0";
|
||||
std::string mUniqueId = "test-id";
|
||||
|
||||
uint16_t mBusType = 0;
|
||||
uint16_t mVendorId = 0;
|
||||
uint16_t mProductId = 0;
|
||||
uint16_t mVersion = 0;
|
||||
|
||||
std::set<int32_t> mKeys;
|
||||
std::set<int32_t> mRelAxes;
|
||||
std::map<int32_t, AbsoluteAxisInfo*> mAbsAxes;
|
||||
std::set<int32_t> mSwitches;
|
||||
std::set<int32_t> mForceFeedbacks;
|
||||
std::set<int32_t> mInputProperties;
|
||||
|
||||
bool mKeyRepeatDisabled = false;
|
||||
};
|
||||
|
||||
namespace MockNexus7v2 {
|
||||
MockInputDeviceNode* getElanTouchscreen();
|
||||
MockInputDeviceNode* getLidInput();
|
||||
MockInputDeviceNode* getButtonJack();
|
||||
MockInputDeviceNode* getHeadsetJack();
|
||||
MockInputDeviceNode* getH2wButton();
|
||||
MockInputDeviceNode* getGpioKeys();
|
||||
} // namespace MockNexus7v2
|
||||
|
||||
namespace MockNexusPlayer {
|
||||
MockInputDeviceNode* getGpioKeys();
|
||||
MockInputDeviceNode* getMidPowerBtn();
|
||||
MockInputDeviceNode* getNexusRemote();
|
||||
MockInputDeviceNode* getAsusGamepad();
|
||||
} // namespace MockNexusPlayer
|
||||
|
||||
} // namespace android
|
||||
|
||||
#endif // ANDROID_INPUT_MOCKS_H_
|
Loading…
Add table
Add a link
Reference in a new issue