153 Commits

Author SHA1 Message Date
Cameron Cawley
cb3a024589 COMMON: Allow registering multiple event mappers 2022-06-18 23:13:17 +02:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Le Philousophe
ba136b6f29 COMMON: Add JOYSTICK_BUTTON_INVALID to be used when no button is pressed 2021-11-29 00:04:45 +01:00
Cameron Cawley
6dbb129f40 BACKENDS: Allow activating the system virtual keyboard using the keymapper 2021-11-01 16:54:39 +01:00
sluicebox
386c5659ec BASE: Purge keyboard/mouse events before running Engine
Fixes GUI events leaking into engines at startup. This caused
Phantasmagoria 1 to skip its introduction if the game was started from
the ScummVM GUI with a keyboard (Enter) but not with a mouse because
the key-down event started the engine and the key-up event remained
in the queue.

This also purges and mouse events since we happen to already have a
purgeMouseEvents() method. We may want to also clear joystick inputs,
or possibly the entire event queue, but that can be done after the
upcoming release. For now, the known bug is fixed.
2021-08-23 15:46:33 -05:00
Martin Gerhardy
f35cc92aaf EVENTRECORDER: ignore other event sources when playing back a record 2021-07-08 15:05:35 +02:00
Martin Gerhardy
ef6e6b6451 GUI: doxygen 2021-07-07 19:19:43 +02:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
Thierry Crozat
9e5540f838 BASE: Handle RTL at exit config in scummvm_main
This config was handled in the DefaultEventManager, but this did not
work for engines that quit the game without using a QUIT_EVENT (such
as SCI). So now it is handled one level up directly in scummvm_main.

Note: It is still also handled in the DefaultEventManager so that we
get the correct confirmation dialog there when "confirm_exit" is true.
2020-12-09 22:13:22 +00:00
Bartosz Gentkowski
24e3b6096e DOXYGEN: Doxygen improvements part 3
Editing doxygen comments in files:

- debug.h
- dialogs.h
- encoding.h
- endian.h
- error.h
- events.h
- fft.h
- file.h
- frac.h
- fs.h
- gui_options.h
- hash-ptr.h
- hashmap.h
- huffman.h
- ini-file.h

Plus some small changes in the config file.
2020-11-04 19:42:34 +00:00
Paweł Kołodziejski
35b9cccbde ALL: Merge ResidualVM 2020-10-09 19:44:13 +02:00
Pawel Kolodziejski
4631c0e2ed ALL: Sync with ScummVM rev: a4002bdeee5ec11b4e5968912c0dc759bb60c8a3 2020-10-04 23:59:26 +02:00
Bartosz Gentkowski
ec24687ce4 DOXYGEN: Add doxygen groups to header files in the common folder
Adding @defgroup and @ingroup doxygen tags into all headers
in the common folder that contain doxygen blocks.

This improves the structure, readability, and findability
of information in the resulting output.

This commit targets purely structure and does not deal with
the content of the currently existing doxygen documentation.
2020-10-04 18:25:50 +02:00
Pawel Kolodziejski
2ef7bfc3ef COMMON: Remove not used anymore joystick events entries 2020-10-03 17:34:00 +02:00
Pawel Kolodziejski
8f4e1c6cf3 Sync with ScummVM rev. 654b8208b878ddb72bd5d6c1bbc43934b31231b7 2020-06-22 08:14:16 +02:00
mataniko
321a02aff2 JANITORIAL: Rename shouldRTL, resetRTL and FORCE_RTL 2020-05-12 10:36:38 +02:00
mataniko
06242a712b JANITORIAL: Rename EVENT_RTL
Now that ScummVM is adding RTL support, the EVENT_RTL should be disambigious that it is for returning to launcher
2020-05-12 10:36:38 +02:00
Pawel Kolodziejski
88cefe47c0 ALL: Small sync with ScummVM 2020-05-11 21:56:33 +02:00
mataniko
38325bfb94 BACKENDS: Don't turn off screen when ScummVM is running a game 2020-05-10 00:35:29 -04:00
Pawel Kolodziejski
b586571900 ALL: synced with ScummVM commit 09bf38c1207aa32b9966e8642ee60e2186e15789 2020-05-09 20:05:54 +02:00
Bastien Bouclet
85e3fb38fb SDL: Change keyboard repeat to apply on unmapped events
The keyboard repeat event generator is used when building against SDL1.
Previously the repeat events would generate based on the event stream
produced by the keymapper which is not guaranteed to have matching up
and down events in the case the keymaps are changed while a key is
pressed.

Fixes #11417.
2020-04-12 11:11:00 +02:00
Bastien Bouclet
9cc2fee887 SDL: Enable joystick input by default
Game controller input is now enabled whenever a compatible device is
connected. The keymapper's keymaps are refreshed when a joystick is added
or removed.

Fixes #10366.
2020-03-16 18:41:27 +01:00
Bastien Bouclet
568d882e80 KEYMAPPER: Introduce a Virtual Mouse event source
The Virtual Mouse is meant to provide a way to control the mouse cursor
on system without a physical mouse. It provides keymapper actions that
are expected to be bound to game controller axes or buttons.
2020-03-09 20:00:31 +01:00
Bastien Bouclet
e66e35a3fd COMMON: Move isMouseEvent from Keymapper to Common 2020-03-09 20:00:31 +01:00
Cameron Cawley
1605b72ee8 BACKENDS: Add events for additional mouse buttons 2020-02-26 21:34:24 +01:00
Bastien Bouclet
22c75c644a EVENTS: Change DefaultEventManager to be the owner of the keymapper 2020-02-22 13:14:04 +02:00
lolbot-iichan
7edaf3f2f7 KEYMAPPER: Enable remapping of the mouse wheel 2020-02-19 08:04:25 +02:00
Paul Gilbert
818d9bab27 ENGINES: Change debugger trigger to Ctrl+Alt+D using keymapper 2020-02-16 13:07:19 +02:00
Bastien Bouclet
2177e685b7 KEYMAPPER: Allow joystick half axes to be remapped 2020-02-09 08:34:16 -06:00
rsn8887
eea70a3c8c BACKEND: Allow SDL2 mapping of L2/R2, fix psp2/switch mapping 2020-02-09 08:34:16 -06:00
Bastien Bouclet
e973092aef KEYMAPPER: Enable remapping of the mouse buttons 2020-01-29 08:51:29 +01:00
Bastien Bouclet
32174c9067 KEYMAPPER: Actions can now be bound to joystick buttons 2020-01-29 08:51:29 +01:00
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
ec9c394787 KEYMAPPER: Remove DefaultEventMapper
Now the keymapper is enabled by default, it does not make sense to have
a separate class anymore.
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
cc336635a1 KEYMAPPER: Change custom backend action events not to be instant
Allows action consumers to choose if they want to react on the start or
on the end of an user interaction.
2020-01-29 08:51:29 +01:00
Bastien Bouclet
2d7588d9c3 EVENTS: Remove the dependency to EventSource from EventMapper 2020-01-29 08:51:29 +01:00
Bastien Bouclet
511d138bbc KEYMAPPER: Move the remap dialog to an option dialog tab
The aim is to make it easy to discover, and possible to use without a
keyboard.
2020-01-26 23:09:08 +02:00
Bastien Bouclet
8dd2b7ca39 EVENTS: Expose the primary global keymap builder 2020-01-26 23:09:08 +02:00
Bastien Bouclet
7edff01e69 KEYMAPPER: Move the remap event capture logic out of the keymapper 2020-01-26 19:07:53 +01:00
Bastien Bouclet
63142d8090 COMMON: Event observers can't eat poll notifications anymore
It did not make much sense, and was unused.
2020-01-26 19:07:53 +01:00
Bastien Bouclet
feaf9dc365 ALL: Sync with ScummVM rev. 55dba55056b842e02475d8c95fa621f431b5e3be 2019-12-08 17:06:42 +01:00
Cameron Cawley
7bf22fa996 BACKENDS: Add EVENT_CLIPBOARD_UPDATE event 2019-09-21 22:16:01 +03:00
D G Turner
2d1b4dc977 COMMON: Add Default Values for Joystick State Structure
This ensures that this has a defined value when used without the
engine needing to set the field values directly i.e. as per CGE.
2019-07-24 22:00:26 +01:00
jepael
3b68380ca3 SDL: Fix compiler warning and joystick event handling 2019-07-13 09:15:41 +03:00
Cameron Cawley
30109816fe SDL: Initial implementation of joystick events 2019-07-08 01:24:55 +03:00
Bastien Bouclet
7839e8e51c COMMON: Fix build with the virtual keyboard enabled 2019-07-01 17:24:33 +02:00
Bastien Bouclet
d474e3f94f ALL: Sync with ScummVM - rev. ea3f8f2e33563987d8190cc66de75b6ac7f476db 2019-06-29 19:08:44 +02:00
Cameron Cawley
d7b2b1b8f9 GUI: Support adding games via Drag and Drop 2019-04-30 22:17:04 +01:00
Laurent Merckx
fc16b30bbf SDL/GRIM: Improve game controller support
- Use back button to open virtual keyboard (managed by resvm-sdl-events)
- Map controller buttons to corresponding actions (in grim engine)
- Solve bug on RPI with Myst3 (view stuck on top when using joystick)
2019-02-24 07:46:09 +01:00