Loading services/inputflinger/reader/EventHub.cpp +4 −5 Original line number Diff line number Diff line Loading @@ -882,14 +882,13 @@ int32_t EventHub::getDeviceControllerNumber(int32_t deviceId) const { return device != nullptr ? device->controllerNumber : 0; } void EventHub::getConfiguration(int32_t deviceId, PropertyMap* outConfiguration) const { std::optional<PropertyMap> EventHub::getConfiguration(int32_t deviceId) const { std::scoped_lock _l(mLock); Device* device = getDeviceLocked(deviceId); if (device != nullptr && device->configuration) { *outConfiguration = *device->configuration; } else { outConfiguration->clear(); if (device == nullptr || device->configuration == nullptr) { return {}; } return *device->configuration; } status_t EventHub::getAbsoluteAxisInfo(int32_t deviceId, int axis, Loading services/inputflinger/reader/InputDevice.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -284,9 +284,11 @@ std::list<NotifyArgs> InputDevice::configure(nsecs_t when, const InputReaderConf if (!changes || (changes & InputReaderConfiguration::CHANGE_DEVICE_TYPE)) { mConfiguration.clear(); for_each_subdevice([this](InputDeviceContext& context) { PropertyMap configuration; context.getConfiguration(&configuration); mConfiguration.addAll(&configuration); std::optional<PropertyMap> configuration = getEventHub()->getConfiguration(context.getEventHubId()); if (configuration) { mConfiguration.addAll(&(*configuration)); } }); mAssociatedDeviceType = Loading services/inputflinger/reader/include/EventHub.h +8 −2 Original line number Diff line number Diff line Loading @@ -263,7 +263,13 @@ public: virtual int32_t getDeviceControllerNumber(int32_t deviceId) const = 0; virtual void getConfiguration(int32_t deviceId, PropertyMap* outConfiguration) const = 0; /** * Get the PropertyMap for the provided EventHub device, if available. * This acquires the device lock, so a copy is returned rather than the raw pointer * to the device's PropertyMap. A std::nullopt may be returned if the device could * not be found, or if it doesn't have any configuration. */ virtual std::optional<PropertyMap> getConfiguration(int32_t deviceId) const = 0; virtual status_t getAbsoluteAxisInfo(int32_t deviceId, int axis, RawAbsoluteAxisInfo* outAxisInfo) const = 0; Loading Loading @@ -464,7 +470,7 @@ public: int32_t getDeviceControllerNumber(int32_t deviceId) const override final; void getConfiguration(int32_t deviceId, PropertyMap* outConfiguration) const override final; std::optional<PropertyMap> getConfiguration(int32_t deviceId) const override final; status_t getAbsoluteAxisInfo(int32_t deviceId, int axis, RawAbsoluteAxisInfo* outAxisInfo) const override final; Loading services/inputflinger/reader/include/InputDevice.h +0 −3 Original line number Diff line number Diff line Loading @@ -269,9 +269,6 @@ public: inline int32_t getDeviceControllerNumber() const { return mEventHub->getDeviceControllerNumber(mId); } inline void getConfiguration(PropertyMap* outConfiguration) const { return mEventHub->getConfiguration(mId, outConfiguration); } inline status_t getAbsoluteAxisInfo(int32_t code, RawAbsoluteAxisInfo* axisInfo) const { return mEventHub->getAbsoluteAxisInfo(mId, code, axisInfo); } Loading services/inputflinger/tests/FakeEventHub.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -255,11 +255,12 @@ int32_t FakeEventHub::getDeviceControllerNumber(int32_t) const { return 0; } void FakeEventHub::getConfiguration(int32_t deviceId, PropertyMap* outConfiguration) const { std::optional<PropertyMap> FakeEventHub::getConfiguration(int32_t deviceId) const { Device* device = getDevice(deviceId); if (device) { *outConfiguration = device->configuration; if (device == nullptr) { return {}; } return device->configuration; } status_t FakeEventHub::getAbsoluteAxisInfo(int32_t deviceId, int axis, Loading Loading
services/inputflinger/reader/EventHub.cpp +4 −5 Original line number Diff line number Diff line Loading @@ -882,14 +882,13 @@ int32_t EventHub::getDeviceControllerNumber(int32_t deviceId) const { return device != nullptr ? device->controllerNumber : 0; } void EventHub::getConfiguration(int32_t deviceId, PropertyMap* outConfiguration) const { std::optional<PropertyMap> EventHub::getConfiguration(int32_t deviceId) const { std::scoped_lock _l(mLock); Device* device = getDeviceLocked(deviceId); if (device != nullptr && device->configuration) { *outConfiguration = *device->configuration; } else { outConfiguration->clear(); if (device == nullptr || device->configuration == nullptr) { return {}; } return *device->configuration; } status_t EventHub::getAbsoluteAxisInfo(int32_t deviceId, int axis, Loading
services/inputflinger/reader/InputDevice.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -284,9 +284,11 @@ std::list<NotifyArgs> InputDevice::configure(nsecs_t when, const InputReaderConf if (!changes || (changes & InputReaderConfiguration::CHANGE_DEVICE_TYPE)) { mConfiguration.clear(); for_each_subdevice([this](InputDeviceContext& context) { PropertyMap configuration; context.getConfiguration(&configuration); mConfiguration.addAll(&configuration); std::optional<PropertyMap> configuration = getEventHub()->getConfiguration(context.getEventHubId()); if (configuration) { mConfiguration.addAll(&(*configuration)); } }); mAssociatedDeviceType = Loading
services/inputflinger/reader/include/EventHub.h +8 −2 Original line number Diff line number Diff line Loading @@ -263,7 +263,13 @@ public: virtual int32_t getDeviceControllerNumber(int32_t deviceId) const = 0; virtual void getConfiguration(int32_t deviceId, PropertyMap* outConfiguration) const = 0; /** * Get the PropertyMap for the provided EventHub device, if available. * This acquires the device lock, so a copy is returned rather than the raw pointer * to the device's PropertyMap. A std::nullopt may be returned if the device could * not be found, or if it doesn't have any configuration. */ virtual std::optional<PropertyMap> getConfiguration(int32_t deviceId) const = 0; virtual status_t getAbsoluteAxisInfo(int32_t deviceId, int axis, RawAbsoluteAxisInfo* outAxisInfo) const = 0; Loading Loading @@ -464,7 +470,7 @@ public: int32_t getDeviceControllerNumber(int32_t deviceId) const override final; void getConfiguration(int32_t deviceId, PropertyMap* outConfiguration) const override final; std::optional<PropertyMap> getConfiguration(int32_t deviceId) const override final; status_t getAbsoluteAxisInfo(int32_t deviceId, int axis, RawAbsoluteAxisInfo* outAxisInfo) const override final; Loading
services/inputflinger/reader/include/InputDevice.h +0 −3 Original line number Diff line number Diff line Loading @@ -269,9 +269,6 @@ public: inline int32_t getDeviceControllerNumber() const { return mEventHub->getDeviceControllerNumber(mId); } inline void getConfiguration(PropertyMap* outConfiguration) const { return mEventHub->getConfiguration(mId, outConfiguration); } inline status_t getAbsoluteAxisInfo(int32_t code, RawAbsoluteAxisInfo* axisInfo) const { return mEventHub->getAbsoluteAxisInfo(mId, code, axisInfo); } Loading
services/inputflinger/tests/FakeEventHub.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -255,11 +255,12 @@ int32_t FakeEventHub::getDeviceControllerNumber(int32_t) const { return 0; } void FakeEventHub::getConfiguration(int32_t deviceId, PropertyMap* outConfiguration) const { std::optional<PropertyMap> FakeEventHub::getConfiguration(int32_t deviceId) const { Device* device = getDevice(deviceId); if (device) { *outConfiguration = device->configuration; if (device == nullptr) { return {}; } return device->configuration; } status_t FakeEventHub::getAbsoluteAxisInfo(int32_t deviceId, int axis, Loading