Changeset 8f840ed in mainline


Ignore:
Timestamp:
2011-02-24T19:31:07Z (13 years ago)
Author:
Lubos Slovak <lubos.slovak@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f2ba5d9f
Parents:
e7b7ebd5
Message:

Modifiers handling.

  • Renamed constants in hidparser.
  • Changed parsing of modifiers.
  • GUI keys are not recognized yet (no keycodes for them).
Location:
uspace
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/usbhid/main.c

    re7b7ebd5 r8f840ed  
    139139 */
    140140
    141 /** Currently active modifiers.
     141/** Currently active modifiers (locks is probably better word).
    142142 *
    143143 * TODO: put to device?
     
    258258         */
    259259
    260 static const keycode_t usb_hid_modifiers_boot_keycodes[5] = {
    261         KC_NUM_LOCK,      /* USB_HID_MOD_BOOT_NUM_LOCK */
    262         KC_CAPS_LOCK,     /* USB_HID_MOD_BOOT_CAPS_LOCK */
    263         KC_SCROLL_LOCK,   /* USB_HID_MOD_BOOT_SCROLL_LOCK */
    264         0,                /* USB_HID_MOD_BOOT_COMPOSE */
    265         0                 /* USB_HID_MOD_BOOT_KANA */
     260static const keycode_t usb_hid_modifiers_keycodes[USB_HID_MOD_COUNT] = {
     261        KC_LCTRL,         /* USB_HID_MOD_LCTRL */
     262        KC_LSHIFT,        /* USB_HID_MOD_LSHIFT */
     263        KC_LALT,          /* USB_HID_MOD_LALT */
     264        0,                /* USB_HID_MOD_LGUI */
     265        KC_RCTRL,         /* USB_HID_MOD_RCTRL */
     266        KC_RSHIFT,        /* USB_HID_MOD_RSHIFT */
     267        KC_RALT,          /* USB_HID_MOD_RALT */
     268        0,                /* USB_HID_MOD_RGUI */
    266269};
    267270
     
    279282       
    280283        int i;
    281         for (i = 0; i < USB_HID_MOD_BOOT_COUNT; ++i) {
    282                 if ((modifiers & usb_hid_modifiers_boot_consts[i]) &&
    283                     !(kbd_dev->modifiers & usb_hid_modifiers_boot_consts[i])) {
     284        for (i = 0; i < USB_HID_MOD_COUNT; ++i) {
     285                if ((modifiers & usb_hid_modifiers_consts[i]) &&
     286                    !(kbd_dev->modifiers & usb_hid_modifiers_consts[i])) {
    284287                        // modifier pressed
    285                         if (usb_hid_modifiers_boot_keycodes[i] != 0) {
     288                        if (usb_hid_modifiers_keycodes[i] != 0) {
    286289                                kbd_push_ev(KEY_PRESS,
    287                                     usb_hid_modifiers_boot_keycodes[i]);
     290                                    usb_hid_modifiers_keycodes[i]);
    288291                        }
    289                 } else if (!(modifiers & usb_hid_modifiers_boot_consts[i]) &&
    290                     (kbd_dev->modifiers & usb_hid_modifiers_boot_consts[i])) {
     292                } else if (!(modifiers & usb_hid_modifiers_consts[i]) &&
     293                    (kbd_dev->modifiers & usb_hid_modifiers_consts[i])) {
    291294                        // modifier released
    292                         if (usb_hid_modifiers_boot_keycodes[i] != 0) {
     295                        if (usb_hid_modifiers_keycodes[i] != 0) {
    293296                                kbd_push_ev(KEY_RELEASE,
    294                                     usb_hid_modifiers_boot_keycodes[i]);
     297                                    usb_hid_modifiers_keycodes[i]);
    295298                        }
    296299                }       // no change
  • uspace/lib/usb/include/usb/classes/hidparser.h

    re7b7ebd5 r8f840ed  
    7272
    7373typedef enum {
    74         USB_HID_MOD_BOOT_NUM_LOCK = 0x01,
    75         USB_HID_MOD_BOOT_CAPS_LOCK = 0x02,
    76         USB_HID_MOD_BOOT_SCROLL_LOCK = 0x04,
    77         USB_HID_MOD_BOOT_COMPOSE = 0x08,
    78         USB_HID_MOD_BOOT_KANA = 0x10,
    79         USB_HID_MOD_BOOT_COUNT = 5
    80 } usb_hid_modifiers_boot_t;
     74        USB_HID_MOD_LCTRL = 0x01,
     75        USB_HID_MOD_LSHIFT = 0x02,
     76        USB_HID_MOD_LALT = 0x04,
     77        USB_HID_MOD_LGUI = 0x08,
     78        USB_HID_MOD_RCTRL = 0x10,
     79        USB_HID_MOD_RSHIFT = 0x20,
     80        USB_HID_MOD_RALT = 0x40,
     81        USB_HID_MOD_RGUI = 0x80,
     82        USB_HID_MOD_COUNT = 8
     83} usb_hid_modifiers_t;
    8184
    82 static const usb_hid_modifiers_boot_t usb_hid_modifiers_boot_consts[5] = {
    83         USB_HID_MOD_BOOT_NUM_LOCK,
    84         USB_HID_MOD_BOOT_CAPS_LOCK,
    85         USB_HID_MOD_BOOT_SCROLL_LOCK,
    86         USB_HID_MOD_BOOT_COMPOSE,
    87         USB_HID_MOD_BOOT_KANA
     85static const usb_hid_modifiers_t
     86    usb_hid_modifiers_consts[USB_HID_MOD_COUNT] = {
     87        USB_HID_MOD_LCTRL,
     88        USB_HID_MOD_LSHIFT,
     89        USB_HID_MOD_LALT,
     90        USB_HID_MOD_LGUI,
     91        USB_HID_MOD_RCTRL,
     92        USB_HID_MOD_RSHIFT,
     93        USB_HID_MOD_RALT,
     94        USB_HID_MOD_RGUI
    8895};
    8996
Note: See TracChangeset for help on using the changeset viewer.