223 Commits

Author SHA1 Message Date
Le Philousophe 1fd96b5085 ANDROID: Rework the audio subsystem and use Oboe
It would appear that Oboe is the new audio library.
It's way more complex to handle (especially on really old devices), but
it brings low latency.
Oboe also comes with its share of warkaround to apply that have no
real doc... A fine piece of software...
2026-04-12 17:28:26 +02:00
Eugene Sandulenko 5c4935090c ANDROID: Simplified formatting for touch controls help 2026-01-27 00:16:52 +01:00
Gulraiz ff69b5a06f GUI: Restrict max width of scaled pictures in Help 2026-01-26 22:05:46 +03:00
antoniou79 51e495b799 ANDROID: Add extra keymaps for GMM, skip and (GUI) Close actions
This brings them closer to default keymaps set by ScummVM in MetaEngine::initKeymaps() and DefaultEventManager::getGlobalKeymap()
2026-01-11 15:23:05 +02:00
Le Philousophe dc7a7bbd94 ANDROID: Reset keyboard status at creation
When quitting and restarting the Android application, the process can
get recycled.
In this case, the JNI shared object is never discarded and we start with
a dirty state where the keyboard status is kept from the last run.

Fixes Trac#16337.
2025-11-15 18:29:15 +01:00
Le Philousophe 475962c5ba ANDROID: Make removal failures clearer 2025-06-29 11:00:36 +02:00
Le Philousophe 6d955fdffd ANDROID: Override the proper delete function
The DefaultSaveFileManager::removeSavefile function handles caching so
if we override and don't update the caches we get desynced.
Overriding removeFile makes it cleaner.
2025-06-28 19:26:25 +02:00
Le Philousophe 396e2deb73 ANDROID: Add antialiasing support 2025-06-01 08:24:34 +02:00
Le Philousophe f33a321fe3 ANDROID: Cleanup the obsolete 3D graphics manager 2025-06-01 08:24:34 +02:00
Le Philousophe fb36820d86 ANDROID: Don't use the old 3D graphics manager
It's useless now
2025-06-01 08:24:34 +02:00
Le Philousophe acb6703e32 ANDROID: Remove static PauseToken
This forced us to have a global destructor.
This removes the only one warning present in Android backend code.
2025-05-25 11:33:21 +02:00
Le Philousophe fa741de102 ANDROID: Trigger an abort on error
This also outputs a stacktrace in the system log and reports it to
Google Play for further diagnostics.
2025-05-03 12:53:04 +03:00
Le Philousophe 3e509f2379 ANDROID: Use getScummVMAssetsPath to access the assets
This fixes cacert lookup
2024-11-15 16:01:23 +01:00
Le Philousophe aef1690c1d ANDROID: Allow packagers to bundle games in the assets
They get copied on update and automatically added.
Removed games located in the assets are cleaned up too.
2024-11-12 22:46:21 +01:00
tunnelsociety e533413c34 JANITORIAL: Fix typo in helpTabs Touch Controls 2024-09-29 21:28:28 +02:00
Le Philousophe c8c3a316d6 ANDROID: Properly apply touch settings when starting a game
The 2D graphics backend is recycled from the GUI when starting a game.
As a consequence, touch settings were never applied.
2024-09-14 16:51:19 +02:00
Le Philousophe 867cbfcd0d ANDROID: Create a dedicated define for Android backend
This allows other backends (SDL, libretro) to be used on Android without
hacks.
2024-09-02 20:53:57 +03:00
Le Philousophe a98df4e445 ANDROID: Rework the virtual gamepad controller
- Use a SVG asset to allow for better scalability
- Make the controller visible when touching the screen
- Allow for oblique moving by placing finger between two directions
- Add more buttons on the center area of the screen (GUIDE, START, LEFT
  STICK, RIGHT STICK) and simplify right area (only four buttons)
- Don't track all fingers, only the ones needed
- Cleanup now unused code
2024-08-31 16:45:32 +02:00
Le Philousophe 3a57523490 ANDROID: Avoid use-after-free when setting up touch mode
We set up touch mode in graphics managers constructor.
At this point, the _graphicsManager variable was pointed to the freshly
deleted old manager instead of being null.
When we are in this position, assume the cursor is at top left.
2024-06-22 20:23:49 +02:00
Le Philousophe 4ecf2e4ccc ANDROID: Allow to use an Intent to start a specific game
UI to create such intents will come in a later commit.
If the game is already running, it's resumed where it was left when
ScummVM was paused.
2024-06-01 12:44:11 +02:00
Le Philousophe aa406ba5f3 ANDROID: Don't display burger menu when in launcher 2024-04-13 19:16:55 +02:00
Le Philousophe 27c7572bd7 ANDROID: Get HiDPI density from Android metrics 2024-01-24 21:53:07 +01:00
Eugene Sandulenko 00440cfe86 HELP: Added explanation what ScummVM is and where to get help for Android and iOS 2023-12-26 15:21:23 +01:00
Le Philousophe db41390587 BACKENDS: Make browser_lastpath a Path object 2023-12-24 13:19:25 +01:00
Le Philousophe db5041ecb0 COMMON: Make savepath a Path object 2023-12-24 13:19:25 +01:00
Le Philousophe dc7fadef28 COMMON: Make iconspath a Path object 2023-12-24 13:19:25 +01:00
Le Philousophe 01ebece807 COMMON: Make getDefaultConfigFileName return a Path instead of a String 2023-12-24 13:19:25 +01:00
Le Philousophe d9a8131ba2 COMMON: Make getDefaultLogFileName return a Path instead of a String 2023-12-24 13:19:25 +01:00
Le Philousophe 742bed351a ANDROID: Make application quit even when the application is hidden
Without this, when the application is in background, it is stuck waiting
for threads to join.
This is handful when, for example, there is an error while the
application got in background.
2023-12-10 17:39:46 +01:00
Eugene Sandulenko 58eedff7d1 ANDROID: Adjusted image sizes in help text 2023-11-01 00:24:11 +01:00
CadiH 7e41bec7f0 BACKENDS: ANDROID: minor edit to Help tab contents 2023-10-06 22:24:55 +02:00
CadiH 5df0851284 BACKENDS: ANDROID: updates contents of help dialog 2023-10-06 22:24:55 +02:00
CadiH a74c827076 BACKENDS: ADNROID: Updates content of help tab 2023-10-06 22:24:55 +02:00
Eugene Sandulenko 3cfcdd5d6f ANDROID: Add missing include 2023-09-17 14:39:58 +02:00
Eugene Sandulenko 2bea791278 OSYSTEM: Improed const'ness of the buildHelpDialogData() call 2023-09-17 00:56:28 +02:00
Eugene Sandulenko 7527757d6f BACKENDS: ANDROID: Move Android-specific HelpDialog tabs to backend 2023-09-17 00:56:28 +02:00
Ankush Dutt a26d00a2b7 DLC: Remove Playstore code 2023-09-14 08:22:56 +02:00
Ankush Dutt 2a60a4d213 DLC: Set kFeatureDLC and _dlcStore for ScummVMCloud, Playstore in backend 2023-09-14 08:22:56 +02:00
Ankush Dutt 045a99e50c BACKENDS: Remove platform-specific defines and enforce factory design pattern for creating DLC store 2023-09-14 08:22:56 +02:00
Ankush Dutt 6e8bdee909 BACKENDS: Add initial code for DLC Manager 2023-09-14 08:22:56 +02:00
Thierry Crozat ef7c881416 OSYSTEM: Add kFeatureTouchscreen to identify backends with a touchscreen 2023-08-22 23:37:11 +01:00
Le Philousophe 79c3063979 ANDROID: Improve CPU detection
CPU architecture can be determined at build time.
Add support for x86 extensions.
2023-08-13 12:58:45 +02:00
Wyatt Radkiewicz 787837ca41 ALL: Add Cpu prefix to SIMD extension features 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz bdc6d72e0b ANDROID: Added ARM NEON detection in backend init 2023-08-13 00:22:10 +02:00
antoniou79 95f1ca2847 ANDROID: Fix double tap and right click hold for direct mouse mode
Also re-work slightly the system for handling the delayed mouse up touch event
2023-08-07 17:31:02 +03:00
Le Philousophe a58bac8ccb ANDROID: Avoid calling native code from UI thread
This can lead to race conditions.
When synchronizing virtual keyboard state, just set a variable in UI
thread.
The variable will be read in worker thread during event polling, this
will ensure that graphics code is configured at a proper time.
2023-07-14 11:22:06 +02:00
Le Philousophe e3877d2606 ANDROID: Move game at the top of screen when keyboard is shown 2023-07-09 11:48:27 +02:00
Le Philousophe e62b59f16c ANDROID: Synchronize keyboard status between Java and C++
Without this, if keyboard is displayed by the user, the C++ side never
knows about it.
2023-07-09 11:48:27 +02:00
Le Philousophe 1cffb9c86a ANDROID: Don't make GL calls when there is not context
This is forbidden by EGL specification
2023-06-26 15:25:27 +03:00
antoniou79 64797234e6 ANDROID: Add Control tab for mouse pointer speed
and joystick deadzone. By supporting kFeatureKbdMouseSpeed and kFeatureJoystickDeadzone and registering default values

Both of these config settings (kbdmouse_speed, joystick_deadzone) factor in virtual mouse movement.

Helps handle virtual mouse pointer speed when controlled with DPAD or is too fast for the user
2023-04-02 21:55:56 +03:00