summaryrefslogtreecommitdiff
path: root/libs/input/KeyLayoutMap.cpp
AgeCommit message (Collapse)Author
2024-07-24Fix key location API, when many to one key mapping with KL flags Vaibhav Devmurari
Test: manual Flag: EXEMPT minor bugfix Bug: 354333072 Change-Id: Ide657343873f7342cde14fa58fce64b9bbfd6ef9
2024-01-18Skip loading kernel configs unless needed Hiroki Sato
Loading kernel configs is needed when the specified layout has "requires_kernel_config". Otherwise, we don't need to load kernel configs. Bug: 320198280 Test: presubmit Change-Id: I7955d65d804ed4965235a1649c5f5f53996f4d3b
2023-12-22libinput: use libkernelconfigs insteadof libvintf Jooyung Han
We'd like to limit the direct usage of libvintf. Bug: 270169217 Test: atest libinput_tests Change-Id: I7630116345e1db736a8173467fc865cea6ec4e96
2023-10-02Add flag to mark key usage code as a fallback mapping Arpit Singh
We don't yet have a way to determine if a device can actually report a usage code. Adding a flag to mark usage code as fallback only mapping. Bug: 297094448 Test: atest inputflinger_tests Change-Id: I137113d0dc9a1c8abf523b96942486be176d0240
2023-08-16Use String8/16 c_str [input] Tomasz Wasilczyk
Bug: 295394788 Test: make checkbuild Change-Id: Iffbcff6f58e30c0bd40e699ba6e1f917addc5ade
2023-04-07Merge "hasKeycodeLocked() also checks usage codes" am: 8521bfe7ad am: ↵ Josep del Río
c224482a8a am: 48a440198d Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2514955 Change-Id: Ic0ce48b297bb9040d919e6c94d2398fdd1187ac7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-31hasKeycodeLocked() also checks usage codes Charles Lin
Key map can use both scan code and usage code. Adding usage code check to avoid misjudgment. Bug: 275526611 Test: In Android TV, pairing a BT RCU with keylayout which has usage page/id for DPAD. In PlayStore app search box, make sure user can move focus to search result by pressing dpad DOWN key. Change-Id: I70687d308899537e457192458176b1553c350f14
2023-01-24Validate axes and led labels correctly Siarhei Vishniakou
Before this CL, a number of checks for kl file validity were incorrect. Some of the APIs were supposed to return an invalid value, but instead were always returning a valid value, no matter what the input was. Correct these values by switching to std::optional. Bug: 266400536 Test: m libinput_tests && adb sync data && adb shell -t /data/nativetest64/libinput_tests/libinput_tests Change-Id: I4ef45f3249dca4f4f033fb85e9fecbc2ad1f1395
2022-08-23Merge changes I086b5045,I753fb07a,Iea2bb7fd TreeHugger Robot
* changes: Improve EventHub const-correctness Refactor AssociatedDevice initialization in EventHub EventHub: Associate AsociatedDevice using sysfs path, not descriptor
2022-08-23Improve EventHub const-correctness Prabir Pradhan
Ensure that all methods that "get" state from event hub are const-correct. While some "set" methods can also be const in event hub because they write to the system (side effect) instead of changing state, we leave these as non-const to make it easier for testing. Bug: None Test: atest inputflinger_tests Change-Id: I086b50458203a2395b1960e2bc1102610a3c0801
2022-08-22Do not read kernel configs on the host Siarhei Vishniakou
When the code runs on host (so that it can validate the key layout maps), it currently will attempt to read the kernel configs on the host. What we actually want is to either read the kernel configs on the device, or to always assume that the config exists. In this CL, we simply assume that the config exists. Since we are calling this tool for all key layouts, it should not affect the validation. Test: m out/target/common/obj/ETC/validate_framework_keymaps_intermediates/stamp Bug: 237835584 Change-Id: I79158a7591fa4d8ff0a33dcae9df2b138ae33485
2022-08-19Do not read kernel configs on the host Siarhei Vishniakou
When the code runs on host (so that it can validate the key layout maps), it currently will attempt to read the kernel configs on the host. What we actually want is to either read the kernel configs on the device, or to always assume that the config exists. In this CL, we simply assume that the config exists. Since we are calling this tool for all key layouts, it should not affect the validation. Test: m out/target/common/obj/ETC/validate_framework_keymaps_intermediates/stamp Bug: 237835584 Change-Id: I79158a7591fa4d8ff0a33dcae9df2b138ae33485
2022-06-16Do not load keylayout if required kernel module is missing Siarhei Vishniakou
Some key layouts require the presence of a specific kernel module. If the kernel module is not present, the layout should not be loaded. In this CL, we add an option to specify which kernel modules / configs are needed inside the kl file. Bug: 228005926 Test: atest libinput_tests Change-Id: I0d2ab6298bd41df6dc56120bf0385e10da6c3bfe Merged-In: I0d2ab6298bd41df6dc56120bf0385e10da6c3bfe
2022-06-10Avoid using KeyedVector in KeyLayoutMap Siarhei Vishniakou
There's a supported alternative, std::unordered_map, that we should be using instead. Bug: 228005926 Test: atest libinput_tests inputflinger_tests Merged-In: Ia1f41d17d7ee912534edffe1a1e7655866fa54c6 Change-Id: Ia1f41d17d7ee912534edffe1a1e7655866fa54c6 (cherry picked from commit 577962e532f235c67ea037f0fd7754834b1ff662)
2022-06-10Refactor input code for require_kernel_config parameter Siarhei Vishniakou
As part of the next commit to allow kl files to specify a required kernel config, some small refactorings were done. Move those here to a separate CL to make it easier to review. Bug: 228005926 Test: atest libinput_tests Merged-In: Iab06bb6ef44807308ee2b3e6b8a0c780bb748f09 Change-Id: Iab06bb6ef44807308ee2b3e6b8a0c780bb748f09 (cherry picked from commit 5ed8eaab67ad7ec3ac1110d696f5d89596a5a887)
2022-06-03Do not load keylayout if required kernel module is missing Siarhei Vishniakou
Some key layouts require the presence of a specific kernel module. If the kernel module is not present, the layout should not be loaded. In this CL, we add an option to specify which kernel modules / configs are needed inside the kl file. Bug: 228005926 Test: atest libinput_tests Change-Id: I0d2ab6298bd41df6dc56120bf0385e10da6c3bfe
2022-05-27Avoid using KeyedVector in KeyLayoutMap Siarhei Vishniakou
There's a supported alternative, std::unordered_map, that we should be using instead. Bug: 228005926 Test: atest libinput_tests inputflinger_tests Change-Id: Ia1f41d17d7ee912534edffe1a1e7655866fa54c6
2022-05-20Refactor input code for require_kernel_config parameter Siarhei Vishniakou
As part of the next commit to allow kl files to specify a required kernel config, some small refactorings were done. Move those here to a separate CL to make it easier to review. Bug: 228005926 Test: atest libinput_tests Change-Id: Iab06bb6ef44807308ee2b3e6b8a0c780bb748f09
2021-09-09FTL: Extend enum utilities imported from IF Dominik Laskowski
Generalize compile-time and run-time lookup of enumerator names by recognizing ftl_first and ftl_last to customize the range. Add enum_range<E>() for iteration using range-based `for` loop. Bug: 185536303 Test: Check assembly for small LUT in .rodata, and unrolled loops. Test: ftl_test, libinput_tests, inputflinger_tests Test: m libinputflinger Change-Id: I0581611f4cfcf5837b0293867cb323742afb2c87
2021-06-28Renamed and moved InputWindow and related files chaviw
In preparation for the hierarchy listener interface, moved the InputWindow structs into libgui and have libinput dependant on libgui. Also renamed InputWindow to exclude Input since it will be used for more generic purposes. Test: Builds and flashes Bug: 188792659 Change-Id: I24262cbc14d409c00273de0024a672394a959e5f
2020-12-21Add explicit Result::ok() checks where needed Bernie Innocenti
Test: m checkbuild continuous_instrumentation_tests continuous_instrumentation_tests_api_coverage continuous_native_tests device-tests platform_tests Exempt-From-Owner-Approval: mechanical mass refactoring Change-Id: I9b893af3c9981f8cdf5c142297398f68133bd075
2020-12-16Add SensorManager support in inputflinger. Chris Ye
Add sensor device, sensor input mapper, sens event dispatcher support into inputflinger. Bug: 161634265 Test: atest inputflinger_tests Change-Id: I2dcb2c35d9dccefc4cd8d939b79cf340931a9410
2020-08-28Move KeyLayoutMap from RefBase to shared_ptr. Chris Ye
Move KeyLayoutMap from inheriting RefBase and use shared_ptr to store in owner class like KeyMap. Bug: 160010896 Test: atest inputflinger, atest libinput_tests Change-Id: I565e07bdc501af644df5ebb8388fce10af185bce
2020-08-21Optimize memory usage of InputEvent lookup. Chris Ye
Move the declaration of look up map to cpp file from header file to avoid duplicate copies. Bug: 165527068 Bug: 165398580 Bug: 165035349 Test: atest libinput_tests, atest inputflinger_tests adb shell showmap <system_server pid> | grep input Check libinput.so and libinput_reader.so size to be 300 and 372KB. Change-Id: Ia80200b7889f16ce576637d746e64641f3f2a094
2019-03-21Use std::vector over Vector for InputFlinger (1/3) Arthur Hung
Replace Vector<T> with std::vector<T>. Bug: 112399697 Test: atest inputflinger_tests Change-Id: I8baec68f7a684d97210077f3e387ca1096586a25
2018-09-05Prefer std::string over String8 Siarhei Vishniakou
String8 is deprecated, so use proper C++ std::string instead. Change DisplayViewport.uniqueId to std::string. The current usage of String8 in DisplayViewport hinders refactoring of the code to use viewport types inside the viewports themselves. Most of the dependency on String8 is now removed. Once the xml for properties patch is added, almost all String8 should be gone from the input system. Test: atest libinput_tests inputflinger_tests Bug: 111108021 Change-Id: I580dc27b0449e664a7c9db2cdec1a0c18bf71a09
2018-07-17[input] Modernize codebase by replacing NULL with nullptr Yi Kong
Fixes -Wzero-as-null-pointer-constant warning. Test: m Bug: 68236239 Change-Id: I8882234efd2a0b3ef27472d3f5d4e9c69c6e7b37
2014-04-22Move key attribute information out of native. Michael Wright
Native doesn't ever actually care about the attributes of keys, so move all of it up into the managed layer and move all of the key names down so they're defined once. Change-Id: Ic8ded13ce050b2b98744735ff50d11e8d882d7d5
2013-10-18Parse LED mappings in keylayout files Michael Wright
Change-Id: I6bc3760341868015f054d9866e2616a312da94e0
2013-07-01Move input library code from frameworks/base. Jeff Brown
Change-Id: I4983db61b53e28479fc90d9211fafff68f7f49a6