vga_waitevent man page on aLinux

Man page or keyword search:  
man Server   7435 pages
apropos Keyword Search (all sections)
Output format
aLinux logo
[printable version]

vga_waitevent(3)	      Svgalib User Manual	      vga_waitevent(3)

NAME
       vga_waitevent - wait for various I/O events

SYNOPSIS
       #include <sys/time.h>
       #include <sys/types.h>
       #include <unistd.h>
       #include <vga.h>

       int  vga_waitevent(int  which,  fd_set  *input, fd_set *output , fd_set
       *except, struct timeval *timeout)

DESCRIPTION
       This is the only function allowing you to wait for keyboard  AND	 mouse
       events.	It  is	based  on  the select(2) library function, so for deep
       understanding of vga_waitevent() look at select(2) as well.

       which can be  0	or  logical  ored  together  from  VGA_MOUSEEVENT  and
       VGA_KEYEVENT.   If  you	are interested in waiting for file descriptors
       having input available or being ready for new write data or being in an
       exceptional  condition  (urgent	data  arrived on a TCP stream) set the
       corresponding bits in the fd_set structures passed (see select(3)).  If
       you  want vga_waitevent() to return after a timeout value pass a struct
       timeval with the desired value. If you are not interested in the corre‐
       sponding events you may pass NULL for any of the pointers.

       If  NULL	 is  passed  for timeout vga_waitevent() will not time out but
       block until any of the other events occurs.  If the integer returned is
       <  0 an error occurred. Check the global variable errno for details. If
       a  value	 >=  0	is  returned  it  is  a	 bitmask   constructed	 using
       VGA_MOUSEEVENT and VGA_KEYEVENT to show which of these events occured.

       If  any	of  these  two	occured	 the  appropriate update functions are
       already called by vga_waitevent().vga_waitevent() operates  in  raw  as
       well  as non-raw keyboard mode. In the latter case use vga_getch(3) not
       vga_getkey(3) to read the newly arrived keys.

       Any of the file related conditions being met will be signalled by  set‐
       ting  exactly  the bits for files that met the conditions in the corre‐
       sponding fd_set structures. If a non-NULL timeout is passed the remain‐
       ing  time  is written into it on return.	 If it is 0 a timeout occured.
       (again: cf.  select(2)) Therefore, depending on context, vga_waitkey(3)
       may return 0 if only special, non svgalib, events occured.

EXAMPLES
       If  you	want  to  wait	blocking  for a keypress OR a mouse event use:
       vga_waitevent(VGA_MOUSEEVENT | VGA_KEYEVENT, NULL, NULL, NULL, NULL);

       If you want to wait for a keypress OR a mouse  event  but  non-blocking
       use:

       #include <sys/time.h>
       #include <sys/types.h>
       #include <unistd.h>
       #include <vga.h>

       struct timeval timeout;
       timeout.tv_sec = 0;
       timeout.tv_usec = 0;
       vga_waitevent(VGA_MOUSEEVENT  |	VGA_KEYEVENT, NULL, NULL, NULL, &time‐
       out);

       You could do a similar thing by just calling

       mouse_update();
       keyboard_update();

       though. There is no such counterpart for the first example.

       Finally, there is a very nice eventtest(6) demo showing most  capabili‐
       ties of vga_waitevent().

BUGS
       This  function was introduced in 1.2.10. Unfortunately there was a typo
       in the first implementation which broke the case where input was	 NULL.
       Though  fixed  in  1.2.11  for optimal portability pass an empty fd_set
       instead of NULL as first argument.

       When not running in background mode, that is, the svgalib applcation is
       suspended  while	 the  VC is switched away, it seems vga_waitevent gets
       stuck and does no longer timeout. It is not clear if this is an svgalib
       bug, kernel bug or general problem.

SEE ALSO
       svgalib(7),  vgagl(7),  libvga.config(5),  eventtest(6), mouse_getposi‐
       tion_6d(3),  mouse_getx(3),  mouse_update(3),   mouse_waitforupdate(3),
       vga_getkey(3), vga_getch(3)

AUTHOR
       This  manual  page  was	edited by Michael Weller <eowmob@exp-math.uni-
       essen.de>. The exact source of the referenced function as  well	as  of
       the original documentation is unknown.

       It is very likely that both are at least to some extent are due to Harm
       Hanemaayer <H.Hanemaayer@inter.nl.net>.

       Occasionally this might be wrong. I hereby asked to be excused  by  the
       original author and will happily accept any additions or corrections to
       this first version of the svgalib manual.

Svgalib (>= 1.2.11)		 27 July 1997		      vga_waitevent(3)
[top]

List of man pages available for aLinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net