diff options
author | Michael Wright <michaelwr@google.com> | 2015-09-22 21:04:33 +0100 |
---|---|---|
committer | Michael Wright <michaelwr@google.com> | 2015-09-22 22:05:48 +0100 |
commit | a16b98c64f5246650aa5b6bc397a2d1fa6539107 (patch) | |
tree | 7ed41fab2e4fd9cd50daae47f385700ca1ffc83e /services | |
parent | d693fc4c50873485794d1e0f444547d3253a56d3 (diff) | |
download | frameworks_native-a16b98c64f5246650aa5b6bc397a2d1fa6539107.zip frameworks_native-a16b98c64f5246650aa5b6bc397a2d1fa6539107.tar.gz frameworks_native-a16b98c64f5246650aa5b6bc397a2d1fa6539107.tar.bz2 |
DO NOT MERGE Revert "am f37143d8: Merge "Cancel touches as well as pointer gestures." into mnc-dev"
This reverts commit 9b70ab7a3cb260205e81e40ba181a86710d2eb95, reversing
changes made to 153008efb5a00ed3c18d588ce15f90d2442a9786.
Bug: 24302031
Change-Id: Ia746381b30be3b54cb646ed412b7271962c4b02a
Diffstat (limited to 'services')
-rw-r--r-- | services/inputflinger/InputReader.cpp | 34 | ||||
-rw-r--r-- | services/inputflinger/InputReader.h | 4 | ||||
-rw-r--r-- | services/inputflinger/host/InputDriver.cpp | 170 | ||||
-rw-r--r-- | services/inputflinger/host/InputDriver.h | 2 |
4 files changed, 19 insertions, 191 deletions
diff --git a/services/inputflinger/InputReader.cpp b/services/inputflinger/InputReader.cpp index 36095bf..8a22e3d 100644 --- a/services/inputflinger/InputReader.cpp +++ b/services/inputflinger/InputReader.cpp @@ -3860,7 +3860,6 @@ void TouchInputMapper::reset(nsecs_t when) { mPointerUsage = POINTER_USAGE_NONE; mSentHoverEnter = false; mHavePointerIds = false; - mCurrentMotionAborted = false; mDownTime = 0; mCurrentVirtualKey.down = false; @@ -4088,17 +4087,11 @@ void TouchInputMapper::cookAndDispatch(nsecs_t when) { mCurrentCookedState.cookedPointerData.touchingIdBits); } - if (!mCurrentMotionAborted) { - dispatchButtonRelease(when, policyFlags); - dispatchHoverExit(when, policyFlags); - dispatchTouches(when, policyFlags); - dispatchHoverEnterAndMove(when, policyFlags); - dispatchButtonPress(when, policyFlags); - } - - if (mCurrentCookedState.cookedPointerData.pointerCount == 0) { - mCurrentMotionAborted = false; - } + dispatchButtonRelease(when, policyFlags); + dispatchHoverExit(when, policyFlags); + dispatchTouches(when, policyFlags); + dispatchHoverEnterAndMove(when, policyFlags); + dispatchButtonPress(when, policyFlags); } // Synthesize key up from raw buttons if needed. @@ -4323,22 +4316,6 @@ void TouchInputMapper::dispatchVirtualKey(nsecs_t when, uint32_t policyFlags, getListener()->notifyKey(&args); } -void TouchInputMapper::abortTouches(nsecs_t when, uint32_t policyFlags) { - BitSet32 currentIdBits = mCurrentCookedState.cookedPointerData.touchingIdBits; - if (!currentIdBits.isEmpty()) { - int32_t metaState = getContext()->getGlobalMetaState(); - int32_t buttonState = mCurrentCookedState.buttonState; - dispatchMotion(when, policyFlags, mSource, AMOTION_EVENT_ACTION_CANCEL, 0, 0, - metaState, buttonState, AMOTION_EVENT_EDGE_FLAG_NONE, - mCurrentCookedState.cookedPointerData.pointerProperties, - mCurrentCookedState.cookedPointerData.pointerCoords, - mCurrentCookedState.cookedPointerData.idToIndex, - currentIdBits, -1, - mOrientedXPrecision, mOrientedYPrecision, mDownTime); - mCurrentMotionAborted = true; - } -} - void TouchInputMapper::dispatchTouches(nsecs_t when, uint32_t policyFlags) { BitSet32 currentIdBits = mCurrentCookedState.cookedPointerData.touchingIdBits; BitSet32 lastIdBits = mLastCookedState.cookedPointerData.touchingIdBits; @@ -6112,7 +6089,6 @@ void TouchInputMapper::fadePointer() { void TouchInputMapper::cancelTouch(nsecs_t when) { abortPointerUsage(when, 0 /*policyFlags*/); - abortTouches(when, 0 /* policyFlags*/); } bool TouchInputMapper::isPointInsideSurface(int32_t x, int32_t y) { diff --git a/services/inputflinger/InputReader.h b/services/inputflinger/InputReader.h index 7cb4680..4062ec7 100644 --- a/services/inputflinger/InputReader.h +++ b/services/inputflinger/InputReader.h @@ -1469,9 +1469,6 @@ protected: // Have we assigned pointer IDs for this stream bool mHavePointerIds; - // Is the current stream of direct touch events aborted - bool mCurrentMotionAborted; - // The time the primary pointer last went down. nsecs_t mDownTime; @@ -1805,7 +1802,6 @@ private: void dispatchButtonPress(nsecs_t when, uint32_t policyFlags); const BitSet32& findActiveIdBits(const CookedPointerData& cookedPointerData); void cookPointerData(); - void abortTouches(nsecs_t when, uint32_t policyFlags); void dispatchPointerUsage(nsecs_t when, uint32_t policyFlags, PointerUsage pointerUsage); void abortPointerUsage(nsecs_t when, uint32_t policyFlags); diff --git a/services/inputflinger/host/InputDriver.cpp b/services/inputflinger/host/InputDriver.cpp index cb4ccbe..630a596 100644 --- a/services/inputflinger/host/InputDriver.cpp +++ b/services/inputflinger/host/InputDriver.cpp @@ -14,11 +14,8 @@ * limitations under the License. */ -#include <functional> #include <stdint.h> #include <sys/types.h> -#include <unordered_map> -#include <vector> #define LOG_TAG "InputDriver" @@ -28,9 +25,7 @@ #include "InputHost.h" #include <hardware/input.h> -#include <input/InputDevice.h> #include <utils/Log.h> -#include <utils/PropertyMap.h> #include <utils/String8.h> #define INDENT2 " " @@ -42,7 +37,6 @@ static input_host_callbacks_t kCallbacks = { .create_device_definition = create_device_definition, .create_input_report_definition = create_input_report_definition, .create_output_report_definition = create_output_report_definition, - .free_report_definition = free_report_definition, .input_device_definition_add_report = input_device_definition_add_report, .input_report_definition_add_collection = input_report_definition_add_collection, .input_report_definition_declare_usage_int = input_report_definition_declare_usage_int, @@ -75,214 +69,78 @@ void InputDriver::dump(String8& result) { result.appendFormat(INDENT2 "HAL Input Driver (%s)\n", mName.string()); } -} // namespace android - -struct input_property_map { - android::PropertyMap* propertyMap; -}; - -struct input_property { - android::String8 key; - android::String8 value; -}; - -struct input_device_identifier { - const char* name; - const char* uniqueId; - input_bus_t bus; - int32_t vendorId; - int32_t productId; - int32_t version; -}; - -struct input_device_definition { - std::vector<input_report_definition*> reportDefs; -}; - -struct input_device_handle { - input_device_identifier_t* id; - input_device_definition_t* def; -}; - -struct input_int_usage { - input_usage_t usage; - int32_t min; - int32_t max; - float resolution; -}; - -struct input_collection { - int32_t arity; - std::vector<input_int_usage> intUsages; - std::vector<input_usage_t> boolUsages; -}; - -struct InputCollectionIdHasher { - std::size_t operator()(const input_collection_id& id) const { - return std::hash<int>()(static_cast<int>(id)); - } -}; - -struct input_report_definition { - std::unordered_map<input_collection_id_t, input_collection, InputCollectionIdHasher> collections; -}; // HAL wrapper functions -namespace android { - -::input_device_identifier_t* create_device_identifier(input_host_t* host, +input_device_identifier_t* create_device_identifier(input_host_t* host, const char* name, int32_t product_id, int32_t vendor_id, input_bus_t bus, const char* unique_id) { - auto identifier = new ::input_device_identifier { - .name = name, - .productId = product_id, - .vendorId = vendor_id, - //.bus = bus, - .uniqueId = unique_id, - }; - // store this identifier somewhere? in the host? - return identifier; + return nullptr; } input_device_definition_t* create_device_definition(input_host_t* host) { - return new ::input_device_definition; + return nullptr; } input_report_definition_t* create_input_report_definition(input_host_t* host) { - return new ::input_report_definition; + return nullptr; } input_report_definition_t* create_output_report_definition(input_host_t* host) { - return new ::input_report_definition; -} - -void free_report_definition(input_host_t* host, input_report_definition_t* report_def) { - delete report_def; + return nullptr; } void input_device_definition_add_report(input_host_t* host, - input_device_definition_t* d, input_report_definition_t* r) { - d->reportDefs.push_back(r); -} + input_device_definition_t* d, input_report_definition_t* r) { } void input_report_definition_add_collection(input_host_t* host, - input_report_definition_t* report, input_collection_id_t id, int32_t arity) { - report->collections[id] = {.arity = arity}; -} + input_report_definition_t* report, input_collection_id_t id, int32_t arity) { } void input_report_definition_declare_usage_int(input_host_t* host, input_report_definition_t* report, input_collection_id_t id, - input_usage_t usage, int32_t min, int32_t max, float resolution) { - if (report->collections.find(id) != report->collections.end()) { - report->collections[id].intUsages.push_back({ - .usage = usage, .min = min, .max = max, .resolution = resolution}); - } -} + input_usage_t usage, int32_t min, int32_t max, float resolution) { } void input_report_definition_declare_usages_bool(input_host_t* host, input_report_definition_t* report, input_collection_id_t id, - input_usage_t* usage, size_t usage_count) { - if (report->collections.find(id) != report->collections.end()) { - for (size_t i = 0; i < usage_count; ++i) { - report->collections[id].boolUsages.push_back(usage[i]); - } - } -} + input_usage_t* usage, size_t usage_count) { } + input_device_handle_t* register_device(input_host_t* host, input_device_identifier_t* id, input_device_definition_t* d) { - ALOGD("Registering device %s with %d input reports", id->name, d->reportDefs.size()); - return new input_device_handle{ .id = id, .def = d }; + return nullptr; } input_report_t* input_allocate_report(input_host_t* host, input_report_definition_t* r) { - ALOGD("Allocating input report for definition %p", r); return nullptr; } - void input_report_set_usage_int(input_host_t* host, input_report_t* r, input_collection_id_t id, input_usage_t usage, int32_t value, int32_t arity_index) { } void input_report_set_usage_bool(input_host_t* host, input_report_t* r, input_collection_id_t id, input_usage_t usage, bool value, int32_t arity_index) { } -void report_event(input_host_t* host, input_device_handle_t* d, input_report_t* report) { - ALOGD("report_event %p for handle %p", report, d); -} +void report_event(input_host_t* host, input_device_handle_t* d, input_report_t* report) { } input_property_map_t* input_get_device_property_map(input_host_t* host, input_device_identifier_t* id) { - InputDeviceIdentifier idi; - idi.name = id->name; - idi.uniqueId = id->uniqueId; - idi.bus = id->bus; - idi.vendor = id->vendorId; - idi.product = id->productId; - idi.version = id->version; - - String8 configFile = getInputDeviceConfigurationFilePathByDeviceIdentifier( - idi, INPUT_DEVICE_CONFIGURATION_FILE_TYPE_CONFIGURATION); - if (configFile.isEmpty()) { - ALOGD("No input device configuration file found for device '%s'.", - idi.name.string()); - } else { - auto propMap = new input_property_map_t(); - status_t status = PropertyMap::load(configFile, &propMap->propertyMap); - if (status) { - ALOGE("Error loading input device configuration file for device '%s'. " - "Using default configuration.", - idi.name.string()); - delete propMap; - return nullptr; - } - return propMap; - } return nullptr; } input_property_t* input_get_device_property(input_host_t* host, input_property_map_t* map, const char* key) { - String8 keyString(key); - if (map != nullptr) { - if (map->propertyMap->hasProperty(keyString)) { - auto prop = new input_property_t(); - if (!map->propertyMap->tryGetProperty(keyString, prop->value)) { - delete prop; - return nullptr; - } - prop->key = keyString; - return prop; - } - } return nullptr; } const char* input_get_property_key(input_host_t* host, input_property_t* property) { - if (property != nullptr) { - return property->key.string(); - } return nullptr; } const char* input_get_property_value(input_host_t* host, input_property_t* property) { - if (property != nullptr) { - return property->value.string(); - } return nullptr; } -void input_free_device_property(input_host_t* host, input_property_t* property) { - if (property != nullptr) { - delete property; - } -} +void input_free_device_property(input_host_t* host, input_property_t* property) { } -void input_free_device_property_map(input_host_t* host, input_property_map_t* map) { - if (map != nullptr) { - delete map->propertyMap; - delete map; - } -} +void input_free_device_property_map(input_host_t* host, input_property_map_t* map) { } } // namespace android diff --git a/services/inputflinger/host/InputDriver.h b/services/inputflinger/host/InputDriver.h index 9bc14a7..7734ac2 100644 --- a/services/inputflinger/host/InputDriver.h +++ b/services/inputflinger/host/InputDriver.h @@ -68,8 +68,6 @@ input_report_definition_t* create_input_report_definition(input_host_t* host); input_report_definition_t* create_output_report_definition(input_host_t* host); -void free_report_definition(input_host_t* host, input_report_definition_t* report_def); - void input_device_definition_add_report(input_host_t* host, input_device_definition_t* d, input_report_definition_t* r); |