Commit Graph

3152 Commits

Author SHA1 Message Date
gblues 661e5bf50b Implement new functions in hid_driver_t in WiiU driver
== DETAILS

This implements the WiiU-specific functions.

Since the wiiu_hid_t data structure contains the handle and interface
index, the method signatures can be simplified quite a bit. And since
(at least for now) we want these to be synchronous, we don't need to
expose the callback parameters.
2017-12-30 04:41:19 +01:00
gblues 678c4093c1 Start adapting the dual shock 3 driver to use the new driver format.
== DETAILS

The handshake stuff is derived from the old HID2VPAD, just in knowing
what data goes in what report.

- Added the HID_REPORT_ flags to syshid.h
- Renamed the generic "REPORT_TYPE" flags to be meaningful
- also fixed incorrect parameter list for set_protocol
== TESTING
The functions aren't implemented in wiiu_hid.c just yet,
so this is gonna crash if you try to run it.
2017-12-30 04:41:12 +01:00
gblues 982d6893b0 Set the send_control pointer on the drivers
== DETAIL

One minor detail missed in the last commit: actually putting the
send_control function into the driver declaration. Woops.

Not doing the Wii U because it will be using the other methods.
2017-12-30 04:41:07 +01:00
gblues 5b37ced196 Update HID pad driver architecture
== DETAILS

The current HID implementation assumes a very low-level USB library
is being used. This causes a problem on Wii U, because the Cafe OS
only exposes a high-level interface.

To get these functions exposed to the HID pad drivers, I had to make
three changes:

1. I added the legacy "send_control" function to the HID driver
   interface
2. I modified the signature of pad_connection_pad_init() to send the
   driver pointer instead of the function pointer
3. I updated the HID pad drivers to keep the pointer to the driver
   instead of the function pointer, and updated the calls into the
   send_control function as appropriate
4. I updated the HID drivers to use the new pad init signature

== TESTING
Untested, in theory it should work without a hitch because at this
point all I've done is abstract things a little. I still need to
update the HID pad drivers to use the Wii U-specific calls as
appropriate.
2017-12-30 04:41:01 +01:00
gblues d0adbd194e Revert changes to joypad API
== DETAILS

Premature. Still learning my way around the codebase.
2017-12-30 04:40:53 +01:00
gblues c1496a8600 WIP - reorganizing input data
== DETAILS

Looking at the apple input driver gave me an idea--moving the
HID driver into the wiiu_input_t data instead of piggy-backing
it off the wiiu_joypad driver.

- Remove changes to wiiu_joypad
- Add equivalent to wiiu_input

This is probably broke as hell. Haven't tried to compile.
2017-12-30 04:40:43 +01:00
gblues 5804233ca8 Start fleshing out wiiu_hid driver
== DETAILS

- Added entrypoints into `input/connect/joypad_connection.c` to allow
  a max value to be passed in, instead of using single macro value
- Created a hand-off between the HID attach handler and the worker thread
- Created a pad initializer in `wiiu_hid.c` leveraging the new functionality
  added to `joypad_connection.c`

== TESTING
Compiles cleanly. At best, doesn't do anything. Might crash--not ready
to test quite yet.
2017-12-30 04:40:39 +01:00
gblues e98b006715 HID worker thread is now operational
== DETAILS
After wasting some cycles trying to isolate a crash, I went back to
basics.

I enabled the network logging, and put in a bunch of logging lines,
and noticed that the HID thread wasn't actually starting.

I did quite a bit of experimenting, working with different
memory alignments, and finally got it working.

== TESTING
As you can see, I put a log output inside the worker thread. When
I run the build, I can see the TICK messages. I can also see that
the thread shuts down as expected.

Also! The HID callback works as expected too! I have the GC
adapter, and when I register the HID callback it fires and I get the
following data:

    [INFO] USB device attach event
    [INFO]                 handle: 2058729
    [INFO]   physical_device_inst: 0
    [INFO]                    vid: 0x7e05
    [INFO]                    pid: 0x3703
    [INFO]        interface_index: 0
    [INFO]              sub_class: 0
    [INFO]               protocol: 0
    [INFO]     max_packet_size_rx: 37
    [INFO]     max_packet_size_tx: 5

Note that these are raw dumps of the data passed to the method,
so e.g. the VID/PID might be byte-swapped from how they're usually
represented.

Have not done the stress test to try to reproduce the crash.
2017-12-30 04:40:33 +01:00
gblues 192f5875b9 Simplify, add logging, revert some of the changes
== DETAILS
The old code was crashing; I did a minimalized branch and the crash
went away, so I'm bringing that over here. Meaning I'll have to
redo some of the other work I'd put in, but oh well.

(now watch it start crashing again)

== TESTING
Can confirm it builds. Wii U is busy ATM so I can't test.
2017-12-30 04:40:23 +01:00
gblues 1beba28d02 Only call HIDSetup/HidTeardown once
== DETAILS
I did a minimalist edit of the HID thread that stripped out all
HID* syscalls, and this stopped the crashing. I then re-added just
the HIDSetup() and HIDTeardown() calls, and the crash came back.

This smells like an OS bug. To work around it, I've put the
HIDSetup() and HIDTeardown() calls into the app init/shutdown
section, so they only get called once in the application lifetime
and not each time the input driver is initialized.
2017-12-30 04:40:15 +01:00
gblues 5c5e5be649 More progress on the HID driver
== DETAILS
I think I've about got the thread startup/teardown code worked
out. Logically, anyway, if not accurately.

The challenge has been figuring out how best to integrate the
features of HID2VPAD.

I found `input/connect/joypad_connection.c` and this seems like
the logical place for:

- Special-case driver for the Switch Pro controller
- Any other special cases HIDTOVPAD supports that core RetroArch
  doesn't
- Parsing of HIDTOVPAD config file to add custom button mapping

== TESTING
Compiles. Haven't tested with a real Wii U. Probably doesn't work
though. I very likely have the threading bit wrong.
2017-12-30 04:40:01 +01:00
gblues c3736adb77 Start implementing HID polling thread
== DETAILS

Looking at the other HID USB drivers, it looks like the typical
implementation is to start up a background thread to do the
polling, rather than wait for RA to invoke the poll() method.

This commit sets up the skeleton of the background thread:

- The thread gets created in init()
- The thread gets stopped in free()

Right now the body of the thread is a 10ms sleep.

== TESTING

It compiles cleanly, and links. Don't know if it actually works.
2017-12-30 04:39:56 +01:00
gblues 203876a206 More progress on the HID driver
== DETAILS
I think I've about got the thread startup/teardown code worked
out. Logically, anyway, if not accurately.

The challenge has been figuring out how best to integrate the
features of HID2VPAD.

I found `input/connect/joypad_connection.c` and this seems like
the logical place for:

- Special-case driver for the Switch Pro controller
- Any other special cases HIDTOVPAD supports that core RetroArch
  doesn't
- Parsing of HIDTOVPAD config file to add custom button mapping

== TESTING
Compiles. Haven't tested with a real Wii U. Probably doesn't work
though. I very likely have the threading bit wrong.
2017-12-30 04:39:44 +01:00
gblues 1657079c45 Start implementing HID polling thread
== DETAILS

Looking at the other HID USB drivers, it looks like the typical
implementation is to start up a background thread to do the
polling, rather than wait for RA to invoke the poll() method.

This commit sets up the skeleton of the background thread:

- The thread gets created in init()
- The thread gets stopped in free()

Right now the body of the thread is a 10ms sleep.

== TESTING

It compiles cleanly, and links. Don't know if it actually works.
2017-12-30 04:39:39 +01:00
gblues 7e56881b88 Some cleanups 2017-12-30 04:39:34 +01:00
gblues 3b92cce6bf Start wiring up the HID driver
- add alloc/free for necessary objects
- register callback with Wii U OS

Don't think I've put the unregister bit in, so this is very likely
broken.
2017-12-30 04:39:25 +01:00
Nathan Strong e80d99dbae Delete controller_patcher; start on proper HID driver
== DETAILS

We discovered that the controller_patcher code was causing
the WiiU to intermittently crash when switching ROMs.

Changes:

- Completely extricates the controller_patcher code
- Create a skeleton wiiu_hid driver
- Wire up the build system to build/link it successfully

== TESTING

Has not been tested. Probably doesn't crash, since the
skeleton driver is just a copy of the null driver.
2017-12-30 04:38:57 +01:00
twinaphex d49b7b28b6 input_poll - cleanup 2017-12-29 23:12:35 +01:00
twinaphex a6afddae04 current_input_data and current_input are no longer globals 2017-12-29 23:03:25 +01:00
twinaphex 5c876647ed (NSW) Small cleanups 2017-12-29 00:45:00 +01:00
misson20000 6d2a7b1f26 Nintendo Switch (libtransistor) port 2017-12-29 00:10:01 +01:00
Twinaphex c7c71cb01f Fix Apple build 2017-12-27 22:36:10 +01:00
Twinaphex b1c0fe7d0d Fix CXX_BUILD for Apple 2017-12-27 22:33:32 +01:00
radius 2cab3a7e4e fix some nits 2017-12-27 15:43:03 -05:00
radius c3e6ac96aa only reinit when HID devices are attached 2017-12-27 15:34:18 -05:00
Twinaphex d64154bf40
Merge pull request #5965 from fr500/master
avoid dinput reinitialization on unrelated WM_DEVICECHANGE events
2017-12-27 05:55:38 +01:00
bparker06 2dcd2bc5c6
Fix relative path 2017-12-26 22:02:11 -05:00
radius ab54fda509 avoid dinput reinitialization on unrelated WM_DEVICECHANGE events 2017-12-26 20:17:26 -05:00
radius 7d9193555a fix menu toggle with keymapper active 2017-12-26 01:20:36 -05:00
Brad Parker 6d484b7724 xinput: check for valid function pointers before calling them 2017-12-23 23:02:29 -05:00
twinaphex 95e807749d Simplification/cleanup 2017-12-18 07:09:44 +01:00
twinaphex 422ce9396c Cleanup - input_key_pressed 2017-12-18 06:14:48 +01:00
twinaphex 69f85556a3 Get rid of meta_key_pressed 2017-12-18 05:59:57 +01:00
twinaphex 7b210ccf37 Don't call meta key pressed if not bound 2017-12-18 05:49:17 +01:00
twinaphex 1978689dcb Rewrite input_keys_pressed_iterate 2017-12-18 05:22:45 +01:00
twinaphex 9b9cf7b036 Cleanups 2017-12-18 05:13:57 +01:00
twinaphex 3c5d2f047c Create input_keys_pressed_iterate 2017-12-18 05:09:16 +01:00
Twinaphex 26f483b22d
Merge pull request #5882 from hiddenasbestos/dolphinbar
Mayflash DolphinBar
2017-12-17 16:48:26 +01:00
David Walters 02f6301607 fix reversed logic 2017-12-17 12:46:21 +00:00
David Walters adffa5fc4c Fixes for overlay buttons 2017-12-17 12:36:18 +00:00
Brad Parker 8c0adf3594 move path_file_rename and path_file_remove into VFS 2017-12-14 13:32:26 -05:00
gblues 0f7de204f7 Last batch of whitespace cleanup (post-rebase)
-- looks like a few files committed with DOS line endings
2017-12-12 00:24:46 -08:00
gblues 6904101c44 Clean up trailing whitespace
== DETAILS

Really simple code cleanup, because my editor flags trailing whitespaces
and it's pretty annoying.
2017-12-12 00:24:18 -08:00
twinaphex c950613098 C comments 2017-12-11 11:28:48 +01:00
Peter Y. Hammond b14598657c Fixed a bug where the joypad devices were not always being assigned in the same order as they were numbered under /dev/input/. This showed up mainly when using an external USB Bluetooth dongle. In that case, controllers would be assigned often in reverse order. 2017-12-10 22:22:01 -07:00
Monroe88 cfde6a44db input_driver: Map Delete key to Y button for non-unified menu keyboard controls 2017-12-09 14:17:54 -06:00
Fabio 0d58d9ca0d
Added label to wii controllers, inverted the right stick Y axis of classic controller
The right stick Y axis of classic controller was wrong
2017-12-09 08:24:19 +01:00
David Walters 124ddcd27a Add dolphin bar VID/PID - treat like a wii over bluetooth connection 2017-12-07 23:44:29 +00:00
twinaphex de9b0127f8 (MSVC) Buildfix 2017-12-06 04:33:54 +01:00
Andrés 0c9fce98a2 fix vid/pid enumeration on xinput controllers when the xinput controllers are interleaved with dinput (#5872) 2017-12-05 22:07:48 -05:00
Twinaphex d881931254
Merge pull request #5867 from hiddenasbestos/more_devices
Don't limit available input devices to user count.
2017-12-06 01:43:52 +01:00
Brad Parker f5ea4a0c65 dinput: add missing function parameter 2017-12-05 17:19:17 -05:00
David Walters 609bcb4dc2 fix device indexing 2017-12-05 22:03:56 +00:00
David Walters 0d189ae067 Don't limit available input devices to user count. 2017-12-05 21:21:29 +00:00
Brad Parker bc4bbe79aa don't define UNICODE at all, we don't need it and it causes dinput problems (names are wchar_t) 2017-12-05 14:26:59 -05:00
twinaphex 2bdf4a5bb4 update 2017-12-05 20:08:18 +01:00
twinaphex 408878a7e1 Start making it possible for xinput_joypad to be used without
DirectInput
2017-12-05 20:04:12 +01:00
Twinaphex 7ab7ed35b7
Merge pull request #5863 from bparker06/xinput
xinput: copy VID/PID from dinput so autoconfig does not rely solely on HID name
2017-12-05 20:01:16 +01:00
bparker06 4c9bde61b5
dinput: fix memory leak of joypad name 2017-12-05 13:54:15 -05:00
Brad Parker 35ab48ee61 xinput: copy VID/PID from dinput so autoconfig does not rely solely on HID name 2017-12-05 12:47:52 -05:00
twinaphex f0c143766e Change to 256bit macros 2017-12-05 12:07:35 +01:00
twinaphex 6c09661a64 Move defines to retro_miscellaneous.h 2017-12-05 10:42:37 +01:00
twinaphex e94300a581 Get rid of a lot of RARCH_INPUT_STATE_BIT_ macros - replace them
with BIT128_ equivalents instead
2017-12-05 09:22:56 +01:00
twinaphex 3ccce249ea Fixes hotkey issues with MSVC 2017-12-05 08:50:24 +01:00
neville 43f6a03110 (OSX PPC) Buildfixes 2017-12-04 02:59:06 +01:00
David Walters cbfdd7bbd9 udev lightgun fixes 2017-12-03 09:40:36 +00:00
bparker06 78bf72e29e
blissbox: add atari pad type 2017-12-02 13:33:09 -05:00
David Walters c453675d38 lightgun support in udev 2017-12-02 13:24:17 +00:00
Twinaphex 5f0a9fffbb
Merge pull request #5827 from hiddenasbestos/input_driver_x11
Add new lightgun/mouse-bind features to X11 driver
2017-12-02 09:18:17 +01:00
Ash bf3e256a43
[WiiU] Input: Make controller_patcher a compile-time option
As discussed in libretro#5357; controller_patcher is now optional. It's
off by default; though this could be changed with a simple makefile
tweak (ENABLE_CONTROLLER_PATCHER ?= 1, perhaps?)

To re-enable controller_patcher; append ENABLE_CONTROLLER_PATCHER=1 to
your usual make command.

controller_patcher was the only user of c++ constructors in the Wii U
port, so you'll need 26a006c in your tree otherwise you will have a
blackscreen on startup.
2017-12-01 18:29:21 +11:00
David Walters a9451822b5 Improved handling of libusb hotplug capability (#5830)
* Improved handling of libusb hotplug capability

* Only deregister hotplug callback if registration happened.
2017-11-30 10:30:46 -05:00
twinaphex 6c69002ab4 Start adding not-complete kqueue codepaths - bparker - see if you can
finish this up
2017-11-30 07:28:59 +01:00
twinaphex 62280439b7 Rename epfd to fd 2017-11-30 07:00:25 +01:00
David Walters 05578f0634 Show VID/PID values for unsupported devices. (#5825) 2017-11-29 15:56:18 -05:00
David Walters 5f095677a7 fix for wiiu build (#5826) 2017-11-29 15:55:31 -05:00
David Walters 7dfcc169de Add new lighgun/mouse-bind features to X11 driver 2017-11-29 18:32:58 +00:00
Brad Parker 5453853001 remove extra paren 2017-11-29 11:32:32 -05:00
Brad Parker f41187df22 remove extra brace 2017-11-29 11:17:13 -05:00
Brad Parker 44b70efb68 style nits 2017-11-29 10:42:39 -05:00
Brad Parker 42e81dcef4 add back missing code from c5bdc02 2017-11-29 10:35:52 -05:00
Brad Parker aa1f95b3d5 undo changes in c5bdc02 that reverted my previous commits: 34491a6 28c6237 1f58d9c 61bd9d7 2017-11-29 10:22:30 -05:00
Brad Parker def24ef8eb blissbox: print message if detecting update mode or old firmware versions, override vid/pid check for autoconfig profiles, misc comments 2017-11-28 21:25:54 -05:00
Brad Parker 2dd64d9c11 Initial blissbox support, requires firmware 2.0. Currently limited to platforms with libusb support. 2017-11-28 18:25:12 -05:00
David Walters f09477d46a additional compile fixes 2017-11-28 10:36:16 +00:00
David Walters c5bdc02d6f replace uint64_t with retro_bits_t* for pad buttons state 2017-11-28 10:04:34 +00:00
Brad Parker 61bd9d7d70 libusb: early return if we fail to get a config descriptor, otherwise the memory returned is invalid (and should not be freed either) 2017-11-27 11:30:29 -05:00
Brad Parker 1f58d9cd1f comment 2017-11-27 11:30:29 -05:00
Brad Parker 28c6237b47 FreeBSD: support libusb hid input driver 2017-11-27 11:30:29 -05:00
Brad Parker 34491a6025 libusb: prevent crash on driver deinit when there are no pad connections 2017-11-27 11:30:29 -05:00
David Walters e06290a06c updated winraw driver for new lightgun/mouse binding api 2017-11-27 12:51:06 +00:00
twinaphex cdf1d9a417 Indent nits 2017-11-27 03:53:46 +01:00
Twinaphex d93b9ebf4d Silence warning 2017-11-27 03:53:25 +01:00
twinaphex dfebea9109 Cleanups 2017-11-26 22:58:36 +01:00
twinaphex 00d57af005 C89_BUILD fixes 2017-11-26 22:53:42 +01:00
twinaphex e35394d4bd Fix MSVC 2003 build 2017-11-26 22:41:34 +01:00
David Walters 59c188f75c Implement new lightgun API 2017-11-26 17:09:15 +00:00
David Walters dbd9bf3b46 New lightgun binds 2017-11-26 16:59:48 +00:00
David Walters c733f96a16 listen for mouse buttons/wheel when binding input 2017-11-26 15:42:47 +00:00
David Walters cdb5a656f2 dinput: only support hardware mouse index 0 2017-11-26 15:40:27 +00:00
David Walters 59812e9509 include mouse buttons in block hotkey check 2017-11-26 13:23:39 +00:00
David Walters 9682e2777b support for mouse button binds in Windows input drivers 2017-11-26 12:55:17 +00:00
David Walters 25efae0630 Show mbutton binds on settings list; comma separate joy and key bins 2017-11-26 11:56:02 +00:00
David Walters 1d70fef70c load/save mbutton assignments to retroarch config 2017-11-26 11:54:10 +00:00
David Walters b190ac1943 Add 'mbutton' field to retro_keybind struct 2017-11-26 11:49:37 +00:00
David Walters b3a53ac8ca Show "---" for unbound controls, not "(Key: )" 2017-11-24 21:36:49 +00:00
Twinaphex 45fb685375
Merge pull request #5762 from hiddenasbestos/extend_input_bits
Extend input bind limit to 256
2017-11-24 14:48:53 +01:00
David Walters 5be7921445 reimplement using retro_bits_t; pass by ref; raise bind limit to 256 2017-11-24 11:19:17 +00:00
David Walters 5294d43bf1 use C89 compatible comment style 2017-11-24 09:28:26 +00:00
twinaphex 7ac5eda1e1 Rewrite input_mapper code - no longer have an internal pointer
inside input_mapper
2017-11-24 02:37:53 +01:00
David Walters b0e383d5f0 Extend input bind limit to 128 2017-11-23 23:04:09 +00:00
Ash efad07e89f
[WiiU] Add proper DRC touch scaling for non-720p resolutions 2017-11-19 17:18:03 +11:00
David Walters 795057bacf Support for RETRO_DEVICE_INDEX_ANALOG_BUTTON 2017-11-17 22:46:23 +00:00
David Walters 41df4a0555 Support for mouse buttons 4&5 2017-11-17 12:00:24 +00:00
daniel jimenez e91bae38cf Introduce button mappings for generic usb controller 2017-11-13 22:08:24 -08:00
twinaphex ac14f8bb2a Rearrange some struct members 2017-11-12 17:02:14 +01:00
Twinaphex b8df76271c
Merge pull request #5654 from QuarkTheAwesome/wiiu-warnings
[WiiU] Various warning fixes
2017-11-05 16:14:18 +01:00
Ash 6090aa8f8a
[WiiU] Account for 12px clamp on physical screen
Seriously, I think it's good now.
2017-11-04 20:58:25 +11:00
Ash e39c820cee
[WiiU] Change up wiiu_joypad_name semantics
Prevents warnings from GCC around the possibility of a negative index
going into hidName.
2017-11-04 20:37:30 +11:00
Ash fc79fec964
[WiiU] DRC Touch - scale to game image viewport 2017-11-04 16:14:28 +11:00
Ash a3e4a7612f
[WiiU] Fix DRC touch - proper scaling; press detection
Oops! Didn't do this quite right the first time round.
This commit fixes RETRO_DEVICE_ID_POINTER_PRESSED, which would always
return 0 due to to an implicit case to int16_t. Basically, we'd do
(val & 0x00080000) & 0xFFFF; which would return 0 every time. Fixed that
by wrapping it in a ternary. Yes, I know we could use a rotation, but
for a boolean value it really doesn't matter.
I also rewrote scaleTP to deal entirely in integers. While the
floating-point math was theoretically faster on PowerPC; it gets awkward
to cast -0x7FFF to a float.
Speaking of, the driver now actually conforms to the libretro API. Not
sure how I managed to not see the spec; but hey, now its fixed.
RETRO_DEVICE_POINTER_ID_X/Y will now return values between -0x7FFF and
0x7FFF like they're supposed to.

Big thanks to @r-type for hounding me to fix this.
Partially addresses #5294; we still need mouse emulation.
2017-11-04 15:01:58 +11:00
Glenn ec806f65f9 fixed MFI controller being set to P2 2017-10-29 18:20:39 +11:00
Francisco José García García 03524278c6 Trying to fix L2/R2/L3/R3
Related to #5431
2017-10-25 21:05:15 +02:00
Maschell 05ef63fd08 [WII U] Fix for Issue #5556
This hopefully fixes the issues when you try to use 2 Controllers with
the same vid/pid at the same time.

Tested with 2 DS4 controller via the Hid to VPAD Network Client.
Adapters with multiple ports (like the official GC-Adapter) are still
working
2017-10-17 21:38:42 +02:00
Brad Parker a7c8cc88e5 win32: support local multibyte encoding for file paths 2017-10-14 23:13:24 -04:00
Brad Parker 38c30667c5 fix include paths 2017-10-14 23:08:43 -04:00
twinaphex c68db61188 Silence more Clang warnings 2017-10-11 22:49:13 +02:00
Twinaphex affd56f293 Merge pull request #5515 from casdevel/winraw-lightgun
Add lightgun device capability
2017-10-09 02:42:09 +02:00
Zoran Vuckovic 5c46e176d5 Add keyboard/mouse device index logging 2017-10-07 06:59:45 +02:00
Zoran Vuckovic 082629ccd5 Add lightgun device capability 2017-10-06 08:19:22 +02:00
Zoran Vuckovic 12d0f4107a Use int32_t instead of __s32 2017-10-05 10:00:20 +02:00
Zoran Vuckovic 135b636bd4 Add "absolute" mouse support 2017-10-05 05:18:53 +02:00
twinaphex 8238545bef Cleanups 2017-10-04 06:53:47 +02:00
twinaphex cf9ab18cab (360) Buildfix 2017-10-03 04:21:25 +02:00
twinaphex d10de20bff Start compiling Griffin as C for 360 - C89 fixes 2017-10-03 04:11:41 +02:00
twinaphex 3090f3ff3a (task_database.c) Rewrite char arrays 2017-09-29 20:47:54 +02:00
twinaphex 5b9f90dd9a (input overlay) Reorder variables in struct 2017-09-29 17:11:42 +02:00
twinaphex ff48af4d06 Update 2017-09-28 18:57:00 +02:00
twinaphex 9eba2c8e39 Fix CXX_BUILD on Windows 2017-09-28 18:53:09 +02:00
twinaphex 221939ccb5 Cleanups 2017-09-28 00:53:13 +02:00
twinaphex a3ded01b64 Cleanups 2017-09-27 23:16:37 +02:00
twinaphex fcf6228dce Turn into char pointer array 2017-09-27 20:11:44 +02:00
twinaphex b79f95668b Turn it into char pointer array 2017-09-27 20:08:37 +02:00
Brad Parker 836111b99b C89 buildfix 2017-09-16 19:06:55 -04:00
Twinaphex 76aa866af8 Merge pull request #5438 from casdevel/fix5215
Fix mouse "absolute" move handling
2017-09-12 21:14:56 +02:00
Zoran Vuckovic d47de4b17e Fix mouse "absolute" move handling 2017-09-12 12:36:27 +02:00
radius 804c62cc9e clear the remap flags 2017-09-12 01:47:43 -05:00
radius 6a561f6414 input remapping cleanups 2017-09-11 22:49:39 -05:00
radius 5dc52d9489 resetting remaps should include keymaps 2017-09-11 02:04:27 -05:00
radius 551d85630e android build fixes 2017-09-11 00:21:48 -05:00
radius 9abbf47a8d fix defaults 2017-09-11 00:21:47 -05:00
radius c8752ec630 add left/right callbacks 2017-09-11 00:21:46 -05:00
radius 503658b446 cleanup 2017-09-11 00:21:45 -05:00
radius efce234dc4 save and load keymaps from file 2017-09-11 00:21:44 -05:00
radius 654db9caac it should work with the SET_KEYBOARD_CALLBACK now 2017-09-11 00:20:21 -05:00
radius cd72bd1bb4 implement keymapper 2017-09-11 00:20:21 -05:00
radius fe8a0657b4 add input_mapper scafolding 2017-09-11 00:20:20 -05:00
Twinaphex 4adbba2513 Merge pull request #5426 from casdevel/issue5162
Disable keyboard input if window is not active
2017-09-11 06:19:15 +02:00
twinaphex e1237f6d58 Reduce stack usage 2017-09-11 06:15:09 +02:00
Zoran Vuckovic 84d33fb847 Disable keyboard input if window is not active 2017-09-10 05:50:10 +02:00
twinaphex 3301c04a97 input_remapping.c - reduce stack usage 2017-09-09 23:03:28 +02:00
twinaphex 3b26263126 Cleanup input_config_get_prefix 2017-09-08 06:28:40 +02:00
twinaphex d6bcc45bb8 Reduce size of input_bind_map member variables 2017-09-08 06:11:19 +02:00
twinaphex d1a41a742f Reduce joykey_label/joyaxis_label char arrays 2017-09-08 06:01:21 +02:00
twinaphex c3bb76a05e Try to reduce variable sizes 2017-09-08 05:58:48 +02:00
twinaphex 24dc35d97b Cleanups 2017-08-31 12:17:06 +02:00
twinaphex 44a1a429c8 Change type of pid/vid to uint16_t 2017-08-31 12:14:27 +02:00
Rob Loach fa75f47995
Fix includes of input_config 2017-08-30 23:14:27 -04:00
Rob Loach d993bd3dcf Remove input_config.h include 2017-08-30 23:10:12 -04:00
Rob Loach 40f4d805a8 Fix non-existent include of input_config.h 2017-08-30 23:01:12 -04:00
twinaphex e16371b8a5 Merge input_config.c and input_driver.c 2017-08-31 02:25:04 +02:00
twinaphex 0c5781ba8d (input_config.c) Cleanups 2017-08-31 01:57:51 +02:00
twinaphex d8f27886ad Reduce size of input driver ids to uint16_t - should be enough 2017-08-30 14:02:18 +02:00
Ash 6b5aef09a1
[WiiU] DRC touch support as pointer device
Allow using the Gamepad's touch screen as a RETRO_DEVICE_POINTER.
Methodology could use some work, had to add an extra axis to
joypad in order to get the data transferred into the input driver.
Feel free to change this.
Needs to emulate RETRO_DEVICE_LIGHTGUN to really be useful.
Potential for Wiimote IR in future.

Partially addresses libretro/RetroArch#5294
2017-08-19 17:40:56 +10:00
twinaphex 24878694f8 Silence some warnings 2017-08-14 07:13:50 +02:00
twinaphex ae2435cf16 Silence some more C89_BUILD warnings 2017-08-12 18:15:26 +02:00
twinaphex cfde480e82 Add some C89_BUILD rules 2017-08-12 17:41:34 +02:00
twinaphex 7a490aa6d6 Use C-style comments 2017-08-10 21:25:30 +02:00
twinaphex 805c2ad529 Buildfixes 2017-08-10 21:22:30 +02:00
twinaphex 5101895cc9 (dinput) Buildfix 2017-08-09 16:53:06 +02:00
twinaphex 4e49155147 Cleanup 2017-08-09 15:54:24 +02:00
twinaphex ee275c85d8 (dinput.c) Cleanups 2017-08-09 15:51:27 +02:00
twinaphex ca80f13b2b Try to be somewhat safer here in case of null pointer derefences 2017-08-09 02:42:19 +02:00
denu8thell c5b36320df Added option to change controller port to listen to for showing overlay input. 2017-08-08 09:56:27 -05:00
denu8thell 8e69a348e6 Add support for buttons that are multiple inputs. 2017-08-08 07:49:02 -05:00
denu8thell f0606d60d2 Add option and menu setting for viewing inputs on overlay. 2017-08-08 06:50:39 -05:00
denu8thell 4ed715d0f3 Remove commented code in input_driver.c 2017-08-08 05:39:18 -05:00
denu8thell 23b2e4488a Add keyboard overlay support to input_overlay_add_inputs. 2017-08-08 05:32:34 -05:00
denu8thell cc06b8b62e Added analog overlay support to input_overlay_add_inputs. 2017-08-08 05:10:44 -05:00
denu8thell 0df4186191 reduce scope of input_overlay_add_inputs to file. 2017-08-08 02:48:46 -05:00
denu8thell 4c31d41920 Moved input_overlay_add_inputs call out of input_driver.c, shortened arguments. 2017-08-08 02:31:26 -05:00
denu8thell 3d4e36455d use input_state instead of current_input->input_state. 2017-08-07 22:22:48 -05:00
denu8thell c882e64653 Added button press lightup on overlay.
input_overlay_add_inputs added, still need to implement dpad and analog visuals on overlay. Also still needs to be restructured so input_overlay_post_poll is only called once.
2017-08-07 21:59:05 -05:00
twinaphex 2e7b4242f7 Cleanup 2017-08-07 01:48:21 +02:00
radius 7b09cd34db fix #5257 2017-08-06 20:02:17 -05:00
twinaphex 86dbcaf563 C89 buildfix 2017-08-06 17:09:30 +02:00
twinaphex 912c7265e6 Get rid of some warnings 2017-08-06 14:03:09 +02:00
radius 2db79242c9 remove remaps 2017-08-05 11:21:07 -05:00
radius a973d5dc8a allow saving analog dpad mode and libretro device to remap files 2017-08-05 11:21:06 -05:00
radius 9862b75b4b allow specifying libretro device and analog dpad mode on remap files 2017-08-05 11:21:06 -05:00
radius f5360d0d82 extra devices 2017-08-04 01:17:32 -05:00
radius 2ef75cb300 buildfix 2017-08-04 01:11:31 -05:00
radius a6b24b4d42 fire tv hack 2017-08-04 01:09:05 -05:00
Zoran Vuckovic 2a92b22128 Add mice info log 2017-07-28 13:03:26 +02:00
Brad Parker b9036e26a7 fix buffer overflow 2017-07-22 16:08:05 -04:00
Zoran Vuckovic aa99f4f5ba Disable keyboard input and restrict mouse input in some cases 2017-07-18 01:16:48 +02:00
Brad Parker e067dac2a4 fix keyboard regression with mupen cores 2017-07-08 17:39:29 -04:00
twinaphex dc521b42d1 Cleanup 2017-07-05 11:55:17 +02:00
twinaphex ffc393cafc Get rid of unused variables 2017-07-02 20:58:32 +02:00
Paolo Bonzini d1dc2e9670 add support for remote control devices and other ID_INPUT_KEY devices
* the remote control presents itself as ID_INPUT_KEY, not
ID_INPUT_KEYBOARD.  However, ID_INPUT_KEYBOARD is a subset of
ID_INPUT_KEY.

* the remote control lacks the backspace and enter keys, which are hard
coded in RetroArch. It has "back" and "ok" instead, so map those to
RETROK_BACKSPACE and RETROK_ENTER as well.

Remote controls also have no ESC key, but that one is customizable
and I used the Power key of the remote (which already has a mapping
to RETROK_POWER).

The functionality provided is really the bare minimum, but it is enough
to teach a kid "press the power button here to watch TV"; compared to
pressing L1+R1+START+SELECT and navigating to the RetroArch's "quit"
menu item, that hopefully has more chances of success.
2017-07-02 10:50:00 +02:00
twinaphex 60296c0b7d Improve logs some more 2017-07-01 04:37:32 +02:00
radius 0a7968761f improve logging 2017-06-30 20:05:30 -05:00
twinaphex fe829e5eb0 Fix C89_BUILD 2017-06-28 18:01:04 +02:00
twinaphex 36f700927e Silence some more ioctl coverity warnings 2017-06-28 07:00:28 +02:00
twinaphex fa8db9b4d2 Silence another Coverity warning 2017-06-28 06:59:00 +02:00
twinaphex b11620e1eb Add retro_timers.h/retro_math.h 2017-06-28 04:41:38 +02:00
twinaphex 20e7ac4280 Buildfix 2017-06-26 03:50:34 +02:00
twinaphex 411ade7fb9 Mingw buildfix 2017-06-26 03:47:47 +02:00
twinaphex 5d1cfc47cc C89_BUILD fixes 2017-06-25 04:05:34 +02:00
Twinaphex 5c5c5ecbdf Revert "udev input: support controlling the menu with a TV remote control" 2017-06-22 20:53:07 +02:00
Twinaphex 8068bcccbe Merge pull request #5076 from bonzini/master
udev input: support controlling the menu with a TV remote control
2017-06-21 23:35:22 +02:00
twinaphex f087419165 Rename platform_linux.c to platform_unix.c 2017-06-19 17:38:49 +02:00
Paolo Bonzini d5cdbca322 add support for remote control devices and other ID_INPUT_KEY devices
* the remote control presents itself as ID_INPUT_KEY, not
ID_INPUT_KEYBOARD.  However, ID_INPUT_KEYBOARD is a subset of
ID_INPUT_KEY.

* the remote control lacks the backspace and enter keys, which are hard
coded in RetroArch. It has "back" and "ok" instead, so map those to
RETROK_BACKSPACE and RETROK_ENTER as well.

Remote controls also have no ESC key, but that one is customizable
and I used the Power key of the remote (which already has a mapping
to RETROK_POWER).

The functionality provided is really the bare minimum, but it is enough
to teach a kid "press the power button here to watch TV"; compared to
pressing L1+R1+START+SELECT and navigating to the RetroArch's "quit"
menu item, that hopefully has more chances of success.
2017-06-19 15:09:13 +02:00
Paolo Bonzini f850e64037 add volume down and volume up keys 2017-06-19 13:22:34 +02:00
twinaphex 914acd3956 Revert "Get rid of some warnings"
This reverts commit 3d45ba29d8.
2017-06-18 20:02:50 +02:00
twinaphex b134c5d23c Revert "Set joypad_info.axis_threshold only once"
This reverts commit 605d877279.
2017-06-18 20:01:48 +02:00
twinaphex 605d877279 Set joypad_info.axis_threshold only once 2017-06-18 19:56:31 +02:00
twinaphex 3d45ba29d8 Get rid of some warnings 2017-06-18 19:47:40 +02:00
twinaphex 5c973b6649 Add another entry to debug logging 2017-06-18 15:52:17 +02:00
twinaphex 2d76e98c22 Add debug logging 2017-06-18 15:48:44 +02:00
Twinaphex 6db8aa8a65 Merge pull request #5067 from danieljg/master
Added code for single port psx to ps3 adapter
2017-06-18 11:16:15 +02:00
Daniel Jimenez 5267b630f8 Added code for single port psx to ps3 adapter
On branch master
 Changes to be committed:
	modified:   ../griffin/griffin.c
	modified:   ../input/connect/connect_ps2adapter.c
	new file:   ../input/connect/connect_psxadapter.c
	modified:   ../input/connect/joypad_connection.c
	modified:   ../input/connect/joypad_connection.h
2017-06-17 14:19:09 -07:00
Brad Parker fca0e52bdd win32: make includes lowercase to fix cross-compilation on linux 2017-06-13 22:25:47 -04:00
twinaphex 1598042e8e (udev) Keyboard should work again in DRM/KMS 2017-06-12 12:09:19 +02:00
twinaphex a41b8bc199 Direct usage of epoll 2017-06-11 20:51:21 +02:00
twinaphex e92feb85af Use epoll functions directly 2017-06-11 20:44:02 +02:00
twinaphex 895c817fa5 ifdef this 2017-06-11 19:56:14 +02:00
twinaphex 5e0e970c92 Cleanups 2017-06-11 19:48:40 +02:00
Brad Parker 42e56c8432 fix all_users_control_menu logic 2017-06-11 12:28:47 -04:00
twinaphex 0751cb238d Add HAVE_HID ifdefs 2017-06-11 18:12:38 +02:00
twinaphex 060753258a Combine input_driver.c and input_keyboard.c 2017-06-11 17:51:12 +02:00
twinaphex 68516cf74c (input_keyboard.c) cleanups 2017-06-11 17:35:48 +02:00
twinaphex e2d4ff5614 Don't need ctype 'isprint' here anymore 2017-06-11 16:56:31 +02:00
twinaphex 9ec396c0ea Remove some dead code 2017-06-11 16:51:50 +02:00
twinaphex 5081d03194 Cleanups 2017-06-11 16:26:27 +02:00
twinaphex 7e9cb39519 Use BIT64_SET 2017-06-11 16:24:24 +02:00
twinaphex 612cb54cfe Merge input_hid_driver 2017-06-11 08:56:36 +02:00
twinaphex 95e588ce0f Fix C89_BUILD 2017-06-10 12:52:45 +02:00
twinaphex 9b13894438 Slightly rewrite input_state for android input driver 2017-06-10 12:48:09 +02:00
twinaphex 34be5566dd (udev fix) This fixes touchpad movement inside the menu 2017-06-10 12:27:22 +02:00
twinaphex 84f5fa1f26 (epoll_common.c) Cleanups; don't use verbosity logging inside 2017-06-10 12:07:01 +02:00
twinaphex c70526b7af Fix hotplug regressions with udev 2017-06-10 11:58:22 +02:00
twinaphex e8c73c6683 Rewrite other input drivers too 2017-06-10 11:22:24 +02:00
twinaphex d32cf4c866 Slightly rewrite input_state implementations of cocoa_input.c
and linuxraw_input.c
2017-06-10 11:09:58 +02:00
twinaphex 37656eed84 (udev_input.c) Rework input_state 2017-06-10 10:58:56 +02:00
twinaphex cea6dbbb6a (wayland) Fix input issue 2017-06-10 08:40:28 +02:00
twinaphex cffe023085 Fix wayland 2017-06-10 08:33:01 +02:00
Twinaphex 6d85e1f0a6 Merge pull request #5045 from casdevel/mice
Add player mouse device selection
2017-06-10 04:13:16 +02:00
Zoran Vuckovic e698e75a51 Adapt touchpad code for multiple mice support 2017-06-09 21:17:11 +02:00
twinaphex 473aed632d Get rid of this 2017-06-09 02:14:48 +02:00
twinaphex 8980f8c1ea Get rid of useless wrapper function epoll_waiting 2017-06-08 21:52:50 +02:00
twinaphex eb08a86647 Get rid of udev_common.c 2017-06-08 21:46:26 +02:00
twinaphex b633b8ad2d Get rid of implicit memset 2017-06-08 21:38:05 +02:00
Zoran Vuckovic 39108f97e9 Add player mouse index handling to winraw input driver 2017-06-08 17:35:34 +02:00
Zoran Vuckovic 44930716ba Add player mouse index handling to udev input driver 2017-06-08 18:49:08 +02:00
twinaphex ab087faa2a Try to move access call to maybe prevent 'time of check time of use'
coverity error
2017-06-07 23:29:29 +02:00
twinaphex 5c84f9158e Try to prevent out-of-bounds write 2017-06-07 23:03:08 +02:00
twinaphex a371815efd Try to null-terminate string 2017-06-07 22:47:07 +02:00
twinaphex eb5bf9451d (psp_joypad.c) Cleanups 2017-06-07 22:34:37 +02:00
twinaphex c711749973 (iohidmanager_hid.c) Cleanups 2017-06-07 21:14:34 +02:00
twinaphex 4a5593255f (android_joypad.c) Small cleanup 2017-06-07 21:10:06 +02:00
twinaphex 5ef8b69c9c (wiiu_input.c) Minor style nits 2017-06-07 21:06:24 +02:00
twinaphex dfcbd77a6b (ctr/wiiu) Minor stylistic nits 2017-06-07 21:04:13 +02:00
twinaphex afa07219cd (linuxraw_joypad.c) Cleanups 2017-06-07 20:58:46 +02:00
twinaphex f9061ca931 Simplify udev_joypad_button 2017-06-07 20:48:33 +02:00
twinaphex 9a471d0ef4 Simplify udev_joypad.c 2017-06-07 20:44:14 +02:00
sh!zeeg 5887c46e08 [INPUT]: fix KP0, KP1, KP2, KP3 keys on GNU/Linux 2017-06-07 19:52:20 +03:00
Zoran Vuckovic ceca89e104 Fix DRM/KMS keyboard handling 2017-06-07 12:25:10 +02:00
twinaphex 486660471e (Android) Buildfix 2017-06-07 03:01:00 +02:00
twinaphex d9e6cbb065 Simplifications to SDL input driver 2017-06-07 01:45:09 +02:00
twinaphex 59c3f8b06e Cleanups 2017-06-07 01:19:44 +02:00
twinaphex 603d4d0464 (udev/x11) Simplifications 2017-06-07 01:17:55 +02:00
twinaphex 9e93bdbe27 (linuxraw_input.c) simplifications 2017-06-07 01:12:35 +02:00
Twinaphex 3dede6d71a OSX buildfix 2017-06-07 00:35:11 +02:00
twinaphex c3f5c499f3 Simplify cocoa_input 2017-06-07 00:33:03 +02:00
twinaphex afd6a2bec5 Cleanups 2017-06-07 00:10:39 +02:00
twinaphex 604a558382 Get rid of input_wl_is_pressed 2017-06-07 00:09:31 +02:00
twinaphex deb804ab2f (x11_input.c) get rid of this inline function 2017-06-06 23:50:51 +02:00
twinaphex 3d61c7fdfc MSVC buildfix 2017-06-06 23:19:07 +02:00
Ethan Lee bf20021338 [SDL2] Fix joypad info for SDL_GameController devices 2017-06-06 16:16:44 -04:00
Zoran Vuckovic d88b76c26f Add L/R virtual keys handling 2017-06-06 13:50:41 +02:00
twinaphex 5d78c2209f Remove obsolete header 2017-06-06 08:30:01 +02:00
twinaphex efdfb29d50 Turn input_joypad_is_pressed into static inline function 2017-06-06 08:12:53 +02:00
twinaphex 7685f93d00 input_menu_keys_pressed - don't use input_joypad_pressed 2017-06-06 07:59:41 +02:00
twinaphex f307135d1d Split up wayland input driver into separate driver; and
improve mouse support for menu
2017-06-06 07:34:33 +02:00
twinaphex 6b3dbff75f Merge input_driver.c and input_joypad_driver.c 2017-06-06 05:56:02 +02:00
twinaphex 0bd998665b Turn this function into static INLINE 2017-06-06 05:38:01 +02:00
twinaphex 007bb0de39 Buildfix 2017-06-06 05:36:12 +02:00
twinaphex 9ebfb36b4e Use rarch_keysym_lut directly 2017-06-06 05:17:25 +02:00
twinaphex e276142be3 (udev_input.c) Cleanup 2017-06-06 04:18:35 +02:00
twinaphex 4f22c3d13e (x11_input.c) Simplifications 2017-06-06 04:15:45 +02:00