blob: 4895f343ad8a999893ae03e090569f40623357c4 [file] [log] [blame]
Sujith Ramakrishnanb5b86c12016-01-28 16:53:16 -08001#ifndef ANDROIDTVREMOTE_SERVICE_JNI_KEYS_H_
2#define ANDROIDTVREMOTE_SERVICE_JNI_KEYS_H_
3
4#include <android/keycodes.h>
5#include <linux/input.h>
6
7namespace android {
8
9// Map the keys specified in virtual-remote.kl.
10// Only specify the keys actually used in the layout here.
11struct Key {
12 int linuxKeyCode;
13 int32_t androidKeyCode;
14};
15
16// List of all of the keycodes that the emote is capable of sending.
17static Key KEYS[] = {
18 // Volume Control
19 { KEY_VOLUMEDOWN, AKEYCODE_VOLUME_DOWN },
20 { KEY_VOLUMEUP, AKEYCODE_VOLUME_UP },
21 { KEY_MUTE, AKEYCODE_VOLUME_MUTE },
22 { KEY_MUTE, AKEYCODE_MUTE },
23
24 { KEY_POWER, AKEYCODE_POWER },
25 { KEY_HOMEPAGE, AKEYCODE_HOME },
26 { KEY_BACK, AKEYCODE_BACK },
27
28 // Media Control
29 { KEY_PLAYPAUSE, AKEYCODE_MEDIA_PLAY_PAUSE },
30 { KEY_PLAY, AKEYCODE_MEDIA_PLAY },
31 { KEY_PAUSECD, AKEYCODE_MEDIA_PAUSE },
32 { KEY_NEXTSONG, AKEYCODE_MEDIA_NEXT },
33 { KEY_PREVIOUSSONG, AKEYCODE_MEDIA_PREVIOUS },
34 { KEY_STOPCD, AKEYCODE_MEDIA_STOP },
35 { KEY_RECORD, AKEYCODE_MEDIA_RECORD },
36 { KEY_REWIND, AKEYCODE_MEDIA_REWIND },
37 { KEY_FASTFORWARD, AKEYCODE_MEDIA_FAST_FORWARD },
38
39 // TV Control
40 { KEY_0, AKEYCODE_0 },
41 { KEY_1, AKEYCODE_1 },
42 { KEY_2, AKEYCODE_2 },
43 { KEY_3, AKEYCODE_3 },
44 { KEY_4, AKEYCODE_4 },
45 { KEY_5, AKEYCODE_5 },
46 { KEY_6, AKEYCODE_6 },
47 { KEY_7, AKEYCODE_7 },
48 { KEY_8, AKEYCODE_8 },
49 { KEY_9, AKEYCODE_9 },
50 { KEY_BACKSPACE, AKEYCODE_DEL },
51 { KEY_ENTER, AKEYCODE_ENTER},
52 { KEY_CHANNELUP, AKEYCODE_CHANNEL_UP },
53 { KEY_CHANNELDOWN, AKEYCODE_CHANNEL_DOWN },
54
55 // Old School TV Controls
56 { KEY_F1, AKEYCODE_F1 },
57 { KEY_F2, AKEYCODE_F2 },
58 { KEY_F3, AKEYCODE_F3 },
59 { KEY_F4, AKEYCODE_F4 },
60 { KEY_F5, AKEYCODE_F5 },
61 { KEY_F6, AKEYCODE_F6 },
62 { KEY_F7, AKEYCODE_F7 },
63 { KEY_F8, AKEYCODE_F8 },
64 { KEY_F9, AKEYCODE_F9 },
65 { KEY_F10, AKEYCODE_F10 },
66 { KEY_F11, AKEYCODE_F11 },
67 { KEY_F12, AKEYCODE_F12 },
68 { KEY_FN_F1, AKEYCODE_F1 },
69 { KEY_FN_F2, AKEYCODE_F2 },
70 { KEY_FN_F3, AKEYCODE_F3 },
71 { KEY_FN_F4, AKEYCODE_F4 },
72 { KEY_FN_F5, AKEYCODE_F5 },
73 { KEY_FN_F6, AKEYCODE_F6 },
74 { KEY_FN_F7, AKEYCODE_F7 },
75 { KEY_FN_F8, AKEYCODE_F8 },
76 { KEY_FN_F9, AKEYCODE_F9 },
77 { KEY_FN_F10, AKEYCODE_F10 },
78 { KEY_FN_F11, AKEYCODE_F11 },
79 { KEY_FN_F12, AKEYCODE_F12 },
80 { KEY_TV, AKEYCODE_TV },
81 { KEY_RED, AKEYCODE_PROG_RED },
82 { KEY_GREEN, AKEYCODE_PROG_GREEN },
83 { KEY_YELLOW, AKEYCODE_PROG_YELLOW },
84 { KEY_BLUE, AKEYCODE_PROG_BLUE },
85
86 { KEY_FAVORITES, AKEYCODE_BUTTON_MODE},
87 { KEY_WWW, AKEYCODE_EXPLORER },
88 { KEY_MENU, AKEYCODE_MENU },
89 { KEY_INFO, AKEYCODE_INFO },
90 { KEY_EPG, AKEYCODE_GUIDE },
91 { KEY_TEXT, AKEYCODE_TV_TELETEXT },
92 { KEY_SUBTITLE, AKEYCODE_CAPTIONS },
93 { KEY_PVR, AKEYCODE_DVR},
94 { KEY_AUDIO, AKEYCODE_MEDIA_AUDIO_TRACK},
95 { KEY_OPTION, AKEYCODE_SETTINGS},
96
97 // Gamepad buttons
98 { KEY_UP, AKEYCODE_DPAD_UP },
99 { KEY_DOWN, AKEYCODE_DPAD_DOWN },
100 { KEY_LEFT, AKEYCODE_DPAD_LEFT },
101 { KEY_RIGHT, AKEYCODE_DPAD_RIGHT },
102 { KEY_SELECT, AKEYCODE_DPAD_CENTER },
103 { BTN_A, AKEYCODE_BUTTON_A },
104 { BTN_B, AKEYCODE_BUTTON_B },
105 { BTN_X, AKEYCODE_BUTTON_X },
106 { BTN_Y, AKEYCODE_BUTTON_Y },
107
108 { KEY_SEARCH, AKEYCODE_SEARCH },
109};
110
111} // namespace android
112
113#endif // SERVICE_JNI_KEYS_H_