1 /*
2  * Copyright (C) 2017 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #include "virtual_keyboard.h"
18 
19 namespace cuttlefish_input_service {
20 
VirtualKeyboard()21 VirtualKeyboard::VirtualKeyboard()
22     : VirtualDeviceBase("VSoC keyboard", 0x6008) {}
23 
GetEventTypes() const24 const std::vector<const uint32_t>& VirtualKeyboard::GetEventTypes() const {
25   static const std::vector<const uint32_t> evt_types{EV_KEY};
26   return evt_types;
27 }
GetKeys() const28 const std::vector<const uint32_t>& VirtualKeyboard::GetKeys() const {
29   static const std::vector<const uint32_t> keys{
30       KEY_0,           KEY_1,          KEY_2,          KEY_3,
31       KEY_4,           KEY_5,          KEY_6,          KEY_7,
32       KEY_8,           KEY_9,          KEY_A,          KEY_AGAIN,
33       KEY_APOSTROPHE,  KEY_B,          KEY_BACKSLASH,  KEY_BACKSPACE,
34       KEY_C,           KEY_CAPSLOCK,   KEY_COMMA,      KEY_COMPOSE,
35       KEY_D,           KEY_DELETE,     KEY_DOT,        KEY_DOWN,
36       KEY_E,           KEY_END,        KEY_ENTER,      KEY_EQUAL,
37       KEY_ESC,         KEY_F,          KEY_F1,         KEY_F10,
38       KEY_F11,         KEY_F12,        KEY_F13,        KEY_F14,
39       KEY_F15,         KEY_F16,        KEY_F17,        KEY_F18,
40       KEY_F19,         KEY_F2,         KEY_F20,        KEY_F21,
41       KEY_F22,         KEY_F23,        KEY_F24,        KEY_F3,
42       KEY_F4,          KEY_F5,         KEY_F6,         KEY_F7,
43       KEY_F8,          KEY_F9,         KEY_FIND,       KEY_G,
44       KEY_GRAVE,       KEY_H,          KEY_HOME,       KEY_I,
45       KEY_INSERT,      KEY_J,          KEY_K,          KEY_KP0,
46       KEY_KP1,         KEY_KP2,        KEY_KP3,        KEY_KP4,
47       KEY_KP5,         KEY_KP6,        KEY_KP7,        KEY_KP8,
48       KEY_KP9,         KEY_KPASTERISK, KEY_KPCOMMA,    KEY_KPDOT,
49       KEY_KPENTER,     KEY_KPEQUAL,    KEY_KPMINUS,    KEY_KPPLUS,
50       KEY_KPPLUSMINUS, KEY_KPSLASH,    KEY_L,          KEY_LEFT,
51       KEY_LEFTALT,     KEY_LEFTBRACE,  KEY_LEFTCTRL,   KEY_LEFTMETA,
52       KEY_LEFTSHIFT,   KEY_LINEFEED,   KEY_M,          KEY_MENU,
53       KEY_MINUS,       KEY_MUTE,       KEY_N,          KEY_NUMLOCK,
54       KEY_O,           KEY_P,          KEY_PAGEDOWN,   KEY_PAGEUP,
55       KEY_PAUSE,       KEY_PRINT,      KEY_Q,          KEY_R,
56       KEY_RIGHT,       KEY_RIGHTALT,   KEY_RIGHTBRACE, KEY_RIGHTCTRL,
57       KEY_RIGHTMETA,   KEY_RIGHTSHIFT, KEY_S,          KEY_SCROLLLOCK,
58       KEY_SEMICOLON,   KEY_SLASH,      KEY_SPACE,      KEY_STOP,
59       KEY_SYSRQ,       KEY_T,          KEY_TAB,        KEY_U,
60       KEY_UNDO,        KEY_UP,         KEY_V,          KEY_VOLUMEDOWN,
61       KEY_VOLUMEUP,    KEY_W,          KEY_X,          KEY_Y,
62       KEY_YEN,         KEY_Z};
63   return keys;
64 }
65 
66 }  // namespace cuttlefish_input_service
67