ref: 1dbb193077af7ba6ff7fb70a4dd465480764382e
dir: /man/2/devpointer/
.TH DEVPOINTER 2 mux .SH NAME devpointer \- I/O interface for the pointer device .SH SYNOPSIS .EX 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; .EE .SH DESCRIPTION .B Devpointer reads messages from pointer devices with the same data format as .BR /dev/pointer , converting them to .B Pointer adts. .PP .B Init must be called before any other operation of the module. .PP .B Reader should be spawned by the caller. It opens the pointer device specified by .IR file , and sends a value .BI ( id,\ err ) on channel .IR pid . On success, .I id is the process ID of the spawned process and .I err is nil; on an error, .I err is a diagnostic, and .I id is undefined. If the file was opened successfully, .B reader continually reads the pointer device and sends .B Pointer adts over the channel .IR posn . If .I file is .BR nil , the default device is .BR /dev/pointer . .PP .B Bytes2ptr converts the array of bytes .I buf to a .B Pointer and returns a reference to it. .I Buf should consist of exactly .B Devpointer->Size bytes and be in the format returned by .BR /dev/pointer . .PP .B Ptr2bytes provides the inverse transformation of .BR bytes2ptr : it packs the data into an array of bytes of appropriate format, which it returns. .SH FILES .B /dev/pointer .SH "SEE ALSO" .IR draw-intro (2), .IR draw-pointer (2)