Changeset d1eece6 in mainline for uspace/srv/kbd/generic/kbd.c
- Timestamp:
- 2009-02-19T22:54:32Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 013c4d6
- Parents:
- 91825d90
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/kbd/generic/kbd.c
r91825d90 rd1eece6 58 58 int cons_connected = 0; 59 59 int phone2cons = -1; 60 keybuffer_t keybuffer; 60 keybuffer_t keybuffer; 61 62 /** Currently active modifiers. */ 63 static unsigned mods; 61 64 62 65 void kbd_push_scancode(int scancode) … … 67 70 68 71 #include <kbd/keycode.h> 69 void kbd_push_ev(int type, unsigned int key , unsigned int mods)72 void kbd_push_ev(int type, unsigned int key) 70 73 { 71 74 kbd_event_t ev; 75 unsigned mod_mask; 76 77 switch (key) { 78 case KC_LCTRL: mod_mask = KM_LCTRL; break; 79 case KC_RCTRL: mod_mask = KM_RCTRL; break; 80 case KC_LSHIFT: mod_mask = KM_LSHIFT; break; 81 case KC_RSHIFT: mod_mask = KM_RSHIFT; break; 82 case KC_LALT: mod_mask = KM_LALT; break; 83 case KC_RALT: mod_mask = KM_RALT; break; 84 default: mod_mask = 0; break; 85 } 86 87 if (mod_mask != 0) { 88 if (type == KE_PRESS) 89 mods = mods | mod_mask; 90 else 91 mods = mods & ~mod_mask; 92 } 93 94 switch (key) { 95 case KC_CAPS_LOCK: mod_mask = KM_CAPS_LOCK; break; 96 case KC_NUM_LOCK: mod_mask = KM_NUM_LOCK; break; 97 case KC_SCROLL_LOCK: mod_mask = KM_SCROLL_LOCK; break; 98 default: mod_mask = 0; break; 99 } 100 101 if (mod_mask != 0 && type == KE_PRESS) 102 mods = mods ^ mod_mask; 72 103 73 104 printf("type: %d\n", type); … … 83 114 async_msg_4(phone2cons, KBD_EVENT, ev.type, ev.key, ev.mods, ev.c); 84 115 } 85 86 //static void irq_handler(ipc_callid_t iid, ipc_call_t *call)87 //{88 // kbd_event_t ev;89 //90 // kbd_arch_process(&keybuffer, call);91 //92 // if (cons_connected && phone2cons != -1) {93 // /*94 // * One interrupt can produce more than one event so the result95 // * is stored in a FIFO.96 // */97 // while (!keybuffer_empty(&keybuffer)) {98 // if (!keybuffer_pop(&keybuffer, &ev))99 // break;100 //101 // async_msg_4(phone2cons, KBD_EVENT, ev.type, ev.key,102 // ev.mods, ev.c);103 // }104 // }105 //}106 116 107 117 static void console_connection(ipc_callid_t iid, ipc_call_t *icall) … … 143 153 144 154 145 146 155 int main(int argc, char **argv) 147 156 {
Note:
See TracChangeset
for help on using the changeset viewer.