|
|
| version 1.3, 2003/11/13 07:47:17 | version 1.4, 2003/11/13 20:14:31 |
|---|---|
| Line 12 | Line 12 |
| #if TARGET_API_MAC_CARBON | #if TARGET_API_MAC_CARBON |
| static BYTE keymap[16]; | typedef struct { |
| static UINT32 shiftchktick = 0; | UINT32 tick; |
| BYTE keymap[16]; | |
| BOOL active; | |
| } MACKBD; | |
| static MACKBD mackbd; | |
| static const BYTE keymac[128] = { | static const BYTE keymac[128] = { |
| // £Á, £Ó, £Ä, £Æ, £È, £Ç, £Ú, £Ø ; 0x00 | // £Á, £Ó, £Ä, £Æ, £È, £Ç, £Ú, £Ø ; 0x00 |
| Line 51 static const BYTE keymac[128] = { | Line 57 static const BYTE keymac[128] = { |
| void mackbd_initialize(void) { | void mackbd_initialize(void) { |
| shiftchktick = GETTICK(); | mackbd.tick = GETTICK(); |
| ZeroMemory(&keymap, sizeof(keymap)); | ZeroMemory(&mackbd.keymap, sizeof(mackbd.keymap)); |
| mackbd.active = TRUE; | |
| } | } |
| void mackbd_callback(void) { | void mackbd_callback(void) { |
| Line 64 void mackbd_callback(void) { | Line 71 void mackbd_callback(void) { |
| UINT j; | UINT j; |
| BYTE keycode; | BYTE keycode; |
| if (!mackbd.active) { | |
| return; | |
| } | |
| tick = GETTICK(); | tick = GETTICK(); |
| if (shiftchktick == tick) { | if (mackbd.tick == tick) { |
| return; | return; |
| } | } |
| shiftchktick = tick; | mackbd.tick = tick; |
| #if TARGET_API_MAC_CARBON | #if TARGET_API_MAC_CARBON |
| GetKeys((long *)key); | GetKeys((long *)key); |
| #else | #else |
| GetKeys((unsigned long *)key); | GetKeys((unsigned long *)key); |
| #endif | #endif |
| for (i=0; i<16; i++) { | for (i=0; i<16; i++) { |
| update = keymap[i] ^ key[i]; | update = mackbd.keymap[i] ^ key[i]; |
| if (update) { | if (update) { |
| keymap[i] = key[i]; | mackbd.keymap[i] = key[i]; |
| for (j=0; j<8; j++) { | for (j=0; j<8; j++) { |
| if (update & (1 << j)) { | if (update & (1 << j)) { |
| TRACEOUT(("key %x %d", i * 8 + j, (key[i] & (1 << j))?1:0)); | |
| keycode = keymac[i * 8 + j]; | keycode = keymac[i * 8 + j]; |
| if (keycode != NC) { | if (keycode != NC) { |
| if (key[i] & (1 << j)) { | if (key[i] & (1 << j)) { |
| Line 126 BOOL mackbd_keyup(int keycode) { | Line 136 BOOL mackbd_keyup(int keycode) { |
| return(FALSE); | return(FALSE); |
| } | } |
| void mackbd_activate(BOOL active) { | |
| if (mackbd.active != active) { | |
| mackbd.active = active; | |
| if (!active) { | |
| ZeroMemory(&mackbd.keymap, sizeof(mackbd.keymap)); | |
| keystat_allrelease(); | |
| } | |
| } | |
| } | |
| #else | #else |
| enum { | enum { |
| Line 187 static const BYTE keymac[128] = { | Line 208 static const BYTE keymac[128] = { |
| typedef struct { | typedef struct { |
| UINT32 tick; | UINT32 tick; |
| UINT16 shift; | UINT16 shift; |
| BOOL active; | |
| } MACKBD; | } MACKBD; |
| static MACKBD mackbd; | static MACKBD mackbd; |
| Line 194 static MACKBD mackbd; | Line 216 static MACKBD mackbd; |
| void mackbd_initialize(void) { | void mackbd_initialize(void) { |
| ZeroMemory(&mackbd, sizeof(mackbd)); | ZeroMemory(&mackbd, sizeof(mackbd)); |
| mackbd.active = TRUE; | |
| } | } |
| void mackbd_callback(void) { | void mackbd_callback(void) { |
| Line 204 void mackbd_callback(void) { | Line 227 void mackbd_callback(void) { |
| UINT16 shiftchg; | UINT16 shiftchg; |
| UINT i; | UINT i; |
| if (!mackbd.active) { | |
| return; | |
| } | |
| tick = GETTICK(); | tick = GETTICK(); |
| if (mackbd.tick != tick) { | if (mackbd.tick != tick) { |
| mackbd.tick = tick; | mackbd.tick = tick; |
| Line 274 BOOL mackbd_keyup(int keycode) { | Line 301 BOOL mackbd_keyup(int keycode) { |
| } | } |
| } | } |
| void mackbd_activate(BOOL active) { | |
| if (mackbd.active != active) { | |
| mackbd.active = active; | |
| if (!active) { | |
| keystat_allrelease(); | |
| } | |
| } | |
| } | |
| #endif | #endif |