scummvm/backends/platform/ios7
Lars Sundström 50b67d97c4 IOS7: Implement use of Timer Dispatch Sources to drive timeHandler
The timeHandler was driven by calls to the pollEvent callback function.
Each time pollEvent was called the timeHandler called the TimeManager
handle function to advance in time and make sure scheduled tasks were
triggered.

This worked good for most game engines but some, e.g. the Hypno engine
was using the TimeManager to schedule tasks without calling pollEvent
since it was expecting nor handling events at the specific point in
time.

Since iOS have threads the timerHandler can be called from a separate
thread and not rely on pollEvent.
Implement timerHandler to use a Timer Dispatch Source which and make
it operate on a background thread rather than the main thread.
Read more on Dispatch Sources here:
https://developer.apple.com/library/archive/documentation/General/
Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html
2023-05-02 08:02:12 +02:00
..
ios7_app_delegate.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
ios7_app_delegate.mm IOS7: Cleanup code to access Document and app bundle paths 2023-04-27 01:24:30 +01:00
ios7_common.h IOS7: Cleanup code to access Document and app bundle paths 2023-04-27 01:24:30 +01:00
ios7_game_controller.h IOS7: Fix compiler warnings 2023-01-29 21:13:52 +00:00
ios7_game_controller.mm IOS7: Fix compiler warnings 2023-01-29 21:13:52 +00:00
ios7_gamepad_controller.h IOS7: Add support for Extended Gamepad controllers 2022-08-08 21:08:56 +01:00
ios7_gamepad_controller.mm IOS7: Fix compiler warnings 2023-01-29 21:13:52 +00:00
ios7_keyboard.h IOS7: Check keyboard visible if inputView being first responder 2023-01-29 21:13:51 +00:00
ios7_keyboard.mm IOS7: Remove checks that @available can be used 2023-04-26 08:29:59 +02:00
ios7_main.mm ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
ios7_misc.mm IOS7: Cleanup code to access Document and app bundle paths 2023-04-27 01:24:30 +01:00
ios7_mouse_controller.h IOS7: Add Mouse support using GameController framework 2022-08-08 21:08:56 +01:00
ios7_mouse_controller.mm IOS7: Add isConnected property to GameControllers 2022-08-08 21:08:56 +01:00
ios7_osys_events.cpp IOS7: Implement use of Timer Dispatch Sources to drive timeHandler 2023-05-02 08:02:12 +02:00
ios7_osys_main.cpp IOS7: Implement use of Timer Dispatch Sources to drive timeHandler 2023-05-02 08:02:12 +02:00
ios7_osys_main.h IOS7: Implement use of Timer Dispatch Sources to drive timeHandler 2023-05-02 08:02:12 +02:00
ios7_osys_misc.mm IOS7: Remove support for non-sandboxed mode 2023-04-26 22:31:31 +01:00
ios7_osys_sound.cpp AUDIO: Support mono audio output in the mixer 2022-11-18 17:17:00 +01:00
ios7_osys_video.mm BACKENDS: IOS7: Enable log message for unsupported cursor masks 2023-02-19 23:51:09 +01:00
ios7_scummvm_view_controller.h IOS7: Fix detection of orientation on some devices 2023-04-26 08:29:59 +02:00
ios7_scummvm_view_controller.mm IOS7: Fix orientation detection when the view becomes visible 2023-04-27 01:24:30 +01:00
ios7_touch_controller.h IOS7: Factor out touch pointer handling to TouchController class 2022-08-08 21:08:56 +01:00
ios7_touch_controller.mm IOS7: Implement support for Apple TV remote 2023-01-29 21:13:51 +00:00
ios7_video.h IOS7: Fix detection of orientation on some devices 2023-04-26 08:29:59 +02:00
ios7_video.mm IOS7: Remove checks that @available can be used 2023-04-26 08:29:59 +02:00
module.mk IOS7: Cleanup code to access Document and app bundle paths 2023-04-27 01:24:30 +01:00
README.md IOS7: Update README.md with support for external devices 2022-08-08 21:08:56 +01:00

ScummVM for iOS 7.1+

This is a quick fix of the latest ScummVM (1.8.0) for iOS 7.1. It has been tested on real iPhone 6S+, and iPad Pro, and also on all the available Xcode simulators.

I tried to use all the latest iOS features to replace the old code. For instance, it uses gesture recognizers most of the time, it supports the new iPhones 6 / 6+ / 6s / 6s+ resolution, and you can copy your game files using iTunes.

Compilation

See https://wiki.scummvm.org/index.php/Compiling_ScummVM/iPhone

Usage

The game data files can be copied on the iOS device using iTunes. Once done, add your games in ScummVM as usual.

Here is a list of the in-game gestures:

Gesture Description
Two fingers swipe down Display the ScummVM menu for loading, saving, etc.
Two fingers swipe right Enable / disable the touchpad mode
Two fingers swipe up Enable / disable the mouse-click-and-drag mode
Two fingers tap Simulate a right click. You should tap with one finger, and then tap with another while keeping your first finger on the screen.
Two fingers double-tap Skip the cinematic / video

The iOS keyboard is visible when the device is in portrait mode, and hidden in landscape mode.

External devices such as mouse, trackpad and gamepad controllers, are supported from iOS 14 and later.