Jordan Woyak
1fe44238b1
ExpressionParser: Add XOR operator.
2019-10-20 09:51:52 -05:00
JMC47
8bc0a92f2c
Merge pull request #7663 from jordan-woyak/expression-parser-improve
...
Expression parser improvements
2019-10-17 17:35:30 -04:00
Anthony
a21b7b1bdd
Merge pull request #8390 from jordan-woyak/wiimote-emu-tilt-fix
...
WiimoteEmu: Tilt fixes.
2019-10-16 16:14:42 -07:00
Jordan Woyak
b120b08726
ControllerEmu: Clamp results of trigger/slider states to prevent integer overflow later on.
2019-10-15 15:35:07 -05:00
Jordan Woyak
7295458c11
ExpressionParser: Make Lexer ctor explicit and move argument.
2019-10-12 12:28:19 -05:00
Jordan Woyak
72302d9c42
ExpressionParser: Add support for /* */ style comments.
2019-10-12 11:41:02 -05:00
Jordan Woyak
b4e2b3cae3
ControllerEmu: Don't clear expression variables on references update. Hotplug would make that problematic.
2019-10-11 19:42:49 -05:00
Jordan Woyak
4d41bd64c8
ExpressionParser: Show error message with expected arguments.
2019-10-11 19:38:18 -05:00
Jordan Woyak
b57178d246
ExpressionParser: Remove ! character from function syntax. Remove unused serialization functions.
2019-10-11 18:12:18 -05:00
Jordan Woyak
7912dc57dd
ExpressionParser: Remove !while and add optional 2nd argument to !smooth.
2019-10-11 18:12:18 -05:00
Jordan Woyak
ca7ce67450
ExpressionParser/DolphinQt: Added parse results to UI.
2019-10-11 18:12:18 -05:00
Jordan Woyak
c8b2188e19
DolphinQT: Add syntax highlighting from tokenizer data.
2019-10-11 18:12:18 -05:00
Jordan Woyak
5cb1248612
ExpressionParser: Clean up some redundant using-declarations and wrong comments.
2019-10-11 18:12:18 -05:00
Jordan Woyak
fae8b15db1
ExpressionParser: Add !pulse function that evaluates to 1.0 for N seconds for each press.
2019-10-11 18:12:18 -05:00
Jordan Woyak
b5b43f8342
ExpressionParser: Add relative input function.
2019-10-11 18:12:18 -05:00
Jordan Woyak
08b291b0f9
ExpressionParser: Fix timer function with negative values.
2019-10-11 18:12:18 -05:00
Jordan Woyak
18b5120441
ExpressionParser: Add !tap function which activates after X (defaults to 2) taps within Y seconds.
2019-10-11 18:12:17 -05:00
Jordan Woyak
f2e499d587
ExpressionParser: Add !hold function that activates after input is held for N seconds.
2019-10-11 18:12:17 -05:00
Jordan Woyak
9e536382c4
ExpressionParser: Add function to smooth inputs.
2019-10-11 18:12:17 -05:00
Jordan Woyak
bbd6b1848f
ExpressionParser: Add deadzone function.
2019-10-11 18:12:17 -05:00
Jordan Woyak
6a2096c419
ExpressionParser: Add optional 2nd argument to toggle function which clears state.
2019-10-11 18:12:17 -05:00
Jordan Woyak
fd07ae8cec
ExpressionParser: Move FunctionExpression type definitions into another file.
2019-10-11 18:12:16 -05:00
Jordan Woyak
d4f9b8c4ef
ExpressionParser: Allow unary functions to be used without parens around the argument. e.g. !`Up`
2019-10-11 17:31:09 -05:00
Jordan Woyak
2a377e35ed
ExpressionParser: Make function names case sensitive.
2019-10-11 17:31:09 -05:00
Jordan Woyak
2b0297489f
ExpressionParser: Rename some functions and return a syntax error on trailing tokens.
2019-10-11 17:31:09 -05:00
Jordan Woyak
258832b1e8
ExpressionParser: Change function argument syntax to something more c++-like.
2019-10-11 17:31:09 -05:00
Jordan Woyak
ccac3f1e49
ExpressionParser: Fix negative literals and support unary minus operator.
2019-10-11 17:31:07 -05:00
Jordan Woyak
7cf903a209
ExpressionParser: Suppport N-ary functions. Arguments are read LISP style. N atoms are read after the function name. Added "if" function and made the "while" function more sensible with an arity of 2. Removed the ugly binary conditional operator.
2019-10-11 17:16:05 -05:00
Jordan Woyak
4dd078568b
ExpressionParser: Replace the timer literal with a timer function that increases from 0.0 to 1.0 and resets after N seconds. e.g. (!timer 2.0) is a 2 second timer. Fixed parsing of unary expressions so things like (! ! 1.0) work.
2019-10-11 17:14:45 -05:00
Jordan Woyak
785eb14432
ExpressionParser: Clean up string lexing and support numeric literals without tick delimiter: e.g. 0.75
2019-10-11 17:14:45 -05:00
Jordan Woyak
fa75ab404f
ExpressionParser: operator precedence.
2019-10-11 17:14:45 -05:00
Jordan Woyak
46c0ae7d1f
ExpressionParser: Add !while loop unary expression. Limited to 10000 reps to prevent infinite loops. Rhs is re-evaluated until it is < 0.5. Added comma operator, which behaves like it does in c++. Added subration operator.
2019-10-11 17:14:45 -05:00
Jordan Woyak
2c89b60298
ExpressionParser: cleanup.
2019-10-11 17:14:45 -05:00
Jordan Woyak
58efc93ed4
ExpressionParser: Conditional operator. A binary op that evals the rhs if lhs > 0.5 else 0.0.
2019-10-11 17:14:45 -05:00
Jordan Woyak
718efce1dc
ExpressionParser: Add less-than and greater-than operators.
2019-10-11 17:14:45 -05:00
Jordan Woyak
35e51ebbaa
ExpressionParser: Clear expression variables on UpdateReferences call. I don't know if this is most sensible.
2019-10-11 17:14:45 -05:00
Jordan Woyak
e896835f86
ExpressionParser: Renamed ControlFinder to ControlEnvironment. Added support for variables and assignment operator. ControlExpression objects now reference a matching input and output so the two can me mixed in any expression. (you can set rumble directly from inputs)
2019-10-11 17:14:32 -05:00
Jordan Woyak
1efcf861ea
ExpressionParser: Add mod operator, sin function, and timer "constant" which can be used for auto-fire and oscillators.
2019-10-11 17:13:58 -05:00
Jordan Woyak
a8f3e9585f
ExpressionParser: Expand ! symbol to allow for named unary functions. Added !toggle function which toggles on/off with each activation of its inner expression.
2019-10-11 17:13:58 -05:00
Jordan Woyak
bf63f85d73
ExpressionParser: Add multiplication and division operators. (division by zero evaluates as zero). Don't clamp result of addition operator. Clamping will be done later.
2019-10-11 17:13:58 -05:00
Jordan Woyak
f3192ca06d
ExpressionParser: Add support for literals.
2019-10-11 17:13:58 -05:00
Jordan Woyak
673f13b7ac
WiimoteEmu: Change default tilt angle to 85 degrees.
2019-10-06 09:56:41 -05:00
Jordan Woyak
260cefd60b
WiimoteEmu: Expose maximum tilt acceleration.
2019-10-06 09:56:39 -05:00
Connor McLaughlin
428ae5a43d
Merge pull request #8172 from nokturnusmf/relative-input-hold
...
Added (held) key for relative input
2019-08-10 00:37:53 +10:00
Connor McLaughlin
48ca2c6f2e
Merge pull request #8233 from JosJuice/stringutil-string-view
...
StringUtil: Use std::string_view more
2019-08-09 23:39:01 +10:00
Lioncash
37d643c7d3
InputCommon/DInputJoystick: Correct force-feedback flag testing
...
Introduced in a995e2f5ba
We need to be performing a bitwise AND on the flags and not a logical
AND, otherwise we could end up counting device objects that don't
support forced feedback.
2019-08-02 10:26:44 -04:00
JosJuice
a2a1e04fc9
StringUtil: Use std::string_view more
2019-07-23 14:49:12 +02:00
Léo Lam
cf60a9a7f7
Use separate libusb contexts to avoid thread safety issues
...
Unfortunately, it appears that using libusb's synchronous transfer API
from several threads causes nasty race conditions in event handling and
can lead to deadlocks, despite the fact that libusb's synchronous API
is documented to be perfectly fine to use from several threads (only
the manual polling functionality is supposed to require special
precautions).
Since usbdk was the only real reason for using a single libusb context
and since usbdk (currently) has so many issues with Dolphin, I think
dropping support for it in order to fix other backends is acceptable.
2019-06-26 17:55:51 +02:00
Lioncash
ec60027f56
InputCommon: Use nested namespace specifiers where applicable
2019-06-17 16:51:41 -04:00
Matthew Foulds
c62570c527
Added key for relative input
2019-06-10 13:23:16 +01:00