You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							447 lines
						
					
					
						
							13 KiB
						
					
					
				
			
		
		
	
	
							447 lines
						
					
					
						
							13 KiB
						
					
					
				| /*
 | |
|  * Copyright (C) 2008 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 _LIBINPUT_INPUT_EVENT_LABELS_H
 | |
| #define _LIBINPUT_INPUT_EVENT_LABELS_H
 | |
| 
 | |
| #include <input/Input.h>
 | |
| #include <android/keycodes.h>
 | |
| 
 | |
| #define DEFINE_KEYCODE(key) { #key, AKEYCODE_##key }
 | |
| #define DEFINE_AXIS(axis) { #axis, AMOTION_EVENT_AXIS_##axis }
 | |
| #define DEFINE_LED(led) { #led, ALED_##led }
 | |
| #define DEFINE_FLAG(flag) { #flag, POLICY_FLAG_##flag }
 | |
| 
 | |
| namespace android {
 | |
| 
 | |
| template<typename T, size_t N>
 | |
| size_t size(T (&)[N]) { return N; }
 | |
| 
 | |
| struct InputEventLabel {
 | |
|     const char *literal;
 | |
|     int value;
 | |
| };
 | |
| 
 | |
| 
 | |
| static const InputEventLabel KEYCODES[] = {
 | |
|     // NOTE: If you add a new keycode here you must also add it to several other files.
 | |
|     //       Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
 | |
|     DEFINE_KEYCODE(UNKNOWN),
 | |
|     DEFINE_KEYCODE(SOFT_LEFT),
 | |
|     DEFINE_KEYCODE(SOFT_RIGHT),
 | |
|     DEFINE_KEYCODE(HOME),
 | |
|     DEFINE_KEYCODE(BACK),
 | |
|     DEFINE_KEYCODE(CALL),
 | |
|     DEFINE_KEYCODE(ENDCALL),
 | |
|     DEFINE_KEYCODE(0),
 | |
|     DEFINE_KEYCODE(1),
 | |
|     DEFINE_KEYCODE(2),
 | |
|     DEFINE_KEYCODE(3),
 | |
|     DEFINE_KEYCODE(4),
 | |
|     DEFINE_KEYCODE(5),
 | |
|     DEFINE_KEYCODE(6),
 | |
|     DEFINE_KEYCODE(7),
 | |
|     DEFINE_KEYCODE(8),
 | |
|     DEFINE_KEYCODE(9),
 | |
|     DEFINE_KEYCODE(STAR),
 | |
|     DEFINE_KEYCODE(POUND),
 | |
|     DEFINE_KEYCODE(DPAD_UP),
 | |
|     DEFINE_KEYCODE(DPAD_DOWN),
 | |
|     DEFINE_KEYCODE(DPAD_LEFT),
 | |
|     DEFINE_KEYCODE(DPAD_RIGHT),
 | |
|     DEFINE_KEYCODE(DPAD_CENTER),
 | |
|     DEFINE_KEYCODE(VOLUME_UP),
 | |
|     DEFINE_KEYCODE(VOLUME_DOWN),
 | |
|     DEFINE_KEYCODE(POWER),
 | |
|     DEFINE_KEYCODE(CAMERA),
 | |
|     DEFINE_KEYCODE(CLEAR),
 | |
|     DEFINE_KEYCODE(A),
 | |
|     DEFINE_KEYCODE(B),
 | |
|     DEFINE_KEYCODE(C),
 | |
|     DEFINE_KEYCODE(D),
 | |
|     DEFINE_KEYCODE(E),
 | |
|     DEFINE_KEYCODE(F),
 | |
|     DEFINE_KEYCODE(G),
 | |
|     DEFINE_KEYCODE(H),
 | |
|     DEFINE_KEYCODE(I),
 | |
|     DEFINE_KEYCODE(J),
 | |
|     DEFINE_KEYCODE(K),
 | |
|     DEFINE_KEYCODE(L),
 | |
|     DEFINE_KEYCODE(M),
 | |
|     DEFINE_KEYCODE(N),
 | |
|     DEFINE_KEYCODE(O),
 | |
|     DEFINE_KEYCODE(P),
 | |
|     DEFINE_KEYCODE(Q),
 | |
|     DEFINE_KEYCODE(R),
 | |
|     DEFINE_KEYCODE(S),
 | |
|     DEFINE_KEYCODE(T),
 | |
|     DEFINE_KEYCODE(U),
 | |
|     DEFINE_KEYCODE(V),
 | |
|     DEFINE_KEYCODE(W),
 | |
|     DEFINE_KEYCODE(X),
 | |
|     DEFINE_KEYCODE(Y),
 | |
|     DEFINE_KEYCODE(Z),
 | |
|     DEFINE_KEYCODE(COMMA),
 | |
|     DEFINE_KEYCODE(PERIOD),
 | |
|     DEFINE_KEYCODE(ALT_LEFT),
 | |
|     DEFINE_KEYCODE(ALT_RIGHT),
 | |
|     DEFINE_KEYCODE(SHIFT_LEFT),
 | |
|     DEFINE_KEYCODE(SHIFT_RIGHT),
 | |
|     DEFINE_KEYCODE(TAB),
 | |
|     DEFINE_KEYCODE(SPACE),
 | |
|     DEFINE_KEYCODE(SYM),
 | |
|     DEFINE_KEYCODE(EXPLORER),
 | |
|     DEFINE_KEYCODE(ENVELOPE),
 | |
|     DEFINE_KEYCODE(ENTER),
 | |
|     DEFINE_KEYCODE(DEL),
 | |
|     DEFINE_KEYCODE(GRAVE),
 | |
|     DEFINE_KEYCODE(MINUS),
 | |
|     DEFINE_KEYCODE(EQUALS),
 | |
|     DEFINE_KEYCODE(LEFT_BRACKET),
 | |
|     DEFINE_KEYCODE(RIGHT_BRACKET),
 | |
|     DEFINE_KEYCODE(BACKSLASH),
 | |
|     DEFINE_KEYCODE(SEMICOLON),
 | |
|     DEFINE_KEYCODE(APOSTROPHE),
 | |
|     DEFINE_KEYCODE(SLASH),
 | |
|     DEFINE_KEYCODE(AT),
 | |
|     DEFINE_KEYCODE(NUM),
 | |
|     DEFINE_KEYCODE(HEADSETHOOK),
 | |
|     DEFINE_KEYCODE(FOCUS),   // *Camera* focus
 | |
|     DEFINE_KEYCODE(PLUS),
 | |
|     DEFINE_KEYCODE(MENU),
 | |
|     DEFINE_KEYCODE(NOTIFICATION),
 | |
|     DEFINE_KEYCODE(SEARCH),
 | |
|     DEFINE_KEYCODE(MEDIA_PLAY_PAUSE),
 | |
|     DEFINE_KEYCODE(MEDIA_STOP),
 | |
|     DEFINE_KEYCODE(MEDIA_NEXT),
 | |
|     DEFINE_KEYCODE(MEDIA_PREVIOUS),
 | |
|     DEFINE_KEYCODE(MEDIA_REWIND),
 | |
|     DEFINE_KEYCODE(MEDIA_FAST_FORWARD),
 | |
|     DEFINE_KEYCODE(MUTE),
 | |
|     DEFINE_KEYCODE(PAGE_UP),
 | |
|     DEFINE_KEYCODE(PAGE_DOWN),
 | |
|     DEFINE_KEYCODE(PICTSYMBOLS),
 | |
|     DEFINE_KEYCODE(SWITCH_CHARSET),
 | |
|     DEFINE_KEYCODE(BUTTON_A),
 | |
|     DEFINE_KEYCODE(BUTTON_B),
 | |
|     DEFINE_KEYCODE(BUTTON_C),
 | |
|     DEFINE_KEYCODE(BUTTON_X),
 | |
|     DEFINE_KEYCODE(BUTTON_Y),
 | |
|     DEFINE_KEYCODE(BUTTON_Z),
 | |
|     DEFINE_KEYCODE(BUTTON_L1),
 | |
|     DEFINE_KEYCODE(BUTTON_R1),
 | |
|     DEFINE_KEYCODE(BUTTON_L2),
 | |
|     DEFINE_KEYCODE(BUTTON_R2),
 | |
|     DEFINE_KEYCODE(BUTTON_THUMBL),
 | |
|     DEFINE_KEYCODE(BUTTON_THUMBR),
 | |
|     DEFINE_KEYCODE(BUTTON_START),
 | |
|     DEFINE_KEYCODE(BUTTON_SELECT),
 | |
|     DEFINE_KEYCODE(BUTTON_MODE),
 | |
|     DEFINE_KEYCODE(ESCAPE),
 | |
|     DEFINE_KEYCODE(FORWARD_DEL),
 | |
|     DEFINE_KEYCODE(CTRL_LEFT),
 | |
|     DEFINE_KEYCODE(CTRL_RIGHT),
 | |
|     DEFINE_KEYCODE(CAPS_LOCK),
 | |
|     DEFINE_KEYCODE(SCROLL_LOCK),
 | |
|     DEFINE_KEYCODE(META_LEFT),
 | |
|     DEFINE_KEYCODE(META_RIGHT),
 | |
|     DEFINE_KEYCODE(FUNCTION),
 | |
|     DEFINE_KEYCODE(SYSRQ),
 | |
|     DEFINE_KEYCODE(BREAK),
 | |
|     DEFINE_KEYCODE(MOVE_HOME),
 | |
|     DEFINE_KEYCODE(MOVE_END),
 | |
|     DEFINE_KEYCODE(INSERT),
 | |
|     DEFINE_KEYCODE(FORWARD),
 | |
|     DEFINE_KEYCODE(MEDIA_PLAY),
 | |
|     DEFINE_KEYCODE(MEDIA_PAUSE),
 | |
|     DEFINE_KEYCODE(MEDIA_CLOSE),
 | |
|     DEFINE_KEYCODE(MEDIA_EJECT),
 | |
|     DEFINE_KEYCODE(MEDIA_RECORD),
 | |
|     DEFINE_KEYCODE(F1),
 | |
|     DEFINE_KEYCODE(F2),
 | |
|     DEFINE_KEYCODE(F3),
 | |
|     DEFINE_KEYCODE(F4),
 | |
|     DEFINE_KEYCODE(F5),
 | |
|     DEFINE_KEYCODE(F6),
 | |
|     DEFINE_KEYCODE(F7),
 | |
|     DEFINE_KEYCODE(F8),
 | |
|     DEFINE_KEYCODE(F9),
 | |
|     DEFINE_KEYCODE(F10),
 | |
|     DEFINE_KEYCODE(F11),
 | |
|     DEFINE_KEYCODE(F12),
 | |
|     DEFINE_KEYCODE(NUM_LOCK),
 | |
|     DEFINE_KEYCODE(NUMPAD_0),
 | |
|     DEFINE_KEYCODE(NUMPAD_1),
 | |
|     DEFINE_KEYCODE(NUMPAD_2),
 | |
|     DEFINE_KEYCODE(NUMPAD_3),
 | |
|     DEFINE_KEYCODE(NUMPAD_4),
 | |
|     DEFINE_KEYCODE(NUMPAD_5),
 | |
|     DEFINE_KEYCODE(NUMPAD_6),
 | |
|     DEFINE_KEYCODE(NUMPAD_7),
 | |
|     DEFINE_KEYCODE(NUMPAD_8),
 | |
|     DEFINE_KEYCODE(NUMPAD_9),
 | |
|     DEFINE_KEYCODE(NUMPAD_DIVIDE),
 | |
|     DEFINE_KEYCODE(NUMPAD_MULTIPLY),
 | |
|     DEFINE_KEYCODE(NUMPAD_SUBTRACT),
 | |
|     DEFINE_KEYCODE(NUMPAD_ADD),
 | |
|     DEFINE_KEYCODE(NUMPAD_DOT),
 | |
|     DEFINE_KEYCODE(NUMPAD_COMMA),
 | |
|     DEFINE_KEYCODE(NUMPAD_ENTER),
 | |
|     DEFINE_KEYCODE(NUMPAD_EQUALS),
 | |
|     DEFINE_KEYCODE(NUMPAD_LEFT_PAREN),
 | |
|     DEFINE_KEYCODE(NUMPAD_RIGHT_PAREN),
 | |
|     DEFINE_KEYCODE(VOLUME_MUTE),
 | |
|     DEFINE_KEYCODE(INFO),
 | |
|     DEFINE_KEYCODE(CHANNEL_UP),
 | |
|     DEFINE_KEYCODE(CHANNEL_DOWN),
 | |
|     DEFINE_KEYCODE(ZOOM_IN),
 | |
|     DEFINE_KEYCODE(ZOOM_OUT),
 | |
|     DEFINE_KEYCODE(TV),
 | |
|     DEFINE_KEYCODE(WINDOW),
 | |
|     DEFINE_KEYCODE(GUIDE),
 | |
|     DEFINE_KEYCODE(DVR),
 | |
|     DEFINE_KEYCODE(BOOKMARK),
 | |
|     DEFINE_KEYCODE(CAPTIONS),
 | |
|     DEFINE_KEYCODE(SETTINGS),
 | |
|     DEFINE_KEYCODE(TV_POWER),
 | |
|     DEFINE_KEYCODE(TV_INPUT),
 | |
|     DEFINE_KEYCODE(STB_POWER),
 | |
|     DEFINE_KEYCODE(STB_INPUT),
 | |
|     DEFINE_KEYCODE(AVR_POWER),
 | |
|     DEFINE_KEYCODE(AVR_INPUT),
 | |
|     DEFINE_KEYCODE(PROG_RED),
 | |
|     DEFINE_KEYCODE(PROG_GREEN),
 | |
|     DEFINE_KEYCODE(PROG_YELLOW),
 | |
|     DEFINE_KEYCODE(PROG_BLUE),
 | |
|     DEFINE_KEYCODE(APP_SWITCH),
 | |
|     DEFINE_KEYCODE(BUTTON_1),
 | |
|     DEFINE_KEYCODE(BUTTON_2),
 | |
|     DEFINE_KEYCODE(BUTTON_3),
 | |
|     DEFINE_KEYCODE(BUTTON_4),
 | |
|     DEFINE_KEYCODE(BUTTON_5),
 | |
|     DEFINE_KEYCODE(BUTTON_6),
 | |
|     DEFINE_KEYCODE(BUTTON_7),
 | |
|     DEFINE_KEYCODE(BUTTON_8),
 | |
|     DEFINE_KEYCODE(BUTTON_9),
 | |
|     DEFINE_KEYCODE(BUTTON_10),
 | |
|     DEFINE_KEYCODE(BUTTON_11),
 | |
|     DEFINE_KEYCODE(BUTTON_12),
 | |
|     DEFINE_KEYCODE(BUTTON_13),
 | |
|     DEFINE_KEYCODE(BUTTON_14),
 | |
|     DEFINE_KEYCODE(BUTTON_15),
 | |
|     DEFINE_KEYCODE(BUTTON_16),
 | |
|     DEFINE_KEYCODE(LANGUAGE_SWITCH),
 | |
|     DEFINE_KEYCODE(MANNER_MODE),
 | |
|     DEFINE_KEYCODE(3D_MODE),
 | |
|     DEFINE_KEYCODE(CONTACTS),
 | |
|     DEFINE_KEYCODE(CALENDAR),
 | |
|     DEFINE_KEYCODE(MUSIC),
 | |
|     DEFINE_KEYCODE(CALCULATOR),
 | |
|     DEFINE_KEYCODE(ZENKAKU_HANKAKU),
 | |
|     DEFINE_KEYCODE(EISU),
 | |
|     DEFINE_KEYCODE(MUHENKAN),
 | |
|     DEFINE_KEYCODE(HENKAN),
 | |
|     DEFINE_KEYCODE(KATAKANA_HIRAGANA),
 | |
|     DEFINE_KEYCODE(YEN),
 | |
|     DEFINE_KEYCODE(RO),
 | |
|     DEFINE_KEYCODE(KANA),
 | |
|     DEFINE_KEYCODE(ASSIST),
 | |
|     DEFINE_KEYCODE(BRIGHTNESS_DOWN),
 | |
|     DEFINE_KEYCODE(BRIGHTNESS_UP),
 | |
|     DEFINE_KEYCODE(MEDIA_AUDIO_TRACK),
 | |
|     DEFINE_KEYCODE(SLEEP),
 | |
|     DEFINE_KEYCODE(WAKEUP),
 | |
|     DEFINE_KEYCODE(PAIRING),
 | |
|     DEFINE_KEYCODE(MEDIA_TOP_MENU),
 | |
|     DEFINE_KEYCODE(11),
 | |
|     DEFINE_KEYCODE(12),
 | |
|     DEFINE_KEYCODE(LAST_CHANNEL),
 | |
|     DEFINE_KEYCODE(TV_DATA_SERVICE),
 | |
|     DEFINE_KEYCODE(VOICE_ASSIST),
 | |
|     DEFINE_KEYCODE(TV_RADIO_SERVICE),
 | |
|     DEFINE_KEYCODE(TV_TELETEXT),
 | |
|     DEFINE_KEYCODE(TV_NUMBER_ENTRY),
 | |
|     DEFINE_KEYCODE(TV_TERRESTRIAL_ANALOG),
 | |
|     DEFINE_KEYCODE(TV_TERRESTRIAL_DIGITAL),
 | |
|     DEFINE_KEYCODE(TV_SATELLITE),
 | |
|     DEFINE_KEYCODE(TV_SATELLITE_BS),
 | |
|     DEFINE_KEYCODE(TV_SATELLITE_CS),
 | |
|     DEFINE_KEYCODE(TV_SATELLITE_SERVICE),
 | |
|     DEFINE_KEYCODE(TV_NETWORK),
 | |
|     DEFINE_KEYCODE(TV_ANTENNA_CABLE),
 | |
|     DEFINE_KEYCODE(TV_INPUT_HDMI_1),
 | |
|     DEFINE_KEYCODE(TV_INPUT_HDMI_2),
 | |
|     DEFINE_KEYCODE(TV_INPUT_HDMI_3),
 | |
|     DEFINE_KEYCODE(TV_INPUT_HDMI_4),
 | |
|     DEFINE_KEYCODE(TV_INPUT_COMPOSITE_1),
 | |
|     DEFINE_KEYCODE(TV_INPUT_COMPOSITE_2),
 | |
|     DEFINE_KEYCODE(TV_INPUT_COMPONENT_1),
 | |
|     DEFINE_KEYCODE(TV_INPUT_COMPONENT_2),
 | |
|     DEFINE_KEYCODE(TV_INPUT_VGA_1),
 | |
|     DEFINE_KEYCODE(TV_AUDIO_DESCRIPTION),
 | |
|     DEFINE_KEYCODE(TV_AUDIO_DESCRIPTION_MIX_UP),
 | |
|     DEFINE_KEYCODE(TV_AUDIO_DESCRIPTION_MIX_DOWN),
 | |
|     DEFINE_KEYCODE(TV_ZOOM_MODE),
 | |
|     DEFINE_KEYCODE(TV_CONTENTS_MENU),
 | |
|     DEFINE_KEYCODE(TV_MEDIA_CONTEXT_MENU),
 | |
|     DEFINE_KEYCODE(TV_TIMER_PROGRAMMING),
 | |
|     DEFINE_KEYCODE(HELP),
 | |
|     DEFINE_KEYCODE(NAVIGATE_PREVIOUS),
 | |
|     DEFINE_KEYCODE(NAVIGATE_NEXT),
 | |
|     DEFINE_KEYCODE(NAVIGATE_IN),
 | |
|     DEFINE_KEYCODE(NAVIGATE_OUT),
 | |
|     DEFINE_KEYCODE(STEM_PRIMARY),
 | |
|     DEFINE_KEYCODE(STEM_1),
 | |
|     DEFINE_KEYCODE(STEM_2),
 | |
|     DEFINE_KEYCODE(STEM_3),
 | |
|     DEFINE_KEYCODE(MEDIA_SKIP_FORWARD),
 | |
|     DEFINE_KEYCODE(MEDIA_SKIP_BACKWARD),
 | |
|     DEFINE_KEYCODE(MEDIA_STEP_FORWARD),
 | |
|     DEFINE_KEYCODE(MEDIA_STEP_BACKWARD),
 | |
|     DEFINE_KEYCODE(SOFT_SLEEP),
 | |
| 
 | |
|     { NULL, 0 }
 | |
| };
 | |
| 
 | |
| static const InputEventLabel AXES[] = {
 | |
|     DEFINE_AXIS(X),
 | |
|     DEFINE_AXIS(Y),
 | |
|     DEFINE_AXIS(PRESSURE),
 | |
|     DEFINE_AXIS(SIZE),
 | |
|     DEFINE_AXIS(TOUCH_MAJOR),
 | |
|     DEFINE_AXIS(TOUCH_MINOR),
 | |
|     DEFINE_AXIS(TOOL_MAJOR),
 | |
|     DEFINE_AXIS(TOOL_MINOR),
 | |
|     DEFINE_AXIS(ORIENTATION),
 | |
|     DEFINE_AXIS(VSCROLL),
 | |
|     DEFINE_AXIS(HSCROLL),
 | |
|     DEFINE_AXIS(Z),
 | |
|     DEFINE_AXIS(RX),
 | |
|     DEFINE_AXIS(RY),
 | |
|     DEFINE_AXIS(RZ),
 | |
|     DEFINE_AXIS(HAT_X),
 | |
|     DEFINE_AXIS(HAT_Y),
 | |
|     DEFINE_AXIS(LTRIGGER),
 | |
|     DEFINE_AXIS(RTRIGGER),
 | |
|     DEFINE_AXIS(THROTTLE),
 | |
|     DEFINE_AXIS(RUDDER),
 | |
|     DEFINE_AXIS(WHEEL),
 | |
|     DEFINE_AXIS(GAS),
 | |
|     DEFINE_AXIS(BRAKE),
 | |
|     DEFINE_AXIS(DISTANCE),
 | |
|     DEFINE_AXIS(TILT),
 | |
|     DEFINE_AXIS(GENERIC_1),
 | |
|     DEFINE_AXIS(GENERIC_2),
 | |
|     DEFINE_AXIS(GENERIC_3),
 | |
|     DEFINE_AXIS(GENERIC_4),
 | |
|     DEFINE_AXIS(GENERIC_5),
 | |
|     DEFINE_AXIS(GENERIC_6),
 | |
|     DEFINE_AXIS(GENERIC_7),
 | |
|     DEFINE_AXIS(GENERIC_8),
 | |
|     DEFINE_AXIS(GENERIC_9),
 | |
|     DEFINE_AXIS(GENERIC_10),
 | |
|     DEFINE_AXIS(GENERIC_11),
 | |
|     DEFINE_AXIS(GENERIC_12),
 | |
|     DEFINE_AXIS(GENERIC_13),
 | |
|     DEFINE_AXIS(GENERIC_14),
 | |
|     DEFINE_AXIS(GENERIC_15),
 | |
|     DEFINE_AXIS(GENERIC_16),
 | |
| 
 | |
|     // NOTE: If you add a new axis here you must also add it to several other files.
 | |
|     //       Refer to frameworks/base/core/java/android/view/MotionEvent.java for the full list.
 | |
|     { NULL, 0 }
 | |
| };
 | |
| 
 | |
| static const InputEventLabel LEDS[] = {
 | |
|     DEFINE_LED(NUM_LOCK),
 | |
|     DEFINE_LED(CAPS_LOCK),
 | |
|     DEFINE_LED(SCROLL_LOCK),
 | |
|     DEFINE_LED(COMPOSE),
 | |
|     DEFINE_LED(KANA),
 | |
|     DEFINE_LED(SLEEP),
 | |
|     DEFINE_LED(SUSPEND),
 | |
|     DEFINE_LED(MUTE),
 | |
|     DEFINE_LED(MISC),
 | |
|     DEFINE_LED(MAIL),
 | |
|     DEFINE_LED(CHARGING),
 | |
|     DEFINE_LED(CONTROLLER_1),
 | |
|     DEFINE_LED(CONTROLLER_2),
 | |
|     DEFINE_LED(CONTROLLER_3),
 | |
|     DEFINE_LED(CONTROLLER_4),
 | |
| 
 | |
|     // NOTE: If you add new LEDs here, you must also add them to Input.h
 | |
|     { NULL, 0 }
 | |
| };
 | |
| 
 | |
| static const InputEventLabel FLAGS[] = {
 | |
|     DEFINE_FLAG(WAKE),
 | |
|     DEFINE_FLAG(VIRTUAL),
 | |
|     DEFINE_FLAG(FUNCTION),
 | |
|     DEFINE_FLAG(GESTURE),
 | |
| 
 | |
|     { NULL, 0 }
 | |
| };
 | |
| 
 | |
| static int lookupValueByLabel(const char* literal, const InputEventLabel *list) {
 | |
|     while (list->literal) {
 | |
|         if (strcmp(literal, list->literal) == 0) {
 | |
|             return list->value;
 | |
|         }
 | |
|         list++;
 | |
|     }
 | |
|     return list->value;
 | |
| }
 | |
| 
 | |
| static const char* lookupLabelByValue(int value, const InputEventLabel* list) {
 | |
|     while (list->literal) {
 | |
|         if (list->value == value) {
 | |
|             return list->literal;
 | |
|         }
 | |
|         list++;
 | |
|     }
 | |
|     return NULL;
 | |
| }
 | |
| 
 | |
| static int32_t getKeyCodeByLabel(const char* label) {
 | |
|     return int32_t(lookupValueByLabel(label, KEYCODES));
 | |
| }
 | |
| 
 | |
| static const char* getLabelByKeyCode(int32_t keyCode) {
 | |
|     if (keyCode >= 0 && keyCode < size(KEYCODES)) {
 | |
|         return KEYCODES[keyCode].literal;
 | |
|     }
 | |
|     return NULL;
 | |
| }
 | |
| 
 | |
| static uint32_t getKeyFlagByLabel(const char* label) {
 | |
|     return uint32_t(lookupValueByLabel(label, FLAGS));
 | |
| }
 | |
| 
 | |
| static int32_t getAxisByLabel(const char* label) {
 | |
|     return int32_t(lookupValueByLabel(label, AXES));
 | |
| }
 | |
| 
 | |
| static const char* getAxisLabel(int32_t axisId) {
 | |
|     return lookupLabelByValue(axisId, AXES);
 | |
| }
 | |
| 
 | |
| static int32_t getLedByLabel(const char* label) {
 | |
|     return int32_t(lookupValueByLabel(label, LEDS));
 | |
| }
 | |
| 
 | |
| 
 | |
| } // namespace android
 | |
| #endif // _LIBINPUT_INPUT_EVENT_LABELS_H
 | |
| 
 |