8 Commits

Author SHA1 Message Date
301437482d fix: use npx instead of npm run for tauri CLI to fix argument passing 2026-05-31 13:43:09 +08:00
1e0ba958df feat: add cross-platform & cross-architecture build script 2026-05-31 13:10:27 +08:00
eda8f7d927 feat: ADP协议对接修正 + 多显示器支持 + 屏幕采集实现 + 流式管道
- ADP 协议修复: codecs 字段名匹配 Android 端,protocol_version 解析为字符串
- mDNS 发现: 返回结构化 DeviceInfo(设备名/地址/分辨率/TXT记录)
- 屏幕采集: macOS CGDisplay + Windows captrs 实现(Linux 仍为 xrandr 分辨率检测 stub)
- 新增 display 模块: 跨平台显示器枚举(list_displays),支持多显示器选择
- 流式管道: start_streaming 实现 capture→encode→send 完整链路,支持 display_index 参数
- 前端: disconnect 调用 backend,设备列表/连接面板展示名称与分辨率
- Encoder: 添加 bitrate() getter
- get_display_resolution: 改为查询实际显示器分辨率
2026-05-30 22:04:06 +08:00
yuqianhe
09bd36b54f fix: 桌面端 ADP 协议全面修复
- client.rs: 握手后添加后台读循环(Keepalive/UIBC/分辨率变更)
- client.rs: send_frame/send_keepalive 使用实时时间戳
- client.rs: 防止重复连接(connect 重入检查)
- frame.rs: 添加 FRAME_TYPE_H265_NAL(0x03) 和 FRAME_TYPE_AUDIO(0x04)
- soft.rs: RGBA→YUV420P 逐行拷贝修复 stride 对齐问题
- lib.rs: Tauri State 持久化编码器和客户端实例(不走丢)
- lib.rs: 新增 get_connection_state/disconnect_adp/send_frame/start_streaming 命令
- 清理无用导入,修复 mpsc::Receiver::clone 编译错误
2026-05-30 08:30:02 +00:00
yuqianhe
b33d51c8ec Tauri desktop UI: React frontend with device discovery, connection, and settings
- DeviceList component with mDNS device discovery and refresh
- ConnectionPanel component with connect/disconnect controls
- SettingsPanel component with resolution/FPS/bitrate selection
- App.tsx integrating all components with Tauri invoke() calls
- App.css with comprehensive styling (card layout, status bar, device list)
- vite-env.d.ts TypeScript declaration
2026-05-30 08:06:28 +00:00
yuqianhe
083abe75a1 Cross-platform screen capture + H.264 encoder
- Implement unified Capturer trait with platform-specific stubs: DXGI (Win), CGDisplay (macOS), PipeWire (Linux)
- Implement SoftwareEncoder using ffmpeg-next (libx264) with RGBA→YUV420P conversion, low-latency preset
- Add create_capturer() factory function for platform auto-detection
- Register capture and encoder Tauri commands (start_capture, init_encoder, get_display_resolution)
2026-05-30 08:05:07 +00:00
yuqianhe
e73824a48e Desktop ADP protocol + mDNS discovery implementation
- Rewrite frame.rs to match Android 8-byte header format (Type/Reserved/Length/Timestamp)
- Implement AdpClient with full handshake flow (connect → capability exchange → ready)
- Implement mDNS device discovery via mdns-sd (_airdisplay._tcp)
- Wire ADP + mDNS as Tauri commands (discover_devices, connect_adp)
- Update module structure and remove unused dependencies
2026-05-30 08:01:15 +00:00
yuqianhe
d9996bb421 Initial scaffold: Rust+Tauri+React project structure for AirDisplay Client 2026-05-30 07:57:32 +00:00