95a46c5577
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
80 lines
2.9 KiB
Diff
80 lines
2.9 KiB
Diff
--- gpm-1.18.1/gpm.h Fri Nov 12 15:27:37 1999
|
|
+++ gpm-1.18.2/gpm.h Wed Jan 5 09:45:52 2000
|
|
@@ -72,6 +72,13 @@
|
|
|
|
/*....................................... Cfg buttons */
|
|
|
|
+/* i think there are possible mouses with more, than 3 advanced buttons ? */
|
|
+#define GPM_B_ADVANCED5 128
|
|
+#define GPM_B_ADVANCED4 64
|
|
+
|
|
+#define GPM_B_ADVANCED3 32
|
|
+#define GPM_B_ADVANCED2 16
|
|
+#define GPM_B_ADVANCED1 8
|
|
#define GPM_B_LEFT 4
|
|
#define GPM_B_MIDDLE 2
|
|
#define GPM_B_RIGHT 1
|
|
--- gpm-1.18.1/gpm-root.y Fri Nov 12 15:27:37 1999
|
|
+++ gpm-1.18.2/gpm-root.y Wed Jan 5 09:45:52 2000
|
|
@@ -214,6 +214,11 @@
|
|
button: T_BUTTON '1' {$$=GPM_B_LEFT;}
|
|
| T_BUTTON '2' {$$=GPM_B_MIDDLE;}
|
|
| T_BUTTON '3' {$$=GPM_B_RIGHT;}
|
|
+ | T_BUTTON '4' {$$=GPM_B_ADVANCED1;}
|
|
+ | T_BUTTON '5' {$$=GPM_B_ADVANCED2;}
|
|
+ | T_BUTTON '6' {$$=GPM_B_ADVANCED3;}
|
|
+ | T_BUTTON '7' {$$=GPM_B_ADVANCED4;}
|
|
+ | T_BUTTON '8' {$$=GPM_B_ADVANCED5;}
|
|
;
|
|
|
|
menu: '{' {$<draw>$=cfgcurrent=cfg_alloc();}
|
|
--- gpm-1.18.1/gpm.c Fri Nov 12 15:27:36 1999
|
|
+++ gpm-1.18.2/gpm.c Wed Jan 5 09:50:40 2000
|
|
@@ -411,7 +411,8 @@
|
|
event->modifiers = nEvent.modifiers; /* propagate modifiers */
|
|
|
|
/* propagate buttons */
|
|
- nEvent.buttons = opt_sequence[nEvent.buttons]&7; /* change the order */
|
|
+ nEvent.buttons = (nEvent.buttons & 0xf8) | /* 1111 1000 (mask for normal buttons) */
|
|
+ opt_sequence[nEvent.buttons]&7; /* change the order */
|
|
oldB=newB; newB=nEvent.buttons;
|
|
if (!i) event->buttons=nEvent.buttons;
|
|
|
|
--- gpm-1.18.1/mice.c Fri Nov 12 15:27:37 1999
|
|
+++ gpm-1.18.2/mice.c Wed Jan 5 09:46:24 2000
|
|
@@ -74,6 +74,25 @@
|
|
* The return value is the number of unprocessed bytes
|
|
*/
|
|
|
|
+/*
|
|
+ * M_msuite function was written by Vadim V. Osikov aka Osa
|
|
+ * (osa@re.com.ua, http://re.com.ua/~osa)
|
|
+ */
|
|
+
|
|
+static int M_msuite(Gpm_Event *state, unsigned char *data) {
|
|
+ if ( data [1] == GPM_EXTRA_MAGIC_1 && data [2] == GPM_EXTRA_MAGIC_2 ) {
|
|
+ // advanced side buttons are D5 (lower) - D3 (higher)
|
|
+ state -> buttons |= ( ( data [0] & 7) << 3 ) ;
|
|
+ } else {
|
|
+ state -> buttons = ((data[0] & 0x20) >> 3) /* left */
|
|
+ | ((data[0] & 0x10) >> 4); /* right */
|
|
+ state -> dx = (char)(((data[0] & 0x03) << 6) | (data[1] & 0x3F));
|
|
+ state -> dy = (char)(((data[0] & 0x0C) << 4) | (data[2] & 0x3F));
|
|
+ // state -> dz = (signed char)((data [3] & 0xf) << 4) >> 4 ;
|
|
+ }
|
|
+ return 0 ;
|
|
+}
|
|
+
|
|
static int M_ms(Gpm_Event *state, unsigned char *data)
|
|
{
|
|
/*
|
|
@@ -1436,6 +1455,9 @@
|
|
*/
|
|
|
|
Gpm_Type mice[]={
|
|
+ {"msuite", "The MouseSuite 98 (side buttons and wheel) protocol.",
|
|
+ "", M_msuite, I_serial, CS7 | STD_FLG,
|
|
+ {0x40, 0x40, 0x40, 0x00}, 4, 1, 1, 0},
|
|
{"mman", "The \"MouseMan\" and similar devices (3/4 bytes per packet).",
|
|
"Mouseman", M_mman, I_serial, CS7 | STD_FLG, /* first */
|
|
{0x40, 0x40, 0x40, 0x00}, 3, 1, 1, 0, 0},
|