Adding importance handling

This commit is contained in:
David Négrier 2021-06-14 17:59:50 +02:00
parent e7b0f859a5
commit ac7fa164b6
8 changed files with 48 additions and 11 deletions

View file

@ -0,0 +1,26 @@
import {VideoPeer} from "../WebRtc/VideoPeer";
import {Subscriber, Unsubscriber, writable} from "svelte/store";
import {RemotePeer, SimplePeer} from "../WebRtc/SimplePeer";
import {DivImportance} from "../WebRtc/LayoutManager";
export interface ImportanceStore {
subscribe: (this:void, run: Subscriber<DivImportance>, invalidate?: ((value?: DivImportance) => void | undefined)) => Unsubscriber,
toggle: () => void,
}
export function createImportanceStore(defaultImportance: DivImportance): ImportanceStore {
const { subscribe, set, update } = writable<DivImportance>(defaultImportance);
return {
subscribe,
toggle: () => {
update((importance) => {
if (importance === DivImportance.Important) {
return DivImportance.Normal;
} else {
return DivImportance.Important;
}
});
}
};
}

View file

@ -5,6 +5,7 @@ import type {
} from "./MediaStore";
import {DivImportance} from "../WebRtc/LayoutManager";
import {gameOverlayVisibilityStore} from "./GameOverlayStoreVisibility";
import {createImportanceStore, ImportanceStore} from "./ImportanceStore";
declare const navigator:any; // eslint-disable-line @typescript-eslint/no-explicit-any
@ -188,7 +189,7 @@ export const screenSharingAvailableStore = derived(peerStore, ($peerStore, set)
export interface ScreenSharingLocalMedia {
uniqueId: string;
importanceStore: Writable<DivImportance>;
importanceStore: ImportanceStore;
stream: MediaStream|null;
//subscribe(this: void, run: Subscriber<ScreenSharingLocalMedia>, invalidate?: (value?: ScreenSharingLocalMedia) => void): Unsubscriber;
}
@ -200,7 +201,7 @@ export const screenSharingLocalMedia = readable<ScreenSharingLocalMedia|null>(nu
const localMedia: ScreenSharingLocalMedia = {
uniqueId: "localScreenSharingStream",
importanceStore: writable(DivImportance.Normal),
importanceStore: createImportanceStore(DivImportance.Normal),
stream: null
}