Commit graph

268 commits

Author SHA1 Message Date
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
a155061ee4 KEYMAPPER: Set the default virtual mouse settings
Fixes the 3DS mouse cursor drifting.
2020-03-11 06:15:46 +01:00
Cameron Cawley
5fd8aed047 SDL: Move the compatibility functions into SurfaceSdlGraphicsManager 2020-03-09 22:15:45 +02: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
d94c7c3bcc SDL: Move the keyboard mouse to a subclass of SdlEventSource
And deprecate it. The new Virtual Mouse system is expected to replace
it.
2020-03-09 20:00:31 +01:00
Bastien Bouclet
2177e685b7 KEYMAPPER: Allow joystick half axes to be remapped 2020-02-09 08:34:16 -06:00
Bastien Bouclet
43184657e9 EVENTS: Disable ScummVM's source of keyboard repeat events by default
Backends can still (and do) generate such events. This works around an
issue with the keymapper where the "DOWN" event would be mapped to a
key, but the corresponding "UP" event would be mapped to another one due
to a keymap change. The keyboard repeat generation system would believe
the key to be still pressed and send a continuous stream of repeat
events.
Ideally the keymapper should be fixed to always generate matching event
pairs. However this source of an infinite stream of events still looks
like trouble waiting to happen to me. Hence disabling it by default.
2020-01-29 08:51:30 +01: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
be49fc4b9a SDL: Add a keymap for the graphics manager 2020-01-29 08:51:29 +01:00
Hubert Maier
ee2aa6160c SDL: Fix typo in comment 2019-10-24 20:33:48 +03:00
Tarek Soliman
d538d13ee0 SDL: Fix build for older SDL versions
This fixed the breakage caused by 6dba0bbfd4
in ancient SDL1 versions that don't have SDL_iconv_string()

Closes gh-1862
2019-09-24 09:55:27 -05:00
Cameron Cawley
014bef9eab BACKENDS: Add a default clipboard implementation 2019-09-21 22:16:01 +03:00
Jaromir Wysoglad
6886ae0dae SDL: Copy result of SDL_iconv_string() 2019-09-05 23:52:46 +01:00
Jaromir Wysoglad
c2e0e90c27 SDL: Use a non-const string for SDL_iconv_string
With some older versions of SDL1, the SDL_iconv_string takes
char * instead of const char * as it's argument. This should
fix the build issue with gp2xwiz.
2019-08-24 21:43:57 +01:00
Jaromir Wysoglad
6dba0bbfd4 SDL: Remove check for SDL2 in convertEncoding()
SDL_iconv_string() is available even with SDL1
2019-08-24 18:12:45 +03:00
Jaromir Wysoglad
96270d4bf2 JANITORIAL: Remove debuging code. 2019-08-24 18:12:45 +03:00
Jaromir Wysoglad
41d3a70c58 SDL: Fix convertEncoding for multibyte encodings. 2019-08-24 18:12:45 +03:00
Jaromir Wysoglad
d6d6ac1823 SDL: Add SDL implementation of convertEncoding 2019-08-24 18:12:45 +03:00
Cameron Cawley
8b8fb6d3a4 SDL: Simplify implementation of createLogFile() 2019-08-05 10:01:30 +03:00
Cameron Cawley
b3dc3832f7 SDL: Remove outdated comment 2019-03-25 23:36:33 +01:00
Thierry Crozat
4e24ede18d SDL: Fix crash when calling OSystem::quit() and OSystem::fatalError() 2018-11-26 22:42:30 +00:00
Cameron Cawley
ada05fd726 WIN32: Move Windows-specific implementation of logMessage out of OSystem_SDL 2018-06-03 17:43:30 +01:00
Cameron Cawley
e1c83f8e87 WIN32: Move Windows-specific implementation of getSystemLanguage out of OSystem_SDL 2018-06-03 17:43:30 +01:00
Thierry Crozat
0dae57ab2f SDL: Handle encoding conversion for clipboard text 2018-04-29 21:47:10 +01:00
Thierry Crozat
3fe0e3c38e OSYSTEM: Add API to copy text to clipboard
This has also been implemented for the SDL2 and macOS backends.
2018-04-29 21:47:10 +01:00
Bastien Bouclet
a86eae6323 SDL: Only enable joystick related features when joysticks are enabled
Fixes #9714.
2017-12-26 21:11:05 +01:00
Bastien Bouclet
ee4ff8ca08 SDL: Cleanup joystick deadzone handling 2017-12-26 21:11:04 +01:00
Bastien Bouclet
1fb748e974 SDL: Move the non analog joystick code to the Symbian port
Symbian was the only user of that code.
2017-12-26 21:11:04 +01:00
Thierry Crozat
2d88a30803 Revert "SDL: Use RLE acceleration for SDL2 transparent surfaces"
This reverts commit 6b4195a542.
There seemed to be no clear benefit in using RLE for transparent
surfaces, and there were a few reports that it might cause crashes
on Windows. So to be on the safe side I prefer to revert this
commit.
2017-11-26 01:56:48 +00:00
Bastien Bouclet
8fc70ce37f SDL: Improve handling of SDL2 keyboard repeat events
- Flag them as repeat events
- Disable ScummVM's own repeat event generation

This fixes keyboard repeat events not being flagged as such with SDL2,
and complies with the user's operating system preferences regarding key
repeat timings.
2017-11-19 16:12:50 +01:00
Thierry Crozat
6b4195a542 SDL: Use RLE acceleration for SDL2 transparent surfaces
We were already doing it for SDL1.2, but with SDL2 the SDL_RLEACCEL
is not passed to SDL and instead we need to call SDL_SetSurfaceRLE.
2017-11-11 00:18:57 +00:00
Colin Snover
ebe6c40a6a SDL: Do not reset window size when engines update rendering surface
This change allows:

* Engines to update their target rendering surface/size and pixel
  format with the backend multiple times during gameplay;
* Users to resize the ScummVM window without having it reset
  size/position every time an engine updates its target surface
  format;
* Conversions/scaling to continue to run efficiently in hardware,
  instead of requiring engines to pick their maximum possible
  output format once and upscale inefficiently in software;
* The window to reset size once when an engine calls to set its
  initial output size, and to reset again once ScummVM returns to
  the launcher.

This is relevant for at least SCI32 and DreamWeb engines, which
perform graphics mode switches during games.
2017-10-07 12:30:29 -05:00
Frank Richter
0f93962ef4 Windows: Use GetUserDefaultUILanguage() instead of GetThreadLocale().
The thread locale concerns display options (e.g. date formatting) not
the display language. There are typically, but not necessarily the same,
as Windows allows them to be configured separately.
2017-08-01 08:55:48 +02:00
Thierry Crozat
e96c057c3d SDL: Allow specifying the screenshot directory in the config file
There is no GUI option to set the screenshot directory, but this
allows power users to set it if they don't want to use the default.
2017-04-24 01:07:05 +01:00
Pala
3849a3e90e WINDOWS: Change location where screenshot are saved
This fixes bug #9701: WINDOWS: Flow of taking screenshots
on Windows is broken
2017-04-24 01:06:29 +01:00
rsn8887
45bd7a8b75 SDL: Fix erratic analog pointer + control options
Fixes erratic speeds in analog pointer motion
Implemented option to set analog/keyboard pointer speed
and control the analog joystick deadzone. The deadzone option appears
only if the build supports analog joystick (via JOY_ANALOG define)
2017-02-22 16:52:09 -06:00
Bastien Bouclet
6234b93813 SDL: Add a fixme regarding the encoding of the string returned by getTextFromClipboard 2016-09-13 09:21:51 +02:00
Bastien Bouclet
9e502bf9aa SDL: Plug a memory leak in OSystem_SDL::getTextFromClipboard 2016-09-13 09:19:53 +02:00
Thierry Crozat
a2a985368c BUILD: Tie the SDL_net version to the SDL version
This means that when using SDL 1.2 we use SDL_net 1.2, but when
using SDL 2 we now use SLD_net 2 as well. Both versions work
properly and there is not code change needed in ScummVM.

This change is because SDL_net depends on SDL, and using
SDL_net 1.2 with SDL 2 means we can end up needing to link with
both the SDL and SDL2 libraries.
2016-09-03 23:07:21 +01:00
Alexander Tkachev
b9bba9bd4b ALL: Move Clipboard support to OSystem
Commit adds kFeatureClipboardSupport. hasTextInClipboard() and
getTextFromClipboard().

OSystem_SDL has this feature if SDL2 is used.

EditableWidget and StorageWizardDialog use g_system to access clipboard
now.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
9f7bea156a CLOUD: Init SDL_Net 2016-08-24 16:07:55 +06:00
Alexander Tkachev
b3bf532211 CLOUD: Make CloudManager singleton
It's needed to ::destroy() it in main().
2016-08-24 16:07:55 +06:00
Alexander Tkachev
03217cd5c3 CLOUD: Add CurlJsonRequest
Now we can do REST API request by creating CurlJsonRequest and waiting
for it to call our callback. Passed pointer is Common::JSONValue.

This commit also does some minor variable renaming fixes.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
fade746f37 CLOUD: Add USE_CLOUD feature
Adds USE_CLOUD in both configure and create_project.
2016-08-24 16:07:55 +06:00
Alexander Tkachev
ca2eeb2214 CLOUD: Add Cloud::Manager and Cloud::Storage
This commit introduces Common::CloudManager, which can be accessed from
OSystem.

The backend for this manager is Cloud::Manager (defined in
backends/cloud/manager.h). It should load all users storages from
configs and provide access to current Storage instance. For now it just
creates a new one.

Cloud::Storage (backends/cloud/storage.h) provides an API to interact
with cloud storage, for example, create new directory or sync files.
Right now it's not ready and has only two dummy methods: listDirectory()
and syncSaves().

There is Cloud::Dropbox::DropboxStorage backend
(backends/cloud/dropbox/dropboxstorage.h) for Cloud::Storage. Right now
it implements both listDirectory() and syncSaves() with starting timer
task and handling it by printing out some JSON examples.
2016-08-24 16:05:07 +06:00
Alexander Tkachev
7446ffd73b CLOUD: Integrate CloudThread into OSystem
Would be changed soon.
2016-08-24 16:05:07 +06:00
Bastien Bouclet
ad3ab61241 COMMON: Remove the EventRecorder dependency from OSystem
EventRecorder is in the gui lib which is not linked in the cxxtest suite.
2016-07-28 18:23:46 +02:00
Johannes Schickel
b32f347531 SDL: Get rid of reference to SDL 1.3.
We only support SDL 1.2 and SDL 2.
2016-03-13 14:07:56 +01:00
Matthew Hoops
55a87c59b6 BACKENDS: Use a virtual function for creating the SDL audio CD manager 2016-03-13 13:53:40 +01:00