DEVPOINTER(2) (mux) DEVPOINTER(2) NAME devpointer - I/O interface for the pointer device SYNOPSIS include "draw.m"; # for Draw->Pointer include "devpointer.m"; ptr := load Devpointer Devpointer->PATH; init: fn(); reader: fn(file: string, posn: chan of ref Draw->Pointer, pid: chan of (int, string)); bytes2ptr: fn(buf: array of byte) : ref Draw->Pointer; ptr2bytes: fn(ptr: ref Draw->Pointer): array of byte; DESCRIPTION Devpointer reads messages from pointer devices with the same data format as /dev/pointer, converting them to Pointer adts. Init must be called before any other operation of the mod- ule. Reader should be spawned by the caller. It opens the pointer device specified by file, and sends a value (id, err) on channel pid. On success, id is the process ID of the spawned process and err is nil; on an error, err is a diagnostic, and id is undefined. If the file was opened successfully, reader continually reads the pointer device and sends Pointer adts over the channel posn. If file is nil, the default device is /dev/pointer. Bytes2ptr converts the array of bytes buf to a Pointer and returns a reference to it. Buf should consist of exactly Devpointer->Size bytes and be in the format returned by /dev/pointer. Ptr2bytes provides the inverse transformation of bytes2ptr: it packs the data into an array of bytes of appropriate for- mat, which it returns. FILES /dev/pointer SEE ALSO draw-intro(2), draw-pointer(2) Page 1 Plan 9 (printed 12/22/24)