diff options
Diffstat (limited to 'client-web/source/resource/mod.ts')
-rw-r--r-- | client-web/source/resource/mod.ts | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/client-web/source/resource/mod.ts b/client-web/source/resource/mod.ts index 5c76f41..d5f6a7b 100644 --- a/client-web/source/resource/mod.ts +++ b/client-web/source/resource/mod.ts @@ -6,7 +6,6 @@ /// <reference lib="dom" /> import { ProvideInfo } from "../../../common/packets.d.ts" -import { Room } from "../room.ts"; import { RemoteUser } from "../user/remote.ts" import { resource_file } from "./file.ts"; import { resource_track } from "./track.ts"; @@ -15,23 +14,23 @@ export type TransportMethod = "data-channel" | "track" export type RemoteResourceState = "connected" | "disconnected" | "await_connect" | "await_disconnect" export interface ResourceHandlerDecl { kind: string - new_remote(info: ProvideInfo, user: RemoteUser, enable: () => void): RemoteResource + new_remote(info: ProvideInfo, user: RemoteUser, enable: () => void, request_preview: () => void): RemoteResource } export interface RemoteResource { el: HTMLElement info: ProvideInfo, on_statechange(state: RemoteResourceState): void + on_preview_response?: (data: string, expire: number) => void, on_enable(t: MediaStream | RTCDataChannel, disable: () => void): void, - on_preview(p: string): void, stream?: MediaStream } export interface LocalResource { el: HTMLElement info: ProvideInfo, destroy(): void + on_preview_request?: (user: RemoteUser) => Promise<{ data?: string, expire: number }>, on_request(user: RemoteUser, create_channel: () => RTCDataChannel): MediaStream | RTCDataChannel, set_destroy(cb: () => void): void - set_room?: (room: Room) => void } const RESOURCE_HANDLERS: ResourceHandlerDecl[] = [resource_file, resource_track] @@ -41,6 +40,8 @@ export function new_remote_resource(user: RemoteUser, info: ProvideInfo): Remote if (!h) return undefined const res = h.new_remote(info, user, () => { user.request_resource(res) + }, () => { + user.request_preview(res) }) return res } |