diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-25 18:18:47 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-25 18:18:47 +0100 |
commit | c2e6a4f002be8a687038e3d2cff836d43275617f (patch) | |
tree | 1d204e37940e2bc2cd2cdfaeb1fbc8ef6a37ecb9 /client-web/source/resource/track.ts | |
parent | 0c5ade77d4f02d77da0fbdc79be8e851b6cbf94c (diff) | |
download | keks-meet-c2e6a4f002be8a687038e3d2cff836d43275617f.tar keks-meet-c2e6a4f002be8a687038e3d2cff836d43275617f.tar.bz2 keks-meet-c2e6a4f002be8a687038e3d2cff836d43275617f.tar.zst |
mute button
Diffstat (limited to 'client-web/source/resource/track.ts')
-rw-r--r-- | client-web/source/resource/track.ts | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/client-web/source/resource/track.ts b/client-web/source/resource/track.ts index 58157cf..22af16f 100644 --- a/client-web/source/resource/track.ts +++ b/client-web/source/resource/track.ts @@ -5,7 +5,7 @@ */ /// <reference lib="dom" /> import { ProvideInfo } from "../../../common/packets.d.ts"; -import { ebutton, ediv } from "../helper.ts"; +import { ebutton, ediv, elabel } from "../helper.ts"; import { log } from "../logger.ts"; import { on_pref_changed, PREFS } from "../preferences/mod.ts"; import { get_rnnoise_node } from "../rnnoise.ts"; @@ -48,11 +48,12 @@ export const resource_track: ResourceHandlerDecl = { } } -export function new_local_track(info: ProvideInfo, track: TrackHandle): LocalResource { +export function new_local_track(info: ProvideInfo, track: TrackHandle, ...extra_controls: HTMLElement[]): LocalResource { return { info, el: ediv({}, - create_track_display(track) + create_track_display(track), + ...extra_controls ), destroy() { track.end() }, on_request(_user, _create_channel) { @@ -172,5 +173,16 @@ export async function create_mic_res() { clear_gain_cb() destination.disconnect() }) - return new_local_track({ id: t.id, kind: "track", track_kind: "audio", label: "Microphone" }, t) + + const mute = document.createElement("input") + mute.type = "checkbox" + mute.onchange = () => { + log("media", mute.checked ? "muted" : "unmuted") + if (mute.checked) gain.gain.value = Number.MIN_VALUE + else gain.gain.value = PREFS.microphone_gain + } + const mute_label = elabel("Mute", { class: "check-button" }) + mute_label.prepend(mute) + + return new_local_track({ id: t.id, kind: "track", track_kind: "audio", label: "Microphone" }, t, mute_label) } |