Home | History | Annotate | Download | only in jni
      1 #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 
      7 namespace android {
      8 
      9 // Map the keys specified in virtual-remote.kl.
     10 // Only specify the keys actually used in the layout here.
     11 struct Key {
     12     int linuxKeyCode;
     13     int32_t androidKeyCode;
     14 };
     15 
     16 // List of all of the keycodes that the emote is capable of sending.
     17 static 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_
    114