Commit Graph

33 Commits

Author SHA1 Message Date
Léo Lam
0d783f0869 ControllerInterface: Add a way to register callbacks
This adds RegisterHotplugCallback() to register a callback which will
be invoked by the input backends' hotplug threads when there is a new
device, so that Core (GCKeyboard, GCPad, Wiimote, Hotkey) can reload
the configuration without adding a dependency to Core from InputCommon.
2016-07-29 17:16:22 +02:00
Léo Lam
7c3a3ce46d Fix Wiimotes not reconnecting on button press
5.0-56 broke reconnecting a Wiimote on button press; this is because
data reporting was now always stopped for real Wii remotes on
disconnect, making it impossible to know a button was pressed in the
first place (to reconnect the Wiimote).

This semi-reverts to the previous behaviour, where data reporting is
never stopped.

(Also, control channels now go through WiimoteEmu, just like before,
to make sure some things are reset on disconnection.)

Hopefully fixes issue 9711.
2016-07-23 11:17:31 +02:00
Léo Lam
c827fdd2b5 WiimoteReal: Don't block on refresh
This changes Refresh() to use the existing scanning thread to scan for
devices, instead of running the scan on the UI thread and blocking it.

Also makes the UI thread not block when Continuous Scanning is disabled
and removes duplicated code.

Should fix issue 8992.

Under the hood:
* The scanning thread is now always active, even when continuous
  scanning is disabled.
* The initialize code which waits for Wiimotes to be connected also
  uses the scanning thread instead of scanning on yet another thread.
* The scanning thread now always checks for disconnected devices, to
  avoid Dolphin thinking a Wiimote is still connected when it isn't. So
  we now check if we need new Wiimotes or a Balance Board at scan time.
2016-07-10 13:29:57 +02:00
Matthew Parlane
2776bcbf55 Merge pull request #3903 from leoetlino/wiimote-disconnect
Disconnect real Wiimotes when disconnected by games (not on all platforms)
2016-06-26 18:33:09 +12:00
Rohit Nirmal
84cd57f99b Fix building with PCH disabled. 2016-06-24 11:46:48 -05:00
Léo Lam
d575b40c73 Disconnect real Wiimotes when disconnected by games
This commit makes real Wiimotes really disconnect when they are
disconnected by the emulated software, which is more similar to how
it works with a real Wii and allows Wiimotes to be disconnected after
timeout for power saving.

This is currently only enabled on Linux, because of limitations on
the other platforms.
2016-06-24 14:47:39 +02:00
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Lioncash
f2038b9e90 HW: Remove unnecessary header inclusions 2016-01-13 02:47:32 -05:00
rabbott99
9e54cf80c2 Movie: Reset wiimotes at at start of recording/playback,
to prevent desync issues which occur when the a game has been opened beforehand
2015-12-28 19:44:42 -05:00
Lioncash
b9975694ab InputConfig: Clean up controller management 2015-11-19 02:41:33 -05:00
Tillmann Karras
ae999cb43c Wiimote: simplify DoState() parameters 2015-10-11 23:37:34 +02:00
Admiral H. Curtiss
5594b107eb Wiimote: (Re-)Connect a disconnected real Wiimote when a button is pressed.
Where disconnected is defined as: The real physical device is still connected to the PC, but the emulated Wii sees the Wiimote as disconnected.
2015-07-16 02:35:55 +02:00
Admiral H. Curtiss
e462422ef7 Wiimote: (Re-)Connect a disconnected emulated Wiimote when a mapped button is pressed. 2015-07-10 04:29:56 +02:00
Ryan Houdek
f4625e6383 Merge pull request #2398 from JosJuice/revert-854f6b8
Attempt at fixing issue 8544 (input recording desyncs)
2015-05-25 23:49:56 -04:00
Tillmann Karras
30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
JosJuice
b645547930 Revert "HW: Poll system input from system timers"
This reverts commit 854f6b8688.

Conflicts:
	Source/Core/Core/HW/GCPad.cpp
	Source/Core/Core/HW/Wiimote.cpp
	Source/Core/Core/State.cpp
2015-05-11 07:22:35 +02:00
skidau
2c6eaf9c76 Cleaned up the controls lock that is not needed with 780eef68f6 2015-03-12 23:33:30 +11:00
skidau
b200e83b02 Fixed the wiimote profiles not taking effect. 2015-03-09 08:32:14 +11:00
skidau
780eef68f6 Fixed the crash that would occur when the Refresh button was pressed in the controllers config.
- Simplified the locking mechanism when controllers were updated
- Reloaded the config of the controls instead of re-initialising the control plugins
- Fixed controls being unresponsive after the Refresh button was pressed
- Disables the hotkeys while the controller config is open
2015-03-08 20:27:13 +11:00
skidau
3709a1ce3a Fixed the crash which occurred when opening Wiimote configuration before a game was started. 2015-02-04 18:48:19 +11:00
Stevoisiak
f31b688cf5 More minor consistency changes 2015-01-12 22:28:12 -05:00
Jasper St. Pierre
854f6b8688 HW: Poll system input from system timers
Rather than playing terrible hacks to determine the start of input
frames, just update system input periodically. Specifically, every
60th of a second.
2014-11-28 10:56:11 -08:00
Jasper St. Pierre
f3b739341e HW: Remove UpdateOutput
All of the rumble interfaces are now immediate mode.
2014-11-28 10:54:04 -08:00
Lioncash
b7b2074cc2 ControllerInterface: Get rid of SetHwnd(), introduce Reinitialize()
Initialize now just takes the handle directly. Reinitialize is added because it is much more straightforward in comparison to doing the Shutdown-Initialize manually.
2014-10-15 09:29:25 -04:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Rachel Bryk
5a163ec5e6 Add an IsMovieActive function.
Makes things a bit simpler, since this is a common check.
2014-09-06 23:44:25 -04:00
Lioncash
1a3ebbb831 InputCommon: Rename class InputPlugin to InputConfig 2014-08-31 00:59:06 -04:00
Rachel Bryk
0d60389d03 Save an unsaved wiimote variable to save states. 2014-06-20 09:35:47 -04:00
Tillmann Karras
2fcaca0603 More range-based loops and overrides 2014-03-17 02:55:55 +01:00
Lioncash
146b301a91 Fix more header sorting issues in Core/ (now check-includes clean). 2014-02-20 01:01:11 +01:00
Lioncash
2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Jasper St. Pierre
34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00