Changeset 965dc18 in mainline for uspace/srv/kbd/arch/mips32/src/kbd.c
- Timestamp:
- 2008-12-05T19:59:03Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 49093a4
- Parents:
- 0258e67
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/kbd/arch/mips32/src/kbd.c
r0258e67 r965dc18 35 35 */ 36 36 #include <arch/kbd.h> 37 #include <genarch/nofb.h> 37 38 #include <ipc/ipc.h> 38 39 #include <sysinfo.h> … … 100 101 */ 101 102 102 static int kbd_arch_process_no_fb(keybuffer_t *keybuffer, int scan_code)103 {104 105 static unsigned long buf = 0;106 static int count = 0;107 108 /* Please preserve this code (it can be used to determine scancodes)109 110 keybuffer_push(keybuffer, to_hex((scan_code>>4)&0xf));111 keybuffer_push(keybuffer, to_hex(scan_code&0xf));112 keybuffer_push(keybuffer, ' ');113 keybuffer_push(keybuffer, ' ');114 115 return 1;116 */117 118 if(scan_code == 0x7e) {119 switch (buf) {120 case MSIM_KEY_F5:121 keybuffer_push(keybuffer,FUNCTION_KEYS | 5);122 buf = count = 0;123 return 1;124 case MSIM_KEY_F6:125 keybuffer_push(keybuffer,FUNCTION_KEYS | 6);126 buf = count = 0;127 return 1;128 case MSIM_KEY_F7:129 keybuffer_push(keybuffer,FUNCTION_KEYS | 7);130 buf = count = 0;131 return 1;132 case MSIM_KEY_F8:133 keybuffer_push(keybuffer,FUNCTION_KEYS | 8);134 buf = count = 0;135 return 1;136 case MSIM_KEY_F9:137 keybuffer_push(keybuffer,FUNCTION_KEYS | 9);138 buf = count = 0;139 return 1;140 case MSIM_KEY_F10:141 keybuffer_push(keybuffer,FUNCTION_KEYS | 10);142 buf = count = 0;143 return 1;144 case MSIM_KEY_F11:145 keybuffer_push(keybuffer,FUNCTION_KEYS | 11);146 buf = count = 0;147 return 1;148 case MSIM_KEY_F12:149 keybuffer_push(keybuffer,FUNCTION_KEYS | 12);150 buf = count = 0;151 return 1;152 default:153 keybuffer_push(keybuffer, buf & 0xff);154 keybuffer_push(keybuffer, (buf >> 8) &0xff);155 keybuffer_push(keybuffer, (buf >> 16) &0xff);156 keybuffer_push(keybuffer, (buf >> 24) &0xff);157 keybuffer_push(keybuffer, scan_code);158 buf = count = 0;159 return 1;160 }161 }162 163 buf |= ((unsigned long) scan_code)<<(8*(count++));164 165 if((buf & 0xff) != (MSIM_KEY_F1 & 0xff)) {166 keybuffer_push(keybuffer, buf);167 buf = count = 0;168 return 1;169 }170 171 if (count <= 1)172 return 1;173 174 if ((buf & 0xffff) != (MSIM_KEY_F1 & 0xffff)175 && (buf & 0xffff) != (MSIM_KEY_F5 & 0xffff) ) {176 177 keybuffer_push(keybuffer, buf & 0xff);178 keybuffer_push(keybuffer, (buf >> 8) &0xff);179 buf = count = 0;180 return 1;181 }182 183 if (count <= 2)184 return 1;185 186 switch (buf) {187 case MSIM_KEY_F1:188 keybuffer_push(keybuffer,FUNCTION_KEYS | 1);189 buf = count = 0;190 return 1;191 case MSIM_KEY_F2:192 keybuffer_push(keybuffer,FUNCTION_KEYS | 2);193 buf = count = 0;194 return 1;195 case MSIM_KEY_F3:196 keybuffer_push(keybuffer,FUNCTION_KEYS | 3);197 buf = count = 0;198 return 1;199 case MSIM_KEY_F4:200 keybuffer_push(keybuffer,FUNCTION_KEYS | 4);201 buf = count = 0;202 return 1;203 }204 205 206 if((buf & 0xffffff) != (MSIM_KEY_F5 & 0xffffff)207 && (buf & 0xffffff) != (MSIM_KEY_F9 & 0xffffff)) {208 209 keybuffer_push(keybuffer, buf & 0xff);210 keybuffer_push(keybuffer, (buf >> 8) & 0xff);211 keybuffer_push(keybuffer, (buf >> 16) & 0xff);212 buf=count=0;213 return 1;214 }215 216 if (count <= 3)217 return 1;218 219 switch (buf) {220 case MSIM_KEY_F5:221 case MSIM_KEY_F6:222 case MSIM_KEY_F7:223 case MSIM_KEY_F8:224 case MSIM_KEY_F9:225 case MSIM_KEY_F10:226 case MSIM_KEY_F11:227 case MSIM_KEY_F12:228 return 1;229 default:230 keybuffer_push(keybuffer, buf & 0xff);231 keybuffer_push(keybuffer, (buf >> 8) &0xff);232 keybuffer_push(keybuffer, (buf >> 16) &0xff);233 keybuffer_push(keybuffer, (buf >> 24) &0xff);234 buf = count = 0;235 return 1;236 }237 return 1;238 }239 240 241 242 103 static int kbd_arch_process_fb(keybuffer_t *keybuffer, int scan_code) 243 104 { … … 372 233 return kbd_arch_process_fb(keybuffer, scan_code); 373 234 374 return kbd_ arch_process_no_fb(keybuffer, scan_code);235 return kbd_process_no_fb(keybuffer, scan_code); 375 236 } 376 237 /** @}
Note:
See TracChangeset
for help on using the changeset viewer.