Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
41 lines (30 sloc) 1.53 KB
Network protocol used by GfxTablet
Version 2
---------
GfxTablet app sends UDP packets to port 40118 of the destination host.
Packet structure, uses network byte order (big endian):
9 bytes "GfxTablet"
1 unsigned int16 version number
1 byte event type:
0: motion event (hovering)
1: button event (finger, pen etc. touches surface)
1 unsigned int16 x (using full range: 0..65535)
1 unsigned int16 y (using full range: 0..65535)
1 unsigned int16 pressure (accepting full range 0..65535, but will clip to 32768 == pressure 1.0f on Android device)
when type == button event:
1 signed int8 button id:
-1: stylus in range pseudo-button
0: left click / stylus in contact / button 0
1: extra button 1
2: extra button 2
1 byte button status:
0 button is released ("up")
1 button is pressed ("down")
XInput will ignore BTN_TOUCH events if they are not preceeded by
a BTN_TOOL_PEN event -- this would never happen for a real stylus,
because it would imply the stylus is touching the pad, yet too far
away from the pad to be detected.
A GfxTablet client must therefore be careful to send a "Button -1
down" event before a "Button 0 down" event, to emulate this
behaviour. If they are faking these events, they'll probably want
to likewise send a "Button -1 up" event after a "Button 0 up" event.