109 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
Jordan Woyak
3454ade05e Fix DInput rumble.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7347 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-15 04:04:27 +00:00
Jordan Woyak
a55e63c697 Fix DInput and SDL.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7345 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-14 21:07:28 +00:00
Jordan Woyak
8fedc3db38 Clean up "ControllerInterface" a bit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7339 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-14 01:20:11 +00:00
Jordan Woyak
5f87642f23 problem: TryAcquireSRWLockExclusive requires Windows 7 :/. solution kinda: use std::recursive_mutex (CriticalSection on windows) where try_lock is used. Dolphin should work on Vista x64 again.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7313 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-07 00:16:38 +00:00
Jordan Woyak
423018f811 Replaced Common::CriticalSection with a std::mutex implementation. 64bit Windows builds now use SRWLocks and ConditionVariables(requires Vista/7, x64 builds will no longer work on Windows XP x64). Tell me if you hate that. Removed Common::EventEx. Common::Event now uses a std::condition_variable impl.(using ConditionVariables on Windows x64, Events on x86, or posix condition variables elsewhere). I experience slight speed improvements with these changes.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7294 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-05 06:11:26 +00:00
Soren Jorvang
c07fb95821 PS3 controllers have some input elements with very large value fields
that cause IOHIDValueGetIntegerValue() to smash the stack when trying
to convert them.

In practice, all relevant axes seem to also be available as either
8 or 16-bit values, so just ignore anything that doesn't look like
that (or a button).

Fixes issue 3931.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7255 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-27 00:15:26 +00:00
smelenchuk
050dcad9f8 Build fixes when using SDL 1.3 related to force feedback support, as suggested in issue #1338.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7199 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-19 07:06:26 +00:00
Soren Jorvang
435b25fa55 Fix the CMake build.
Prevent the PS3 HID crash until I can debug it.

AudioUnits are enabled by default.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7052 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-03 21:11:06 +00:00
Soren Jorvang
f41e5b3b85 Guard against controller instances without any inputs.
Clean up OS X keyboard key names.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6985 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-30 08:12:34 +00:00
Soren Jorvang
aa410c8eea Enumerate identically named input devices.
Fixes issue 3929.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6984 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-30 05:46:19 +00:00
Soren Jorvang
08b923a163 Fix OS X build.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6951 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-28 21:27:49 +00:00
Soren Jorvang
0288742565 Various minor fixes to allow building with clang on OS X.
Fixes issue 3992. 

wxWidgets patch at http://trac.wxwidgets.org/ticket/12332 .


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6929 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-27 05:01:00 +00:00