Commit Graph
30 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5.5 9dacdf8297 iOS: Add microphone support
sceUsbMic input comes from the input side of the RemoteIO unit that
already does the output. The input callback only copies samples into a
lock-free ring buffer, sized so it never allocates, and the CPU thread
drains it into Microphone::addAudioData when sceUsbMic polls, the way
the SDL backend works. Reconfiguring the unit happens on the main thread.

Whether the game is recording is kept apart from whether the unit's
input is on, so recording resumes after an interruption or a trip to
the background, which shut the unit down. The unit also runs, silently,
when sound is off but the game is recording.

While recording, the session is PlayAndRecord, with Bluetooth through
A2DP so headphones keep full quality and the built-in mic is the input.
Permission is asked for on iOS 17+ through AVAudioApplication.

Also moves the microphone recorder homebrew used to test this from
Tools/psp-microphone to pspautotests, as demos/microphone, and updates
the submodule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 17:55:21 +02:00
Henrik RydgårdandClaude Opus 5.5 9e2cadb685 iOS: Remove leftovers
An unused IAPManager startObserving (which would have registered the
observer twice), the obsolete UILaunchImageFile, debug logging of the
SceneDelegate class loading, and a commented-out JIT version check.
Also bring the file overview at the top of main.mm up to date.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:28:27 +02:00
Henrik RydgårdandClaude Opus 5.5 2e08b54402 iOS: Move off deprecated APIs
- Request an orientation update with setNeedsUpdateOfSupportedInterfaceOrientations
  on iOS 16+, where attemptRotationToDeviceOrientation is deprecated.
- Open the document picker with UTTypes on iOS 14+, and present it from
  sharedViewController rather than through the deprecated keyWindow.
- List cameras with a discovery session instead of devicesWithMediaType.
- IS_IPAD() instead of UI_USER_INTERFACE_IDIOM().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:28:27 +02:00
Henrik RydgårdandClaude Opus 5 b6b8780cb9 iOS: Remove some dead code
- AudioEngine.mm/.h: not in the source list at all, only in the ARC
  set_source_files_properties list, and written for manual retain/release
  ([super dealloc]), so it couldn't have compiled under ARC anyway. The actual
  audio path is iOSCoreAudio.mm.
- DisplayManager.mm: empty file, referenced nowhere.
- iOSCoreAudioSetDisplayConnected: never called, so g_displayConnected was
  always false and the external-display branch in UpdateSession unreachable.
  Also dropped an unused local there.
- AppDelegate: the "screen" property was never assigned, so both view
  controllers were setting their frame from [nil bounds], i.e. CGRectZero. The
  window sizes the root view anyway. Also removed the stale launchPPSSPP:argv:
  declaration (it lives on SceneDelegate now), a forward declaration of a
  PPSSPPViewController protocol that doesn't exist, and an unreachable return.
- getView: declared on the base class and implemented identically in both
  subclasses, called by nobody.
- bindDefaultFBO: moved the empty implementation to the base class so it isn't
  missing there, and dropped the Metal no-op override.
- The unused delta/lastTimestamp computation in displayLinkFired.

Also fixed the viewWillAppear/viewWillDisappear log messages in the GL view
controller, which claimed to resume and pause the display link but don't.

The getView and bindDefaultFBO changes clear three -Wincomplete-implementation
warnings, and the AppDelegate.h one clears a fourth.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZk5y4Fzw811WJoNWZb8Sc
2026-08-07 06:56:07 +02:00
polyxneg 0f4671127f feat: Added library export functionaltiy via urlscheme 2026-07-05 10:13:42 +02:00
Henrik Rydgård b4698eabfe Support launching directly with the deep link, instead of just launching while already running. 2026-04-28 23:06:23 +02:00
Henrik Rydgård e0a5a3e2bf iOS: Add basic deep link support.
Fixes #21577
2026-04-28 22:17:24 +02:00
Henrik Rydgård baa28d1a8e Try to make the app validation happy. 2026-02-16 09:04:21 +01:00
Henrik Rydgård e2b21d26bf Rotation on iOS fixes: Make sure the setting is saved, etc. 2025-10-22 15:54:00 +02:00
Henrik Rydgård 1c49ad7b29 Support screen rotation on iOS (unrestricted) 2025-10-22 15:13:21 +02:00
Henrik Rydgård 2f06100b43 iOS: Initial attempt at switching to SceneDelegate (UIScene)
Fixes #20884
2025-10-17 15:58:23 +02:00
Henrik Rydgård c3ed94b721 More icon work 2025-05-25 11:22:05 +02:00
Henrik Rydgård 2dbb54667d IAP work 2025-05-25 11:22:04 +02:00
Henrik Rydgård e01ca5b057 Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård 044451d557 iOS: Enable ARC on all the .mm files (oops) 2024-05-26 10:32:31 +02:00
Henrik Rydgård f864f52b64 More app lifecycle work. Switching between Vulkan and OpenGL now works. 2024-05-24 11:48:44 +02:00
Henrik Rydgård 9a93a478d1 Fix smooth switching from Vulkan to GL 2024-05-23 14:37:12 +02:00
Henrik Rydgård 740219a65b Plumb the restart event into AppDelegate 2024-05-23 14:16:07 +02:00
Henrik Rydgård aa3256f4e8 Turn off the Vulkan thread when switching away from the app. 2024-05-23 12:52:16 +02:00
Henrik Rydgård 5f79046e01 Get Vulkan rendering on iOS (still, need to hook up input etc) 2024-05-23 09:41:00 +02:00
Henrik Rydgård 947f0a876e Delegate shouldn't keep the specific ViewController type 2024-05-21 14:57:30 +02:00
Henrik Rydgård b1a435840c Renaming and comments 2024-05-21 14:48:28 +02:00
Henrik Rydgård 19e4de5088 Change global UI messages to use an enum instead of strings.
Makes it easier to add new ones and delete outdated ones without missing
any uses.
2023-09-30 11:37:02 +02:00
Henrik Rydgård 84fffec4f3 Switch all NativeMessageReceived to System_PostUIMessage 2023-07-06 17:26:02 +02:00
Henrik Rydgård f5472ba0d8 Cleanup up unnecessary audio init functions 2023-03-21 13:39:02 +01:00
Henrik Rydgård f01ba6dc84 Move NativeApp.h to Common/System, split into NativeApp.h and System.h
Buildfix
2020-10-04 11:42:16 +02:00
Florin9doi 4bebdb30c6 iOS : File association 2020-04-29 11:02:59 +03:00
Saagar Jha 99c631c791 Improve stability on non-jailbroken devices
By setting up a Mach exception handler, we can try to handle most
signals before they cause the system to hang. Since PT_TRACE_ME enables
CS_DEBUGGED on the parent process as well, we can simplify some of the
code as well.
2020-02-24 02:04:04 -08:00
Kentucky Compass d8b3f4af33 Handle iOS audio session interruptions by reinitializing audio 2017-12-31 00:37:20 -08:00
Karen Tsai dbd15420f5 Properly post lost_focus and got_focus notifications when iOS app resigns active state and gains active state. Fixes #7758 2015-05-27 02:35:09 -04:00