From 8046234275b686380321ae6279cc9993456c29b4 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 7 Oct 2013 06:49:34 +0200 Subject: kbdfs: implement keyboard mouse buttons with /dev/mousein --- sys/src/cmd/aux/kbdfs/kbdfs.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/sys/src/cmd/aux/kbdfs/kbdfs.c b/sys/src/cmd/aux/kbdfs/kbdfs.c index 8b125db59..323b23a54 100644 --- a/sys/src/cmd/aux/kbdfs/kbdfs.c +++ b/sys/src/cmd/aux/kbdfs/kbdfs.c @@ -93,6 +93,7 @@ int scanfd; int ledsfd; int consfd; int mctlfd; +int msinfd; int notefd; int kbdopen; @@ -354,13 +355,24 @@ keyproc(void *) { Rune rb[Nscan+1]; Key key; - int i, nb; + int i, nb, mouseb; char *s; threadsetname("keyproc"); nb = 0; + mouseb = 0; while(recv(keychan, &key) > 0){ + if(msinfd >= 0 && key.r >= Kmouse+1 && key.r <= Kmouse+5){ + i = 1<<(key.r-(Kmouse+1)); + if(key.down) + mouseb |= i; + else + mouseb &= ~i; + fprint(msinfd, "m%11d %11d %11d", 0, 0, mouseb); + continue; /* ignored when mapped to mouse button */ + } + rb[0] = 0; for(i=0; i='0' && *lp<='9') /* includes 0x... */ r = strtoul(lp, &lp, 0); else @@ -1386,6 +1398,7 @@ threadmain(int argc, char** argv) scanfd = eopen("/dev/scancode", OREAD); ledsfd = eopen("/dev/leds", OWRITE); mctlfd = eopen("/dev/mousectl", OWRITE); + msinfd = eopen("/dev/mousein", OWRITE); if(*argv) consfd = eopen(*argv, OREAD); -- cgit v1.2.3