/* * input.h * This file is part of LCDd, the lcdproc server. * * This file is released under the GNU General Public License. Refer to the * COPYING file distributed with this package. * * Copyright (c) 1999, William Ferrell, Scott Scriven * 2003, Joris Robijn * */ #ifndef INPUT_H #define INPUT_H #include /* Accepts and uses keypad input while displaying screens... */ int handle_input (); #ifndef bool # define bool short # define true 1 # define false 0 #endif typedef struct KeyReservation { char * key; bool exclusive; Client * client; /* NULL for internal clients */ } KeyReservation; int input_init(); /* Init the input handling system */ int input_shutdown(); /* Shut it down */ int input_reserve_key (const char * key, bool exclusive, Client * client); /* Reserves a key for a client */ /* Return -1 if reservation of key is not possible */ void input_release_key (const char * key, Client * client); /* Releases a key reservation */ void input_release_client_keys (Client * client); /* Releases all key reservations for a given client */ KeyReservation * input_find_key (const char * key, Client * client); /* Finds if a key reservation causes a 'hit'. * If the key was reserved exclusively, the client will be ignored. * If the key was reserved shared, the client must match. */ #endif