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
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
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
fe2fe8b6cc
Clean up all the GetName methods for XInput2 controls.
2013-07-20 13:58:02 -08:00
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
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
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
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
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
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
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
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
03fdebac09
ExpressionParser: Don't crash when we can't find a device
2013-06-26 16:54:48 -04:00
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
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
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
d2753cce66
ExpressionParser: Add support for the add operator
...
Use "+" instead of "^" this time.
2013-06-25 00:58:30 -04:00
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
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
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
8efdbcda9e
[Android] Fix drawn buttons causing rendering issues.
2013-06-11 08:23:32 -05:00
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
065d772696
Windows should have support for Balance Board now.
...
Needs to be tested.
2013-05-19 14:45:24 +12:00
7208823396
Added config for enabling Balance Board.
...
Fixed other structures that still assumed 4 of everything.
2013-05-19 00:30:20 +12:00
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
bab9963b00
New license header introduced for DiscIO, AudioCommon, InputCommon, VideoCommon, and Common projects.
2013-04-17 23:09:55 -04:00
7772f0d071
Merge branch 'Android-trash' since it is no longer quite so trashy.
2013-04-14 23:36:00 -05:00
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
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
0e3d8e2e9f
Clean up some space/tab mismatches in DiscIO and InputCommon.
...
Keeps the files consistent.
2013-03-19 09:59:41 -04:00
2b1af36900
Merge branch 'master' into windows-unicode
2013-03-02 15:33:32 -06:00
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
ea75577278
Use the new UTF-16 conversion function in two places.
2013-02-27 18:02:07 -06:00
ef9d7fb789
Fix compilation with SDL2. (based on a patch from matthewharveys)
...
Fixes issue 5971.
2013-02-05 21:08:52 -06:00
708fed92c8
Clean up SDL includes a bit. Maybe fix an SDL2 problem.
2013-02-05 15:34:23 -06:00
f506783c37
Number "unknown" axes in OSX rather than call them all "unk".
2013-02-05 13:51:08 -06:00
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
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
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
2f28d938cf
Add support for the mouse cursor and mouse clicking events on OS X.
2013-01-17 23:32:07 -08:00
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
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
6b8dc6802b
Fix two warnings.
2013-01-13 12:57:17 -06:00
f1489a4e18
Merge branch 'controller-profiles'
2013-01-09 22:33:51 -05:00
b9fc26540e
Change key names, and put it in section Controls.
2013-01-09 21:56:17 -05:00
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
fad2468e30
Make sure profile actually exists.
2013-01-09 20:41:14 -05:00
e32b1526b3
Allow setting different profiles for different controllers, and automatically use the appropriate profile directory.
2013-01-09 15:04:37 -05:00
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
5240e75be2
Fixed the infinite rumble problem caused by r4d6056f14625.
2013-01-07 12:25:18 +11:00