Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/input/ctl/apple.c

    rc072a29 rb6a088f  
    5252};
    5353
    54 #define KBD_KEY_RELEASE  0x80
    55 
    56 static unsigned int scanmap[] = {
     54#define KBD_KEY_RELEASE         0x80
     55
     56static kbd_dev_t *kbd_dev;
     57
     58static int scanmap[];
     59
     60static int apple_ctl_init(kbd_dev_t *kdev)
     61{
     62        kbd_dev = kdev;
     63        return 0;
     64}
     65
     66static void apple_ctl_parse(sysarg_t scancode)
     67{
     68        kbd_event_type_t type;
     69        unsigned int key;
     70
     71        if (scancode >= 0x100)
     72                return;
     73
     74        if (scancode & KBD_KEY_RELEASE) {
     75                scancode &= ~KBD_KEY_RELEASE;
     76                type = KEY_RELEASE;
     77        } else {
     78                type = KEY_PRESS;
     79        }
     80
     81        key = scanmap[scancode];
     82        if (key != 0)
     83                kbd_push_event(kbd_dev, type, key);
     84}
     85
     86static void apple_ctl_set_ind(kbd_dev_t *kdev, unsigned mods)
     87{
     88        (void) mods;
     89}
     90
     91static int scanmap[] = {
    5792        [0x00] = KC_A,
    5893        [0x01] = KC_S,
     
    160195        [0x67] = KC_F11,
    161196        [0x68] = 0,
    162         [0x69] = KC_SYSREQ,
     197        [0x69] = 0,
    163198        [0x6a] = 0,
    164199        [0x6b] = KC_SCROLL_LOCK,
     
    168203        [0x6f] = KC_F12,
    169204        [0x70] = 0,
    170         [0x71] = KC_PAUSE,
     205        [0x71] = 0,
    171206        [0x72] = KC_INSERT,
    172207        [0x73] = KC_HOME,
     
    185220};
    186221
    187 static kbd_dev_t *kbd_dev;
    188 
    189 static int apple_ctl_init(kbd_dev_t *kdev)
    190 {
    191         kbd_dev = kdev;
    192         return 0;
    193 }
    194 
    195 static void apple_ctl_parse(sysarg_t scancode)
    196 {
    197         kbd_event_type_t type;
    198        
    199         if (scancode & KBD_KEY_RELEASE) {
    200                 scancode &= ~KBD_KEY_RELEASE;
    201                 type = KEY_RELEASE;
    202         } else
    203                 type = KEY_PRESS;
    204        
    205         if (scancode >= sizeof(scanmap) / sizeof(unsigned int))
    206                 return;
    207        
    208         unsigned int key = scanmap[scancode];
    209         if (key != 0)
    210                 kbd_push_event(kbd_dev, type, key);
    211 }
    212 
    213 static void apple_ctl_set_ind(kbd_dev_t *kdev, unsigned mods)
    214 {
    215         (void) mods;
    216 }
    217 
    218222/** @}
    219223 */
Note: See TracChangeset for help on using the changeset viewer.