RetroArch
input_driver.h
Go to the documentation of this file.
1 /* RetroArch - A frontend for libretro.
2  * Copyright (C) 2010-2014 - Hans-Kristian Arntzen
3  * Copyright (C) 2011-2017 - Daniel De Matteis
4  *
5  * RetroArch is free software: you can redistribute it and/or modify it under the terms
6  * of the GNU General Public License as published by the Free Software Found-
7  * ation, either version 3 of the License, or (at your option) any later version.
8  *
9  * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
10  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  * PURPOSE. See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along with RetroArch.
14  * If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #ifndef __INPUT_DRIVER__H
18 #define __INPUT_DRIVER__H
19 
20 #include <stdint.h>
21 #include <stdlib.h>
22 #include <stddef.h>
23 #include <sys/types.h>
24 
25 #include "input_types.h"
26 
27 #ifdef HAVE_CONFIG_H
28 #include "config.h"
29 #endif
30 
31 #include <boolean.h>
32 #include <retro_common_api.h>
33 #include <retro_inline.h>
34 #include <libretro.h>
35 #include <retro_miscellaneous.h>
36 
37 #include "input_defines.h"
38 
39 #include "../msg_hash.h"
40 #include "include/hid_types.h"
41 #include "include/hid_driver.h"
42 #include "include/gamepad.h"
43 
45 
47 {
51 };
52 
54 {
64 };
65 
67 {
71 };
72 
74 {
79 
81 
82  /*
83  * Waits for keys to be pressed (used for binding
84  * keys in the menu).
85  * Callback returns false when all polling is done.
86  **/
88 
89  /* Cancels keyboard wait for keys function callback. */
91 };
92 
94 {
95  bool valid;
98  enum retro_key key;
99 
101 
102  /* Joypad key. Joypad POV (hats)
103  * are embedded into this key as well. */
105 
106  /* Default key binding value -
107  * for resetting bind to default */
109 
110  /* Joypad axis. Negative and positive axes
111  * are embedded into this variable. */
113 
114  /* Default joy axis binding value -
115  * for resetting bind to default */
117 
118  /* Used by input_{push,pop}_analog_dpad(). */
120 
123 };
124 
126 {
128  const struct retro_keybind *auto_binds;
130 };
131 
133 {
134  /* Inits input driver.
135  */
136  void *(*init)(const char *joypad_driver);
137 
138  /* Polls input. Called once every frame. */
139  void (*poll)(void *data);
140 
141  /* Queries input state for a certain key on a certain player.
142  * Players are 1 - MAX_USERS.
143  * For digital inputs, pressed key is 1, not pressed key is 0.
144  * Analog values have same range as a signed 16-bit integer.
145  */
147  rarch_joypad_info_t joypad_info,
148  const struct retro_keybind **retro_keybinds,
149  unsigned port, unsigned device, unsigned index, unsigned id);
150 
151  /* Frees the input struct. */
152  void (*free)(void *data);
153 
154  bool (*set_sensor_state)(void *data, unsigned port,
155  enum retro_sensor_action action, unsigned rate);
156  float (*get_sensor_input)(void *data, unsigned port, unsigned id);
158  const char *ident;
159 
160  void (*grab_mouse)(void *data, bool state);
161  bool (*grab_stdin)(void *data);
162  bool (*set_rumble)(void *data, unsigned port,
163  enum retro_rumble_effect effect, uint16_t state);
164  const input_device_driver_t *(*get_joypad_driver)(void *data);
165  const input_device_driver_t *(*get_sec_joypad_driver)(void *data);
168 };
169 
171 {
172  bool (*init)(void *data);
173  bool (*query_pad)(unsigned);
175  bool (*button)(unsigned, uint16_t);
176  void (*get_buttons)(unsigned, input_bits_t *);
177  int16_t (*axis)(unsigned, uint32_t);
180  const char *(*name)(unsigned);
181 
182  const char *ident;
183 };
184 
192 const void *input_driver_find_handle(int index);
193 
201 const char *input_driver_find_ident(int index);
202 
210 const char* config_get_input_driver_options(void);
211 
221 bool input_driver_set_rumble_state(unsigned port,
222  enum retro_rumble_effect effect, uint16_t strength);
223 
225 
227 
229 
231 
232 void input_driver_set(const input_driver_t **input, void **input_data);
233 
243 bool input_sensor_set_state(unsigned port,
244  enum retro_sensor_action action, unsigned rate);
245 
246 float input_sensor_get_input(unsigned port, unsigned id);
247 
248 #define inherit_joyaxis(binds) (((binds)[x_plus].joyaxis == (binds)[x_minus].joyaxis) || ( (binds)[y_plus].joyaxis == (binds)[y_minus].joyaxis))
249 
256 #define input_pop_analog_dpad(binds) \
257 { \
258  unsigned j; \
259  for (j = RETRO_DEVICE_ID_JOYPAD_UP; j <= RETRO_DEVICE_ID_JOYPAD_RIGHT; j++) \
260  (binds)[j].joyaxis = (binds)[j].orig_joyaxis; \
261 }
262 
273 #define input_push_analog_dpad(binds, mode) \
274 { \
275  unsigned k; \
276  unsigned x_plus = RARCH_ANALOG_RIGHT_X_PLUS; \
277  unsigned y_plus = RARCH_ANALOG_RIGHT_Y_PLUS; \
278  unsigned x_minus = RARCH_ANALOG_RIGHT_X_MINUS; \
279  unsigned y_minus = RARCH_ANALOG_RIGHT_Y_MINUS; \
280  if ((mode) == ANALOG_DPAD_LSTICK) \
281  { \
282  x_plus = RARCH_ANALOG_LEFT_X_PLUS; \
283  y_plus = RARCH_ANALOG_LEFT_Y_PLUS; \
284  x_minus = RARCH_ANALOG_LEFT_X_MINUS; \
285  y_minus = RARCH_ANALOG_LEFT_Y_MINUS; \
286  } \
287  for (k = RETRO_DEVICE_ID_JOYPAD_UP; k <= RETRO_DEVICE_ID_JOYPAD_RIGHT; k++) \
288  (binds)[k].orig_joyaxis = (binds)[k].joyaxis; \
289  if (!inherit_joyaxis(binds)) \
290  { \
291  unsigned j = x_plus + 3; \
292  /* Inherit joyaxis from analogs. */ \
293  for (k = RETRO_DEVICE_ID_JOYPAD_UP; k <= RETRO_DEVICE_ID_JOYPAD_RIGHT; k++) \
294  (binds)[k].joyaxis = (binds)[j--].joyaxis; \
295  } \
296 }
297 
303 void input_poll(void);
304 
317 int16_t input_state(unsigned port, unsigned device,
318  unsigned idx, unsigned id);
319 
320 void input_keys_pressed(void *data, input_bits_t* new_state);
321 
322 #ifdef HAVE_MENU
323 void input_menu_keys_pressed(void *data, input_bits_t* new_state);
324 #endif
325 
326 void *input_driver_get_data(void);
327 
328 void input_get_state_for_port(void *data, unsigned port, input_bits_t *p_new_state);
329 
330 const input_driver_t *input_get_ptr(void);
331 
332 void *input_get_data(void);
333 
335 
336 void **input_driver_get_data_ptr(void);
337 
339 
340 bool input_driver_init(void);
341 
342 void input_driver_deinit(void);
343 
344 void input_driver_destroy_data(void);
345 
346 void input_driver_destroy(void);
347 
348 bool input_driver_grab_stdin(void);
349 
351 
352 bool input_driver_find_driver(void);
353 
355 
357 
359 
361 
363 
365 
367 
369 
371 
372 void input_driver_set_own_driver(void);
373 
375 
376 bool input_driver_owns_driver(void);
377 
378 void input_driver_deinit_command(void);
379 
380 bool input_driver_init_command(void);
381 
382 void input_driver_deinit_remote(void);
383 
384 bool input_driver_init_remote(void);
385 
386 void input_driver_deinit_mapper(void);
387 
388 bool input_driver_init_mapper(void);
389 
390 bool input_driver_grab_mouse(void);
391 
392 bool input_driver_ungrab_mouse(void);
393 
395  rarch_joypad_info_t joypad_info,
396  const struct retro_keybind **retro_keybinds,
397  unsigned port, unsigned device, unsigned index, unsigned id);
398 
399 float *input_driver_get_float(enum input_action action);
400 
401 unsigned *input_driver_get_uint(enum input_action action);
402 
404 
412 const void *joypad_driver_find_handle(int index);
413 
421 const char *joypad_driver_find_ident(int index);
422 
430 const char* config_get_joypad_driver_options(void);
431 
443 const input_device_driver_t *input_joypad_init_driver(const char *ident, void *data);
444 
453 
470 void input_conv_analog_id_to_bind_id(unsigned idx, unsigned ident,
471  unsigned *ident_minus, unsigned *ident_plus);
472 
487  const input_device_driver_t *drv,
488  rarch_joypad_info_t joypad_info,
489  unsigned port,
490  const struct retro_keybind *binds,
491  unsigned key)
492 {
493  /* Auto-binds are per joypad, not per user. */
494  uint64_t joykey = (binds[key].joykey != NO_BTN)
495  ? binds[key].joykey : joypad_info.auto_binds[key].joykey;
496  uint32_t joyaxis = (binds[key].joyaxis != AXIS_NONE)
497  ? binds[key].joyaxis : joypad_info.auto_binds[key].joyaxis;
498 
499  if ((uint16_t)joykey != NO_BTN && drv->button(joypad_info.joy_idx, (uint16_t)joykey))
500  return true;
501 
502  return ((float)abs(drv->axis(joypad_info.joy_idx, joyaxis)) / 0x8000) > joypad_info.axis_threshold;
503 
504 }
505 
527  rarch_joypad_info_t joypad_info,
528  unsigned port, unsigned idx, unsigned ident,
529  const struct retro_keybind *binds);
530 
543  unsigned port, enum retro_rumble_effect effect, uint16_t strength);
544 
558  unsigned port, unsigned axis);
559 
573  unsigned port, unsigned button);
574 
576  unsigned joypad, unsigned hat_dir, unsigned hat);
577 
585 void input_pad_connect(unsigned port, input_device_driver_t *driver);
586 
598 bool input_mouse_button_raw(unsigned port, unsigned button);
599 
609 const char *input_joypad_name(const input_device_driver_t *driver,
610  unsigned port);
611 
612 bool input_config_get_bind_idx(unsigned port, unsigned *joy_idx_real);
613 
614 #ifdef HAVE_HID
615 
616 #include "include/hid_driver.h"
617 
625 const void *hid_driver_find_handle(int index);
626 
634 const char *hid_driver_find_ident(int index);
635 
643 const char* config_get_hid_driver_options(void);
644 
652 const hid_driver_t *input_hid_init_first(void);
653 
654 const void *hid_driver_get_data(void);
655 void hid_driver_reset_data(void);
656 #endif
657 
662 typedef void (*input_keyboard_line_complete_t)(void *userdata,
663  const char *line);
664 
665 typedef bool (*input_keyboard_press_t)(void *userdata, unsigned code);
666 
668 {
669  void *userdata;
671 };
672 
683 void input_keyboard_event(bool down, unsigned code, uint32_t character,
684  uint16_t mod, unsigned device);
685 
686 bool input_keyboard_line_append(const char *word);
687 
701 const char **input_keyboard_start_line(void *userdata,
703 
704 
705 bool input_keyboard_ctl(enum rarch_input_keyboard_ctl_state state, void *data);
706 
709 extern const struct retro_keybind *libretro_input_binds[MAX_USERS];
710 extern char input_device_names[MAX_USERS][64];
711 
712 const char *input_config_bind_map_get_base(unsigned i);
713 
714 unsigned input_config_bind_map_get_meta(unsigned i);
715 
716 const char *input_config_bind_map_get_desc(unsigned i);
717 
718 bool input_config_bind_map_get_valid(unsigned i);
719 
720 /* auto_bind can be NULL. */
721 void input_config_get_bind_string(char *buf,
722  const struct retro_keybind *bind,
723  const struct retro_keybind *auto_bind, size_t size);
724 
733 enum retro_key input_config_translate_str_to_rk(const char *str);
734 
735 const char *input_config_get_prefix(unsigned user, bool meta);
736 
746 unsigned input_config_translate_str_to_bind_id(const char *str);
747 
748 void input_config_parse_key(void *data,
749  const char *prefix, const char *btn,
750  struct retro_keybind *bind);
751 
752 void input_config_parse_joy_button(void *data, const char *prefix,
753  const char *btn, struct retro_keybind *bind);
754 
755 void input_config_parse_joy_axis(void *data, const char *prefix,
756  const char *axis, struct retro_keybind *bind);
757 
758 void input_config_parse_mouse_button(void *data, const char *prefix,
759  const char *btn, struct retro_keybind *bind);
760 
761 void input_config_set_device_name(unsigned port, const char *name);
762 
763 void input_config_set_device_display_name(unsigned port, const char *name);
764 
765 void input_config_set_device_config_name(unsigned port, const char *name);
766 
767 void input_config_clear_device_name(unsigned port);
768 
769 void input_config_clear_device_display_name(unsigned port);
770 
771 void input_config_clear_device_config_name(unsigned port);
772 
773 unsigned input_config_get_device_count(void);
774 
775 unsigned *input_config_get_device_ptr(unsigned port);
776 
777 unsigned input_config_get_device(unsigned port);
778 
779 void input_config_set_device(unsigned port, unsigned id);
780 
781 const char *input_config_get_device_name(unsigned port);
782 
783 const char *input_config_get_device_display_name(unsigned port);
784 
785 const char *input_config_get_device_config_name(unsigned port);
786 
787 const struct retro_keybind *input_config_get_bind_auto(unsigned port, unsigned id);
788 
789 void input_config_set_pid(unsigned port, uint16_t pid);
790 
791 uint16_t input_config_get_pid(unsigned port);
792 
793 void input_config_set_vid(unsigned port, uint16_t vid);
794 
795 uint16_t input_config_get_vid(unsigned port);
796 
797 void input_config_reset(void);
798 
800 void fire_connection_listener(unsigned port, input_device_driver_t *driver);
801 
823 
827 extern input_driver_t input_x;
834 extern input_driver_t input_gx;
847 
848 #ifdef HAVE_HID
851 extern hid_driver_t libusb_hid;
852 extern hid_driver_t wiiusb_hid;
853 extern hid_driver_t null_hid;
854 #endif
855 
857 
858 #endif
input_driver_t input_gx
Definition: gx_input.c:149
input_device_driver_t qnx_joypad
Definition: qnx_joypad.c:128
uint64_t def_joykey
Definition: input_driver.h:108
hid_driver_t wiiusb_hid
Definition: wiiusb_hid.c:624
input_device_driver_t ps2_joypad
Definition: ps2_joypad.c:154
GLuint const GLchar * name
Definition: glext.h:6671
void * userdata
Definition: input_driver.h:669
void(* grab_mouse)(void *data, bool state)
Definition: input_driver.h:160
#define NO_BTN
Definition: input_defines.h:156
bool input_driver_find_driver(void)
Definition: input_driver.c:1289
bool input_driver_is_nonblock_state(void)
Definition: input_driver.c:1368
void set_connection_listener(pad_connection_listener_t *listener)
Definition: input_driver.c:69
input_driver_t input_wiiu
Definition: wiiu_input.c:255
bool input_driver_init_remote(void)
Definition: input_driver.c:1445
input_driver_t input_android
Definition: android_input.c:1626
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
int16_t input_joypad_analog(const input_device_driver_t *driver, rarch_joypad_info_t joypad_info, unsigned port, unsigned idx, unsigned ident, const struct retro_keybind *binds)
Definition: input_driver.c:1692
void input_driver_destroy(void)
Definition: input_driver.c:1264
#define INLINE
Definition: retro_inline.h:35
void(* keyboard_mapping_set_block)(void *data, bool value)
Definition: input_driver.h:167
Definition: input_driver.h:68
#define RETRO_BEGIN_DECLS
Definition: retro_common_api.h:41
input_driver_t input_linuxraw
Definition: linuxraw_input.c:220
Definition: input_driver.h:57
void input_driver_deinit_mapper(void)
Definition: input_driver.c:1438
input_driver_t input_xenon360
Definition: xenon360_input.c:122
input_driver_t input_wayland
Definition: wayland_input.c:412
Configuration options (set of defines)
void input_driver_set_libretro_input_blocked(void)
Definition: input_driver.c:1343
input_device_driver_t psp_joypad
Definition: psp_joypad.c:383
bool input_driver_is_libretro_input_blocked(void)
Definition: input_driver.c:1353
void fire_connection_listener(unsigned port, input_device_driver_t *driver)
Definition: input_driver.c:74
const char * config_get_input_driver_options(void)
Definition: input_driver.c:485
bool(* button)(unsigned, uint16_t)
Definition: input_driver.h:175
Definition: input_driver.h:93
hid_driver_t iohidmanager_hid
Definition: iohidmanager_hid.c:1138
void(* poll)(void)
Definition: input_driver.h:178
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:8418
const input_device_driver_t * input_joypad_init_first(void *data)
Definition: input_driver.c:1614
int16_t input_joypad_axis_raw(const input_device_driver_t *driver, unsigned port, unsigned axis)
Definition: input_driver.c:1804
Definition: input_driver.h:80
retro_sensor_action
Definition: libretro.h:1702
bool input_sensor_set_state(unsigned port, enum retro_sensor_action action, unsigned rate)
Definition: input_driver.c:570
bool input_driver_owns_driver(void)
Definition: input_driver.c:1383
Definition: input_driver.h:70
Definition: input_driver.h:56
Definition: input_driver.h:49
input_driver_t input_psp
Definition: psp_input.c:158
GLsizeiptr size
Definition: glext.h:6559
input_driver_t input_switch
Definition: switch_input.c:224
input_action
Definition: input_driver.h:66
const portMappingElt code
Definition: portlistingparse.c:17
float axis_threshold
Definition: input_driver.h:129
input_device_driver_t null_joypad
Definition: null_joypad.c:64
GLenum GLuint id
Definition: glext.h:6233
includes all by default used to find thumbnails Please choose a single playlist first Add Entry Add Folder Select Files< multiple > Please fill out all required fields RetroArch updated successfully Please restart the application for the changes to take effect Contributors Move Down Load Remove Add Pass No shader passes Reset All Passes Download thumbnail Start on Download All Thumbnails This Playlist Configured in port
Definition: msg_hash_us.h:7699
input_driver_t input_ps2
Definition: ps2_input.c:135
input_device_driver_t ps3_joypad
Definition: ps3_joypad.c:270
void * input_driver_get_data(void)
Definition: input_driver.c:1222
void(* free)(void *data)
Definition: input_driver.h:152
const input_device_driver_t * input_driver_get_joypad_driver(void)
Definition: input_driver.c:523
uint16_t mbutton
Definition: input_driver.h:100
bool input_driver_set_rumble_state(unsigned port, enum retro_rumble_effect effect, uint16_t strength)
Definition: input_driver.c:514
input_device_driver_t mfi_joypad
Definition: mfi_joypad.m:288
input_driver_t input_udev
Definition: udev_input.c:1297
typedef void(__stdcall *PFN_DESTRUCTION_CALLBACK)(void *pData)
uint32_t def_joyaxis
Definition: input_driver.h:116
input_device_driver_t udev_joypad
Definition: udev_joypad.c:711
char * joykey_label
Definition: input_driver.h:121
Definition: input_driver.h:75
float input_sensor_get_input(unsigned port, unsigned id)
Definition: input_driver.c:580
input_device_driver_t xdk_joypad
Definition: xdk_joypad.c:322
void(* get_buttons)(unsigned, input_bits_t *)
Definition: input_driver.h:176
static struct descriptor joypad
Definition: net_retropad_core.c:88
void input_driver_unset_own_driver(void)
Definition: input_driver.c:1378
const input_driver_t * input_get_ptr(void)
Definition: input_driver.c:495
Definition: ibxm.h:9
GLenum GLenum GLenum input
Definition: glext.h:9938
input_device_driver_t dos_joypad
Definition: dos_joypad.c:248
bool(* set_rumble)(unsigned, enum retro_rumble_effect, uint16_t)
Definition: input_driver.h:179
const void * joypad_driver_find_handle(int index)
Definition: input_driver.c:1540
input_driver_t input_sdl
Definition: sdl_input.c:406
const input_device_driver_t * input_joypad_init_driver(const char *ident, void *data)
Definition: input_driver.c:1586
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: glext.h:6303
bool input_driver_has_capabilities(void)
Definition: input_driver.c:1232
typedef bool(RETRO_CALLCONV *retro_replace_image_index_t)(unsigned index
Definition: input_types.h:25
bool input_driver_is_data_ptr_same(void *data)
Definition: input_driver.c:1528
void input_conv_analog_id_to_bind_id(unsigned idx, unsigned ident, unsigned *ident_minus, unsigned *ident_plus)
Definition: input_driver.c:1905
void * input_get_data(void)
Definition: input_driver.c:490
void input_keys_pressed(void *data, input_bits_t *new_state)
Definition: input_driver.c:1102
uint64_t joykey
Definition: input_driver.h:104
bool input_driver_grab_mouse(void)
Definition: input_driver.c:1482
input_device_driver_t android_joypad
Definition: android_joypad.c:112
input_driver_t input_cocoa
Definition: cocoa_input.c:423
rarch_input_keyboard_ctl_state
Definition: input_driver.h:73
hid_driver_t btstack_hid
Definition: btstack_hid.c:1471
unsigned * input_driver_get_uint(enum input_action action)
Definition: input_driver.c:1505
input_driver_t input_xinput
Definition: xdk_xinput_input.c:175
input_driver_t input_ctr
Definition: ctr_input.c:144
Definition: input_driver.h:132
input_device_driver_t gx_joypad
Definition: gx_joypad.c:519
void input_driver_deinit_remote(void)
Definition: input_driver.c:1428
Definition: input_driver.h:61
input_device_driver_t rwebpad_joypad
Definition: rwebpad_joypad.c:207
void input_driver_set_flushing_input(void)
Definition: input_driver.c:1328
bool input_joypad_hat_raw(const input_device_driver_t *driver, unsigned joypad, unsigned hat_dir, unsigned hat)
Definition: input_driver.c:1833
char * joyaxis_label
Definition: input_driver.h:122
const void * input_driver_find_handle(int index)
Definition: input_driver.c:455
Definition: input_driver.h:55
bool input_config_get_bind_idx(unsigned port, unsigned *joy_idx_real)
input_driver_t input_ps3
Definition: ps3_input.c:263
hid_driver_t null_hid
Definition: null_hid.c:98
void input_driver_unset_nonblock_state(void)
Definition: input_driver.c:1363
signed short int16_t
Definition: stdint.h:122
void input_poll(void)
Definition: input_driver.c:595
void(* poll)(void *data)
Definition: input_driver.h:139
Definition: input_driver.h:667
bool input_driver_ungrab_mouse(void)
Definition: input_driver.c:1519
static uint64_t state[MAX_PADS]
Definition: xenon360_input.c:33
retro_key
Definition: libretro.h:308
bool input_mouse_button_raw(unsigned port, unsigned button)
Definition: input_driver.c:1852
Definition: input_driver.h:125
float * input_driver_get_float(enum input_action action)
Definition: input_driver.c:1491
void input_get_state_for_port(void *data, unsigned port, input_bits_t *p_new_state)
Definition: input_driver.c:1176
uint64_t(* get_capabilities)(void *data)
Definition: input_driver.h:157
int16_t(* axis)(unsigned, uint32_t)
Definition: input_driver.h:177
input_keyboard_press_t cb
Definition: input_driver.h:670
uint32_t orig_joyaxis
Definition: input_driver.h:119
void input_driver_set_nonblock_state(void)
Definition: input_driver.c:1358
Definition: inftrees.h:27
retro_rumble_effect
Definition: libretro.h:1851
input_device_type
Definition: input_driver.h:46
void input_driver_set_hotkey_block(void)
Definition: input_driver.c:1338
Definition: gamepad.h:23
Definition: input_driver.h:87
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 idx
Definition: pixman-arm-neon-asm.h:96
float(* get_sensor_input)(void *data, unsigned port, unsigned id)
Definition: input_driver.h:156
#define AXIS_NONE
Definition: input_defines.h:150
enum retro_key key
Definition: input_driver.h:98
void input_pad_connect(unsigned port, input_device_driver_t *driver)
Definition: input_driver.c:1874
bool valid
Definition: input_driver.h:95
input_device_driver_t switch_joypad
Definition: switch_joypad.c:245
const struct retro_keybind * libretro_input_binds[MAX_USERS]
Definition: input_driver.c:281
#define RETRO_END_DECLS
Definition: retro_common_api.h:42
const char * ident
Definition: input_driver.h:182
bool(* set_sensor_state)(void *data, unsigned port, enum retro_sensor_action action, unsigned rate)
Definition: input_driver.h:154
Definition: input_driver.h:59
int16_t input_state(unsigned port, unsigned device, unsigned idx, unsigned id)
Definition: input_driver.c:663
const char * input_joypad_name(const input_device_driver_t *driver, unsigned port)
Definition: input_driver.c:1640
Definition: input_driver.h:90
Definition: input_driver.h:62
GLuint index
Definition: glext.h:6671
void input_driver_unset_libretro_input_blocked(void)
Definition: input_driver.c:1348
Definition: input_driver.h:170
input_driver_t input_uwp
Definition: uwp_input.c:158
Definition: input_defines.h:118
Definition: input_driver.h:58
msg_hash_enums
Definition: msg_hash.h:152
int16_t(* input_state)(void *data, rarch_joypad_info_t joypad_info, const struct retro_keybind **retro_keybinds, unsigned port, unsigned device, unsigned index, unsigned id)
Definition: input_driver.h:146
input_driver_t input_dinput
Definition: dinput.c:941
static INLINE bool input_joypad_pressed(const input_device_driver_t *drv, rarch_joypad_info_t joypad_info, unsigned port, const struct retro_keybind *binds, unsigned key)
Definition: input_driver.h:486
const input_driver_t ** input_get_double_ptr(void)
Definition: input_driver.c:500
void input_driver_destroy_data(void)
Definition: input_driver.c:1259
void input_driver_keyboard_mapping_set_block(bool value)
Definition: input_driver.c:555
void input_driver_deinit(void)
Definition: input_driver.c:1252
bool(* query_pad)(unsigned)
Definition: input_driver.h:173
Definition: hid_driver.h:36
void input_driver_set(const input_driver_t **input, void **input_data)
Definition: input_driver.c:544
input_device_driver_t hid_joypad
Definition: hid_joypad.c:94
bool input_joypad_button_raw(const input_device_driver_t *driver, unsigned port, unsigned button)
Definition: input_driver.c:1825
Definition: input_driver.h:48
input_driver_t input_x
Definition: x11_input.c:526
bool input_driver_init_command(void)
Definition: input_driver.c:1388
const char * input_driver_find_ident(int index)
Definition: input_driver.c:470
struct retro_keybind input_autoconf_binds[MAX_USERS][RARCH_BIND_LIST_END]
Definition: input_driver.c:280
input_driver_t input_qnx
Definition: qnx_input.c:849
bool input_driver_grab_stdin(void)
Definition: input_driver.c:1276
const char * joypad_driver_find_ident(int index)
Definition: input_driver.c:1555
input_driver_t input_null
Definition: nullinput.c:91
const char * config_get_joypad_driver_options(void)
Definition: input_driver.c:1570
struct retro_keybind input_config_binds[MAX_USERS][RARCH_BIND_LIST_END]
Definition: input_driver.c:279
input_driver_t input_dos
Definition: dos_input.c:126
Unknown compiler Device disconnected from port File already exists Saving to backup buffer Got connection Public address Setting disk in tray You have left the game You have joined with input devices *s *s has joined as player u A netplay connection attempt failed because the peer is not running or is running an old version of RetroArch use the same version use the same version This core does not support inter architecture netplay Incorrect password A netplay client has disconnected You do not have permission to play The input devices requested are not available Netplay peer s paused Give hardware rendered cores their own private context Avoids having to assume hardware state changes inbetween frames Adjusts menu screen appearance settings Improves performance at the cost of latency and more video stuttering Use only if you cannot obtain full speed otherwise Autodetect Capabilities Connecting to port Password Username Accounts List Endpoint Achievements Scan Content Import content Ask Block Frames نظام تشغيل الصوت Audio Enable Turbo Deadzone Audio Maximum Timing Skew Audio Output Dynamic Audio Rate Control الصوت Audio Volume WASAPI Exclusive Mode WASAPI Shared Buffer Length Load Override Files Automatically Load Shader Presets Automatically Confirm Quit Scroll Up Toggle Keyboard Basic menu controls Info Scroll Up Toggle Keyboard Don t overwrite SaveRAM on loading savestate Buildbot Assets URL Allow Camera Cheat Cheat File Load Cheat File Cheat Passes Hardcore Mode Achievement Badges Locked Test Unofficial Achievements Unlocked Verbose Mode Config ملفات التكوين Collections Content Allow to remove entries Downloads Cheats Show core name Authors Core label Permissions System manufacturer Controls Options Start a Core Automatically Buildbot Cores URL Updater CPU Cursor Custom Ratio Database Selection Start directory< Default > Directory not found Disk Cycle Tray Status Disk Index Don t care Download Core DPI Override Enable أنظمة التشغيل Check for Missing Firmware Before Loading Dynamic Backgrounds Menu entry hover color False Favorites Limit Maximum Run Speed Frontend Counters Create game options file مساعدة Changing Virtual Gamepad Overlay مساعدة Scanning For Content History List Enable Horizontal Menu معلومات Analog To Digital Type Left Analog X Left analog Left Analog Y Left analog Right Analog X Right analog Right Analog Y Right analog Gun Trigger Gun Aux A Gun Aux C Gun Select Gun D pad Down Gun D pad Right Analog Stick Deadzone Bind All Bind Timeout Hide Unbound Core Input Descriptors Device Index Mouse Index Duty Cycle Keyboard Gamepad Mapping Enable B button(down)") MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_DOWN
input_device_driver_t parport_joypad
Definition: parport_joypad.c:375
void input_driver_unset_hotkey_block(void)
Definition: input_driver.c:1333
Definition: input_driver.h:63
void input_driver_set_own_driver(void)
Definition: input_driver.c:1373
bool(* init)(void *data)
Definition: input_driver.h:172
char input_device_names[MAX_INPUT_DEVICES][64]
Definition: input_driver.c:276
GLsizei const GLfloat * value
Definition: glext.h:6709
void input_driver_deinit_command(void)
Definition: input_driver.c:1419
#define MAX_USERS
Definition: input_defines.h:27
const char * ident
Definition: input_driver.h:158
hid_driver_t libusb_hid
Definition: libusb_hid.c:648
void ** input_driver_get_data_ptr(void)
Definition: input_driver.c:1227
const input_device_driver_t * input_driver_get_sec_joypad_driver(void)
Definition: input_driver.c:530
input_device_driver_t ctr_joypad
Definition: ctr_joypad.c:193
input_device_driver_t dinput_joypad
Definition: dinput_joypad.c:584
input_device_driver_t sdl_joypad
Definition: sdl_joypad.c:469
uint16_t id
Definition: input_driver.h:96
input_toggle_type
Definition: input_driver.h:53
const struct retro_keybind * auto_binds
Definition: input_driver.h:128
bool(* input_keyboard_press_t)(void *userdata, unsigned code)
Definition: input_driver.h:665
input_driver_t input_rwebinput
Definition: rwebinput_input.c:690
bool(* keyboard_mapping_is_blocked)(void *data)
Definition: input_driver.h:166
void(* input_keyboard_line_complete_t)(void *userdata, const char *line)
Definition: input_driver.h:662
bool input_keyboard_line_append(const char *word)
Definition: input_driver.c:2127
void(* destroy)(void)
Definition: input_driver.h:174
enum msg_hash_enums enum_idx
Definition: input_driver.h:97
input_driver_t input_winraw
Definition: winraw_input.c:836
bool input_driver_keyboard_mapping_is_blocked(void)
Definition: input_driver.c:1283
input_device_driver_t wiiu_joypad
Definition: wiiu_joypad.c:121
unsigned short uint16_t
Definition: stdint.h:125
uint64_t input_driver_get_capabilities(void)
Definition: input_driver.c:537
struct nk_device device
Definition: nk_common.c:44
bool down
Definition: connect_wiiupro.c:51
unsigned __int64 uint64_t
Definition: stdint.h:136
uint16_t joy_idx
Definition: input_driver.h:127
unsigned int uint32_t
Definition: stdint.h:126
const char ** input_keyboard_start_line(void *userdata, input_keyboard_line_complete_t cb)
Definition: input_driver.c:2177
bool(* grab_stdin)(void *data)
Definition: input_driver.h:161
Definition: input_driver.h:69
bool(* set_rumble)(void *data, unsigned port, enum retro_rumble_effect effect, uint16_t state)
Definition: input_driver.h:162
input_device_driver_t linuxraw_joypad
Definition: linuxraw_joypad.c:375
uint32_t joyaxis
Definition: input_driver.h:112
bool input_driver_init(void)
Definition: input_driver.c:1239
input_device_driver_t xinput_joypad
Definition: xinput_joypad.c:581
const char *const str
Definition: portlistingparse.c:18
Definition: input_driver.h:50
int16_t input_driver_input_state(rarch_joypad_info_t joypad_info, const struct retro_keybind **retro_keybinds, unsigned port, unsigned device, unsigned index, unsigned id)
Definition: input_driver.c:1083
bool input_driver_init_mapper(void)
Definition: input_driver.c:1465
Definition: input_driver.h:60
bool input_joypad_set_rumble(const input_device_driver_t *driver, unsigned port, enum retro_rumble_effect effect, uint16_t strength)
Definition: input_driver.c:1659