Skip to content

Commit

Permalink
connectionQualityIndicator: Fix for FVTT v10
Browse files Browse the repository at this point in the history
  • Loading branch information
bekriebel committed Aug 19, 2022
1 parent 63d71bc commit 409d2da
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 17 deletions.
10 changes: 10 additions & 0 deletions css/avclient-livekit.css
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@
display: inline-block;
}

.camera-view .connection-quality-indicator.is-version-10-av {
position: absolute;
bottom: calc(var(--av-frame-absolute-margin) + 5px);
left: calc(16px + var(--av-frame-absolute-margin));
}

.camera-view .connection-quality-indicator.is-version-10-av.no-nameplate {
left: calc(4px + var(--av-frame-absolute-margin));
}

.camera-view .connection-quality-indicator.excellent {
background-color: green;
}
Expand Down
26 changes: 17 additions & 9 deletions src/LiveKitClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,6 @@ export default class LiveKitClient {
}

addConnectionQualityIndicator(userId: string): void {
// TODO: re-enable if fixed for v10
if (isVersion10AV()) {
log.debug("Connection quality indicator not yet supported in v10");
return;
}

if (!getGame().settings.get(MODULE_NAME, "displayConnectionQuality")) {
// Connection quality indicator is not enabled
return;
Expand All @@ -185,13 +179,27 @@ export default class LiveKitClient {
}

const connectionQualityIndicator = $(
`<span class="connection-quality-indicator unknown" title="${getGame().i18n.localize(
`<div class="connection-quality-indicator unknown" title="${getGame().i18n.localize(
`${LANG_NAME}.connectionQuality.${ConnectionQuality.Unknown}`
)}">`
);

if (userNameBar instanceof Element) {
$(userNameBar).prepend(connectionQualityIndicator);
if (isVersion10AV()) {
$(userNameBar).after(connectionQualityIndicator);
connectionQualityIndicator.addClass("is-version-10-av");

// @ts-expect-error Expecting error until foundry-vtt-types is updated for FVTT v10
const nameplateModes = AVSettings.NAMEPLATE_MODES;
const nameplateSetting =
// @ts-expect-error Expecting error until foundry-vtt-types is updated for FVTT v10
this.settings.client.nameplates ?? nameplateModes.BOTH;
if (nameplateSetting === nameplateModes.OFF) {
connectionQualityIndicator.addClass("no-nameplate");
}
} else {
$(userNameBar).prepend(connectionQualityIndicator);
}
}

this.setConnectionQualityIndicator(userId);
Expand Down Expand Up @@ -1253,7 +1261,7 @@ export default class LiveKitClient {
ConnectionQuality.Unknown;
}

if (connectionQualityIndicator instanceof HTMLSpanElement) {
if (connectionQualityIndicator instanceof HTMLDivElement) {
// Remove all existing quality classes
connectionQualityIndicator.classList.remove(
...Object.values(ConnectionQuality)
Expand Down
10 changes: 2 additions & 8 deletions src/utils/registerModuleSettings.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
import { MODULE_NAME } from "./constants";
import {
delayReload,
getGame,
isVersion10AV,
registerModuleSetting,
} from "./helpers";
import { delayReload, getGame, registerModuleSetting } from "./helpers";
import * as log from "./logging";

export default function registerModuleSettings(): void {
registerModuleSetting({
name: "displayConnectionQuality",
scope: "client",
// TODO: re-enable if fixed for v10
config: !isVersion10AV(),
config: true,
default: true,
type: Boolean,
onChange: () => getGame().webrtc?.render(),
Expand Down

0 comments on commit 409d2da

Please sign in to comment.