table of contents
other versions
- wheezy 1:1.0.2-4.1
giiEventPoll(3) | GGI | giiEventPoll(3) |
NAME¶
giiEventPoll, giiEventSelect, giiEventsQueued, giiEventRead - Wait for and receive eventsSYNOPSIS¶
#include <ggi/gii.h> gii_event_mask giiEventPoll(gii_input_t inp, gii_event_mask mask, struct timeval *t); int giiEventSelect(gii_input_t inp, gii_event_mask *mask, int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); int giiEventsQueued(gii_input_t inp, gii_event_mask mask); int giiEventRead(gii_input_t inp, gii_event *ev, gii_event_mask mask);
DESCRIPTION¶
giiEventPoll waits for specific events to become available on an input. This call somewhat resembles the Unix select(2) call, but only for LibGII events and is more portable. The function returns after an event matching the given event mask is available or after the amount of time specified by t has elapsed, whichever occurs first. If t is NULL, there is no timeout.RETURN VALUE¶
giiEventPoll returns a mask of available events (constrained by the given mask). It is 0 if no events are available. On error, an negative gii-error(3) code is returned.EXAMPLES¶
This is one of the various ways of coding an event-polling loop:for(;;) { tv.tv_sec = 0; tv.tv_usec = 100; /* change to 0 for non-blocking behaviour */ ggiEventPoll(vis, emAll, &tv); n = ggiEventsQueued(vis, emAll); /* Process events in one gulp, when available */ while(n--) { ggiEventRead(vis, &ggievent, emAll); switch(ggievent.any.type) { /* ... */ } } /* Do other stuff */ }
Note: This code uses the LibGGI
functions and types instead of the LibGII ones, since the former is the more
common case.
2006-12-30 | libgii-1.0.x |