Skip to content
This repository has been archived by the owner on Mar 1, 2024. It is now read-only.

Commit

Permalink
Handle "defaultToHover" field in offer (#60)
Browse files Browse the repository at this point in the history
Passed in from Streamer to indicate we're in Editor mode where locked
cursor just results in not having any cursor.
  • Loading branch information
StomyPX committed Jan 12, 2023
1 parent 995bbe0 commit 934f364
Showing 1 changed file with 27 additions and 7 deletions.
34 changes: 27 additions & 7 deletions SignallingWebServer/scripts/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ let responseEventListeners = new Map();
let freezeFrameOverlay = null;
let shouldShowPlayOverlay = true;

let defaultToHover = false;

let isFullscreen = false;
let isMuted = false;
// A freeze frame is a still JPEG image shown instead of the video.
Expand Down Expand Up @@ -697,7 +699,7 @@ function onFullscreenChange() {

function parseURLParams() {
let urlParams = new URLSearchParams(window.location.search);
inputOptions.controlScheme = (urlParams.has('hoveringMouse') ? ControlSchemeType.HoveringMouse : ControlSchemeType.LockedMouse);
inputOptions.controlScheme = (!!urlParams.get('hoveringMouse') ? ControlSchemeType.HoveringMouse : ControlSchemeType.LockedMouse);
let schemeToggle = document.getElementById("control-scheme-text");
switch (inputOptions.controlScheme) {
case ControlSchemeType.HoveringMouse:
Expand All @@ -707,8 +709,15 @@ function parseURLParams() {
schemeToggle.innerHTML = "Control Scheme: Locked Mouse";
break;
default:
schemeToggle.innerHTML = "Control Scheme: Locked Mouse";
console.log(`ERROR: Unknown control scheme ${inputOptions.controlScheme}, defaulting to Locked Mouse`);
if (defaultToHover) {
schemeToggle.innerHTML = "Control Scheme: Hovering Mouse";
console.log(`ERROR: Unknown control scheme ${inputOptions.controlScheme}, defaulting to Hovering Mouse`);
inputOptions.controlScheme = ControlSchemeType.HoveringMouse;
} else {
schemeToggle.innerHTML = "Control Scheme: Locked Mouse";
console.log(`ERROR: Unknown control scheme ${inputOptions.controlScheme}, defaulting to Locked Mouse`);
inputOptions.controlScheme = ControlSchemeType.LockedMouse;
}
break;
}

Expand Down Expand Up @@ -2733,6 +2742,11 @@ function connect() {
if (!UrlParamsCheck('offerToReceive')) {
onWebRtcOffer(msg);
}
defaultToHover = !!msg.defaultToHover;
if (defaultToHover) {
inputOptions.controlScheme = ControlSchemeType.LockedMouse;
toggleControlScheme();
}
} else if (msg.type === 'answer') {
console.log("%c[Inbound SS (answer)]", "background: lightblue; color: black", msg);
onWebRtcAnswer(msg);
Expand Down Expand Up @@ -2826,9 +2840,15 @@ function toggleControlScheme() {
schemeToggle.innerHTML = "Control Scheme: Hovering Mouse";
break;
default:
inputOptions.controlScheme = ControlSchemeType.LockedMouse;
schemeToggle.innerHTML = "Control Scheme: Locked Mouse";
console.log(`ERROR: Unknown control scheme ${inputOptions.controlScheme}, defaulting to Locked Mouse`);
if (defaultToHover) {
inputOptions.controlScheme = ControlSchemeType.HoveringMouse;
schemeToggle.innerHTML = "Control Scheme: Hovering Mouse";
console.log(`ERROR: Unknown control scheme ${inputOptions.controlScheme}, defaulting to Hovering Mouse`);
} else {
inputOptions.controlScheme = ControlSchemeType.LockedMouse;
schemeToggle.innerHTML = "Control Scheme: Locked Mouse";
console.log(`ERROR: Unknown control scheme ${inputOptions.controlScheme}, defaulting to Locked Mouse`);
}
break;
}

Expand Down Expand Up @@ -2897,4 +2917,4 @@ function load() {
// Example response event listener that logs to console
addResponseEventListener('logListener', (response) => {console.log(`Received response message from streamer: "${response}"`)})
start(false);
}
}

0 comments on commit 934f364

Please sign in to comment.