Module interface:pointer - Pointer device interface

Pointer device interface. The CT.POINTER channel-type provides a generic method for interacting with pointer devices.

Index

Declarations

pointer_if.inc:33Group PSTATE

Pointer state bits. This is used to indicate state in a pointer device, including what buttons are depressed, and (if any) what keyboard modifiers are active. Room for other modifiers incase we want to get creative later (e.g. RFID tagging, etc.).

State is indicated by a 32-bit INT, supporting 16 buttons in the low-order bits, and up to 16 modifiers above (9 used for keyboard modifiers currently, top 7 bits are currently reserved for user/application modifiers.

pointer_if.inc:44Constant PSTATE.BUTTONSHIFT

VAL INT PSTATE.BUTTONSHIFT

Button state shift.

pointer_if.inc:45Constant PSTATE.BUTTONMASK

VAL INT PSTATE.BUTTONMASK

Button state mask (after shift).

pointer_if.inc:47Constant PSTATE.LSHIFT

VAL INT PSTATE.LSHIFT

Left shift key.

pointer_if.inc:48Constant PSTATE.RSHIFT

VAL INT PSTATE.RSHIFT

Right shift key.

pointer_if.inc:49Constant PSTATE.SHIFT

VAL INT PSTATE.SHIFT

Either shift key.

pointer_if.inc:50Constant PSTATE.LCTRL

VAL INT PSTATE.LCTRL

Left control key.

pointer_if.inc:51Constant PSTATE.RCTRL

VAL INT PSTATE.RCTRL

Right control key.

pointer_if.inc:52Constant PSTATE.CTRL

VAL INT PSTATE.CTRL

Either control key.

pointer_if.inc:53Constant PSTATE.LMETA

VAL INT PSTATE.LMETA

Left meta key.

pointer_if.inc:54Constant PSTATE.RMETA

VAL INT PSTATE.RMETA

Right meta key.

pointer_if.inc:55Constant PSTATE.META

VAL INT PSTATE.META

Either meta key.

pointer_if.inc:57Constant PSTATE.MODSHIFT

VAL INT PSTATE.MODSHIFT

Modifier state shift.

pointer_if.inc:58Constant PSTATE.MODMASK

VAL INT PSTATE.MODMASK

Modifier state mask (after shift).

pointer_if.inc:62Protocol P.POINTER.IN

PROTOCOL P.POINTER.IN

Pointer input protocol.

pointer_if.inc:66Tag set.dimensions

set.dimensions; [4]INT

Sets the dimensions of the pointer space.

Parameters:

[4]INT dim Dimensions as array of x-min,y-min,x-max,y-max

pointer_if.inc:68Tag get.dimensions

get.dimensions

Gets the pointer space dimensions.

pointer_if.inc:71Tag ioctl

ioctl; INT; INT

IO control for pointers.

Parameters:

INT ictl, ival IOCTL number and argument.

pointer_if.inc:75Protocol P.POINTER.OUT

PROTOCOL P.POINTER.OUT

Pointer output protocol.

pointer_if.inc:79Tag result

result; INT

General result from ioctl request.

Parameters:

INT val Result value or error.

pointer_if.inc:82Tag dimensions

dimensions; [4]INT

Dimensions result from get.dimensions.

Parameters:

[4]INT dim Dimensions, as array of x-min,y-min,x-max,y-max

pointer_if.inc:86Protocol P.POINTER.EVENT

PROTOCOL P.POINTER.EVENT

Pointer event protocol.

pointer_if.inc:90Tag abs.xy

abs.xy; INT; INT

Absolute pointer position.

Parameters:

INT x, y Position.

pointer_if.inc:93Tag button.down

button.down; INT; INT

Pointer button press.

Parameters:

INT button, mstate Button and modifier state.

pointer_if.inc:96Tag button.up

button.up; INT; INT

Pointer button release.

Parameters:

INT button, mstate Button and modifier state.

pointer_if.inc:100Channel type CT.POINTER

RECURSIVE CHAN TYPE CT.POINTER

Generic pointer channel-type.

pointer_if.inc:103Variable in?

CHAN P.POINTER.IN

Commands sent to pointer device.

pointer_if.inc:105Variable out!

CHAN P.POINTER.OUT

Command responses from pointer device.

pointer_if.inc:107Variable events!

CHAN P.POINTER.EVENT

Pointer events.

pointer_if.inc:109Variable return?

CHAN CT.POINTER!

Return client channel-end to close.

pointer_if.inc:111Variable replace?

CHAN CT.POINTER?

Used internally for 'tapping' pointer events.