#477
feat(effects): file path dialogs, app-owned pixels, and real-time audio output
Summary
- File path host requests.
native-sdk.dialog.openFilePathandnative-sdk.dialog.saveFilePathanswer through the keyedhostRequestchannel with the chosen path, or an empty result on cancel, so a Zig app can use the platform open and save panels without the JavaScript bridge.UiAppbinds them behind the app'sdialogpermission. - App-owned pixels.
acquireFrameSinkandreleaseFrameSinkclaim a media-surface texture channel for an app-owned producer (an embedded renderer, a pixel pipeline).decodeImagedecodes encoded bytes into an app-owned RGBA8 buffer without registering them. The root module re-exportsVideoFrameSinkandDecodedImage. - Real-time audio output.
startAudioOutputandstopAudioOutputpull interleaved float32 PCM from an app renderer on the host audio thread, for instruments, sequencers, and generated scores. Start answers the format the device opened, and stop is a fence after which the renderer is never entered. Replay and the fake executor record the request without opening a device. macOS implements it with anAVAudioEnginesource node.
Verification
zig build teston macOS with Zig 0.16.0: passed.scripts/gate.sh fast: every step passed exceptexamples-mobile, which needs the Android NDK. The NDK isn't installed here, and upstreammainfails the same way.- New tests:
file path host requests answer the platform dialogs behind the dialog permissionandaudio output validates its format and records the stream under the fake executor.
@rdev is attempting to deploy a commit to the Vercel Labs Team on Vercel.
A member of the Team first needs to authorize it.