diff options
Diffstat (limited to 'client-web/source/user/remote.ts')
-rw-r--r-- | client-web/source/user/remote.ts | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/client-web/source/user/remote.ts b/client-web/source/user/remote.ts index 1b46b91..4cb31a2 100644 --- a/client-web/source/user/remote.ts +++ b/client-web/source/user/remote.ts @@ -92,8 +92,22 @@ export class RemoteUser extends User { if (PREFS.notify_join) notify(PO.join_message(this.display_name).join("")) this.room.chat.add_control_message({ join: this }) } - if (message.preview) - this.resources.get(message.preview.id)?.on_preview(message.preview.data) + if (message.preview_response) { + const res = + this.resources.get(message.preview_response.id); + if (!res) return log({ scope: "media", warn: true }, "unexpected preview response") + if (!res.on_preview_response) return log({ scope: "media", warn: true }, "unsupported preview response") + if (!message.preview_response.data) return // remote does not want go generate previews + res.on_preview_response(message.preview_response.data, message.preview_response.expire); + } + if (message.preview_request) { + const res = this.room.local_user.resources.get(message.preview_request.id) + if (!res) return log({ scope: "media" }, "unexpected preview request"); + if (!res.on_preview_request) return log({ scope: "media", warn: true }, "unsupported preview request"); + res.on_preview_request(this).then(({ expire, data }) => { + this.send_to({ preview_response: { id: res.info.id, data, expire } }) + }); + } if (message.provide) { const d = new_remote_resource(this, message.provide) if (!d) return @@ -134,6 +148,7 @@ export class RemoteUser extends User { } request_resource(r: RemoteResource) { this.send_to({ request: { id: r.info.id } }) } request_resource_stop(r: RemoteResource) { this.send_to({ request_stop: { id: r.info.id } }) } + request_preview(r: RemoteResource) { this.send_to({ preview_request: { id: r.info.id } }) } add_ice_candidate(candidate: RTCIceCandidateInit) { this.pc.addIceCandidate(new RTCIceCandidate(candidate)) |