mirror of
https://github.com/eliasstepanik/vdo.ninja.git
synced 2026-01-27 13:28:33 +00:00
Merge pull request #921 from steveseguin/v20.x-dev-patches
V20.1 patches
This commit is contained in:
commit
4a62065e81
10
index.html
10
index.html
@ -67,7 +67,7 @@
|
|||||||
<link itemprop="url" href="./media/vdoNinja_logo_full.png" />
|
<link itemprop="url" href="./media/vdoNinja_logo_full.png" />
|
||||||
</span>
|
</span>
|
||||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=35"></script>
|
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=35"></script>
|
||||||
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=338"></script>
|
<script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=339"></script>
|
||||||
<input id="zoomSlider" type="range" style="display: none;" />
|
<input id="zoomSlider" type="range" style="display: none;" />
|
||||||
<div id="header">
|
<div id="header">
|
||||||
|
|
||||||
@ -783,7 +783,7 @@
|
|||||||
<font style="color:#daad09;">Welcome to VDO Ninja! We've rebranded! Nothing else is changing and we're staying 100% free.</font>
|
<font style="color:#daad09;">Welcome to VDO Ninja! We've rebranded! Nothing else is changing and we're staying 100% free.</font>
|
||||||
</h4>
|
</h4>
|
||||||
<br />
|
<br />
|
||||||
🎁 Welcome to v20, updated December 24th. 🎄 <a target="_blank" href="https://docs.vdo.ninja/release-notes/v20">Release notes are here</a>. The previous version is <a href="https://vdo.ninja/v19/">available here</a> if you have new issues.
|
🎁 Welcome to v20, released December 24th. 🎄 <a target="_blank" href="https://docs.vdo.ninja/release-notes/v20">Release notes are here</a>. The previous version is <a href="https://vdo.ninja/v19/">available here</a> if you have new issues.
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
@ -1840,7 +1840,7 @@
|
|||||||
|
|
||||||
|
|
||||||
var session = WebRTC.Media; // session is a required global variable if configuring manually. Run before loading main.js but after webrtc.js.
|
var session = WebRTC.Media; // session is a required global variable if configuring manually. Run before loading main.js but after webrtc.js.
|
||||||
session.version = "20.0-beta";
|
session.version = "20.1";
|
||||||
session.streamID = session.generateStreamID(); // randomly generates a streamID for this session. You can set your own programmatically if needed
|
session.streamID = session.generateStreamID(); // randomly generates a streamID for this session. You can set your own programmatically if needed
|
||||||
|
|
||||||
session.defaultPassword = "someEncryptionKey123"; // Change this password if self-deploying for added security/privacy
|
session.defaultPassword = "someEncryptionKey123"; // Change this password if self-deploying for added security/privacy
|
||||||
@ -1905,11 +1905,11 @@
|
|||||||
// session.introOnClean = true; // this will load the page with the webcam selection screen if &push or &room is in the URL; no need to use &webcam.
|
// session.introOnClean = true; // this will load the page with the webcam selection screen if &push or &room is in the URL; no need to use &webcam.
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/aes.js"></script>
|
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/aes.js"></script>
|
||||||
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=246"></script>
|
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=247"></script>
|
||||||
<!--
|
<!--
|
||||||
// If you wish to change branding, blank offers a good clean start.
|
// If you wish to change branding, blank offers a good clean start.
|
||||||
<script type="text/javascript" id="main-js" src="./main.js" data-translation="blank"></script>
|
<script type="text/javascript" id="main-js" src="./main.js" data-translation="blank"></script>
|
||||||
-->
|
-->
|
||||||
<script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=287"></script>
|
<script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=288"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
174
lib.js
174
lib.js
@ -627,7 +627,7 @@ async function confirmAlt(inputText, block=false){
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
var warnUserTimeout=null;
|
var modalTimeout=null;
|
||||||
function warnUser(message, timeout=false){
|
function warnUser(message, timeout=false){
|
||||||
// Allows for multiple alerts to stack better.
|
// Allows for multiple alerts to stack better.
|
||||||
// Every modal and backdrop has an increasing z-index
|
// Every modal and backdrop has an increasing z-index
|
||||||
@ -657,9 +657,9 @@ function warnUser(message, timeout=false){
|
|||||||
|
|
||||||
document.getElementById("modalBackdrop").addEventListener("click", closeModal);
|
document.getElementById("modalBackdrop").addEventListener("click", closeModal);
|
||||||
|
|
||||||
clearTimeout(warnUserTimeout);
|
clearTimeout(modalTimeout);
|
||||||
if (timeout){
|
if (timeout){
|
||||||
warnUserTimeout = setTimeout(closeModal, timeout);
|
modalTimeout = setTimeout(closeModal, timeout);
|
||||||
}
|
}
|
||||||
getById("alertModal").addEventListener("click", function(e) {
|
getById("alertModal").addEventListener("click", function(e) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
@ -668,6 +668,7 @@ function warnUser(message, timeout=false){
|
|||||||
|
|
||||||
}
|
}
|
||||||
function closeModal(){
|
function closeModal(){
|
||||||
|
clearTimeout(modalTimeout);
|
||||||
getById("modalBackdrop").innerHTML = ''; // Delete modal
|
getById("modalBackdrop").innerHTML = ''; // Delete modal
|
||||||
getById("modalBackdrop").remove();
|
getById("modalBackdrop").remove();
|
||||||
getById("alertModal").innerHTML = ''; // Delete modal
|
getById("alertModal").innerHTML = ''; // Delete modal
|
||||||
@ -691,8 +692,8 @@ var sanitizeStreamID = function(streamID) {
|
|||||||
warnUser(miscTranslations["alphanumeric-only"]);
|
warnUser(miscTranslations["alphanumeric-only"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (streamID_sanitized.length > 44) {
|
if (streamID_sanitized.length >= 49) {
|
||||||
streamID_sanitized = streamID_sanitized.substring(0, 44);
|
streamID_sanitized = streamID_sanitized.substring(0, 50);
|
||||||
if (!(session.cleanOutput)) {
|
if (!(session.cleanOutput)) {
|
||||||
warnUser(miscTranslations["stream-id-too-long"]);
|
warnUser(miscTranslations["stream-id-too-long"]);
|
||||||
}
|
}
|
||||||
@ -5213,14 +5214,16 @@ function printMyStats(menu) { // see: setupStatsMenu
|
|||||||
|
|
||||||
if (session.streamSrc && session.streamSrc){
|
if (session.streamSrc && session.streamSrc){
|
||||||
session.streamSrc.getVideoTracks().forEach(function(track) {
|
session.streamSrc.getVideoTracks().forEach(function(track) {
|
||||||
if (obscam && (parseInt(track.getSettings().frameRate) == 30)) {
|
session.currentCameraConstraints = track.getSettings();
|
||||||
session.stats.video_settings =(track.getSettings().width || 0) + "x" + (track.getSettings().height || 0);
|
|
||||||
|
if (obscam && (parseInt(session.currentCameraConstraints.frameRate) == 30)) {
|
||||||
|
session.stats.video_settings =(session.currentCameraConstraints.width || 0) + "x" + (session.currentCameraConstraints.height || 0);
|
||||||
} else {
|
} else {
|
||||||
var framerateFPS = track.getSettings().frameRate;
|
var framerateFPS = session.currentCameraConstraints.frameRate;
|
||||||
if (framerateFPS){
|
if (framerateFPS){
|
||||||
session.stats.video_settings = (track.getSettings().width || 0) + "x" + (track.getSettings().height || 0) + " @ " + (parseInt(framerateFPS * 100) / 100.0) + "fps";
|
session.stats.video_settings = (session.currentCameraConstraints.width || 0) + "x" + (session.currentCameraConstraints.height || 0) + " @ " + (parseInt(framerateFPS * 100) / 100.0) + "fps";
|
||||||
} else {
|
} else {
|
||||||
session.stats.video_settings = (track.getSettings().width || 0) + "x" + (track.getSettings().height || 0);
|
session.stats.video_settings = (session.currentCameraConstraints.width || 0) + "x" + (session.currentCameraConstraints.height || 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -5806,7 +5809,7 @@ function updateStats(obsvc = false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
getById(wcs).innerHTML = "";
|
getById(wcs).innerHTML = "";
|
||||||
ele.srcObject.getVideoTracks().forEach(
|
ele.srcObject.getVideoTracks().forEach(
|
||||||
function(track) {
|
function(track) {
|
||||||
if ((obsvc) && (parseInt(track.getSettings().frameRate) == 30)) {
|
if ((obsvc) && (parseInt(track.getSettings().frameRate) == 30)) {
|
||||||
@ -7052,40 +7055,48 @@ function loadDirectorSettings(){
|
|||||||
if (settings.customizeLinks1){
|
if (settings.customizeLinks1){
|
||||||
var customizeLinks1 = getById("customizeLinks1");
|
var customizeLinks1 = getById("customizeLinks1");
|
||||||
Object.keys(settings.customizeLinks1).forEach((key, index) => {
|
Object.keys(settings.customizeLinks1).forEach((key, index) => {
|
||||||
if (customizeLinks1.querySelector('[data-param="'+key+'"]').checked != settings.customizeLinks1[key]){
|
try {
|
||||||
customizeLinks1.querySelector('[data-param="'+key+'"]').checked = settings.customizeLinks1[key];
|
if (customizeLinks1.querySelector('[data-param="'+key+'"]').checked != settings.customizeLinks1[key]){
|
||||||
customizeLinks1.querySelector('[data-param="'+key+'"]').onchange();
|
customizeLinks1.querySelector('[data-param="'+key+'"]').checked = settings.customizeLinks1[key];
|
||||||
}
|
customizeLinks1.querySelector('[data-param="'+key+'"]').onchange();
|
||||||
|
}
|
||||||
|
} catch(e){errorlog(e);}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.customizeLinks3){
|
if (settings.customizeLinks3){
|
||||||
var customizeLinks3 = getById("customizeLinks3");
|
var customizeLinks3 = getById("customizeLinks3");
|
||||||
Object.keys(settings.customizeLinks3).forEach((key, index) => {
|
Object.keys(settings.customizeLinks3).forEach((key, index) => {
|
||||||
if (customizeLinks3.querySelector('[data-param="'+key+'"]').checked == settings.customizeLinks3[key]){
|
try {
|
||||||
customizeLinks3.querySelector('[data-param="'+key+'"]').checked = settings.customizeLinks3[key];
|
if (customizeLinks3.querySelector('[data-param="'+key+'"]').checked == settings.customizeLinks3[key]){
|
||||||
customizeLinks3.querySelector('[data-param="'+key+'"]').onchange();
|
customizeLinks3.querySelector('[data-param="'+key+'"]').checked = settings.customizeLinks3[key];
|
||||||
}
|
customizeLinks3.querySelector('[data-param="'+key+'"]').onchange();
|
||||||
|
}
|
||||||
|
} catch(e){errorlog(e);}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.directorLinks1){
|
if (settings.directorLinks1){
|
||||||
var directorLinks1 = getById("directorLinks1");
|
var directorLinks1 = getById("directorLinks1");
|
||||||
Object.keys(settings.directorLinks1).forEach((key, index) => {
|
Object.keys(settings.directorLinks1).forEach((key, index) => {
|
||||||
if (directorLinks1.querySelector('[data-param="'+key+'"]').checked == settings.directorLinks1[key]){
|
try {
|
||||||
directorLinks1.querySelector('[data-param="'+key+'"]').checked = settings.directorLinks1[key];
|
if (directorLinks1.querySelector('[data-param="'+key+'"]').checked == settings.directorLinks1[key]){
|
||||||
directorLinks1.querySelector('[data-param="'+key+'"]').onchange();
|
directorLinks1.querySelector('[data-param="'+key+'"]').checked = settings.directorLinks1[key];
|
||||||
}
|
directorLinks1.querySelector('[data-param="'+key+'"]').onchange();
|
||||||
|
}
|
||||||
|
} catch(e){errorlog(e);}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.directorLinks2){
|
if (settings.directorLinks2){
|
||||||
var directorLinks2 = getById("directorLinks2");
|
var directorLinks2 = getById("directorLinks2");
|
||||||
Object.keys(settings.directorLinks2).forEach((key, index) => {
|
Object.keys(settings.directorLinks2).forEach((key, index) => {
|
||||||
if (directorLinks2.querySelector('[data-param="'+key+'"]').checked == settings.directorLinks2[key]){
|
try {
|
||||||
directorLinks2.querySelector('[data-param="'+key+'"]').checked = settings.directorLinks2[key];
|
if (directorLinks2.querySelector('[data-param="'+key+'"]').checked == settings.directorLinks2[key]){
|
||||||
directorLinks2.querySelector('[data-param="'+key+'"]').onchange();
|
directorLinks2.querySelector('[data-param="'+key+'"]').checked = settings.directorLinks2[key];
|
||||||
}
|
directorLinks2.querySelector('[data-param="'+key+'"]').onchange();
|
||||||
|
}
|
||||||
|
} catch(e){errorlog(e);}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7309,6 +7320,7 @@ function updateForceRotate(){
|
|||||||
|
|
||||||
|
|
||||||
const settings = track.getSettings();
|
const settings = track.getSettings();
|
||||||
|
session.currentCameraConstraints = settings;
|
||||||
if ("width" in settings){
|
if ("width" in settings){
|
||||||
if ("height" in settings){
|
if ("height" in settings){
|
||||||
if (settings.width < settings.height){
|
if (settings.width < settings.height){
|
||||||
@ -8279,7 +8291,7 @@ function activeSpeaker(border=false) {
|
|||||||
} else if (lastActiveSpeaker){
|
} else if (lastActiveSpeaker){
|
||||||
session.rpcs[lastActiveSpeaker].defaultSpeaker=true;
|
session.rpcs[lastActiveSpeaker].defaultSpeaker=true;
|
||||||
changed=true;
|
changed=true;
|
||||||
} else if (session.scene===false || (session.nopreview===false & session.minipreview!==1)){
|
} else if (session.scene===false || (session.nopreview===false && session.minipreview!==1)){
|
||||||
// we don't need to care.
|
// we don't need to care.
|
||||||
} else {
|
} else {
|
||||||
for (var UUID in session.rpcs) {
|
for (var UUID in session.rpcs) {
|
||||||
@ -8335,7 +8347,7 @@ function activeSpeaker(border=false) {
|
|||||||
} else if (lastActiveSpeaker){
|
} else if (lastActiveSpeaker){
|
||||||
session.rpcs[lastActiveSpeaker].defaultSpeaker=true;
|
session.rpcs[lastActiveSpeaker].defaultSpeaker=true;
|
||||||
changed=true;
|
changed=true;
|
||||||
} else if (session.scene===false || (session.nopreview===false & session.minipreview!==1)){
|
} else if (session.scene===false || (session.nopreview===false && session.minipreview!==1)){
|
||||||
// we don't need to care.
|
// we don't need to care.
|
||||||
} else {
|
} else {
|
||||||
for (var UUID in session.rpcs) {
|
for (var UUID in session.rpcs) {
|
||||||
@ -8630,6 +8642,7 @@ async function toggleCoDirector(ele){
|
|||||||
ele.checked=false;
|
ele.checked=false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
session.directorPassword = sanitizePassword(session.directorPassword)
|
||||||
}
|
}
|
||||||
updateURL("codirector="+session.directorPassword, true, false);
|
updateURL("codirector="+session.directorPassword, true, false);
|
||||||
getById("coDirectorEnableSpan").style.display = "none";
|
getById("coDirectorEnableSpan").style.display = "none";
|
||||||
@ -12070,12 +12083,12 @@ async function grabScreen(quality = 0, audio = true, videoOnEnd = false) {
|
|||||||
function toggleRoomSettings(){
|
function toggleRoomSettings(){
|
||||||
|
|
||||||
toggle(getById('roomSettings'));
|
toggle(getById('roomSettings'));
|
||||||
|
if (getById('roomSettings').style.display=="none"){
|
||||||
|
|
||||||
if (document.getElementById("modalBackdrop")){
|
|
||||||
getById("modalBackdrop").innerHTML = ''; // Delete modal
|
getById("modalBackdrop").innerHTML = ''; // Delete modal
|
||||||
getById("modalBackdrop").remove();
|
getById("modalBackdrop").remove();
|
||||||
} else {
|
} else {
|
||||||
|
getById("modalBackdrop").innerHTML = ''; // Delete modal
|
||||||
|
getById("modalBackdrop").remove();
|
||||||
zindex = 25;
|
zindex = 25;
|
||||||
getById('roomSettings').style.zIndex = 25;
|
getById('roomSettings').style.zIndex = 25;
|
||||||
var modalTemplate = `<div id="modalBackdrop" style="z-index:24"></div>`;
|
var modalTemplate = `<div id="modalBackdrop" style="z-index:24"></div>`;
|
||||||
@ -12629,8 +12642,28 @@ async function grabVideo(quality = 0, eleName = 'previewWebcam', selector = "sel
|
|||||||
}
|
}
|
||||||
if ((eleName == "previewWebcam") && document.getElementById("previewWebcam")){
|
if ((eleName == "previewWebcam") && document.getElementById("previewWebcam")){
|
||||||
session.videoElement.controls = true;
|
session.videoElement.controls = true;
|
||||||
|
try {
|
||||||
|
var track0 = session.streamSrc.getVideoTracks();
|
||||||
|
if (track0.length) {
|
||||||
|
track0 = track0[0];
|
||||||
|
if (track0.getCapabilities) {
|
||||||
|
session.cameraConstraints = track0.getCapabilities();
|
||||||
|
} else {
|
||||||
|
session.cameraConstraints = {};
|
||||||
|
}
|
||||||
|
log(session.cameraConstraints);
|
||||||
|
if (track0.getSettings) {
|
||||||
|
session.currentCameraConstraints = track0.getSettings();
|
||||||
|
} else {
|
||||||
|
session.currentCameraConstraints = {};
|
||||||
|
}
|
||||||
|
log(session.currentCameraConstraints);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
errorlog(e);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
updateConstraintSliders();
|
updateConstraintSliders();
|
||||||
}
|
}
|
||||||
if (callback3){
|
if (callback3){
|
||||||
try {
|
try {
|
||||||
@ -15618,6 +15651,7 @@ function updateDirectorsAudio(dataN, UUID) {
|
|||||||
}
|
}
|
||||||
if ((i === "height") || (i === "width")){
|
if ((i === "height") || (i === "width")){
|
||||||
input.title = "Hold CTRL (or cmd) to lock width and height together when changing them";
|
input.title = "Hold CTRL (or cmd) to lock width and height together when changing them";
|
||||||
|
input.min = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("step" in data.audioConstraints[i]) {
|
if ("step" in data.audioConstraints[i]) {
|
||||||
@ -15836,6 +15870,7 @@ function updateDirectorsVideo(data, UUID) {
|
|||||||
|
|
||||||
if ((i === "height") || (i === "width")){
|
if ((i === "height") || (i === "width")){
|
||||||
input.title = "Hold CTRL (or cmd) to lock width and height together when changing them";
|
input.title = "Hold CTRL (or cmd) to lock width and height together when changing them";
|
||||||
|
input.min = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -16239,6 +16274,7 @@ function listAudioSettings() {
|
|||||||
|
|
||||||
if ((i === "height") || (i === "width")){
|
if ((i === "height") || (i === "width")){
|
||||||
input.title = "Hold CTRL (or cmd) to lock width and height together when changing them";
|
input.title = "Hold CTRL (or cmd) to lock width and height together when changing them";
|
||||||
|
input.min = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("step" in session.audioConstraints[i]) {
|
if ("step" in session.audioConstraints[i]) {
|
||||||
@ -16637,6 +16673,8 @@ function listCameraSettings() {
|
|||||||
try {
|
try {
|
||||||
if (track0.getSettings) {
|
if (track0.getSettings) {
|
||||||
session.currentCameraConstraints = track0.getSettings();
|
session.currentCameraConstraints = track0.getSettings();
|
||||||
|
} else {
|
||||||
|
session.currentCameraConstraints = {};
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
errorlog(e);
|
errorlog(e);
|
||||||
@ -16684,6 +16722,7 @@ function listCameraSettings() {
|
|||||||
}
|
}
|
||||||
if ((i === "height") || (i === "width")){
|
if ((i === "height") || (i === "width")){
|
||||||
input.title = "Hold CTRL (or cmd) to lock width and height together when changing them";
|
input.title = "Hold CTRL (or cmd) to lock width and height together when changing them";
|
||||||
|
input.min = 16;
|
||||||
}
|
}
|
||||||
if ("step" in session.cameraConstraints[i]) {
|
if ("step" in session.cameraConstraints[i]) {
|
||||||
input.step = session.cameraConstraints[i].step;
|
input.step = session.cameraConstraints[i].step;
|
||||||
@ -17481,6 +17520,16 @@ function createIframePopup() {
|
|||||||
extras += "&privacy";
|
extras += "&privacy";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (session.meshcast){
|
||||||
|
extras += "&meshcast";
|
||||||
|
}
|
||||||
|
if (session.meshcastBitrate){
|
||||||
|
extras += "&mcb="+session.meshcastBitrate;
|
||||||
|
}
|
||||||
|
if (session.meshcastCodec){
|
||||||
|
extras += "&mccodec="+session.meshcastCodec;
|
||||||
|
}
|
||||||
|
|
||||||
if (session.screensharequality!==false){
|
if (session.screensharequality!==false){
|
||||||
extras += "&q="+session.screensharequality;
|
extras += "&q="+session.screensharequality;
|
||||||
} else if (session.quality){
|
} else if (session.quality){
|
||||||
@ -17492,7 +17541,6 @@ function createIframePopup() {
|
|||||||
if (session.label){
|
if (session.label){
|
||||||
extras += "&label="+encodeURIComponent(session.label);
|
extras += "&label="+encodeURIComponent(session.label);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session.screensharefps!==false){
|
if (session.screensharefps!==false){
|
||||||
extras += "&maxframerate="+parseInt(session.screensharefps*100)/100.0;
|
extras += "&maxframerate="+parseInt(session.screensharefps*100)/100.0;
|
||||||
}
|
}
|
||||||
@ -17509,6 +17557,11 @@ function createIframePopup() {
|
|||||||
extras += "&stereo="+session.screenshareStereo;
|
extras += "&stereo="+session.screenshareStereo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* if (session.noScaling){ // session.screenShareState=true already bypasses the optimization logic
|
||||||
|
extras += "&noScaling");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if (session.muted){
|
if (session.muted){
|
||||||
iframe.src = "./?audiodevice=1&screenshare&transparent&cleanish&noheader&autostart&view&muted&room=" + session.roomid + "&push=" + iFrameID + extras;
|
iframe.src = "./?audiodevice=1&screenshare&transparent&cleanish&noheader&autostart&view&muted&room=" + session.roomid + "&push=" + iFrameID + extras;
|
||||||
} else {
|
} else {
|
||||||
@ -19819,10 +19872,23 @@ function addAudioPipeline(UUID, track){ // INBOUND AUDIO EFFECTS
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function changeGroup(ele){
|
function changeGroup(ele, state=null){
|
||||||
var group = ele.dataset.value;
|
|
||||||
|
group = ele.dataset.value;
|
||||||
|
|
||||||
var index = session.rpcs[ele.dataset.UUID].group.indexOf(group);
|
var index = session.rpcs[ele.dataset.UUID].group.indexOf(group);
|
||||||
if (ele.classList.contains("pressed")){
|
|
||||||
|
if (state===true){
|
||||||
|
ele.classList.add("pressed");
|
||||||
|
if (index === -1){
|
||||||
|
session.rpcs[ele.dataset.UUID].group.push(group);
|
||||||
|
}
|
||||||
|
} else if (state === false){
|
||||||
|
ele.classList.remove("pressed");
|
||||||
|
if (index > -1){
|
||||||
|
session.rpcs[ele.dataset.UUID].group.splice(index, 1);
|
||||||
|
}
|
||||||
|
} else if (ele.classList.contains("pressed")){
|
||||||
ele.classList.remove("pressed");
|
ele.classList.remove("pressed");
|
||||||
if (index > -1){
|
if (index > -1){
|
||||||
session.rpcs[ele.dataset.UUID].group.splice(index, 1);
|
session.rpcs[ele.dataset.UUID].group.splice(index, 1);
|
||||||
@ -20056,6 +20122,16 @@ function applyStyleEffect(UUID){
|
|||||||
session.rpcs[UUID].canvasCtx.textAlign = "center";
|
session.rpcs[UUID].canvasCtx.textAlign = "center";
|
||||||
session.rpcs[UUID].canvasCtx.font = parseInt(session.rpcs[UUID].canvas.height/2.11)+"px Arial";
|
session.rpcs[UUID].canvasCtx.font = parseInt(session.rpcs[UUID].canvas.height/2.11)+"px Arial";
|
||||||
session.rpcs[UUID].canvasCtx.fillText(session.rpcs[UUID].label[0].toUpperCase(), parseInt(session.rpcs[UUID].canvas.width/2), parseInt(session.rpcs[UUID].canvas.height*2/3));
|
session.rpcs[UUID].canvasCtx.fillText(session.rpcs[UUID].label[0].toUpperCase(), parseInt(session.rpcs[UUID].canvas.width/2), parseInt(session.rpcs[UUID].canvas.height*2/3));
|
||||||
|
} else {
|
||||||
|
var tmp = getComputedStyle(document.querySelector(':root')).getPropertyValue('--video-background-image').split('"');
|
||||||
|
if (tmp.length===3){
|
||||||
|
var img = new Image();
|
||||||
|
img.onload = function() {
|
||||||
|
session.rpcs[UUID].canvasCtx.fillStyle = "rgb(25,0,0)";
|
||||||
|
session.rpcs[UUID].canvasCtx.drawImage(img, parseInt(session.rpcs[UUID].canvas.width/2-110), parseInt(session.rpcs[UUID].canvas.height/2-110),220,220);
|
||||||
|
}
|
||||||
|
img.src = tmp[1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -20438,6 +20514,20 @@ function getGuestTargetScene(scene, id){
|
|||||||
}
|
}
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
function getGuestTargetGroup(group, id){
|
||||||
|
var element = document.querySelectorAll('[data-action-type="toggle-group"][data-value="'+group+'"][data-sid="'+id+'"]'); // data-sid="P5MQpia"
|
||||||
|
if (!element.length){
|
||||||
|
element = document.querySelectorAll('[data-action-type="toggle-group"][data-value="'+group+'"][data--u-u-i-d]');
|
||||||
|
if (element[id]){
|
||||||
|
element = element[id];
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
element = element[0];
|
||||||
|
}
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
function targetGuest(guestslot, action, value=null){
|
function targetGuest(guestslot, action, value=null){
|
||||||
|
|
||||||
@ -20448,8 +20538,6 @@ function targetGuest(guestslot, action, value=null){
|
|||||||
} else {
|
} else {
|
||||||
guestslot=1;
|
guestslot=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
warnlog("guestslot "+guestslot);
|
warnlog("guestslot "+guestslot);
|
||||||
warnlog("action "+action);
|
warnlog("action "+action);
|
||||||
warnlog("value "+value);
|
warnlog("value "+value);
|
||||||
@ -20496,6 +20584,14 @@ function targetGuest(guestslot, action, value=null){
|
|||||||
if (element) {
|
if (element) {
|
||||||
remoteDisplayMute(element);
|
remoteDisplayMute(element);
|
||||||
}
|
}
|
||||||
|
} else if ((action == 8) || (action == "group")) {
|
||||||
|
if (value == "null" || value == null){
|
||||||
|
value = 1;
|
||||||
|
}
|
||||||
|
var element = getGuestTargetGroup(value, guestslot);
|
||||||
|
if (element) {
|
||||||
|
changeGroup(element, null, value);
|
||||||
|
}
|
||||||
} else if ((action == 12) || (action == "addScene2")) {
|
} else if ((action == 12) || (action == "addScene2")) {
|
||||||
var element = getGuestTargetScene(2, guestslot);
|
var element = getGuestTargetScene(2, guestslot);
|
||||||
if (element) {
|
if (element) {
|
||||||
|
|||||||
9
main.css
9
main.css
@ -17,6 +17,8 @@
|
|||||||
--myvideo-max-width: min(800px,100vw);
|
--myvideo-max-width: min(800px,100vw);
|
||||||
--myvideo-width:unset;
|
--myvideo-width:unset;
|
||||||
--myvideo-height:auto;
|
--myvideo-height:auto;
|
||||||
|
--myvideo-background: #FFF1;
|
||||||
|
--video-background-image: url("data:image/svg+xml,%3Csvg viewBox='-42 0 512 512.002' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m210.351562 246.632812c33.882813 0 63.222657-12.152343 87.195313-36.128906 23.972656-23.972656 36.125-53.304687 36.125-87.191406 0-33.875-12.152344-63.210938-36.128906-87.191406-23.976563-23.96875-53.3125-36.121094-87.191407-36.121094-33.886718 0-63.21875 12.152344-87.191406 36.125s-36.128906 53.308594-36.128906 87.1875c0 33.886719 12.15625 63.222656 36.132812 87.195312 23.976563 23.96875 53.3125 36.125 87.1875 36.125zm0 0'/%3E%3Cpath d='m426.128906 393.703125c-.691406-9.976563-2.089844-20.859375-4.148437-32.351563-2.078125-11.578124-4.753907-22.523437-7.957031-32.527343-3.308594-10.339844-7.808594-20.550781-13.371094-30.335938-5.773438-10.15625-12.554688-19-20.164063-26.277343-7.957031-7.613282-17.699219-13.734376-28.964843-18.199219-11.226563-4.441407-23.667969-6.691407-36.976563-6.691407-5.226563 0-10.28125 2.144532-20.042969 8.5-6.007812 3.917969-13.035156 8.449219-20.878906 13.460938-6.707031 4.273438-15.792969 8.277344-27.015625 11.902344-10.949219 3.542968-22.066406 5.339844-33.039063 5.339844-10.972656 0-22.085937-1.796876-33.046874-5.339844-11.210938-3.621094-20.296876-7.625-26.996094-11.898438-7.769532-4.964844-14.800782-9.496094-20.898438-13.46875-9.75-6.355468-14.808594-8.5-20.035156-8.5-13.3125 0-25.75 2.253906-36.972656 6.699219-11.257813 4.457031-21.003906 10.578125-28.96875 18.199219-7.605469 7.28125-14.390625 16.121094-20.15625 26.273437-5.558594 9.785157-10.058594 19.992188-13.371094 30.339844-3.199219 10.003906-5.875 20.945313-7.953125 32.523437-2.058594 11.476563-3.457031 22.363282-4.148437 32.363282-.679688 9.796875-1.023438 19.964844-1.023438 30.234375 0 26.726562 8.496094 48.363281 25.25 64.320312 16.546875 15.746094 38.441406 23.734375 65.066406 23.734375h246.53125c26.625 0 48.511719-7.984375 65.0625-23.734375 16.757813-15.945312 25.253906-37.585937 25.253906-64.324219-.003906-10.316406-.351562-20.492187-1.035156-30.242187zm0 0'/%3E%3C/svg%3E");
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
@ -460,7 +462,6 @@ hr {
|
|||||||
|
|
||||||
.tile {
|
.tile {
|
||||||
object-fit: var(--fit-style);
|
object-fit: var(--fit-style);
|
||||||
background-color: black;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border: 0;
|
border: 0;
|
||||||
@ -1737,7 +1738,7 @@ img {
|
|||||||
margin: auto auto !important;
|
margin: auto auto !important;
|
||||||
position: relative !important;
|
position: relative !important;
|
||||||
top: 50% !important;
|
top: 50% !important;
|
||||||
background-color: #FFF1 !important;
|
background-color: var(--myvideo-background);
|
||||||
object-fit: var(--fit-style);
|
object-fit: var(--fit-style);
|
||||||
max-width: var(--myvideo-max-width) !important;
|
max-width: var(--myvideo-max-width) !important;
|
||||||
}
|
}
|
||||||
@ -1995,7 +1996,7 @@ video {
|
|||||||
-moz-transition: opacity .25s ease-in-out;
|
-moz-transition: opacity .25s ease-in-out;
|
||||||
-webkit-transition: opacity .25s ease-in-out;
|
-webkit-transition: opacity .25s ease-in-out;
|
||||||
pointer-events: auto;
|
pointer-events: auto;
|
||||||
background-color: transparent !important;
|
background-color: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
user-select:none;
|
user-select:none;
|
||||||
@ -2007,7 +2008,7 @@ video {
|
|||||||
background-size: auto 50px;
|
background-size: auto 50px;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
background-image: url("data:image/svg+xml,%3Csvg viewBox='-42 0 512 512.002' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m210.351562 246.632812c33.882813 0 63.222657-12.152343 87.195313-36.128906 23.972656-23.972656 36.125-53.304687 36.125-87.191406 0-33.875-12.152344-63.210938-36.128906-87.191406-23.976563-23.96875-53.3125-36.121094-87.191407-36.121094-33.886718 0-63.21875 12.152344-87.191406 36.125s-36.128906 53.308594-36.128906 87.1875c0 33.886719 12.15625 63.222656 36.132812 87.195312 23.976563 23.96875 53.3125 36.125 87.1875 36.125zm0 0'/%3E%3Cpath d='m426.128906 393.703125c-.691406-9.976563-2.089844-20.859375-4.148437-32.351563-2.078125-11.578124-4.753907-22.523437-7.957031-32.527343-3.308594-10.339844-7.808594-20.550781-13.371094-30.335938-5.773438-10.15625-12.554688-19-20.164063-26.277343-7.957031-7.613282-17.699219-13.734376-28.964843-18.199219-11.226563-4.441407-23.667969-6.691407-36.976563-6.691407-5.226563 0-10.28125 2.144532-20.042969 8.5-6.007812 3.917969-13.035156 8.449219-20.878906 13.460938-6.707031 4.273438-15.792969 8.277344-27.015625 11.902344-10.949219 3.542968-22.066406 5.339844-33.039063 5.339844-10.972656 0-22.085937-1.796876-33.046874-5.339844-11.210938-3.621094-20.296876-7.625-26.996094-11.898438-7.769532-4.964844-14.800782-9.496094-20.898438-13.46875-9.75-6.355468-14.808594-8.5-20.035156-8.5-13.3125 0-25.75 2.253906-36.972656 6.699219-11.257813 4.457031-21.003906 10.578125-28.96875 18.199219-7.605469 7.28125-14.390625 16.121094-20.15625 26.273437-5.558594 9.785157-10.058594 19.992188-13.371094 30.339844-3.199219 10.003906-5.875 20.945313-7.953125 32.523437-2.058594 11.476563-3.457031 22.363282-4.148437 32.363282-.679688 9.796875-1.023438 19.964844-1.023438 30.234375 0 26.726562 8.496094 48.363281 25.25 64.320312 16.546875 15.746094 38.441406 23.734375 65.066406 23.734375h246.53125c26.625 0 48.511719-7.984375 65.0625-23.734375 16.757813-15.945312 25.253906-37.585937 25.253906-64.324219-.003906-10.316406-.351562-20.492187-1.035156-30.242187zm0 0'/%3E%3C/svg%3E");
|
background-image: var(--video-background-image);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nogb { background-image: unset !important }
|
.nogb { background-image: unset !important }
|
||||||
|
|||||||
69
main.js
69
main.js
@ -90,6 +90,14 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
|
|
||||||
|
|
||||||
//// translation stuff ends ////
|
//// translation stuff ends ////
|
||||||
|
|
||||||
|
if (urlParams.has('cleanoutput') || urlParams.has('clean') || urlParams.has('cleanish')) {
|
||||||
|
session.cleanOutput = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (urlParams.has('cleanviewer') || urlParams.has('cv')) {
|
||||||
|
session.cleanViewer = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!isIFrame){
|
if (!isIFrame){
|
||||||
if (getStorage("redirect") == "yes") {
|
if (getStorage("redirect") == "yes") {
|
||||||
@ -107,6 +115,10 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
setStorage("redirect", "yes", 1);
|
setStorage("redirect", "yes", 1);
|
||||||
window.location.replace(cookieSettings);
|
window.location.replace(cookieSettings);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
var cookieSettings = decodeURI(getStorage("settings"));
|
||||||
|
setStorage("redirect", "yes", 1);
|
||||||
|
window.location.replace(cookieSettings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,13 +150,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
} catch(e){}
|
} catch(e){}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (urlParams.has('cleanoutput') || urlParams.has('clean') || urlParams.has('cleanish')) {
|
|
||||||
session.cleanOutput = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (urlParams.has('cleanviewer') || urlParams.has('cv')) {
|
|
||||||
session.cleanViewer = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (urlParams.has('retrytimeout')) {
|
if (urlParams.has('retrytimeout')) {
|
||||||
session.retryTimeout = parseInt(urlParams.get('retrytimeout'));
|
session.retryTimeout = parseInt(urlParams.get('retrytimeout'));
|
||||||
@ -179,6 +185,10 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
getById("mutespeakerbutton").style.setProperty("display", "none", "important");
|
getById("mutespeakerbutton").style.setProperty("display", "none", "important");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (urlParams.has('noscale') || urlParams.has('noscaling')) {
|
||||||
|
session.noScaling = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (urlParams.has('pusheffectsdata') ) {
|
if (urlParams.has('pusheffectsdata') ) {
|
||||||
session.pushEffectsData=true;
|
session.pushEffectsData=true;
|
||||||
}
|
}
|
||||||
@ -682,6 +692,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
session.disableWebAudio = true;
|
session.disableWebAudio = true;
|
||||||
session.audioEffects = false;
|
session.audioEffects = false;
|
||||||
session.audioMeterGuest = false;
|
session.audioMeterGuest = false;
|
||||||
|
session.style = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (urlParams.has('autoadd')) { // the streams we want to view; if set, but let blank, we will request no streams to watch.
|
if (urlParams.has('autoadd')) { // the streams we want to view; if set, but let blank, we will request no streams to watch.
|
||||||
@ -833,12 +844,13 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
if (urlParams.has('showlabels') || urlParams.has('showlabel') || urlParams.has('sl')) {
|
if (urlParams.has('showlabels') || urlParams.has('showlabel') || urlParams.has('sl')) {
|
||||||
session.showlabels = urlParams.get('showlabels') || urlParams.get('showlabel') || urlParams.get('sl') || "";
|
session.showlabels = urlParams.get('showlabels') || urlParams.get('showlabel') || urlParams.get('sl') || "";
|
||||||
session.showlabels = sanitizeLabel(session.showlabels.replace(/[\W]+/g, "_").replace(/_+/g, '_'));
|
session.showlabels = sanitizeLabel(session.showlabels.replace(/[\W]+/g, "_").replace(/_+/g, '_'));
|
||||||
|
//session.style = 6;
|
||||||
|
session.showlabels = true;
|
||||||
|
|
||||||
if (session.showlabels == "") {
|
if (session.showlabels == "") {
|
||||||
session.showlabels = true;
|
|
||||||
session.labelstyle = false;
|
session.labelstyle = false;
|
||||||
} else {
|
} else {
|
||||||
session.labelstyle = session.showlabels;
|
session.labelstyle = session.showlabels;
|
||||||
session.showlabels = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1446,6 +1458,13 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (urlParams.has('retry')) {
|
||||||
|
session.forceRetry = parseInt(urlParams.get('retry')) || 30;
|
||||||
|
}
|
||||||
|
if (session.forceRetry){
|
||||||
|
setTimeout(function(){session.retryWatchInterval();},30000);
|
||||||
|
}
|
||||||
|
|
||||||
var darkmode=false;
|
var darkmode=false;
|
||||||
try {
|
try {
|
||||||
if (urlParams.has("darkmode") || urlParams.has("nightmode")){
|
if (urlParams.has("darkmode") || urlParams.has("nightmode")){
|
||||||
@ -1589,6 +1608,9 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
|
|
||||||
if (urlParams.has('autojoin') || urlParams.has('autostart') || urlParams.has('aj') || urlParams.has('as')) {
|
if (urlParams.has('autojoin') || urlParams.has('autostart') || urlParams.has('aj') || urlParams.has('as')) {
|
||||||
session.autostart = true;
|
session.autostart = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (session.autostart){
|
||||||
if (session.screenshare!==false) {
|
if (session.screenshare!==false) {
|
||||||
delayedStartupFuncs.push([publishScreen]);
|
delayedStartupFuncs.push([publishScreen]);
|
||||||
}
|
}
|
||||||
@ -1887,6 +1909,11 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
session.meshcastBitrate = parseInt(session.meshcastBitrate);
|
session.meshcastBitrate = parseInt(session.meshcastBitrate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (urlParams.has('mcab') || urlParams.has('mcaudiobitrate') || urlParams.has('meshcastab')){
|
||||||
|
session.meshcastAudioBitrate = urlParams.get('mcab') || urlParams.get('mcaudiobitrate') || urlParams.get('meshcastab') || 32;
|
||||||
|
session.meshcastAudioBitrate = parseInt(session.meshcastAudioBitrate);
|
||||||
|
}
|
||||||
|
|
||||||
if (urlParams.has('mccodec') || urlParams.has('meshcastcodec')){
|
if (urlParams.has('mccodec') || urlParams.has('meshcastcodec')){
|
||||||
session.meshcastCodec = urlParams.get('mccodec') || urlParams.get('meshcastcodec') || false;
|
session.meshcastCodec = urlParams.get('mccodec') || urlParams.get('meshcastcodec') || false;
|
||||||
}
|
}
|
||||||
@ -1956,6 +1983,17 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
if (urlParams.has('stats')) {
|
if (urlParams.has('stats')) {
|
||||||
session.statsMenu = true;
|
session.statsMenu = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (urlParams.has('datamode')) {
|
||||||
|
session.cleanOutput=true;
|
||||||
|
session.videoDevice = 0;
|
||||||
|
session.audioDevice = 0;
|
||||||
|
session.autostart = true;
|
||||||
|
session.novideo = [];
|
||||||
|
session.noaudio = [];
|
||||||
|
session.noiframe = [];
|
||||||
|
session.webcamonly = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (urlParams.has('cleandirector') || urlParams.has('cdv')) {
|
if (urlParams.has('cleandirector') || urlParams.has('cdv')) {
|
||||||
session.cleanDirector = true;
|
session.cleanDirector = true;
|
||||||
@ -1972,6 +2010,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
getById("reportbutton").style.opacity = 0;
|
getById("reportbutton").style.opacity = 0;
|
||||||
getById("calendarButton").style.display = "none";
|
getById("calendarButton").style.display = "none";
|
||||||
getById("calendarButton").style.opacity = 0;
|
getById("calendarButton").style.opacity = 0;
|
||||||
|
document.documentElement.style.setProperty('--myvideo-background', '#0000');
|
||||||
var styleTmp = document.createElement('style');
|
var styleTmp = document.createElement('style');
|
||||||
styleTmp.innerHTML = `
|
styleTmp.innerHTML = `
|
||||||
video {
|
video {
|
||||||
@ -2202,7 +2241,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
if (urlParams.has('activespeaker') || urlParams.has('speakerview') || urlParams.has('sas')){
|
if (urlParams.has('activespeaker') || urlParams.has('speakerview') || urlParams.has('sas')){
|
||||||
session.activeSpeaker = urlParams.get('activespeaker') || urlParams.get('speakerview') || urlParams.get('sas') || 1;
|
session.activeSpeaker = urlParams.get('activespeaker') || urlParams.get('speakerview') || urlParams.get('sas') || 1;
|
||||||
session.activeSpeaker = parseInt(session.activeSpeaker);
|
session.activeSpeaker = parseInt(session.activeSpeaker);
|
||||||
|
session.style=6;
|
||||||
session.audioEffects = true;
|
session.audioEffects = true;
|
||||||
session.audioMeterGuest = true;
|
session.audioMeterGuest = true;
|
||||||
session.minipreview = 2;
|
session.minipreview = 2;
|
||||||
@ -2258,7 +2297,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
if (urlParams.has('meter') || urlParams.has('meterstyle')){ // same as also adding &style=3
|
if (urlParams.has('meter') || urlParams.has('meterstyle')){ // same as also adding &style=3
|
||||||
session.meterStyle = urlParams.get('meter') || urlParams.get('meterstyle') || 1;
|
session.meterStyle = urlParams.get('meter') || urlParams.get('meterstyle') || 1;
|
||||||
session.meterStyle = parseInt(session.meterStyle);
|
session.meterStyle = parseInt(session.meterStyle);
|
||||||
session.style = 3;
|
session.style=3;
|
||||||
session.audioEffects = true;
|
session.audioEffects = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2655,7 +2694,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
session.screenshareid = urlParams.get('screenshareid') || urlParams.get('ssid');
|
session.screenshareid = urlParams.get('screenshareid') || urlParams.get('ssid');
|
||||||
session.screenshareid = sanitizeStreamID(session.screenshareid);
|
session.screenshareid = sanitizeStreamID(session.screenshareid);
|
||||||
} else {
|
} else {
|
||||||
session.screenshareid = session.streamID + "_screenshare";
|
session.screenshareid = session.streamID + "_ss";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2796,8 +2835,11 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
if (!session.directorPassword) {
|
if (!session.directorPassword) {
|
||||||
window.focus();
|
window.focus();
|
||||||
session.directorPassword = await promptAlt(miscTranslations["enter-director-password"], true);
|
session.directorPassword = await promptAlt(miscTranslations["enter-director-password"], true);
|
||||||
|
} else {
|
||||||
|
session.directorPassword = decodeURIComponent(session.directorPassword);
|
||||||
}
|
}
|
||||||
if (session.directorPassword){
|
if (session.directorPassword){
|
||||||
|
session.directorPassword = sanitizePassword(session.directorPassword)
|
||||||
await generateHash(session.directorPassword + session.salt + "abc123", 12).then(function(hash) { // million to one error.
|
await generateHash(session.directorPassword + session.salt + "abc123", 12).then(function(hash) { // million to one error.
|
||||||
log("dir room hash is " + hash);
|
log("dir room hash is " + hash);
|
||||||
session.directorHash = hash;
|
session.directorHash = hash;
|
||||||
@ -2820,6 +2862,9 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
//if (!session.activeSpeaker){
|
//if (!session.activeSpeaker){
|
||||||
session.audioMeterGuest = false;
|
session.audioMeterGuest = false;
|
||||||
//}
|
//}
|
||||||
|
if (session.style===false){
|
||||||
|
session.style = 1;
|
||||||
|
}
|
||||||
if (session.audioEffects === null) {
|
if (session.audioEffects === null) {
|
||||||
session.audioEffects = false;
|
session.audioEffects = false;
|
||||||
}
|
}
|
||||||
@ -3553,7 +3598,7 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
|
|||||||
try{
|
try{
|
||||||
var input = WebMidi.inputs[parseInt(session.midiOut)-1];
|
var input = WebMidi.inputs[parseInt(session.midiOut)-1];
|
||||||
input.addListener("midimessage", function(e) {
|
input.addListener("midimessage", function(e) {
|
||||||
console.log(e);
|
log(e);
|
||||||
var msg = {};
|
var msg = {};
|
||||||
msg.midi = {};
|
msg.midi = {};
|
||||||
msg.midi.d = e.data;
|
msg.midi.d = e.data;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user