2005-09-20 23:26:39 +10:00
/** \file input_common.h
2012-11-18 11:23:22 +01:00
2005-09-20 23:26:39 +10:00
Header file for the low level input library
*/
2005-10-05 01:11:39 +10:00
# ifndef INPUT_COMMON_H
# define INPUT_COMMON_H
# include <wchar.h>
2005-09-20 23:26:39 +10:00
2006-01-24 06:40:14 +10:00
/**
2005-10-20 21:27:54 +10:00
Use unencoded private - use keycodes for internal characters
*/
# define INPUT_COMMON_RESERVED 0xe000
2005-09-20 23:26:39 +10:00
enum
{
2012-11-18 16:30:30 -08:00
/**
R_NULL is sometimes returned by the input when a character was
requested but none could be delivered , or when an exception
happened .
*/
R_NULL = INPUT_COMMON_RESERVED ,
R_EOF
2005-09-20 23:26:39 +10:00
}
2012-11-18 16:30:30 -08:00
;
2005-09-20 23:26:39 +10:00
2006-01-24 06:40:14 +10:00
/**
Init the library
*/
2012-11-18 16:30:30 -08:00
void input_common_init ( int ( * ih ) ( ) ) ;
2005-09-20 23:26:39 +10:00
2006-01-24 06:40:14 +10:00
/**
Free memory used by the library
*/
2005-09-20 23:26:39 +10:00
void input_common_destroy ( ) ;
/**
Function used by input_readch to read bytes from stdin until enough
bytes have been read to convert them to a wchar_t . Conversion is
done using mbrtowc . If a character has previously been read and
then ' unread ' using \ c input_common_unreadch , that character is
returned . If timed is true , readch2 will wait at most
WAIT_ON_ESCAPE milliseconds for a character to be available for
reading before returning with the value WEOF .
*/
2012-11-18 16:30:30 -08:00
wchar_t input_common_readch ( int timed ) ;
2005-09-20 23:26:39 +10:00
2006-01-24 06:40:14 +10:00
/**
Push a character or a readline function onto the stack of unread
characters that input_readch will return before actually reading from fd
0.
*/
2012-11-18 16:30:30 -08:00
void input_common_unreadch ( wint_t ch ) ;
2005-09-20 23:26:39 +10:00
2013-04-03 13:49:58 -07:00
/** Adds a callback to be invoked at the next turn of the "event loop." The callback function will be invoked and passed arg. */
void input_common_add_callback ( void ( * callback ) ( void * ) , void * arg ) ;
2005-09-20 23:26:39 +10:00
# endif