--- np2/keystat.h 2004/02/19 06:10:13 1.3 +++ np2/keystat.h 2004/02/21 04:48:35 1.5 @@ -121,6 +121,22 @@ enum { }; #endif +enum { + NKEY_USER1 = 0x76, + NKEY_USER2 = 0x77 +}; + +enum { + NKEYREF_USER = 0xf8, + NKEYREF_SOFTKBD = 0xf9, + NKEYREF_NC = 0xff +}; + + +typedef struct { + UINT8 keys; + UINT8 key[1]; +} NKEYM; typedef struct { UINT8 keys; @@ -145,24 +161,38 @@ extern "C" { extern NKEYTBL nkeytbl; +void keystat_initialize(void); + void keystat_tblreset(void); +void keystat_tblset(REG8 ref, const UINT8 *key, UINT cnt); void keystat_tblload(const char *filename); -void keystat_reset(void); -void keystat_senddata(REG8 data); +void keystat_keydown(REG8 ref); +void keystat_keyup(REG8 ref); void keystat_allrelease(void); -void keystat_forcerelease(REG8 value); +void keystat_releaseref(REG8 ref); +void keystat_releasekey(REG8 key); void keystat_resetjoykey(void); // ---- I/O +void keystat_down(const UINT8 *key, REG8 keys, REG8 ref); +void keystat_up(const UINT8 *key, REG8 keys, REG8 ref); void keystat_resendstat(void); -void keystat_sync(void); REG8 keystat_getjoy(void); REG8 keystat_getmouse(SINT16 *x, SINT16 *y); + + +// ---- Çѻߴؿô + +#define keystat_reset keystat_initialize +#define keystat_sync() +#define keystat_forcerelease(k) keystat_releasekey(k) +void keystat_senddata(REG8 data); + #ifdef __cplusplus } #endif