scummvm/backends/platform/ios7
Lars Sundström 5aeef796bc IOS7: Implement support for Apple TV remote
The Apple TV remote has a touch area which functions as a touch
controller. It also has a few buttons that can be programmed for
different actions.

The "touchpad mode" is not really relevant for the Apple TV remote.
However the pointer should be moved when swiping on the touch area
on the remote. Since we don't want to generate actions on touchBegan
and touchEnded for the remote, make sure these are only triggered if
the touch is made on direct contact with the screen, UITouchTypeDirect.

Implement the button handling by implement the microGamepad profile in
the GamepadController class. Only buttons A, X and the menu buttons are
relevant since the touch area is using the touch controller class.
The tvOS simulator however doesn't call the lambda functions defined for
the microGamepad buttons, hence the implementation of the "pressesBegan"
and "pressesEnded" which is called instead when running the simulator.

Implement common handling of the menu button. If the menu button is
pressed the soft keyboard will be shown. If pressing the menu button
again the soft keyboard will be hidden. If pressing the menu button
a third time the application will be suspended.

Implement new gesture recognizers that can be used with the Apple TV
remote. Up/down/left/right actions are triggered on press on the arrow
buttons, or tap on the edges of the touch area.

A long press, 5 seconds, of "Play/Pause" button toggles Mouse-click-and-
drag mode needed by some games.
2023-01-29 21:13:51 +00: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: Put iOS specific code within platform specific macros 2023-01-29 21:13:51 +00:00
ios7_common.h COMMON: Allow games to use overlay for something else than GUI 2022-11-12 19:12:05 +01:00
ios7_game_controller.h IOS7: Add isConnected property to GameControllers 2022-08-08 21:08:56 +01:00
ios7_game_controller.mm IOS7: Implement getHardwareInputSet to get connected devices 2022-08-08 21:08:56 +01: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: Implement support for Apple TV remote 2023-01-29 21:13:51 +00:00
ios7_keyboard.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
ios7_keyboard.mm IOS7: Put iOS specific code within platform specific macros 2023-01-29 21:13:51 +00:00
ios7_main.mm ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +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: Add missing break to kInputJoystickButtonUp 2023-01-29 21:13:51 +00:00
ios7_osys_main.cpp IOS7: Put iOS specific code within platform specific macros 2023-01-29 21:13:51 +00:00
ios7_osys_main.h COMMON: Allow games to use overlay for something else than GUI 2022-11-12 19:12:05 +01:00
ios7_osys_misc.mm IOS7: Put iOS specific code within platform specific macros 2023-01-29 21:13:51 +00: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 IOS7: Put iOS specific code within platform specific macros 2023-01-29 21:13:51 +00:00
ios7_scummvm_view_controller.h ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
ios7_scummvm_view_controller.mm IOS7: Set view controller's preference to lock the pointer 2022-08-08 21:08:56 +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: Put iOS specific code within platform specific macros 2023-01-29 21:13:51 +00:00
ios7_video.mm IOS7: Implement support for Apple TV remote 2023-01-29 21:13:51 +00:00
module.mk IOS7: Add support for Extended Gamepad controllers 2022-08-08 21:08:56 +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.