show voice indicator above alpha-male (dominant) jitsi speaker
This commit is contained in:
committed by
David Négrier
parent
4bd8be89c1
commit
0cce2a7ab8
@@ -71,7 +71,7 @@ import { biggestAvailableAreaStore } from "../../Stores/BiggestAvailableAreaStor
|
||||
import { layoutManagerActionStore } from "../../Stores/LayoutManagerStore";
|
||||
import { playersStore } from "../../Stores/PlayersStore";
|
||||
import { emoteStore, emoteMenuStore } from "../../Stores/EmoteStore";
|
||||
import { userIsAdminStore } from "../../Stores/GameStore";
|
||||
import { userIsAdminStore, userIsJitsiDominantSpeakerStore } from "../../Stores/GameStore";
|
||||
import { contactPageStore } from "../../Stores/MenuStore";
|
||||
import type { WasCameraUpdatedEvent } from "../../Api/Events/WasCameraUpdatedEvent";
|
||||
import { audioManagerFileStore } from "../../Stores/AudioManagerStore";
|
||||
@@ -178,6 +178,7 @@ export class GameScene extends DirtyScene {
|
||||
private localVolumeStoreUnsubscriber: Unsubscriber | undefined;
|
||||
private followUsersColorStoreUnsubscribe!: Unsubscriber;
|
||||
private currentPlayerGroupIdStoreUnsubscribe!: Unsubscriber;
|
||||
private userIsJitsiDominantSpeakerStoreUnsubscriber!: Unsubscriber;
|
||||
|
||||
private biggestAvailableAreaStoreUnsubscribe!: () => void;
|
||||
MapUrlFile: string;
|
||||
@@ -648,16 +649,7 @@ export class GameScene extends DirtyScene {
|
||||
if (volume === undefined) {
|
||||
return;
|
||||
}
|
||||
const aboveTreshold = volume > talkIconVolumeTreshold;
|
||||
this.CurrentPlayer.showTalkIcon(aboveTreshold);
|
||||
|
||||
if (this.showVoiceIndicatorChangeMessageSent && !aboveTreshold) {
|
||||
this.connection?.emitPlayerShowVoiceIndicator(false);
|
||||
this.showVoiceIndicatorChangeMessageSent = false;
|
||||
} else if (!this.showVoiceIndicatorChangeMessageSent && aboveTreshold) {
|
||||
this.connection?.emitPlayerShowVoiceIndicator(true);
|
||||
this.showVoiceIndicatorChangeMessageSent = true;
|
||||
}
|
||||
this.tryChangeShowVoiceIndicatorState(volume > talkIconVolumeTreshold);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
@@ -673,6 +665,12 @@ export class GameScene extends DirtyScene {
|
||||
oldPeersNumber = peers.size;
|
||||
});
|
||||
|
||||
this.userIsJitsiDominantSpeakerStoreUnsubscriber = userIsJitsiDominantSpeakerStore.subscribe(
|
||||
(dominantSpeaker) => {
|
||||
this.tryChangeShowVoiceIndicatorState(dominantSpeaker);
|
||||
}
|
||||
);
|
||||
|
||||
this.emoteUnsubscribe = emoteStore.subscribe((emote) => {
|
||||
if (emote) {
|
||||
this.CurrentPlayer?.playEmote(emote.url);
|
||||
@@ -1563,6 +1561,7 @@ ${escapedMessage}
|
||||
this.emoteMenuUnsubscribe();
|
||||
this.followUsersColorStoreUnsubscribe();
|
||||
this.biggestAvailableAreaStoreUnsubscribe();
|
||||
this.userIsJitsiDominantSpeakerStoreUnsubscriber();
|
||||
iframeListener.unregisterAnswerer("getState");
|
||||
iframeListener.unregisterAnswerer("loadTileset");
|
||||
iframeListener.unregisterAnswerer("getMapData");
|
||||
@@ -1961,6 +1960,17 @@ ${escapedMessage}
|
||||
});
|
||||
}
|
||||
|
||||
private tryChangeShowVoiceIndicatorState(show: boolean): void {
|
||||
this.CurrentPlayer.showTalkIcon(show);
|
||||
if (this.showVoiceIndicatorChangeMessageSent && !show) {
|
||||
this.connection?.emitPlayerShowVoiceIndicator(false);
|
||||
this.showVoiceIndicatorChangeMessageSent = false;
|
||||
} else if (!this.showVoiceIndicatorChangeMessageSent && show) {
|
||||
this.connection?.emitPlayerShowVoiceIndicator(true);
|
||||
this.showVoiceIndicatorChangeMessageSent = true;
|
||||
}
|
||||
}
|
||||
|
||||
private doRemovePlayer(userId: number) {
|
||||
const player = this.MapPlayersByKey.get(userId);
|
||||
if (player === undefined) {
|
||||
|
||||
Reference in New Issue
Block a user