|
|
| version 1.4, 2003/11/13 20:14:31 | version 1.5, 2003/11/14 10:04:56 |
|---|---|
| Line 16 typedef struct { | Line 16 typedef struct { |
| UINT32 tick; | UINT32 tick; |
| BYTE keymap[16]; | BYTE keymap[16]; |
| BOOL active; | BOOL active; |
| UINT32 repbase; | |
| UINT32 reptick; | |
| BYTE repkey; | |
| } MACKBD; | } MACKBD; |
| static MACKBD mackbd; | static MACKBD mackbd; |
| Line 55 static const BYTE keymac[128] = { | Line 58 static const BYTE keymac[128] = { |
| // F2, rd, F1, ¢«, ¢ª, ¢, ¢¬, ; 0x78 | // F2, rd, F1, ¢«, ¢ª, ¢, ¢¬, ; 0x78 |
| 0x63,0x36,0x62,0x3b,0x3c,0x3d,0x3a, NC}; | 0x63,0x36,0x62,0x3b,0x3c,0x3d,0x3a, NC}; |
| static const BYTE repkey[16] = { | |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, | |
| 0xff, 0xff, 0xc1, 0xff, 0xc0, 0x0f, 0x07, 0x07}; | |
| void mackbd_initialize(void) { | void mackbd_initialize(void) { |
| mackbd.tick = GETTICK(); | mackbd.tick = GETTICK(); |
| ZeroMemory(&mackbd.keymap, sizeof(mackbd.keymap)); | ZeroMemory(&mackbd.keymap, sizeof(mackbd.keymap)); |
| mackbd.active = TRUE; | mackbd.active = TRUE; |
| mackbd.repkey = NC; | |
| } | } |
| void mackbd_callback(void) { | void mackbd_callback(void) { |
| Line 95 void mackbd_callback(void) { | Line 104 void mackbd_callback(void) { |
| if (keycode != NC) { | if (keycode != NC) { |
| if (key[i] & (1 << j)) { | if (key[i] & (1 << j)) { |
| keystat_senddata(keycode); | keystat_senddata(keycode); |
| if ((repkey[keycode >> 3] << (keycode & 7)) | |
| & 0x80) { | |
| mackbd.repkey = keycode; | |
| mackbd.repbase = tick; | |
| mackbd.reptick = 500; | |
| } | |
| } | } |
| else { | else { |
| if (mackbd.repkey == keycode) { | |
| mackbd.repkey = NC; | |
| } | |
| keystat_senddata(keycode + 0x80); | keystat_senddata(keycode + 0x80); |
| } | } |
| } | } |
| Line 104 void mackbd_callback(void) { | Line 122 void mackbd_callback(void) { |
| } | } |
| } | } |
| } | } |
| // ¥¡¼¥ê¥Ô¡¼¥È½èÍý | |
| if (mackbd.repkey != NC) { | |
| if ((tick - mackbd.repbase) >= mackbd.reptick) { | |
| keystat_senddata(mackbd.repkey); // keystat¦¤Çbreak¤¹¤ë | |
| mackbd.repbase = tick; | |
| mackbd.reptick = 40; | |
| } | |
| } | |
| } | } |
| BOOL mackbd_keydown(int keycode) { | BOOL mackbd_keydown(int keycode) { |