Skip to content

Add iOS WebRTC input and streamer reconnect capability#280

Merged
Kief5555 merged 1 commit intokief5555/iosfrom
capy/ios-streamer-input-reconnect
Apr 12, 2026
Merged

Add iOS WebRTC input and streamer reconnect capability#280
Kief5555 merged 1 commit intokief5555/iosfrom
capy/ios-streamer-input-reconnect

Conversation

@Kief5555
Copy link
Copy Markdown
Collaborator

@Kief5555 Kief5555 commented Apr 12, 2026

This PR implements WebRTC DataChannel-based touch/keyboard input using the desktop binary protocol and introduces the ability to reopen the streamer after closing it via the QueueStatusPill.

StreamerView.swift:

  • Created reliable and partially reliable input DataChannels before setRemoteDescription.
  • Implemented protocol v2 binary encoders (encodeHeartbeat, encodeKey, encodeMouseMove, encodeMouseButton) with microsecond timestamps.
  • Added touch overlay for relative mouse movement, single-tap left click, and two-finger right click.
  • Added on-screen keyboard bar with Windows VK/scancode mapping for character input.
  • Added input heartbeat interval and proper channel cleanup on signaling close.

OpenNOWStore.swift:

  • Added canReopenStreamer computed property to verify session readiness (status 2 or 3).
  • Added reopenStreamer() function to restore streamSession from activeSession.

ContentView.swift:

  • Updated QueueStatusPill subtitle to show "Tap to return" when session is ready but streamSession is nil.
  • Updated pill button action to call reopenStreamer() when available instead of maximizing the queue overlay.

Open in Capy OPEN-9 · 5.4

@Kief5555 Kief5555 added the capy Generated by capy.ai label Apr 12, 2026 — with Capy AI
@Kief5555 Kief5555 merged commit b53f5ab into kief5555/ios Apr 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

capy Generated by capy.ai

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant