Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1550 → Rev 1572

/demos/trunk/input/key.c
37,6 → 37,8
 
#include <drivers/shark_keyb26.h>
 
//#define SHOW_EVT
 
void my_sysclose(KEY_EVT *e)
{
kern_printf("S.Ha.R.K. closed.\n\n");
43,14 → 45,24
exit(0);
}
 
TASK my_getch(void *arg) {
TASK my_get(void *arg) {
#ifdef SHOW_EVT
int status;
KEY_EVT ev;
#else
BYTE ch;
#endif
 
BYTE ch;
while (1) {
#ifdef SHOW_EVT
status = keyb_getcode(&ev, NON_BLOCK);
if (status == TRUE)
cprintf("[%c %d %d %d]\n", ev.ascii, ev.scan, ev.status, ev.flag);
#else
ch = keyb_getch(NON_BLOCK);
if (ch)
cprintf("%c", ch);
#endif
task_endcycle();
}
}
68,6 → 80,14
cprintf("Keyboard Enabled.\n");
}
 
void my_test(KEY_EVT *e){
cprintf("<test>\n");
}
 
void my_arrow(KEY_EVT *e){
cprintf("<arrow>\n");
}
 
int main(int argc, char **argv)
{
SOFT_TASK_MODEL mp;
80,7 → 100,16
ev.status = KEY_PRESSED;
ev.flag = CNTR_BIT;
keyb_hook(ev, my_pause, FALSE);
 
set_keyevt(&ev, 'a', KEY_A, 0, KEY_PRESSED|KEY_REPEATED);
keyb_hook(ev, my_test, FALSE);
 
set_keyevt(&ev, 0, EXT_UP, 0, KEY_PRESSED);
keyb_hook(ev, my_arrow, FALSE);
 
set_keyevt(&ev, 'b', KEY_B, CNTL_BIT, KEY_PRESSED);
keyb_hook(ev, my_test, TRUE);
 
ev.ascii = 'c';
ev.scan = KEY_C;
ev.status = KEY_PRESSED;
95,7 → 124,7
soft_task_def_met(mp,700);
soft_task_def_period(mp,1000);
soft_task_def_usemath(mp);
pid = task_create("Keyb_Print", my_getch, &mp, NULL);
pid = task_create("Keyb_Print", my_get, &mp, NULL);
if (pid == NIL) {
perror("Could not create task <Keyb_Print>");
exit(1);