Commit graph

38 commits

Author SHA1 Message Date
Bastien Bouclet
df4bf6556c KEYMAPPER: Introduce custom engine actions
Custom engine actions are a new type of event the Keymapper can produce.
When an engine declares its keymap, it can declare it wants to receive
custom action events when the corresponding key is pressed, instead of
the originating hardware input events.

This system allows:
* Key bindings to be specified only once when declaring the keymap,
  instead of twice (when handling the events).
* To truly rebind keys in the keymaps dialog. When using traditional
  event mapping, the keymapper remaps the user keypress to the keypress
  expected by the game engine to perform the action. However, the engine
  still accepts the original keys.

The new concept of 'standard actions' defines a set of engine actions
that are commonly available in the games supported by ScummVM. Backends
can define default bindings for the standard actions to hardware
specific input devices.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
14663c4790 KEYMAPPER: Make the keymapper mandatory 2020-01-29 08:51:29 +01:00
Bastien Bouclet
576982bc33 KEYMAPPER: Use the default action bindings defined by the backends 2020-01-26 19:07:53 +01:00
Bastien Bouclet
17791e2f7d KEYMAPPER: Actions can now have default mappings 2020-01-26 19:07:53 +01:00
Bastien Bouclet
ade0efa762 KEYMAPPER: Multiple inputs can map to the same action 2020-01-26 19:07:53 +01:00
Bastien Bouclet
729cd24c0b KEYMAPPER: Change the keymap action list to be an Array 2020-01-26 19:07:53 +01:00
Bastien Bouclet
9c0bc2b633 KEYMAPPER: Simplify the way keymaps are enabled and disabled 2020-01-26 19:07:53 +01:00
Bastien Bouclet
ac44469558 KEYMAPPER: Remove the domain class 2020-01-26 19:07:53 +01:00
Bastien Bouclet
a449b87c5d KEYMAPPER: Remove action id length restriction 2020-01-26 19:07:53 +01:00
Bastien Bouclet
b7a816f1eb KEYMAPPER: Clean up the classes dependencies 2020-01-26 19:07:53 +01:00
Johannes Schickel
594aaad38f KEYMAPPER: Make GPL headers consistent in themselves. 2014-02-18 02:39:35 +01:00
Tarek Soliman
d12f21b31d KEYMAPPER: Map non-key custom input events
This also makes the keymapper be in charge of keymapping logic
2012-03-02 20:48:50 -06:00
Tarek Soliman
4ee1a3acea KEYMAPPER: Add non-key inputs to HardwareInput 2012-03-02 20:48:50 -06:00
Tarek Soliman
6afac4e01e KEYMAPPER: Rename HardwareKey to HardwareInput 2012-02-27 13:00:56 -06:00
Tarek Soliman
92aabb6868 KEYMAPPER: Change HardwareKey id to Common::String 2012-02-22 07:44:59 -06:00
Tarek Soliman
aa42d78658 KEYMAPPER: Remove automapping dead code 2012-02-21 08:20:40 -06:00
Tarek Soliman
cce5be67dc KEYMAPPER: Allow ports to define default Keymap Action bindings 2012-02-15 17:07:52 -06:00
Tarek Soliman
921f602ab8 JANITORIAL: Fix whitespace in pointer template arg 2012-02-15 10:07:08 -06:00
Filippos Karapetis
1d3ff35373 KEYMAPPER: Disable the (accidentally reenabled automatic mapper again 2011-12-30 00:12:45 +02:00
Filippos Karapetis
410c9e0b30 KEYMAPPER: Fix broken implementation of findHardwareKey()
This fixes the keymapper dialog (at least on desktop platforms), but the
keymapper itself is still not working (tested with LoL)
2011-12-30 00:09:10 +02:00
Tarek Soliman
d5aa988f16 KEYMAPPER: Disable the broken auto mapping code 2011-10-27 09:53:26 -05:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Torbjörn Andersson
72eb9ec9ea Fixed a bunch of cppcheck warnings. Mostly about checking if a pointer is null
before freeing it, which isn't necessary.

svn-id: r46941
2010-01-03 19:37:43 +00:00
Max Horn
f242266f6d Change a couple places from 'end of namespace' to 'End of namespace', for consistency
svn-id: r44634
2009-10-04 21:26:33 +00:00
Torbjörn Andersson
0999534749 The error() and warning() functions add ! and newline automatically. (I didn't
look at debug() and debugC(), since I'm really bored with this now. :-)

svn-id: r41061
2009-05-31 10:02:16 +00:00
Johannes Schickel
b3c6751b9b Strip trailing whitespaces in the whole code base.
svn-id: r40867
2009-05-24 15:17:42 +00:00
Eugene Sandulenko
2cc7763971 whitespaces
svn-id: r40424
2009-05-10 17:18:59 +00:00
Max Horn
250acd4c8d more cleanup
svn-id: r35971
2009-01-21 02:02:55 +00:00
Stephen Kennedy
df3b8fd14c Added preprocessor flags 'ENABLE_VKEYBD' and 'ENABLE_KEYMAPPER' to control inclusion of vkeybd and keymapper in build.\n\nAlso added corresponding --enable-vkeybd and --enable-keymapper flags to configure scripts.
svn-id: r34706
2008-09-30 13:51:01 +00:00
Stephen Kennedy
3451895189 Final changes to keymapper:
* HardwareKey's now have a type too, so that we can either match a key to an action or vice versa.
* Better test keymaps - with special gui keymap that is activated when a dialog is opened

svn-id: r34005
2008-08-18 19:54:46 +00:00
Stephen Kennedy
565fa728e7 Removed KeymapManager class. Automatic mapping now done in Keymap. Rest of KeymapManager functionality is implemented in Keymapper.
svn-id: r33988
2008-08-18 14:45:42 +00:00
Stephen Kennedy
d92909203b - proper init of virtual keyboard now implemented (involved added EventManager::init() which is called after screen has been initialised)
- changed HardwareKey / Action id field to an array of 4 chars instead of int32. Means that the keymap key/value pairs in config file are more readable.

svn-id: r33986
2008-08-18 10:07:11 +00:00
Stephen Kennedy
c61294e70f Changed Action constructor to take a pointer to the Keymap it belongs too, meaning Keymap::addAction is automatically called
svn-id: r33885
2008-08-14 23:45:02 +00:00
Stephen Kennedy
08ef79ce45 Loads of valgrind fixes
svn-id: r33869
2008-08-14 19:20:25 +00:00
Stephen Kennedy
c1e8e340ff * Saving of keymaps fully implemented
* Added Keymapper::cleanupGameKeymaps() with code to remove game keymaps from active stack

svn-id: r33853
2008-08-14 01:42:02 +00:00
Stephen Kennedy
532faef82b Keymapper WIP:
* Improved automatic mapping algorithm
* Remap dialog overhaul - now displays active keymap(s)

svn-id: r33821
2008-08-13 11:46:08 +00:00
Stephen Kennedy
4eacc09024 Keymapper WIP:
* Got rid of default keymaps as they over-complicated the API
* Remapping dialog WIP

svn-id: r33699
2008-08-08 14:23:59 +00:00
Stephen Kennedy
2645ca48ad * Moved VK code into backends/vkeybd
* Moved Keymapper code into backends/keymapper

svn-id: r33681
2008-08-07 16:38:39 +00:00
Renamed from backends/common/keymap.cpp (Browse further)