Skip to content

Mirror - Initial implementation#225

Merged
sameerasw merged 7 commits intodevelopfrom
Mirror
Apr 10, 2026
Merged

Mirror - Initial implementation#225
sameerasw merged 7 commits intodevelopfrom
Mirror

Conversation

@sameerasw
Copy link
Copy Markdown
Owner

@sameerasw sameerasw commented Apr 10, 2026

This pull request introduces native Metal-based video rendering and interactive control for scrcpy mirroring within the AirSync macOS app. It adds new infrastructure for scrcpy server resources, video rendering, and touch/key event injection, while also making minor state management improvements and removing unused code.

Native scrcpy mirroring integration:

  • Added the scrcpy-server-v3.3.4 binary to the project resources and included it in the app bundle, enabling native scrcpy server launching. (AirSync.xcodeproj/project.pbxproj) [1] [2] [3] [4]

Metal video rendering and interactive control:

  • Introduced MetalVideoView, a SwiftUI/MetalKit-based view for efficient YUV video rendering and direct mouse/touch/key event mapping to Android via scrcpy, including trackpad gesture support for scrolling and right-click mapping to Android "Back". (airsync-mac/Core/Remote/Scrcpy/MetalVideoView.swift)
  • Added ScrcpyControlClient for sending touch and key events to the scrcpy server using the correct protocol over TCP. (airsync-mac/Core/Remote/Scrcpy/ScrcpyControlClient.swift)

State management improvements:

  • Added isNativeMirroring to AppState and ensured it resets to false on launch to prevent unwanted auto-mirroring. (airsync-mac/Core/AppState.swift) [1] [2]

Code cleanup:

  • Removed the unused WindowAccessor SwiftUI helper from AppDelegate.swift. (airsync-mac/Core/AppDelegate.swift)

@sameerasw sameerasw self-assigned this Apr 10, 2026
@sameerasw sameerasw added the enhancement New feature or request label Apr 10, 2026
@sameerasw sameerasw merged commit eee4418 into develop Apr 10, 2026
1 check passed
@github-project-automation github-project-automation bot moved this from Backlog to Done in AirSync Features and Bugs Apr 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant