1a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat/* 2a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat Copyright (C) 2002-2010 Karl J. Runge <runge@karlrunge.com> 3a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat All rights reserved. 4a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 5a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatThis file is part of x11vnc. 6a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 7a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatx11vnc is free software; you can redistribute it and/or modify 8a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatit under the terms of the GNU General Public License as published by 9a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatthe Free Software Foundation; either version 2 of the License, or (at 10a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatyour option) any later version. 11a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 12a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatx11vnc is distributed in the hope that it will be useful, 13a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatbut WITHOUT ANY WARRANTY; without even the implied warranty of 14a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatGNU General Public License for more details. 16a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 17a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatYou should have received a copy of the GNU General Public License 18a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatalong with x11vnc; if not, write to the Free Software 19a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA 20a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehator see <http://www.gnu.org/licenses/>. 21a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 22a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatIn addition, as a special exception, Karl J. Runge 23a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatgives permission to link the code of its release of x11vnc with the 24a430b2b5ca4f0967836f5820e8f03adc17fc0a24San MehatOpenSSL project's "OpenSSL" library (or with modified versions of it 25a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatthat use the same license as the "OpenSSL" library), and distribute 26a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatthe linked executables. You must obey the GNU General Public License 27a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatin all respects for all of the code used other than "OpenSSL". If you 28a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatmodify this file, you may extend this exception to your version of the 29a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatfile, but you are not obligated to do so. If you do not wish to do 30a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatso, delete this exception statement from your version. 31a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat*/ 32a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 33a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat#ifndef _X11VNC_KEYBOARD_H 34a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat#define _X11VNC_KEYBOARD_H 35a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 36a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat/* -- keyboard.h -- */ 37a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat#include "allowed_input_t.h" 38a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 39a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void get_keystate(int *keystate); 40a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void clear_modifiers(int init); 41a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int track_mod_state(rfbKeySym keysym, rfbBool down, rfbBool set); 42a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void clear_keys(void); 43a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void clear_locks(void); 44a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int get_autorepeat_state(void); 45a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int get_initial_autorepeat_state(void); 46a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void autorepeat(int restore, int bequiet); 47a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void check_add_keysyms(void); 48a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int add_keysym(KeySym keysym); 49a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void delete_added_keycodes(int bequiet); 50a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void initialize_remap(char *infile); 51a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int sloppy_key_check(int key, rfbBool down, rfbKeySym keysym, int *new_kc); 52a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void switch_to_xkb_if_better(void); 53a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern char *short_kmbcf(char *str); 54a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void initialize_allowed_input(void); 55a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void initialize_modtweak(void); 56a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void initialize_keyboard_and_pointer(void); 57a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void get_allowed_input(rfbClientPtr client, allowed_input_t *input); 58a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern double typing_rate(double time_window, int *repeating); 59a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern int skip_cr_when_scaling(char *mode); 60a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatextern void keyboard(rfbBool down, rfbKeySym keysym, rfbClientPtr client); 61a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat 62a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat#endif /* _X11VNC_KEYBOARD_H */ 63