blob: b3ee263190c61f33cfadf16dcb669a9f00077e2d [file] [log] [blame]
#ifndef ANDROIDTVREMOTE_SERVICE_JNI_KEYS_H_
#define ANDROIDTVREMOTE_SERVICE_JNI_KEYS_H_
#include <android/keycodes.h>
#include <linux/input.h>
namespace android {
// Map the keys specified in virtual-remote.kl.
// Only specify the keys actually used in the layout here.
struct Key {
int linuxKeyCode;
int32_t androidKeyCode;
};
// List of all of the keycodes that the emote is capable of sending.
static Key KEYS[] = {
// Volume Control
{KEY_VOLUMEDOWN, AKEYCODE_VOLUME_DOWN},
{KEY_VOLUMEUP, AKEYCODE_VOLUME_UP},
{KEY_MUTE, AKEYCODE_VOLUME_MUTE},
{KEY_MUTE, AKEYCODE_MUTE},
{KEY_POWER, AKEYCODE_POWER},
{KEY_HOMEPAGE, AKEYCODE_HOME},
{KEY_BACK, AKEYCODE_BACK},
// Media Control
{KEY_PLAYPAUSE, AKEYCODE_MEDIA_PLAY_PAUSE},
{KEY_PLAY, AKEYCODE_MEDIA_PLAY},
{KEY_PAUSECD, AKEYCODE_MEDIA_PAUSE},
{KEY_NEXTSONG, AKEYCODE_MEDIA_NEXT},
{KEY_PREVIOUSSONG, AKEYCODE_MEDIA_PREVIOUS},
{KEY_STOPCD, AKEYCODE_MEDIA_STOP},
{KEY_RECORD, AKEYCODE_MEDIA_RECORD},
{KEY_REWIND, AKEYCODE_MEDIA_REWIND},
{KEY_FASTFORWARD, AKEYCODE_MEDIA_FAST_FORWARD},
// TV Control
{KEY_0, AKEYCODE_0},
{KEY_1, AKEYCODE_1},
{KEY_2, AKEYCODE_2},
{KEY_3, AKEYCODE_3},
{KEY_4, AKEYCODE_4},
{KEY_5, AKEYCODE_5},
{KEY_6, AKEYCODE_6},
{KEY_7, AKEYCODE_7},
{KEY_8, AKEYCODE_8},
{KEY_9, AKEYCODE_9},
{KEY_BACKSPACE, AKEYCODE_DEL},
{KEY_ENTER, AKEYCODE_ENTER},
{KEY_CHANNELUP, AKEYCODE_CHANNEL_UP},
{KEY_CHANNELDOWN, AKEYCODE_CHANNEL_DOWN},
// Old School TV Controls
{KEY_F1, AKEYCODE_F1},
{KEY_F2, AKEYCODE_F2},
{KEY_F3, AKEYCODE_F3},
{KEY_F4, AKEYCODE_F4},
{KEY_F5, AKEYCODE_F5},
{KEY_F6, AKEYCODE_F6},
{KEY_F7, AKEYCODE_F7},
{KEY_F8, AKEYCODE_F8},
{KEY_F9, AKEYCODE_F9},
{KEY_F10, AKEYCODE_F10},
{KEY_F11, AKEYCODE_F11},
{KEY_F12, AKEYCODE_F12},
{KEY_FN_F1, AKEYCODE_F1},
{KEY_FN_F2, AKEYCODE_F2},
{KEY_FN_F3, AKEYCODE_F3},
{KEY_FN_F4, AKEYCODE_F4},
{KEY_FN_F5, AKEYCODE_F5},
{KEY_FN_F6, AKEYCODE_F6},
{KEY_FN_F7, AKEYCODE_F7},
{KEY_FN_F8, AKEYCODE_F8},
{KEY_FN_F9, AKEYCODE_F9},
{KEY_FN_F10, AKEYCODE_F10},
{KEY_FN_F11, AKEYCODE_F11},
{KEY_FN_F12, AKEYCODE_F12},
{KEY_TV, AKEYCODE_TV},
{KEY_RED, AKEYCODE_PROG_RED},
{KEY_GREEN, AKEYCODE_PROG_GREEN},
{KEY_YELLOW, AKEYCODE_PROG_YELLOW},
{KEY_BLUE, AKEYCODE_PROG_BLUE},
{KEY_FAVORITES, AKEYCODE_BUTTON_MODE},
{KEY_WWW, AKEYCODE_EXPLORER},
{KEY_MENU, AKEYCODE_MENU},
{KEY_INFO, AKEYCODE_INFO},
{KEY_EPG, AKEYCODE_GUIDE},
{KEY_TEXT, AKEYCODE_TV_TELETEXT},
{KEY_SUBTITLE, AKEYCODE_CAPTIONS},
{KEY_PVR, AKEYCODE_DVR},
{KEY_AUDIO, AKEYCODE_MEDIA_AUDIO_TRACK},
{KEY_OPTION, AKEYCODE_SETTINGS},
// Gamepad buttons
{KEY_UP, AKEYCODE_DPAD_UP},
{KEY_DOWN, AKEYCODE_DPAD_DOWN},
{KEY_LEFT, AKEYCODE_DPAD_LEFT},
{KEY_RIGHT, AKEYCODE_DPAD_RIGHT},
{KEY_SELECT, AKEYCODE_DPAD_CENTER},
{BTN_A, AKEYCODE_BUTTON_A},
{BTN_B, AKEYCODE_BUTTON_B},
{BTN_X, AKEYCODE_BUTTON_X},
{BTN_Y, AKEYCODE_BUTTON_Y},
{KEY_SEARCH, AKEYCODE_SEARCH},
{KEY_ASSISTANT, AKEYCODE_ASSIST},
};
} // namespace android
#endif // ANDROIDTVREMOTE_SERVICE_JNI_KEYS_H_