Commit Graph

391 Commits

Author SHA1 Message Date
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