Commit Graph

589 Commits

Author SHA1 Message Date
Tillmann Karras
6bcdb10eee CMake: simplify some expressions 2015-01-03 13:17:57 +01:00
comex
fba3abe4cf Manually revert d34418100b 2014-12-20 00:33:15 -05: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
Jasper St. Pierre
86e4da2c07 ForceFeedback: Apply immediately as well 2014-11-28 10:54:04 -08:00
Jasper St. Pierre
1958a10b6f XInput: Apply immediately as well 2014-11-28 10:54:04 -08:00
Jasper St. Pierre
1b3d0173f5 SDL: Apply updates immediately rather than going through UpdateOutput
We're going to remove UpdateOutput as it's redundant, and horribly
complicates the code.
2014-11-28 10:54:03 -08:00
Jasper St. Pierre
f2787f620e ControllerInterface: Make UpdateInput / UpdateOutput return void
The return values here have never been checked, so it doesn't make sense
to return a value to begin with.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre
61fcfc4bf2 ControllerInterface: Remove unused ClearInputState 2014-11-28 10:50:45 -08:00
Jasper St. Pierre
367a42dcfd ControllerInterface: Implement dummy UpdateInput / UpdateOutputs
Make the implementation here a bit easier.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre
0c056c6411 DInput: Remove the unsupported Lights output
The LEDs feature doesn't actually do anything: the SetState method is
entirely commented out.
2014-11-28 10:50:45 -08:00
Jasper St. Pierre
b5d4e8d37e ControllerInterface: Remove unused "force" parameter
I'm not sure when this nonsense of forcing locking the mutex when it's
already taken should have ever taken effect, but let's be thankful it
isn't now. That was a badly worded sentence.
2014-11-28 10:50:45 -08:00
Rachel Bryk
e9cb629723 Fix some double->float conversions. 2014-11-11 14:14:22 -05:00
Lioncash
9ab924513e VideoCommon/VideoBackends: Remove unnecessary wxWidgets references.
EmuWindow doesn't even exist anymore. wxWidgets is also decoupled from the backends.
2014-11-01 19:19:00 -04:00
Lioncash
fd39454ad3 Make some OSX-only functions static
Gets rid of function prototype warnings.
2014-10-28 08:41:50 -04:00
comex
6e774f1b64 Add missing includes where headers depend on other headers having been included first.
This is good hygiene, and also happens to be required to build Dolphin
using Clang modules.

(Under this setup, each header file becomes a module, and each #include
is automatically translated to a module import.  Recursive includes
still leak through (by default), but modules are compiled independently,
and can't depend on defines or types having previously been set up.  The
main reason to retrofit it onto Dolphin is compilation performance - no
more textual includes whatsoever, rather than putting a few blessed
common headers into a PCH.  Unfortunately, I found multiple Clang bugs
while trying to build Dolphin this way, so it's not ready yet, but I can
start with this prerequisite.)
2014-10-21 21:22:16 -04: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
Lioncash
a1bee05f5f ControllerEmu: Get rid of redundant string appending 2014-10-12 17:47:10 -04:00
comex
7f6284c2fc Change a bunch of reference function arguments to pointers.
Per the coding style and sanity.
2014-10-02 03:00:33 -04:00
Lioncash
a04a99251f Fix building Dolphin on OSX without precompiled headers 2014-09-21 00:37:47 -04:00
Rohit Nirmal
46057db37d Fix build failing when disabling precompiled headers. 2014-09-19 18:17:51 -04:00
Lioncash
357c0adc3c Kill off the wx casts within InputCommon and GLInterface.
All because someone didn't actually return the wxWindow handle for the edge case.
2014-09-14 01:07:08 -04:00
Lioncash
6cfc5b9849 InputCommon: Initialize NSDictionaries using literal syntax. 2014-09-13 21:32:33 -04:00
Ryan Houdek
71cb09f1ca Merge pull request #1027 from rohit-n/change-include
Include CommonTypes.h instead of Common.h.
2014-09-10 00:35:16 -05:00
Lioncash
c2578d0668 InputCommon: Remove unnecessary breaks in XInput's GetName function 2014-09-08 21:36:04 -04:00
Rohit Nirmal
fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Rohit Nirmal
b0060e5184 Controller Interface: Remove "using namespace" in header file. 2014-09-04 23:02:25 -05:00
MikeRavenelle
411c060504 Checkbox for iteration
Added the option to handle whether the user wants to iterate through the
assignment of button mappings or assign them one at a time.

fixed formatting issues and code style.

I excluded this option from the config file. This stopped the check box value and the boolean from becoming offset. Since the option should always start as false.

 This still causes an issue with the Wiimote input, since the class variable that keeps the state will be wiped, but the check box value will stay the same after closing/reopening without closing the entire Wiimote configuration. I am looking for a way to resolve this.

I also reduced wait time to 2.5 seconds vs. the 5  seconds previously. Seemed to be a little long.

These changes apparently did not go through.

This should fix the Wiimote issue.
2014-09-04 19:23:04 -05:00
Rachel Bryk
1cc153b4ed Fix a typo introduced by 5adbc83 in ControllerEmu.cpp. 2014-09-04 05:00:53 -04:00
Rachel Bryk
5adbc83453 Change ControlState typedef to double, and change all related floats/doubles to use it.
Fixes an off by 1 issue related to double->float->double conversion, and eliminates numerous warnings.
2014-09-03 03:08:09 -04:00
shuffle2
de71db4864 Merge pull request #925 from shuffle2/xbcd-compat
Revert changes to how DInput filters out XInput devices.
2014-09-02 23:21:47 -07:00
Shawn Hoffman
266992684d msvc: remove some remnants of SDL and DSound from projects and general cleanup. 2014-09-01 21:27:44 -07:00
Shawn Hoffman
3c0227445c Revert changes to how DInput filters out XInput devices.
This is to remain compatible with XBCD devices.
2014-09-01 14:56:11 -07:00
Lioncash
1a3ebbb831 InputCommon: Rename class InputPlugin to InputConfig 2014-08-31 00:59:06 -04:00
Lioncash
bc14d6966f InputCommon: Clean up brace placements 2014-08-30 18:06:44 -04:00
Pierre Bourdon
9ff7125786 Merge pull request #810 from lioncash/controller-interface
InputCommon: Don't base default radius of analog sticks off of their name
2014-08-24 19:58:25 +02:00
Shawn Hoffman
327d35377d windows: remove now-extraneous NOMINMAX and WIN32_LEAN_AND_MEAN #defines from dolphin code.
Wrap dinput.h in a header defining DIRECTINPUT_VERSION instead of repeating it multiple places.
2014-08-23 10:48:48 -07:00
Lioncash
f17dcd2019 Merge pull request #764 from magcius/new-nogui-2
Rewrite GLInterface
2014-08-21 14:14:54 -04:00
Shawn Hoffman
d9fcc855a7 msvc: resolve all warnings in DolphinWX.
Also, bring WiiSaveCrypted closer to modern dolphin coding style.
2014-08-19 22:33:48 -07:00
Shawn Hoffman
9df2127865 msvc: enable strictStrings solution-wide for release.
strictStrings is not supported by debug libraries, and indeed breaks the build.
Drop wbemidl.h (incompatible with strictStrings) dependency by using SDL-style search for XInput GUIDs.
2014-08-19 20:33:24 -07:00
Jasper St. Pierre
2d974b6086 GLInterface: Destroy GLWin
Everything is now safely tucked inside each individual GLInterface.
2014-08-19 10:06:25 -04:00
Jasper St. Pierre
8bd4b9d2f9 Remove support for Wayland
Yes, this is a fancy new feature, but our Wayland support was
particularly bitrotten, and ideally this would be handled by a platform
layer like SDL. If not, we can always add this back in when GLInterface
has caught up. We might be able to even support wxWidgets and GL
together with subsurfaces!
2014-08-19 10:05:56 -04:00
shuffle2
2270c3e90a Merge pull request #797 from shuffle2/msvc-pch
Windows: Use a shared precompiled header for dolphin code under Source/
2014-08-16 14:58:28 -07:00
Lioncash
7fd5e4300a InputCommon: Don't base default radius of analog sticks off of their name. 2014-08-15 13:06:56 -04:00
Shawn Hoffman
f1b82a34b2 Windows: Use a shared precompiled header for dolphin code under Source/ 2014-08-14 23:51:13 -07:00
Lioncash
001c9a18fa Merge pull request #782 from RachelBryk/radius
Set the default radius to 100 for non-gcpad analog sticks.
2014-08-14 17:15:03 -04:00
Charles Rozhon
97f68be70a Changed GCPadStatus struct to use cstdint types instead of char, short etc. 2014-08-14 14:14:07 -05:00
Rachel Bryk
35ae1b4ee2 Set the default radius to 100 for non-gcpad analog sticks.
The previous default of 70 was determined based on gc controllers, and is not right at all for the wii extensions.
2014-08-11 13:58:47 -04:00
Tony Wasserka
0d989ea82b Restore Wayland compatibility.
It was broken by e15ec56bf0 because it wasn't deemed important. However chances are people will eventually start using Dolphin on that configuration, so we shouldn't frivolously drop compatibility without good reason.
2014-08-04 18:26:03 +02:00
Pierre Bourdon
8b26d7bf1e UnitTests: make it possible to build tests for code that has global dependencies 2014-08-02 09:34:39 -07:00
Pierre Bourdon
226a9c2392 Move GLInterface around to remove VideoBackends dependency on DolphinWX 2014-08-02 09:34:39 -07:00
Lioncash
4fa71dd59e Remove fakepoll.h.
It was only used for Windows XP and lower.

This also bumps the _WIN32_WINNT define in the stdafx precompiled headers to set the minimum version as Windows Vista.
2014-07-26 22:53:40 -04:00
Pierre Bourdon
264459457e Merge pull request #665 from lioncash/cisms
Get rid of a few C-style struct declarations
2014-07-25 01:30:29 +02:00
Lioncash
6186a293f6 InputCommon: Include the algorithm header in ForceFeedbackDevice
Also simplified the casting within a std::max call
2014-07-24 18:55:12 -04:00
Lioncash
5767691f4e Get rid of a few C-style struct declarations 2014-07-23 20:36:45 -04:00
booto
0d2bef2743 GCPadStatus: coalescing magic numbers into consts 2014-07-21 19:56:05 +08:00
Jasper St. Pierre
44307c9508 Host: Add a new "UIHasFocus" hook to determine if the UI has focus
We can't use RendererHasFocus for this purpose because of some issues
with exclusive fullscreen, and the new RendererHasFocus implementation
didn't work for non-Render to Main Window cases, since the renderer
window wasn't managed by wx.
2014-07-16 10:27:21 -04:00
Lioncash
ebd029973a Merge pull request #604 from magcius/wip/emu-cleanup-2
Start cleaning up the input interface
2014-07-15 12:11:17 -04:00
Lioncash
58c58d2f92 InputCommon: Use enums instead of defines within GCPadStatus.h 2014-07-11 17:18:11 -04:00
Jasper St. Pierre
e4eec2002b ControllerEmu: Remove focus-checking code from the rest of ControllerEmu 2014-07-11 14:08:29 -04:00
Jasper St. Pierre
74f3083381 ControllerInterface: Gate the input based on our new background input setting 2014-07-11 13:38:52 -04:00
Jasper St. Pierre
5abc028ace ControllerEmu: Make BackgroundInput a global setting through the virtualization
This will allow us to simplify the checks for background input and push
them further down into the architecture, into the ControllerEmu layer.

The new setting isn't actually used yet, though.
2014-07-11 13:38:37 -04:00
Jasper St. Pierre
0d49bf65a7 ControllerEmu: Virtualize settings
This will allow us to move Background Input to a global setting rather
than a local setting.
2014-07-11 13:32:58 -04:00
Jasper St. Pierre
a6dc3c47a9 ControllerEmu: Change the GetState interface to remove range/base
Do the scaling in the code that interprets the results.

This also removes the templatization of things and changes the interface
to always take a double.

This does add a bit more code to the users of GetState, especially when
having to deal with focus management, but this will be cleaned up very
soon, as focus and focus-related options will be centralized inside the
input platforms themselves, rather than spread out across all the input
plugins.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre
0d11081a3b ControllerEmu: Clean up the code that applies the modifier
This makes it more clear and pretty much the analog stick code bog standard.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre
c29d5ff989 ControllerEmu: Always convert to polar coordinates and back
Most users will have something in the radius or deadzone fields, so
don't bother filtering out 'extra' work. This also lets us clean up
the modifier implementation.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre
f2d4f10fc9 ControllerEmu: Remove support for the "Square Stick" option
It was only used for really old joypads which we really don't want to
support. If users have these joypads, they should look into using
something at the OS level, as games shouldn't need to have this
transformation; it should be done by the OS and driver.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre
e20a0265de Remove UDPWiimote feature
It substantially complicates the code and doesn't really provide any
functionality. According to the forums, the Android app is out of date
and has been broken for quite a while.

If we want to add this back, I'd write an app that speaks a more native
Wiimote protocol, and we can hook that up to the backend quite easily.
It could even be over our NetPlay protocol!
2014-07-11 13:32:56 -04:00
Jasper St. Pierre
c11672b2d8 ControllerEmu: Constructors go on top 2014-07-11 13:32:18 -04:00
Jasper St. Pierre
d468c38335 ControllerEmu: Fix code style 2014-07-11 13:32:18 -04:00
Jasper St. Pierre
0c9f6c2a2b ControllerEmu: Remove unnecessary include 2014-07-11 13:32:18 -04:00
degasus
22e1aa5bb4 mark all local functions as static 2014-07-11 16:07:23 +02:00
Lioncash
896d7e5685 Change SPADStatus struct name to GCPadStatus
Also get rid of the typedef, since this is unnecessary in C++
2014-07-10 22:02:38 -04:00
Lioncash
8b13afbb8e Remove the 32-bit config platform from the VS solution and projects 2014-06-24 22:07:26 -04:00
Lioncash
f05d3f6e5d Use only section-based ini reading. 2014-06-16 01:31:23 -04:00
shuffle2
d0201335c6 Merge pull request #300 from Sonicadvance1/Fix-AndroidInput
[Android] Fixes a bunch of input bugs.
2014-05-30 15:32:08 -07:00
Lioncash
49b0eef393 Remove the min/max functions in CommonFuncs.
The algorithm header has the same functions.
2014-05-29 21:44:41 -04:00
Jordan Woyak
9af18d1b96 Remove SDL from Externals. 2014-05-04 19:41:02 -05:00
Jordan Woyak
4321951987 Disable SDL input on Windows. 2014-05-04 19:09:51 -05:00
Ryan Houdek
e1bbda1e18 [Android] Fix a bunch of input bugs.
Looking at the old code for the ButtonManager was a brainfsck. This fixes a ton of bugs I kept uncovering as I was moving along.

Fixes the gamepad configuration file being incorrect.
No longer treats touchscreen in a special way. Ends up as a regular device with a "Touchscreen" device name.
Was incorrectly converting a index from integer to ButtonType. Wouldn't work due to the addition of some unused(in JNI) enumerators in ButtonType.
Fixes an issue where a map had a key as an axis which was causing its binding to be overwritten for every axis that was used twice (eg main stick left and right);
Fixes Triggers not working at all.
Fixes DPad not working at all.
Fixes C-Stick only half working.
Removes touch screen specific nativelibrary types onTouchAxisEvent and onTouchEvent.

Adds a configuration version configuration option. Allows easy configuration overwriting if the options need to be changed during updating.

Supersedes github PR #291.
2014-04-24 08:51:44 -05:00
pinumbernumber
a84bb7eb88 Add support for the guide button to XInput 2014-04-17 12:03:44 +01:00
Ryan Houdek
c88b83699e Don't use SDL devices that report invalid ranges.
If Buttons, Axes, Hats, or Balls > 255 then reject it.
2014-04-16 16:28:57 -05:00
lioncash
e79895e372 Replace use of the deprecated mem_fun function with mem_fn. 2014-04-01 12:09:22 -04:00
Pierre Bourdon
664c8d30a0 Remove all trailing whitespaces from our codebase. 2014-03-29 11:05:44 +01:00
Tillmann Karras
fa3cc05753 Turn some non-const refs into pointers 2014-03-17 02:55:57 +01:00
Lioncash
a82675b7d5 Kill off some usages of c_str.
Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-14 13:51:23 -04:00
Matthew Parlane
31cfc73a09 Fixes spacing for "for", "while", "switch" and "if"
Also moved && and || to ends of lines instead of start.
Fixed misc vertical alignments and some { needed newlining.
2014-03-11 00:35:07 +13:00
Tillmann Karras
d802d39281 clang-modernize -use-nullptr
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
Tillmann Karras
f28116b7da clang-modernize -add-override 2014-03-09 21:12:01 +01:00
Tillmann Karras
315a8ba1c0 Various changes suggested by cppcheck
- remove unused variables
- reduce the scope where it makes sense
- correct limits (did you know that strcat()'s last parameter does not
  include the \0 that is always added?)
- set some free()'d pointers to NULL
2014-02-28 12:43:20 +01:00
Tillmann Karras
79336c88f8 Remove X11InputBase (dead code) 2014-02-22 22:42:42 +01:00
Lioncash
91286f5021 Fix the Windows build in relation to the recent changes. 2014-02-20 01:01:11 +01:00
Pierre Bourdon
6847a0fc0c Fix more header sorting issues in InputCommon/ (now check-includes clean). 2014-02-20 01:01:10 +01:00
Pierre Bourdon
dc1db82f70 Fix Linux build 2014-02-18 12:09:38 +01:00
Lioncash
2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Lioncash
3fd87a7636 Second and final pass of clearing out tabs. 2014-02-17 02:19:41 -05:00
Lioncash
6c4ee1753a Fix some vertical alignments
ie. uses spaces for alignment.
2014-02-16 20:12:05 -05:00
Tillmann Karras
404624bf0b Turn loops into range-based form
and some things suggested by cppcheck and compiler warnings.
2014-02-13 09:05:50 +01:00
Matthew Parlane
88526be3b5 Merge pull request #50 from Parlane/inifile_tidy
Fix IniFile to use string& instead of char*
2014-02-13 19:04:27 +13:00
Matthew Parlane
3fe05e0a9f Fix IniFile to use string& instead of char*
Also removes .c_str() usages where found.
2014-02-13 17:06:30 +13:00
lioncash
d2038049f5 Replace all include guard ifdefs with "#pragma once" 2014-02-10 18:07:16 -05:00
Lioncash
ebb48d019e Clean up some struct indentations
Also cleaned up the indentations of some variable declarations.
2014-02-09 19:40:11 -05:00
Jules Blok
2063eddfa3 ForceFeedback: Fixed scoping bug
Previous code relied on a destroyed variable to still be valid.
2014-02-09 17:04:05 +09:00
Jules Blok
992b91c082 ForceFeedback: Don't depend on the force_type_name index.
Instead use a for-each loop, compare GUIDs and save the name pointers.
2014-02-09 17:01:45 +09:00
Jules Blok
c6d650c058 ForceFeedback: Add OSX rumble support 2014-02-09 17:01:45 +09:00
Jules Blok
02a95c139e ControllerInterface: Move DInput ForceFeedback support to a seperate class 2014-02-09 17:01:38 +09:00
Lioncash
557015626a Introduce the usage of unique_ptr into the InputCommon ControlEmu.h class. Allows for the automatic handling of resource deallocation. 2014-02-01 17:20:35 -05:00
Lioncash
825c5f689b Remove some unnecessary comments, as pointed out by Matt_P. 2014-01-30 20:21:18 -05:00
Lioncash
d91a5abba1 Light cleanup to a little bit of InputCommon. Replaces much of the iterators that litter this section of the codebase.
Also clean up a little bit of the comments that describe the interface classes.
2014-01-30 19:51:21 -05:00
Scott Moreau
2c8340e1dc Move GLInterface.h into GLInterface directory 2014-01-20 00:46:21 -07:00
Scott Moreau
4b3c338930 Merge Platform.h into GLInterface.h 2014-01-20 00:32:01 -07:00
Scott Moreau
84aa98a5a4 wayland: Add bits required to run as a wayland client. 2014-01-19 10:36:20 -07:00
Jasper St. Pierre
34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00
Jasper St. Pierre
43e618682e Convert all vcxproj files to UNIX line endings 2013-12-31 14:03:18 -05:00
Ryan Houdek
2e1aa64958 [Android] Fix joysticks only capable of right/down movements. Also make it capable of using onscreen joystick even if controller 1 is bound. 2013-12-12 21:24:39 -06:00
Ryan Houdek
ba18f38e70 Merge branch 'master' into android-new-control-input-overlay
Conflicts:
	Source/Android/res/values-ja/strings.xml
	Source/Android/res/values/strings.xml
	Source/Android/src/org/dolphinemu/dolphinemu/AboutFragment.java
	Source/Android/src/org/dolphinemu/dolphinemu/emulation/EmulationActivity.java
	Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
	Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java
	Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
2013-11-24 16:12:00 -06:00
Ryan Houdek
f6f2b1fc60 [Android-overlay] Support multiple gamepads with touch screen controls. 2013-11-24 15:04:53 -06:00
Jordan Cristiano
39a4d4329d more warning fixes 2013-11-14 02:19:15 -05:00
comex
21610c2e54 Run code through clang-modernize -add-override to add 'override' decls. 2013-11-03 20:54:05 -05:00
comex
c579637eaf Run code through the advanced tool 'sed' to remove trailing whitespace. 2013-11-03 20:54:05 -05:00
comex
965b32be9c Run code through clang-modernize -loop-convert to create range-based for loops, and manually fix some stuff up. 2013-11-03 20:54:01 -05:00
Shawn Hoffman
ccd30024b3 Update to VS2013 and a slew of build-related updates. Notes:
* Currently there is no DEBUGFAST configuration. Defining DEBUGFAST as a preprocessor definition in Base.props (or a global header) enables it for now, pending a better method. This was done to make managing the build harder to screw up. However it may not even be an issue anymore with the new .props usage.
* D3DX11SaveTextureToFile usage is dropped and not replaced.
* If you have $(DXSDK_DIR) in your global property sheets (Microsoft.Cpp.$(PlatformName).user), you need to remove it. The build will error out with a message if it's configured incorrectly.
* If you are on Windows 8 or above, you no longer need the June 2010 DirectX SDK installed to build dolphin. If you are in this situation, it is still required if you want your built binaries to be able to use XAudio2 and XInput on previous Windows versions.
* GLew updated to 1.10.0
* compiler switches added: /volatile:iso, /d2Zi+
* LTCG available via msbuild property: DolphinRelease
* SDL updated to 2.0.0
* All Externals (excl. OpenAL and SDL) are built from source.
* Now uses STL version of std::{mutex,condition_variable,thread}
* Now uses Build as root directory for *all* intermediate files
* Binary directory is populated as post-build msbuild action
* .gitignore is simplified
* UnitTests project is no longer compiled
2013-10-26 17:55:38 -07:00
Lioncash
97cd42f5c3 Remove some unnecessary includes as well as simplifying exisiting ones if possible. 2013-10-19 19:58:56 -04:00
comex
de1773affb Basic precompiled header support for Linux/OS X. Shaves 20-30% off full rebuild time on my system. 2013-10-17 00:07:35 -04:00
Lioncash
f3af8ee0f0 Revert "Remove some unnecessary includes."
Turns out this explodes on Linux.

This reverts commit c4696568cc.
2013-10-14 04:05:38 -04:00
Lioncash
c4696568cc Remove some unnecessary includes. 2013-10-14 04:01:57 -04:00
Lioncash
af951f467e [InputCommon] Fix a bug in ControllerInterface::UpdateOutput() in ControllerInterface.cpp. The variable ok_count was never incremented, which caused the function to always return false. 2013-09-18 10:09:32 -04:00
Pierre Bourdon
501eafb407 Overlay local gameinis over global gameinis instead of copying.
Huge megacommit because a lot of things needed to be modified to make this
possible.
2013-09-14 17:46:41 +02:00
Jordan Woyak
ce49964dfe Fix "modifier" button functionality et al. 2013-09-11 17:48:04 -05:00
comex
fd7cf5bb71 A bunch of trivial changes to fix clang warnings. 2013-09-01 22:58:33 -04:00
Pierre Bourdon
c3065ecb66 Fix compatibility with the SDL2.0 release.
SDL2.0 removed SDL_HAPTIC_SQUARE because of ABI issues (see comment #7 on issue
6491 by Ryan C. Gordon from the SDL project). It will be reintroduced again in
2.1, so keep the code and #ifdef it away.
2013-08-15 22:18:40 +02:00
Pierre Bourdon
0aa9308006 Revert "Fix a memory leak in ExpressionParser.cpp"
This reverts commit cce809ac90.

The code was actually correct: "expr" is never allocated when an error is
returned. This means when the expression parser fails, deleting "expr" means
deleting an uninitialized pointer.
2013-08-09 10:46:11 +02:00
Lioncash
cce809ac90 Fix a memory leak in ExpressionParser.cpp
Because there's a return here, expr should be deleted since it's not assigned to anything before returning.
2013-08-08 17:56:15 -04:00
Jasper St. Pierre
bc17798ef2 InputConfigDiag: Add a simple error status label
This tells you what you did wrong at a high level if you messed up.
2013-07-22 03:19:22 -04:00
Jasper St. Pierre
bd7ca7625b Fix up last commit
I forgot to git add this change.
2013-07-21 00:51:07 -04:00
Max Eliaser
fe2fe8b6cc Clean up all the GetName methods for XInput2 controls. 2013-07-20 13:58:02 -08:00
Max Eliaser
9fbc5ff27c Add X11 XInput2 input plugin, including MPX and with support for axis controls.
Based on the original XLib plugin, and thus shares some of its warts.
2013-07-20 13:58:02 -08:00
Jasper St. Pierre
4c807fa7b4 Fix Device.h placement in VC++ 2013-07-15 16:24:20 -04:00
Jasper St. Pierre
b64e882ba5 ExpressionParser: Parse fully qualified control names correctly
Without clearing out the "accumulator" for the backtick parsing,
our control name was full of junk (the previous device name) causing
us to not correctly find the control.

Ensure that always we clear the "accumulator" string during backtick
parsing.
2013-07-12 13:26:09 -04:00
Lioncash
03a47d3c6b Fix a case where a boolean check (vector.empty()) was used when a clear (vector.clear()) was intended in ExpressionParser.cpp. 2013-07-02 21:42:44 -04:00
Jasper St. Pierre
d5983b587e InputConfigDialog: Don't show "..." for complicated expressions
Just show the actual expression. We need to do a bit of mangling
here as wx has no way to turn off mnemonics parsing, so do that
as well.
2013-06-29 18:28:14 -04:00
Jasper St. Pierre
11fdd5a4ec ExpressionParser: Search for control names first
Otherwise, valid control names like "Cursor X+" would be incorrectly
tokenized as "`Cursor` `X` +", causing the parser to first abort trying to
find a control named `Cursor` rather than aborting with invalid syntax on
the bad binop.

We could also do this by resolving devices lazily, but since simple
control name bindings are going to be 90% of usecases, just look for these
first.
2013-06-27 10:51:19 -04:00
Jasper St. Pierre
a92f6f68d6 DInputJoystick: Fix compile
Whoops. MSVC++ messed up somehow and didn't tell me it didn't work
locally.
2013-06-26 23:26:21 -04:00
Jasper St. Pierre
cdb5b8b737 DInputJoystick: Always exclude XInput
Yeah, yeah, it's possible that some guy would try to build DInput
without XInput, but they're crazy, and I doubt it would have worked
since the header file mess was so fragile anyway. Always exclude
DInput devices when we don't have XInput.
2013-06-26 23:06:17 -04:00
Jasper St. Pierre
f53eefb491 ExpressionParser: Add support for simple barewords control names
If an expression can't be parsed normally, we then look to see if it's a
simple device name. This keeps backwards compatibility with simple input
ocnfigurations, where people just used the Detect button.
2013-06-26 20:19:23 -04:00
Jasper St. Pierre
03fdebac09 ExpressionParser: Don't crash when we can't find a device 2013-06-26 16:54:48 -04:00
Jasper St. Pierre
89e84163c2 ExpressionParser: Fix delimiter scanning
We need to make sure we eat the delimiter, otherwise we'll notice
the colon / backtick and think it's either a new control or part
of the control name
2013-06-25 01:44:28 -04:00
Jasper St. Pierre
c5c86d17dc InputConfigDiag: Use "..." for complicated expressions
The full expression is quite often too big for a simple button
label, so encourage people to use the full editor to edit it.
2013-06-25 00:58:31 -04:00
Jasper St. Pierre
a42388d061 ExpressionParser: Support bare words for simple control names
Using backticks for all control names can get a bit grating,
so support "A & B" instead of requiring "`A` & `B`".
2013-06-25 00:58:30 -04:00
Jasper St. Pierre
d2753cce66 ExpressionParser: Add support for the add operator
Use "+" instead of "^" this time.
2013-06-25 00:58:30 -04:00
Jasper St. Pierre
6246f6e815 InputCommon: Add a new ExpressionParser to replace the old hack language
This contains a new, hand-written expression parser to replace the old
hack language based on string munging. The new approach is a simple
AST-based evaluation approach, instead of the "list of operations"
infix-based hack that there was before.

The new language for configuration has support for parentheses, and
counts "!" as a unary operator instead of the binary "NOT OR" operator
it was before. A simple example:

  (X & Y) | !B

Explicit device references, and complex device names ("Right Y+") are
handled with backticks and colons:

  (`SDL/0/6 axis joystick:Right X+` & `DInput/0/Keyboard Mouse:A`)

The basic editor UI that inserts tokens has not been updated to reflect
the new language.
2013-06-25 00:58:30 -04:00
Jasper St. Pierre
877106b027 InputCommon: Split Device stuff out
The ExpressionParser needs this to be out of here to prevent issues
with cyclic references.
2013-06-25 00:58:30 -04:00
Ryan Houdek
7223778520 [Android] Gamepad input. Refactor JNI native functions to all pull from a single class instead of everywhere willy-nilly 2013-06-18 07:09:38 -05:00
Ryan Houdek
8efdbcda9e [Android] Fix drawn buttons causing rendering issues. 2013-06-11 08:23:32 -05:00
John Peterson
b6e1127c8a Adding stick radius setting
because that makes it easier to adjust it

Adding visual aid for the hardware range because that makes it easier to adjust the radius relative to it
2013-06-06 09:28:59 +02:00
Matthew Parlane
065d772696 Windows should have support for Balance Board now.
Needs to be tested.
2013-05-19 14:45:24 +12:00
Matthew Parlane
7208823396 Added config for enabling Balance Board.
Fixed other structures that still assumed 4 of everything.
2013-05-19 00:30:20 +12:00
lioncash
d244bca1f5 Fix a bunch of random typos in comments and logging.
Also update the comment headers for two functions in GCMemcard.cpp.
2013-04-19 09:21:45 -04:00
Lioncash
bab9963b00 New license header introduced for DiscIO, AudioCommon, InputCommon, VideoCommon, and Common projects. 2013-04-17 23:09:55 -04:00
Ryan Houdek
7772f0d071 Merge branch 'Android-trash' since it is no longer quite so trashy. 2013-04-14 23:36:00 -05:00
Ryan Houdek
44bbb54a62 Add a Androind ControllerInterface class for allowing input in a non-hacky way. Add a default GCPad.ini file so it actually works. 2013-04-14 23:02:53 -05:00
Lioncash
8a9fcd3014 Kill off dangling else's in the InputCommon project.
Some indentations were also too far for some things. Fixed this.

Also update the license header to show Git instead of SVN.

Got rid of some trailing spaces/tabs too.
2013-04-14 22:53:10 -04:00
lioncash
0e3d8e2e9f Clean up some space/tab mismatches in DiscIO and InputCommon.
Keeps the files consistent.
2013-03-19 09:59:41 -04:00
Jordan Woyak
2b1af36900 Merge branch 'master' into windows-unicode 2013-03-02 15:33:32 -06:00
Matthew Parlane
99cf57eb39 Fixes two memory leaks, one is pretty bad for OSX.
Yell at pauldachz if this doesn't work.
Or... say thanks.
2013-03-01 19:21:34 +13:00
Jordan Woyak
ea75577278 Use the new UTF-16 conversion function in two places. 2013-02-27 18:02:07 -06:00
Jordan Woyak
ef9d7fb789 Fix compilation with SDL2. (based on a patch from matthewharveys)
Fixes issue 5971.
2013-02-05 21:08:52 -06:00
Jordan Woyak
708fed92c8 Clean up SDL includes a bit. Maybe fix an SDL2 problem. 2013-02-05 15:34:23 -06:00
Jordan Woyak
f506783c37 Number "unknown" axes in OSX rather than call them all "unk". 2013-02-05 13:51:08 -06:00
Lioncash
fe7e691d77 Revert "mem_fun -> mem_fn."
This reverts commit b7d32b0a3d.

OSX C++ std library in charge of holding back progress (as usual).
2013-01-23 23:38:49 -05:00
Lioncash
b7d32b0a3d mem_fun -> mem_fn.
mem_fun is deprecated in C++11. Also it does everything mem_fun can do, but more conveniently.
2013-01-23 23:29:50 -05:00
Jordan Woyak
6ec95d30af Allow emulated wiimote to be tilted 180 degrees in each direction. (was 90)
Fixes issue 3492.
2013-01-19 19:20:04 -06:00
Grant Paul
2f28d938cf Add support for the mouse cursor and mouse clicking events on OS X. 2013-01-17 23:32:07 -08:00
Jordan Woyak
f97d2a93c4 Add "full analog surface" support in DInput,OSX,SDL backends. (should not be needed for XInput) 2013-01-17 15:41:18 -06:00
Jordan Woyak
38b01d176a Start to make possible use of "full analog surface". (useful for triggers on some silly physical gamepads) 2013-01-17 15:40:44 -06:00
Jordan Woyak
6b8dc6802b Fix two warnings. 2013-01-13 12:57:17 -06:00
Rachel Bryk
f1489a4e18 Merge branch 'controller-profiles' 2013-01-09 22:33:51 -05:00
Rachel Bryk
b9fc26540e Change key names, and put it in section Controls. 2013-01-09 21:56:17 -05:00
Jordan Woyak
0de8fbecfa Don't hardcode left-shift to disabe keyboard input on linux.
Left-shift can be used for gamepad input now.
Fixes issue 4968.
2013-01-09 20:26:11 -06:00
Rachel Bryk
fad2468e30 Make sure profile actually exists. 2013-01-09 20:41:14 -05:00
Rachel Bryk
e32b1526b3 Allow setting different profiles for different controllers, and automatically use the appropriate profile directory. 2013-01-09 15:04:37 -05:00
Rachel Bryk
b8691df723 Allow loading controller profiles from game ini.
Currently loads the same profile for all 4 controllers, and overwrites the default control settings.
2013-01-08 19:15:11 -05:00
skidau
5240e75be2 Fixed the infinite rumble problem caused by r4d6056f14625. 2013-01-07 12:25:18 +11:00
skidau
51603f0522 * Implemented working pedal support.
* Changed the mapping of the steering wheel to:

Main Stick Left/Right = Steer Left/Right
Main Stick Up = Accelerate
Main Stick Down = Brake

* Fixed non-force feedback controllers that were not detected
2013-01-01 13:49:22 +11:00
skidau
5ccbcf455e Added preliminary GameCube Steering Wheel emulation via a PC Force Feedback Steering Wheel. 2012-12-30 13:41:48 +11:00
Glenn Rice
e85438cba0 Clean up gcc/g++ compiler warnings that have accumulated. 2012-12-10 00:40:28 -06:00
Scott Moreau
0e1348c839 Re-add hack to use SDL/SDL.h ifndef _WIN32.
The correct convention is to use #include SDL.h in all cases but we have to
do this so Externals/SDL builds, which isn't in the best shape.
2012-07-14 20:50:58 -06:00
Scott Moreau
d34418100b Add periodic effects for haptic devices.
This adds support for drivers supporting sine, square and triangle
periodic haptic effects. This allows rumble to work on devices/drivers
supporting these effects, such as an xbox controller using the xpad
driver under Linux.
2012-07-12 19:47:17 -06:00
Scott Moreau
80c15f21b4 Add SDL2 support to build system.
Dolphin code already builds against SDL2 but the build system never
checks for SDL2, which is the what latest SDL is called now. SDL2
replaces SDL 1.3. This allows Dolphin to be build against SDL2, which
activates certain new features such as the haptic interface.
2012-07-12 19:47:17 -06:00
Billiard26
1974938c5a Fix DirectInput D-Pad handling. 2012-05-02 06:31:38 +00:00
Shawn Hoffman
56b1373baf Remove scons-related files 2012-03-25 12:55:02 -07:00
Shawn Hoffman
c5d746f3d8 remove scons files from VS projects 2012-03-18 06:41:12 -07:00
Jordan Woyak
b44918d1ed Merge branch 'fix-real-gcpad-sticks' 2011-12-12 23:25:32 -06:00
Jordan Woyak
09d2301fed detect input at 55% to catch silly c-stick range 2011-12-12 23:24:10 -06:00
Shawn Hoffman
856972f808 remove hacky old MicButton stuff 2011-10-03 23:46:00 -07:00
skidau
e76bc71efe Fixed the controller config so that it lists DInput controllers with special characters (like the Registered (R) sign) in their name. UTF8 is used to match the encoding used by the Wx GUI. 2011-10-01 21:50:15 +10:00
Shawn Hoffman
95517a9741 vs2010: Disable LTCG for realz 2011-09-05 09:43:23 -07:00
Jordan Woyak
931a31deca Untested attempt to fix real gcpad sticks not being detected by the input configuration dialogs. 2011-08-31 20:46:04 -05:00
DimitriPilot3
d4d7e2515f Apply the simple NULL-checking patch from issue 4311.
Judging by the feedback provided by other OSX users, this appears to fix the crash when starting Dolphin on OSX with devices that have an empty name.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7598 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-06-15 12:50:47 +00:00
Jordan Woyak
0ed542206a Fix SDL 1.3 support.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7434 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-04-01 23:57:06 +00:00
Jordan Woyak
f8620fcd0b Fixed some memory leaks. Only one was mine ;P
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7392 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-22 07:27:23 +00:00