diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-11 10:19:16 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-11 10:19:16 +0200 |
commit | fb5faafbc91c7779a7cae88bfe16652be6220df2 (patch) | |
tree | 59f6d5b2e22705d2b0b3276a63681e638c60e258 /client-web/source/user/local.ts | |
parent | d8059a5d8bc36fd473103c575925705b16f2398c (diff) | |
download | keks-meet-fb5faafbc91c7779a7cae88bfe16652be6220df2.tar keks-meet-fb5faafbc91c7779a7cae88bfe16652be6220df2.tar.bz2 keks-meet-fb5faafbc91c7779a7cae88bfe16652be6220df2.tar.zst |
keybinds
Diffstat (limited to 'client-web/source/user/local.ts')
-rw-r--r-- | client-web/source/user/local.ts | 56 |
1 files changed, 25 insertions, 31 deletions
diff --git a/client-web/source/user/local.ts b/client-web/source/user/local.ts index c58af2a..9b34dba 100644 --- a/client-web/source/user/local.ts +++ b/client-web/source/user/local.ts @@ -28,22 +28,10 @@ export class LocalUser extends User { ROOM_CONTAINER.removeChild(this.el) } - async add_initial_tracks() { - if (PREFS.microphone_enabled) this.publish_track(await this.create_mic_track()) - if (PREFS.camera_enabled) this.publish_track(await this.create_camera_track()) - if (PREFS.screencast_enabled) this.publish_track(await this.create_screencast_track()) - } - - publish_track(t: TrackHandle) { - this.room.remote_users.forEach(u => u.peer.addTrack(t.track)) - this.add_track(t) - t.addEventListener("ended", () => { - this.room.remote_users.forEach(u => { - u.peer.getSenders().forEach(s => { - if (s.track == t.track) u.peer.removeTrack(s) - }) - }) - }) + add_initial_tracks() { + if (PREFS.microphone_enabled) this.publish_track(this.create_mic_track()) + if (PREFS.camera_enabled) this.publish_track(this.create_camera_track()) + if (PREFS.screencast_enabled) this.publish_track(this.create_screencast_track()) } chat(message: ChatMessage) { @@ -65,23 +53,29 @@ export class LocalUser extends User { mic_toggle.value = "Microphone" camera_toggle.value = "Camera" screen_toggle.value = "Screencast" - - const create = async (_e: HTMLElement, tp: Promise<TrackHandle>) => { - log("media", "awaiting track") - let t; - try { t = await tp } - catch (_) { log("media", "request failed") } - if (!t) return - log("media", "got track") - this.publish_track(t) - } - - mic_toggle.addEventListener("click", () => create(mic_toggle, this.create_mic_track())) - camera_toggle.addEventListener("click", () => create(camera_toggle, this.create_camera_track())) - screen_toggle.addEventListener("click", () => create(screen_toggle, this.create_screencast_track())) - + mic_toggle.addEventListener("click", () => this.publish_track(this.create_mic_track())) + camera_toggle.addEventListener("click", () => this.publish_track(this.create_camera_track())) + screen_toggle.addEventListener("click", () => this.publish_track(this.create_screencast_track())) return ediv({ class: "local-controls" }, mic_toggle, camera_toggle, screen_toggle) } + async publish_track(tp: Promise<TrackHandle>) { + log("media", "awaiting track") + let t!: TrackHandle; + try { t = await tp } + catch (_) { log("media", "request failed") } + if (!t) return + log("media", "got track") + + this.room.remote_users.forEach(u => u.peer.addTrack(t.track)) + this.add_track(t) + t.addEventListener("ended", () => { + this.room.remote_users.forEach(u => { + u.peer.getSenders().forEach(s => { + if (s.track == t.track) u.peer.removeTrack(s) + }) + }) + }) + } async create_camera_track() { log("media", "requesting user media (camera)") |