summaryrefslogtreecommitdiff
path: root/client-web/source/user/local.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-09-11 10:19:16 +0200
committermetamuffin <metamuffin@disroot.org>2022-09-11 10:19:16 +0200
commitfb5faafbc91c7779a7cae88bfe16652be6220df2 (patch)
tree59f6d5b2e22705d2b0b3276a63681e638c60e258 /client-web/source/user/local.ts
parentd8059a5d8bc36fd473103c575925705b16f2398c (diff)
downloadkeks-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.ts56
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)")