Date: Sun, 16 Mar 1997 18:12:47 -0500 From: "Louis A. Mamakos" <louie@TransSys.COM> To: current@FreeBSD.org Subject: update for usr.sbin/moused.c Message-ID: <199703162312.SAA00362@whizzo.transsys.com>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
I've once again merged my changes into moused.c to support the ALPS Glidepoint
pointing device after doing a 'make world', and having my mouse stop
working again. Could someone please commit them? They've been well
tested here.
louie
[-- Attachment #2 --]
--- /usr/src/usr.sbin/moused/moused.c Sat Feb 22 11:06:42 1997
+++ moused.c Sat Mar 15 21:15:34 1997
@@ -75,6 +75,7 @@
#define R_LOGIMAN 6
#define R_PS_2 7
#define R_MMHITAB 8
+#define R_GLIDEPOINT 9
char *rnames[] = {
"xxx",
@@ -86,6 +87,7 @@
"mouseman",
"ps/2",
"mmhitab",
+ "glidepoint",
NULL
};
@@ -100,6 +102,7 @@
(CS7 | CREAD | CLOCAL | HUPCL ), /* MouseMan */
0, /* PS/2 */
(CS8 | CREAD | CLOCAL | HUPCL ), /* MMHitTablet */
+ 0, /* Glidepoint */
};
@@ -219,6 +222,7 @@
rodent.portname = "/dev/mse0";
break;
case R_PS_2:
+ case R_GLIDEPOINT:
if (!rodent.portname)
rodent.portname = "/dev/psm0";
break;
@@ -280,6 +284,8 @@
void
usage(void)
{
+ int i;
+
fprintf(stderr,
" Usage is %s [options] -p <port> -t <mousetype>\n"
" Options are -s Select 9600 baud mouse.\n"
@@ -290,15 +296,10 @@
" -D Lower DTR\n"
" -S baud Select explicit baud (1200..9600).\n"
" <mousetype> should be one of :\n"
- " microsoft\n"
- " mousesystems\n"
- " mmseries\n"
- " logitech\n"
- " busmouse\n"
- " mouseman\n"
- " ps/2\n"
- " mmhittab\n"
,progname);
+
+ for (i = 1; rnames[i]; i++)
+ fprintf(stderr, " %s\n", rnames[i]);
exit(1);
}
@@ -399,7 +400,8 @@
write(rodent.mfd, "*X", 2);
setmousespeed(1200, rodent.baudrate, rodentcflags[R_LOGIMAN]);
} else {
- if ((rodent.rtype != R_BUSMOUSE) && (rodent.rtype != R_PS_2))
+ if ((rodent.rtype != R_BUSMOUSE) && (rodent.rtype != R_PS_2)
+ && (rodent.rtype != R_GLIDEPOINT))
{
/* try all likely settings */
setmousespeed(9600, rodent.baudrate, rodentcflags[rodent.rtype]);
@@ -489,6 +491,7 @@
{ 0x40, 0x40, 0x40, 0x00, 3 }, /* MouseMan */
{ 0xc0, 0x00, 0x00, 0x00, 3 }, /* PS/2 mouse */
{ 0xe0, 0x80, 0x80, 0x00, 3 }, /* MM_HitTablet */
+ { 0xc0, 0x00, 0x00, 0x00, 3 }, /* glidepoint */
};
debug("received char 0x%x",(int)rBuf);
@@ -610,6 +613,16 @@
act.buttons = (pBuf[0] & 0x04) >> 1 | /* Middle */
(pBuf[0] & 0x02) >> 1 | /* Right */
(pBuf[0] & 0x01) << 2; /* Left */
+ act.dx = (pBuf[0] & 0x10) ? pBuf[1]-256 : pBuf[1];
+ act.dy = (pBuf[0] & 0x20) ? -(pBuf[2]-256) : -pBuf[2];
+ break;
+
+ case R_GLIDEPOINT: /* Glidepoint */
+ act.buttons = ((pBuf[0] & 0x04) ? MIDDLE_BUTTON : 0) |
+ ((pBuf[0] & 0x02) ? RIGHT_BUTTON : 0) |
+ (((pBuf[0] & 0x01) ||
+ ((pBuf[0] & 0x08) == 0)) ? LEFT_BUTTON : 0);
+
act.dx = (pBuf[0] & 0x10) ? pBuf[1]-256 : pBuf[1];
act.dy = (pBuf[0] & 0x20) ? -(pBuf[2]-256) : -pBuf[2];
break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703162312.SAA00362>
