#ifndef _KEYBOARD_H_ #define _KEYBOARD_H_ 1 #if defined(__cplusplus) extern "C" { #endif typedef struct Keyboardctl Keyboardctl; struct Keyboardctl { struct Channel *c; /* chan(Rune)[20] */ }; extern Keyboardctl* initkeyboard(char*); extern int ctlkeyboard(Keyboardctl*, char*); extern void closekeyboard(Keyboardctl*); enum { KF= 0xF000, /* Rune: beginning of private Unicode space */ /* KF|1, KF|2, ..., KF|0xC is F1, F2, ..., F12 */ Khome= KF|0x0D, Kup= KF|0x0E, Kpgup= KF|0x0F, Kprint= KF|0x10, Kleft= KF|0x11, Kright= KF|0x12, Kdown= 0x80, Kview= 0x80, Kpgdown= KF|0x13, Kins= KF|0x14, Kend= KF|0x18, Kalt= KF|0x15, Kshift= KF|0x16, Kctl= KF|0x17, Kbs= 0x08, Kdel= 0x7f, Kesc= 0x1b, Keof= 0x04, Kcmd= 0xF100 /* Rune: beginning of Cmd+'a', Cmd+'A', etc on Mac */ }; #if defined(__cplusplus) } #endif #endif