FTEQW
Documentation of the FTE engine source tree.
input.h
Go to the documentation of this file.
1/*
2Copyright (C) 1996-1997 Id Software, Inc.
3
4This program is free software; you can redistribute it and/or
5modify it under the terms of the GNU General Public License
6as published by the Free Software Foundation; either version 2
7of the License, or (at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19*/
20// input.h -- external (non-keyboard) input devices
21
22void IN_ReInit (void);
23
24void IN_Init (void);
25float IN_DetermineMouseRate(void);
26
27void IN_Shutdown (void);
28
29void IN_Commands (void);
30// oportunity for devices to stick commands on the script buffer
31
32void IN_Touch_BlockGestures(unsigned int devid); //prevents any gestures from being generated from the same touch event.
33int IN_Touch_Fallback(unsigned int devid); //decides whether a tap should be attack/jump according to m_touchstrafe
34qboolean IN_Touch_MouseIsAbs(unsigned int devid);
35
36void IN_Move (float *nudgemovements, float *absmovements, int pnum, float frametime);
37// add additional movement on top of the keyboard move cmd
38
39extern cvar_t in_xflip;
40
43
44void IN_ActivateMouse(void);
45void IN_DeactivateMouse(void);
46
47int CL_TargettedSplit(qboolean nowrap);
48
49//specific events for the system-specific input code to call. may be called outside the main thread (so long as you don't call these simultaneously - ie: use a mutex or only one input thread).
50void IN_KeyEvent(unsigned int devid, int down, int keycode, int unicode); //don't use IN_KeyEvent for mice if you ever use abs mice...
51void IN_MouseMove(unsigned int devid, int abs, float x, float y, float z, float size);
52void IN_JoystickAxisEvent(unsigned int devid, int axis, float value);
53void IN_Accelerometer(unsigned int devid, float x, float y, float z);
54void IN_Gyroscope(unsigned int devid, float pitch, float yaw, float roll);
55qboolean IN_SetHandPosition(const char *devname, vec3_t org, vec3_t ang, vec3_t vel, vec3_t avel);
56
57//system-specific functions
58void INS_Move (void);
59void INS_Accumulate (void);
60void INS_ClearStates (void);
61void INS_ReInit (void);
62void INS_Init (void);
63void INS_Shutdown (void);
64void INS_Commands (void); //final chance to call IN_MouseMove/IN_KeyEvent each frame
65void INS_EnumerateDevices(void *ctx, void(*callback)(void *ctx, const char *type, const char *devicename, unsigned int *qdevid));
66void INS_SetupControllerAudioDevices(qboolean enabled); //creates audio devices for each controller (where controllers have their own audio devices)
67
68void INS_Rumble(int joy, quint16_t amp_low, quint16_t amp_high, quint32_t duration);
69void INS_RumbleTriggers(int joy, quint16_t left, quint16_t right, quint32_t duration);
70void INS_SetLEDColor(int id, vec3_t color);
71void INS_SetTriggerFX(int id, const void *data, size_t size);
72qboolean INS_KeyToLocalName(int qkey, char *buf, size_t bufsize); //returns a name for the key, according to their keyboard layout AND system language(hopefully), or false on unsupported/error. result may change at any time (eg: tap alt+shift on windows)
73
74#define DEVID_UNSET ~0u
75
77extern cvar_t cl_nodelta;
78extern cvar_t cl_c2spps;
80extern cvar_t cl_netfps;
82extern cvar_t cl_smartjump;
83extern cvar_t cl_run;
84extern cvar_t cl_fastaccel;
85extern cvar_t cl_rollspeed;
89extern cvar_t in_windowed_mouse; //if 0, uses absolute mouse coords allowing the mouse to be used for other programs too. ignored when fullscreen (and reliable).
90extern cvar_t prox_inmenu;
91extern cvar_t cl_forceseat;
qboolean
Definition: api_menu.h:34
vec_t vec3_t[3]
Definition: api_menu.h:40
void dNearCallback * callback
Definition: com_phys_ode.c:655
GLsizei bufsize
Definition: gl_vidcommon.c:312
static EGLSurface EGLSurface EGLContext ctx
Definition: gl_videgl.c:47
struct @319::xidevinfo::@353 axis[2]
qboolean abs
Definition: gl_vidlinuxglx.c:1363
GLfloat GLfloat GLfloat z
Definition: glquake.h:158
GLfloat GLfloat y
Definition: glquake.h:158
GLint GLenum type
Definition: glquake.h:157
GLint size
Definition: glquake.h:157
GLfloat x
Definition: glquake.h:158
GLsizei GLboolean const GLfloat * value
Definition: glquake.h:164
void IN_JoystickAxisEvent(unsigned int devid, int axis, float value)
Definition: in_generic.c:1081
void IN_ActivateMouse(void)
Definition: in_sdl.c:25
cvar_t in_xflip
Definition: input.h:88
void INS_Init(void)
Definition: in_morphos.c:121
void INS_SetTriggerFX(int id, const void *data, size_t size)
Definition: in_sdl.c:459
void IN_Accelerometer(unsigned int devid, float x, float y, float z)
Definition: in_generic.c:1128
float mousemove_y
Definition: input.h:42
void IN_Commands(void)
Definition: in_generic.c:429
cvar_t cl_instantrotate
Definition: cl_input.c:50
int CL_TargettedSplit(qboolean nowrap)
Definition: cl_input.c:61
void IN_KeyEvent(unsigned int devid, int down, int keycode, int unicode)
Definition: in_generic.c:1093
cvar_t cl_smartjump
Definition: cl_input.c:42
void IN_Init(void)
Definition: in_generic.c:350
cvar_t prox_inmenu
Definition: cl_input.c:54
float mousemove_x
Definition: cl_screen.c:191
void IN_Shutdown(void)
Definition: in_generic.c:245
void IN_ReInit(void)
Definition: in_generic.c:250
cvar_t cl_c2sImpulseBackup
Definition: cl_input.c:38
void INS_Move(void)
Definition: in_morphos.c:217
void INS_ReInit(void)
Definition: in_morphos.c:83
void IN_DeactivateMouse(void)
Definition: in_sdl.c:41
cvar_t in_windowed_mouse
Definition: renderer.c:98
void IN_MouseMove(unsigned int devid, int abs, float x, float y, float z, float size)
Definition: in_generic.c:1111
void INS_Commands(void)
Definition: in_morphos.c:211
float IN_DetermineMouseRate(void)
Definition: in_generic.c:335
void IN_Move(float *nudgemovements, float *absmovements, int pnum, float frametime)
Definition: in_generic.c:1071
qboolean IN_SetHandPosition(const char *devname, vec3_t org, vec3_t ang, vec3_t vel, vec3_t avel)
Definition: in_generic.c:1155
cvar_t cl_forceseat
Definition: cl_input.c:60
cvar_t cl_netfps
Definition: cl_input.c:40
cvar_t cl_queueimpulses
Definition: cl_input.c:41
cvar_t cl_rollspeed
Definition: view.c:70
void INS_Accumulate(void)
Definition: in_sdl.c:1487
qboolean IN_Touch_MouseIsAbs(unsigned int devid)
Definition: in_generic.c:420
cvar_t cl_run
Definition: cl_input.c:44
void IN_Gyroscope(unsigned int devid, float pitch, float yaw, float roll)
Definition: in_generic.c:1140
float mousecursor_y
Definition: input.h:41
void INS_ClearStates(void)
Definition: in_win.c:1787
void INS_SetupControllerAudioDevices(qboolean enabled)
Definition: in_win.c:1869
int IN_Touch_Fallback(unsigned int devid)
Definition: in_generic.c:394
cvar_t cl_splitscreen
Definition: cl_main.c:97
cvar_t cl_nodelta
Definition: cl_input.c:34
void IN_Touch_BlockGestures(unsigned int devid)
Definition: in_generic.c:415
void INS_Shutdown(void)
Definition: in_morphos.c:55
void INS_SetLEDColor(int id, vec3_t color)
Definition: in_sdl.c:437
void INS_RumbleTriggers(int joy, quint16_t left, quint16_t right, quint32_t duration)
Definition: in_sdl.c:417
qboolean INS_KeyToLocalName(int qkey, char *buf, size_t bufsize)
Definition: in_sdl.c:990
cvar_t cl_c2spps
Definition: cl_input.c:37
cvar_t cl_prydoncursor
Definition: cl_input.c:49
float mousecursor_x
Definition: cl_screen.c:190
void INS_EnumerateDevices(void *ctx, void(*callback)(void *ctx, const char *type, const char *devicename, unsigned int *qdevid))
Definition: in_morphos.c:214
void INS_Rumble(int joy, quint16_t amp_low, quint16_t amp_high, quint32_t duration)
Definition: in_sdl.c:397
cvar_t cl_fastaccel
Definition: cl_input.c:45
char ** data
Definition: p_script.c:63
float frametime
Definition: pmove.c:31
vec3_t right
Definition: pmove.c:33
Definition: cvar.h:59
unsigned char buf[KBRINGSIZE]
Definition: sys_dos.c:27
cvar_t enabled
Definition: view.c:50
cvar_t yaw
Definition: view.c:55