summaryrefslogtreecommitdiff
path: root/client-web/source/resource/track.ts
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-09-16 20:46:58 +0200
committermetamuffin <metamuffin@disroot.org>2022-09-16 20:46:58 +0200
commita3cc9f8fb1bf45741b08ce6d383c4d7cc8ea8b1f (patch)
treeddd353400f3d75b26a4158059038d8e583cd81f4 /client-web/source/resource/track.ts
parent969444b32101a45d5917a3947b94bb09c3fc01a1 (diff)
downloadkeks-meet-a3cc9f8fb1bf45741b08ce6d383c4d7cc8ea8b1f.tar
keks-meet-a3cc9f8fb1bf45741b08ce6d383c4d7cc8ea8b1f.tar.bz2
keks-meet-a3cc9f8fb1bf45741b08ce6d383c4d7cc8ea8b1f.tar.zst
optional streams (2, basic functionality)
Diffstat (limited to 'client-web/source/resource/track.ts')
-rw-r--r--client-web/source/resource/track.ts17
1 files changed, 16 insertions, 1 deletions
diff --git a/client-web/source/resource/track.ts b/client-web/source/resource/track.ts
index ee87917..f58e020 100644
--- a/client-web/source/resource/track.ts
+++ b/client-web/source/resource/track.ts
@@ -1,12 +1,27 @@
import { ProvideInfo } from "../../../common/packets.d.ts";
import { ebutton } from "../helper.ts";
import { TrackHandle } from "../track_handle.ts";
+import { LocalUser } from "../user/local.ts";
import { User } from "../user/mod.ts";
import { Resource } from "./mod.ts";
export class TrackResource extends Resource {
- constructor(user: User, info: ProvideInfo, public track?: TrackHandle) {
+ private _track?: TrackHandle
+ constructor(user: User, info: ProvideInfo, track?: TrackHandle) {
super(user, info)
+ this.track = track
+ }
+
+ get track() { return this._track }
+ set track(value: TrackHandle | undefined) {
+ const handle_end = () => {
+ this.track = undefined
+ if (this.user instanceof LocalUser) this.destroy()
+ }
+ this._track?.removeEventListener("ended", handle_end)
+ this._track = value
+ this._track?.addEventListener("ended", handle_end)
+ this.update_el()
}
create_preview(): HTMLElement {