Cosmetics
This commit is contained in:
parent
5bcda69519
commit
628912633b
2 changed files with 63 additions and 65 deletions
File diff suppressed because one or more lines are too long
124
webdata/fn.js
124
webdata/fn.js
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018 Unrud <unrud@outlook.com>
|
* Copyright (c) 2018-2019 Unrud <unrud@outlook.com>
|
||||||
*
|
*
|
||||||
* This file is part of Remote-Touchpad.
|
* This file is part of Remote-Touchpad.
|
||||||
*
|
*
|
||||||
|
|
@ -39,22 +39,22 @@ const KEY_MEDIA_PLAY_PAUSE = 3;
|
||||||
const KEY_MEDIA_PREV_TRACK = 4;
|
const KEY_MEDIA_PREV_TRACK = 4;
|
||||||
const KEY_MEDIA_NEXT_TRACK = 5;
|
const KEY_MEDIA_NEXT_TRACK = 5;
|
||||||
|
|
||||||
var ws;
|
let ws;
|
||||||
var pad;
|
let pad;
|
||||||
var padlabel;
|
let padlabel;
|
||||||
|
|
||||||
var touchMoved = false;
|
let touchMoved = false;
|
||||||
var touchStart = 0;
|
let touchStart = 0;
|
||||||
var touchLastEnd = 0;
|
let touchLastEnd = 0;
|
||||||
var touchReleasedCount = 0;
|
let touchReleasedCount = 0;
|
||||||
var ongoingTouches = [];
|
let ongoingTouches = [];
|
||||||
var moveXSum = 0;
|
let moveXSum = 0;
|
||||||
var moveYSum = 0;
|
let moveYSum = 0;
|
||||||
var scrollXSum = 0;
|
let scrollXSum = 0;
|
||||||
var scrollYSum = 0;
|
let scrollYSum = 0;
|
||||||
var dragging = false;
|
let dragging = false;
|
||||||
var draggingTimeout = null;
|
let draggingTimeout = null;
|
||||||
var scrolling = false;
|
let scrolling = false;
|
||||||
|
|
||||||
function fullscreenEnabled() {
|
function fullscreenEnabled() {
|
||||||
return (document.fullscreenEnabled ||
|
return (document.fullscreenEnabled ||
|
||||||
|
|
@ -120,10 +120,8 @@ function copyTouch(touch, timeStamp) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function ongoingTouchIndexById(idToFind) {
|
function ongoingTouchIndexById(idToFind) {
|
||||||
for (var i = 0; i < ongoingTouches.length; i++) {
|
for (let i = 0; i < ongoingTouches.length; i++) {
|
||||||
var id = ongoingTouches[i].identifier;
|
if (ongoingTouches[i].identifier == idToFind) {
|
||||||
|
|
||||||
if (id == idToFind) {
|
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -131,17 +129,17 @@ function ongoingTouchIndexById(idToFind) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculatePointerAccelerationMult(speed) {
|
function calculatePointerAccelerationMult(speed) {
|
||||||
for (var i = 0; i < POINTER_ACCELERATION.length; i++) {
|
for (let i = 0; i < POINTER_ACCELERATION.length; i++) {
|
||||||
s2 = POINTER_ACCELERATION[i][0];
|
let s2 = POINTER_ACCELERATION[i][0];
|
||||||
a2 = POINTER_ACCELERATION[i][1];
|
let a2 = POINTER_ACCELERATION[i][1];
|
||||||
if (s2 <= speed) {
|
if (s2 <= speed) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
return a2;
|
return a2;
|
||||||
}
|
}
|
||||||
s1 = POINTER_ACCELERATION[i - 1][0];
|
let s1 = POINTER_ACCELERATION[i - 1][0];
|
||||||
a1 = POINTER_ACCELERATION[i - 1][1];
|
let a1 = POINTER_ACCELERATION[i - 1][1];
|
||||||
return ((speed - s1) / (s2 - s1)) * (a2 - a1) + a1;
|
return ((speed - s1) / (s2 - s1)) * (a2 - a1) + a1;
|
||||||
}
|
}
|
||||||
if (POINTER_ACCELERATION.length > 0) {
|
if (POINTER_ACCELERATION.length > 0) {
|
||||||
|
|
@ -156,15 +154,15 @@ function onDraggingTimeout() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateMoveAndScroll() {
|
function updateMoveAndScroll() {
|
||||||
var moveX = Math.trunc(moveXSum);
|
let moveX = Math.trunc(moveXSum);
|
||||||
var moveY = Math.trunc(moveYSum);
|
let moveY = Math.trunc(moveYSum);
|
||||||
if (Math.abs(moveX) >= 1 || Math.abs(moveY) >= 1) {
|
if (Math.abs(moveX) >= 1 || Math.abs(moveY) >= 1) {
|
||||||
moveXSum -= moveX;
|
moveXSum -= moveX;
|
||||||
moveYSum -= moveY;
|
moveYSum -= moveY;
|
||||||
ws.send("m" + moveX + ";" + moveY);
|
ws.send("m" + moveX + ";" + moveY);
|
||||||
}
|
}
|
||||||
var scrollX = Math.trunc(scrollXSum);
|
let scrollX = Math.trunc(scrollXSum);
|
||||||
var scrollY = Math.trunc(scrollYSum);
|
let scrollY = Math.trunc(scrollYSum);
|
||||||
if (Math.abs(scrollX) >= 1 || Math.abs(scrollY) >= 1) {
|
if (Math.abs(scrollX) >= 1 || Math.abs(scrollY) >= 1) {
|
||||||
scrollXSum -= scrollX;
|
scrollXSum -= scrollX;
|
||||||
scrollYSum -= scrollY;
|
scrollYSum -= scrollY;
|
||||||
|
|
@ -180,8 +178,8 @@ function handleStart(evt) {
|
||||||
touchReleasedCount = 0;
|
touchReleasedCount = 0;
|
||||||
dragging = false;
|
dragging = false;
|
||||||
}
|
}
|
||||||
var touches = evt.changedTouches;
|
let touches = evt.changedTouches;
|
||||||
for (var i = 0; i < touches.length; i++) {
|
for (let i = 0; i < touches.length; i++) {
|
||||||
if (touches[i].target !== pad && touches[i].target !== padlabel) {
|
if (touches[i].target !== pad && touches[i].target !== padlabel) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -207,9 +205,9 @@ function handleStart(evt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleEnd(evt) {
|
function handleEnd(evt) {
|
||||||
var touches = evt.changedTouches;
|
let touches = evt.changedTouches;
|
||||||
for (var i = 0; i < touches.length; i++) {
|
for (let i = 0; i < touches.length; i++) {
|
||||||
var idx = ongoingTouchIndexById(touches[i].identifier);
|
let idx = ongoingTouchIndexById(touches[i].identifier);
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -230,7 +228,7 @@ function handleEnd(evt) {
|
||||||
}
|
}
|
||||||
if (ongoingTouches.length == 0 && touchReleasedCount >= 1 &&
|
if (ongoingTouches.length == 0 && touchReleasedCount >= 1 &&
|
||||||
!touchMoved && evt.timeStamp - touchStart < TOUCH_TIMEOUT) {
|
!touchMoved && evt.timeStamp - touchStart < TOUCH_TIMEOUT) {
|
||||||
var button = 0;
|
let button = 0;
|
||||||
if (touchReleasedCount == 1) {
|
if (touchReleasedCount == 1) {
|
||||||
button = POINTER_BUTTON_LEFT;
|
button = POINTER_BUTTON_LEFT;
|
||||||
} else if (touchReleasedCount == 2) {
|
} else if (touchReleasedCount == 2) {
|
||||||
|
|
@ -248,9 +246,9 @@ function handleEnd(evt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleCancel(evt) {
|
function handleCancel(evt) {
|
||||||
var touches = evt.changedTouches;
|
let touches = evt.changedTouches;
|
||||||
for (var i = 0; i < touches.length; i++) {
|
for (let i = 0; i < touches.length; i++) {
|
||||||
var idx = ongoingTouchIndexById(touches[i].identifier);
|
let idx = ongoingTouchIndexById(touches[i].identifier);
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -266,16 +264,16 @@ function handleCancel(evt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleMove(evt) {
|
function handleMove(evt) {
|
||||||
var sumX = 0;
|
let sumX = 0;
|
||||||
var sumY = 0;
|
let sumY = 0;
|
||||||
var touches = evt.changedTouches;
|
let touches = evt.changedTouches;
|
||||||
for (var i = 0; i < touches.length; i++) {
|
for (let i = 0; i < touches.length; i++) {
|
||||||
var idx = ongoingTouchIndexById(touches[i].identifier);
|
let idx = ongoingTouchIndexById(touches[i].identifier);
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!touchMoved) {
|
if (!touchMoved) {
|
||||||
var dist = Math.sqrt(Math.pow(touches[i].pageX - ongoingTouches[idx].pageXStart, 2) +
|
let dist = Math.sqrt(Math.pow(touches[i].pageX - ongoingTouches[idx].pageXStart, 2) +
|
||||||
Math.pow(touches[i].pageY - ongoingTouches[idx].pageYStart, 2));
|
Math.pow(touches[i].pageY - ongoingTouches[idx].pageYStart, 2));
|
||||||
if (ongoingTouches.length > TOUCH_MOVE_THRESHOLD.length ||
|
if (ongoingTouches.length > TOUCH_MOVE_THRESHOLD.length ||
|
||||||
dist > TOUCH_MOVE_THRESHOLD[ongoingTouches.length - 1] ||
|
dist > TOUCH_MOVE_THRESHOLD[ongoingTouches.length - 1] ||
|
||||||
|
|
@ -283,9 +281,9 @@ function handleMove(evt) {
|
||||||
touchMoved = true;
|
touchMoved = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var dx = touches[i].pageX - ongoingTouches[idx].pageX;
|
let dx = touches[i].pageX - ongoingTouches[idx].pageX;
|
||||||
var dy = touches[i].pageY - ongoingTouches[idx].pageY;
|
let dy = touches[i].pageY - ongoingTouches[idx].pageY;
|
||||||
var timeDelta = evt.timeStamp - ongoingTouches[idx].timeStamp;
|
let timeDelta = evt.timeStamp - ongoingTouches[idx].timeStamp;
|
||||||
sumX += dx * calculatePointerAccelerationMult(Math.abs(dx) / timeDelta * 1000);
|
sumX += dx * calculatePointerAccelerationMult(Math.abs(dx) / timeDelta * 1000);
|
||||||
sumY += dy * calculatePointerAccelerationMult(Math.abs(dy) / timeDelta * 1000);
|
sumY += dy * calculatePointerAccelerationMult(Math.abs(dy) / timeDelta * 1000);
|
||||||
ongoingTouches[idx].pageX = touches[i].pageX;
|
ongoingTouches[idx].pageX = touches[i].pageX;
|
||||||
|
|
@ -305,22 +303,22 @@ function handleMove(evt) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function challengeResponse(message) {
|
function challengeResponse(message) {
|
||||||
var shaObj = new jsSHA("SHA-256", "TEXT");
|
let shaObj = new jsSHA("SHA-256", "TEXT");
|
||||||
shaObj.setHMACKey(message, "TEXT");
|
shaObj.setHMACKey(message, "TEXT");
|
||||||
shaObj.update(window.location.hash.substr(1));
|
shaObj.update(window.location.hash.substr(1));
|
||||||
return btoa(shaObj.getHMAC("BYTES"));
|
return btoa(shaObj.getHMAC("BYTES"));
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener("load", function() {
|
window.addEventListener("load", function() {
|
||||||
var authenticated = false;
|
let authenticated = false;
|
||||||
var opening = document.getElementById("opening");
|
let opening = document.getElementById("opening");
|
||||||
var closed = document.getElementById("closed");
|
let closed = document.getElementById("closed");
|
||||||
pad = document.getElementById("pad");
|
pad = document.getElementById("pad");
|
||||||
padlabel = document.getElementById("padlabel");
|
padlabel = document.getElementById("padlabel");
|
||||||
var keys = document.getElementById("keys");
|
let keys = document.getElementById("keys");
|
||||||
var keyboard = document.getElementById("keyboard");
|
let keyboard = document.getElementById("keyboard");
|
||||||
var fullscreenbutton = document.getElementById("fullscreenbutton");
|
let fullscreenbutton = document.getElementById("fullscreenbutton");
|
||||||
var text = document.getElementById("text");
|
let text = document.getElementById("text");
|
||||||
|
|
||||||
function showScene(scene) {
|
function showScene(scene) {
|
||||||
[opening, closed, pad, keys, keyboard].forEach(function (e) {
|
[opening, closed, pad, keys, keyboard].forEach(function (e) {
|
||||||
|
|
@ -348,7 +346,7 @@ window.addEventListener("load", function() {
|
||||||
text.value = "";
|
text.value = "";
|
||||||
showScene(opening);
|
showScene(opening);
|
||||||
|
|
||||||
var wsProtocol = "wss:";
|
let wsProtocol = "wss:";
|
||||||
if (location.protocol == "http:") {
|
if (location.protocol == "http:") {
|
||||||
wsProtocol = "ws:";
|
wsProtocol = "ws:";
|
||||||
}
|
}
|
||||||
|
|
@ -356,13 +354,13 @@ window.addEventListener("load", function() {
|
||||||
(location.port ? ":" + location.port : "") +
|
(location.port ? ":" + location.port : "") +
|
||||||
"/ws");
|
"/ws");
|
||||||
|
|
||||||
ws.onmessage = function(event) {
|
ws.onmessage = function(evt) {
|
||||||
if (authenticated) {
|
if (authenticated) {
|
||||||
ws.close();
|
ws.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
authenticated = true;
|
authenticated = true;
|
||||||
ws.send(challengeResponse(event.data));
|
ws.send(challengeResponse(evt.data));
|
||||||
if (history.state == "keyboard") {
|
if (history.state == "keyboard") {
|
||||||
showKeyboard();
|
showKeyboard();
|
||||||
} else if (history.state == "keys") {
|
} else if (history.state == "keys") {
|
||||||
|
|
@ -425,8 +423,8 @@ window.addEventListener("load", function() {
|
||||||
function() {
|
function() {
|
||||||
location.reload();
|
location.reload();
|
||||||
});
|
});
|
||||||
pad.addEventListener("touchstart", handleStart, false);
|
pad.addEventListener("touchstart", handleStart);
|
||||||
pad.addEventListener("touchend", handleEnd, false);
|
pad.addEventListener("touchend", handleEnd);
|
||||||
pad.addEventListener("touchcancel", handleCancel, false);
|
pad.addEventListener("touchcancel", handleCancel);
|
||||||
pad.addEventListener("touchmove", handleMove, false);
|
pad.addEventListener("touchmove", handleMove);
|
||||||
}, false);
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue