solo talk fix; eek

This commit is contained in:
steveseguin 2023-04-17 11:40:23 -04:00
parent d8282852f3
commit 54ab0f19dc
20 changed files with 122 additions and 81 deletions

View File

@ -56,7 +56,7 @@
<meta property="twitter:image" content="./media/vdoNinja_logo_full.png" /> <meta property="twitter:image" content="./media/vdoNinja_logo_full.png" />
<meta name="msapplication-TileColor" content="#da532c" /> <meta name="msapplication-TileColor" content="#da532c" />
<meta name="theme-color" content="#ffffff" /> <meta name="theme-color" content="#ffffff" />
<link rel="stylesheet" href="./main.css?ver=301" /> <link rel="stylesheet" href="./main.css?ver=303" />
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/adapter.js"></script> <script type="text/javascript" crossorigin="anonymous" src="./thirdparty/adapter.js"></script>
<style id="lightbox-animations" type="text/css"></style> <style id="lightbox-animations" type="text/css"></style>
<!-- <link rel="manifest" href="manifest.json" /> --> <!-- <link rel="manifest" href="manifest.json" /> -->
@ -83,7 +83,7 @@
<script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=47"></script> <script type="text/javascript" crossorigin="anonymous" src="./thirdparty/CodecsHandler.js?ver=47"></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" src="./webrtc.js?ver=617"></script> <script type="text/javascript" crossorigin="anonymous" src="./webrtc.js?ver=618"></script>
<input id="zoomSlider" type="range" style="display: none;" /> <input id="zoomSlider" type="range" style="display: none;" />
<span id="electronDragZone" style="pointer-events: none; z-index:-10; position:absolute;top:0;left:0;width:100%;height:2%;-webkit-app-region: drag;min-height:20px;"></span> <span id="electronDragZone" style="pointer-events: none; z-index:-10; position:absolute;top:0;left:0;width:100%;height:2%;-webkit-app-region: drag;min-height:20px;"></span>
<div id="header"> <div id="header">
@ -1437,7 +1437,7 @@
</button> </button>
<button data-action-type="mute-video-guest" title="Disable this guest's video track" onclick="remoteMuteVideo(this, event);"> <button data-action-type="mute-video-guest" title="Disable this guest's video track" onclick="remoteMuteVideo(this, event);">
<i class="las la-video-slash"></i> <i class="las la-video-slash"></i>
<span data-translate="mute-video-guest">Video on</span> <span data-translate="mute-video-guest">Video off</span>
</button> </button>
<button class="mainonly" data-action-type="toggle-remote-speaker" title="Toggle the remote guest's speaker output" onclick="remoteSpeakerMute(this, event);"> <button class="mainonly" data-action-type="toggle-remote-speaker" title="Toggle the remote guest's speaker output" onclick="remoteSpeakerMute(this, event);">
<i class="las la-volume-off"></i> <span data-translate="toggle-remote-speaker">Deafen</span> <i class="las la-volume-off"></i> <span data-translate="toggle-remote-speaker">Deafen</span>
@ -2475,11 +2475,11 @@
// session.hidehome = true; // If used, 'hide home' will make the landing page inaccessible, along with hiding a few go-home elements. // session.hidehome = true; // If used, 'hide home' will make the landing page inaccessible, along with hiding a few go-home elements.
// session.record = false; // uncomment to block users from being able to record via vdo.ninja's built in recording function // session.record = false; // uncomment to block users from being able to record via vdo.ninja's built in recording function
</script> </script>
<script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=745"></script> <script type="text/javascript" crossorigin="anonymous" id="lib-js" src="./lib.js?ver=748"></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=600"></script> <script type="text/javascript" crossorigin="anonymous" id="main-js" src="./main.js?ver=602"></script>
</body> </body>
</html> </html>

134
lib.js
View File

@ -4157,7 +4157,7 @@ function updateMixerRun(e=false){ // this is the main auto-mixing code. It's a
session.rpcs[i].videoElement.style.visibility = "visible"; session.rpcs[i].videoElement.style.visibility = "visible";
} catch(e){errorlog(e);} } catch(e){errorlog(e);}
if (session.rpcs[i].virtualHangup || session.rpcs[i].bandwidthMuted){ if (session.rpcs[i].virtualHangup || session.rpcs[i].bandwidthMuted || session.rpcs[i].directorVideoMuted){
continue; continue;
} }
@ -11222,20 +11222,23 @@ async function directMigrate(ele, event, room=false) { // everyone in the room w
if (previousRoom === null) { // user cancelled in previous callback if (previousRoom === null) { // user cancelled in previous callback
ele.innerHTML = '<i class="las la-paper-plane"></i> <span data-translate="forward-to-room">transfer</span>'; ele.innerHTML = '<i class="las la-paper-plane"></i> <span data-translate="forward-to-room">transfer</span>';
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = null; //ele.style.backgroundColor = null;
ele.classList.remove("armed");
return; return;
} }
if (transferCancelled === true) { if (transferCancelled === true) {
ele.innerHTML = '<i class="las la-paper-plane"></i> <span data-translate="forward-to-room">transfer</span>'; ele.innerHTML = '<i class="las la-paper-plane"></i> <span data-translate="forward-to-room">transfer</span>';
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = null; //ele.style.backgroundColor = null;
ele.classList.remove("armed");
return; return;
} }
var migrateRoom = previousRoom var migrateRoom = previousRoom
} else if ((event.ctrlKey) || (event.metaKey)) { } else if ((event.ctrlKey) || (event.metaKey)) {
ele.innerHTML = '<i class="las la-check"></i> <span data-translate="forward-to-room">armed</span>'; ele.innerHTML = '<i class="las la-check"></i> <span data-translate="forward-to-room">armed</span>';
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = "#BF3F3F"; ele.classList.add("armed");
//ele.style.backgroundColor = "#BF3F3F";
transferCancelled = false; transferCancelled = false;
//armedTransfer=true; //armedTransfer=true;
Callbacks.push([directMigrate, ele, stillNeedRoom]); Callbacks.push([directMigrate, ele, stillNeedRoom]);
@ -11272,7 +11275,8 @@ async function directMigrate(ele, event, room=false) { // everyone in the room w
if (migrateRoom === null) { // user cancelled if (migrateRoom === null) { // user cancelled
ele.innerHTML = '<i class="las la-paper-plane"></i> <span data-translate="forward-to-room">transfer</span>'; ele.innerHTML = '<i class="las la-paper-plane"></i> <span data-translate="forward-to-room">transfer</span>';
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = null; //ele.style.backgroundColor = null;
ele.classList.remove("armed");
transferCancelled = true; transferCancelled = true;
return; return;
} }
@ -11284,7 +11288,8 @@ async function directMigrate(ele, event, room=false) { // everyone in the room w
} }
ele.innerHTML = '<i class="las la-paper-plane"></i> <span data-translate="forward-to-room">transfer</span>'; ele.innerHTML = '<i class="las la-paper-plane"></i> <span data-translate="forward-to-room">transfer</span>';
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = null; //ele.style.backgroundColor = null;
ele.classList.remove("armed");
if (migrateRoom) { if (migrateRoom) {
previousRoom = migrateRoom; previousRoom = migrateRoom;
@ -11308,7 +11313,8 @@ function directHangup(ele, event) { // everyone in the room will hangup this gue
} else if ((event.ctrlKey) || (event.metaKey)) { } else if ((event.ctrlKey) || (event.metaKey)) {
ele.innerHTML = '<i class="las la-skull-crossbones"></i> <span data-translate="disconnect-guest" >ARMED</span>'; ele.innerHTML = '<i class="las la-skull-crossbones"></i> <span data-translate="disconnect-guest" >ARMED</span>';
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = "#BF3F3F"; ele.classList.add("armed");
//ele.style.backgroundColor = "#BF3F3F";
stillNeedHangupTarget = 1; stillNeedHangupTarget = 1;
Callbacks.push([directHangup, ele, false]); Callbacks.push([directHangup, ele, false]);
log("Hangup queued"); log("Hangup queued");
@ -11330,7 +11336,8 @@ function directHangup(ele, event) { // everyone in the room will hangup this gue
} else { } else {
ele.innerHTML = '<i class="las la-sign-out-alt"></i><span data-translate="disconnect-guest"> Hangup</span>'; ele.innerHTML = '<i class="las la-sign-out-alt"></i><span data-translate="disconnect-guest"> Hangup</span>';
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = null; //ele.style.backgroundColor = null;
ele.classList.remove("armed");
return false; return false;
} }
} }
@ -11839,20 +11846,22 @@ async function directPageReload(ele, event) {
if (previousURL === null) { // user cancelled in previous callback if (previousURL === null) { // user cancelled in previous callback
ele.innerHTML = '<i class="las la-sync"></i> <span data-translate="change-url">change URL</span>'; ele.innerHTML = '<i class="las la-sync"></i> <span data-translate="change-url">change URL</span>';
miniTranslate(ele) miniTranslate(ele)
ele.style.backgroundColor = null; ele.classList.remove("armed");// ele.style.backgroundColor = null;
return; return;
} }
if (reloadCancelled === true) { if (reloadCancelled === true) {
ele.innerHTML = '<i class="las la-sync"></i> <span data-translate="change-url">change URL</span>'; ele.innerHTML = '<i class="las la-sync"></i> <span data-translate="change-url">change URL</span>';
miniTranslate(ele) miniTranslate(ele)
ele.style.backgroundColor = null; ele.classList.remove("armed");
//ele.style.backgroundColor = null;
return; return;
} }
reloadURL = previousURL reloadURL = previousURL
} else if ((event.ctrlKey) || (event.metaKey)) { } else if ((event.ctrlKey) || (event.metaKey)) {
ele.innerHTML = '<i class="las la-check"></i> <span data-translate="button-armed">armed</span>'; ele.innerHTML = '<i class="las la-check"></i> <span data-translate="button-armed">armed</span>';
miniTranslate(ele) miniTranslate(ele)
ele.style.backgroundColor = "#BF3F3F"; ele.classList.add("armed");
//ele.style.backgroundColor = "#BF3F3F";
reloadCancelled = false; reloadCancelled = false;
armedReload=true; armedReload=true;
Callbacks.push([directPageReload, ele, stillNeedURL]); Callbacks.push([directPageReload, ele, stillNeedURL]);
@ -11867,8 +11876,9 @@ async function directPageReload(ele, event) {
stillNeedURL = true; stillNeedURL = true;
if (reloadURL === null) { // user cancelled if (reloadURL === null) { // user cancelled
ele.innerHTML = '<i class="las la-sync"></i> <span data-translate="change-url">change URL</span>'; ele.innerHTML = '<i class="las la-sync"></i> <span data-translate="change-url">change URL</span>';
miniTranslate(ele) miniTranslate(ele);
ele.style.backgroundColor = null; ele.classList.remove("armed");
//ele.style.backgroundColor = null;
reloadCancelled = true; reloadCancelled = true;
return; return;
} }
@ -11879,7 +11889,7 @@ async function directPageReload(ele, event) {
} }
ele.innerHTML = '<i class="las la-sync"></i> <span data-translate="change-url">change URL</span>'; ele.innerHTML = '<i class="las la-sync"></i> <span data-translate="change-url">change URL</span>';
miniTranslate(ele) miniTranslate(ele)
ele.style.backgroundColor = null; ele.classList.remove("armed");//ele.style.backgroundColor = null;
if (reloadURL) { if (reloadURL) {
previousURL = reloadURL; previousURL = reloadURL;
@ -12419,7 +12429,8 @@ function remoteHideVideo(ele, event=false, skipSend=false) {
if (!event || ((event.ctrlKey) || (event.metaKey))) { if (!event || ((event.ctrlKey) || (event.metaKey))) {
ele.children[1].innerHTML = miscTranslations["armed"] ele.children[1].innerHTML = miscTranslations["armed"]
ele.style.backgroundColor = "#BF3F3F"; //ele.style.backgroundColor = "#BF3F3F";
ele.classList.add("armed");
Callbacks.push([remoteHideVideo, ele, false]); Callbacks.push([remoteHideVideo, ele, false]);
log("video queued"); log("video queued");
return; return;
@ -12434,7 +12445,7 @@ function remoteHideVideo(ele, event=false, skipSend=false) {
ele.innerHTML = '<i class="las la-user-slash"></i> <span data-translate="unhide-guest" >Unhide</span>'; ele.innerHTML = '<i class="las la-user-slash"></i> <span data-translate="unhide-guest" >Unhide</span>';
} }
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = null; ele.classList.remove("armed");//ele.style.backgroundColor = null;
} }
var msg = {}; var msg = {};
@ -12471,7 +12482,7 @@ function remoteMuteVideo(ele, event=false, skipSend=false) {
if (!event || ((event.ctrlKey) || (event.metaKey))) { if (!event || ((event.ctrlKey) || (event.metaKey))) {
ele.children[1].innerHTML = miscTranslations["armed"] ele.children[1].innerHTML = miscTranslations["armed"]
ele.style.backgroundColor = "#BF3F3F"; ele.classList.add("armed");//ele.style.backgroundColor = "#BF3F3F";
Callbacks.push([remoteMuteVideo, ele, false]); Callbacks.push([remoteMuteVideo, ele, false]);
log("video queued"); log("video queued");
return; return;
@ -12479,14 +12490,14 @@ function remoteMuteVideo(ele, event=false, skipSend=false) {
if (ele.value == 1) { if (ele.value == 1) {
ele.value = 0; ele.value = 0;
ele.classList.remove("pressed"); ele.classList.remove("pressed");
ele.innerHTML = '<i class="las la-video-slash"></i> <span data-translate="mute-video-guest" >Video on</span>'; ele.innerHTML = '<i class="las la-video-slash"></i> <span data-translate="mute-video-guest" >Video off</span>';
} else { } else {
ele.value = 1; ele.value = 1;
ele.classList.add("pressed"); ele.classList.add("pressed");
ele.innerHTML = '<i class="las la-video-slash"></i> <span data-translate="unmute-video-guest" >Video off</span>'; ele.innerHTML = '<i class="las la-video-slash"></i> <span data-translate="unmute-video-guest" >Video on</span>';
} }
miniTranslate(ele); miniTranslate(ele);
ele.style.backgroundColor = null; ele.classList.remove("armed");
} }
var msg = {}; var msg = {};
@ -12521,7 +12532,7 @@ function updateDirectorVideoMute(UUID) {
if (ele[0]) { if (ele[0]) {
ele[0].value = 1; ele[0].value = 1;
ele[0].classList.add("pressed"); ele[0].classList.add("pressed");
ele[0].innerHTML = '<i class="las la-video-slash"></i> <span data-translate="unmute-video-guest" >Video off</span>'; ele[0].innerHTML = '<i class="las la-video-slash"></i> <span data-translate="unmute-video-guest" >Video on</span>';
miniTranslate(ele[0]); miniTranslate(ele[0]);
} }
return true; return true;
@ -15792,6 +15803,7 @@ function requestInfocus(ele, evt=null, value=null) {
if (ele.value == 1) { if (ele.value == 1) {
ele.value = 0; ele.value = 0;
ele.classList.remove("pressed"); ele.classList.remove("pressed");
ele.classList.remove("altpress");
var actionMsg = {}; var actionMsg = {};
actionMsg.infocus = false; actionMsg.infocus = false;
session.sendMessage(actionMsg); session.sendMessage(actionMsg);
@ -15808,10 +15820,16 @@ function requestInfocus(ele, evt=null, value=null) {
for (var i=0;i<eles.length;i++) { for (var i=0;i<eles.length;i++) {
log(eles); log(eles);
eles[i].classList.remove("pressed"); eles[i].classList.remove("pressed");
eles[i].classList.remove("altpress");
eles[i].value = 0; eles[i].value = 0;
} }
ele.value = 1; ele.value = 1;
if(special){
ele.classList.add("altpress");
} else {
ele.classList.add("pressed"); ele.classList.add("pressed");
}
if (ele.id!=="highlightDirector"){ if (ele.id!=="highlightDirector"){
getById("highlightDirector").checked=false; getById("highlightDirector").checked=false;
} }
@ -21354,6 +21372,7 @@ session.toggleSoloChat = function(UUID, event=false){ // ==> applyIsolatedChat -
session.sendRequest(msg, UUID); session.sendRequest(msg, UUID);
log(session.soloChatUUID); log(session.soloChatUUID);
var ele = document.querySelector('[data-action-type="solo-chat"][data--u-u-i-d="'+UUID+'"]'); // [data--u-u-i-d="'+UUID+'"] // this all just updates the buttons var ele = document.querySelector('[data-action-type="solo-chat"][data--u-u-i-d="'+UUID+'"]'); // [data--u-u-i-d="'+UUID+'"] // this all just updates the buttons
log(ele); log(ele);
@ -21549,7 +21568,7 @@ session.applyIsolatedChat = function(UUID=false){ // mutes outbound mic audio;
var FirefoxSenders = {}; var FirefoxSenders = {};
function setEncodings(sender, settings=null, callback=null){ function setEncodings(sender, settings=null, callback=null, cbarg=null){
if (!settings){ if (!settings){
if (!(sender.encodingsQueue)){ // not set if (!(sender.encodingsQueue)){ // not set
return; return;
@ -21557,9 +21576,9 @@ function setEncodings(sender, settings=null, callback=null){
return; return;
} }
} else if (!("encodingsQueue" in sender)){ } else if (!("encodingsQueue" in sender)){
sender.encodingsQueue = [[settings, callback]]; sender.encodingsQueue = [[settings, callback, cbarg]];
} else { } else {
sender.encodingsQueue.push([settings, callback]); sender.encodingsQueue.push([settings, callback, cbarg]);
} }
if (sender.encodingsQueueActive){return;} if (sender.encodingsQueueActive){return;}
@ -21570,6 +21589,7 @@ function setEncodings(sender, settings=null, callback=null){
var options = sender.encodingsQueue.shift(); var options = sender.encodingsQueue.shift();
settings = options[0]; settings = options[0];
callback = options[1]; callback = options[1];
cbarg = options[2];
const params = sender.getParameters(); const params = sender.getParameters();
if (!params.encodings || (params.encodings.length==0)){ if (!params.encodings || (params.encodings.length==0)){
@ -21601,8 +21621,12 @@ function setEncodings(sender, settings=null, callback=null){
if (!changed){ if (!changed){
log("SET ENCODINGS MATCH INPUT; skipping"); log("SET ENCODINGS MATCH INPUT; skipping");
if (callback){ if (callback){
if (cbarg){
setTimeout(function(){callback(cbarg);},0);
} else {
setTimeout(function(){callback();},0); setTimeout(function(){callback();},0);
} }
}
sender.encodingsQueueActive = false; sender.encodingsQueueActive = false;
setEncodings(sender); setEncodings(sender);
return; return;
@ -21627,8 +21651,12 @@ function setEncodings(sender, settings=null, callback=null){
delete settings.active; delete settings.active;
if (!Object.keys(settings).length){ if (!Object.keys(settings).length){
if (callback){ if (callback){
if (cbarg){
setTimeout(function(){callback(cbarg);},0);
} else {
setTimeout(function(){callback();},0); setTimeout(function(){callback();},0);
} }
}
log("COMPELTED FIREFOX SET ENCODINGS"); log("COMPELTED FIREFOX SET ENCODINGS");
sender.encodingsQueueActive = false; sender.encodingsQueueActive = false;
setEncodings(sender); setEncodings(sender);
@ -21639,8 +21667,12 @@ function setEncodings(sender, settings=null, callback=null){
sender.setParameters(params).then(() => { sender.setParameters(params).then(() => {
if (callback){ if (callback){
if (cbarg){
setTimeout(function(){callback(cbarg);},0);
} else {
setTimeout(function(){callback();},0); setTimeout(function(){callback();},0);
} }
}
sender.encodingsQueueActive = false; sender.encodingsQueueActive = false;
setEncodings(sender); setEncodings(sender);
}).catch((e)=>{ }).catch((e)=>{
@ -21682,41 +21714,42 @@ session.applySoloChat = function(apply=true){ // mutes outbound mic audio; ;; d
var settings = {}; var settings = {};
if (session.soloChatUUID.length && (session.soloChatUUID.includes(uuid))){ if (session.soloChatUUID.length && (session.soloChatUUID.includes(uuid))){
console.log("1: "+uuid);
settings.active = true; settings.active = true;
setEncodings(sender, settings, function(){ setEncodings(sender, settings, function(uid){
log(uuid); log("2: "+uid);
try { try {
document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uuid+'"]')[0].classList.add("pressed"); console.log(document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uid+'"]'));
document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uuid+'"]')[0].classList.remove("hint"); document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uid+'"]')[0].classList.add("pressed");
document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uid+'"]')[0].classList.remove("hint");
} catch(e){ } catch(e){
warnlog(e); warnlog(e);
} }
}.bind(uuid)); }, uuid);
} else if (session.soloChatUUID.length==0){ } else if (session.soloChatUUID.length==0){
settings.active = true; settings.active = true;
setEncodings(sender, settings, function(){ setEncodings(sender, settings, function(uid){
log(uuid); log(uid);
try { try {
document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uuid+'"]')[0].classList.remove("pressed"); document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uid+'"]')[0].classList.remove("pressed");
document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uuid+'"]')[0].classList.remove("hint"); document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uid+'"]')[0].classList.remove("hint");
} catch(e){ } catch(e){
warnlog(e); warnlog(e);
} }
}.bind(uuid)); }, uuid);
} else { } else {
settings.active = false; settings.active = false;
setEncodings(sender, settings, function(){ setEncodings(sender, settings, function(uid){
warnlog("mutied the output to:"+ uuid); warnlog("muted the output to:"+ uid);
try { try {
document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uuid+'"]')[0].classList.remove("pressed"); document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uid+'"]')[0].classList.remove("pressed");
document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uuid+'"]')[0].classList.add("hint"); document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="'+uid+'"]')[0].classList.add("hint");
} catch(e){ } catch(e){
warnlog(e); warnlog(e);
} }
}.bind(uuid)); }, uuid);
} }
}); });
@ -22023,8 +22056,11 @@ async function press2talk(clean = false) {
log("SETTING AUDIO DEVICE!!"); log("SETTING AUDIO DEVICE!!");
activatedPreview = false; activatedPreview = false;
await grabAudio("#audioSource3"); await grabAudio("#audioSource3");
} }
if (session.videoDevice !== 0) { if (session.videoDevice !== 0) {
activatedPreview = false; activatedPreview = false;
if (session.quality !== false) { if (session.quality !== false) {
@ -22041,6 +22077,8 @@ async function press2talk(clean = false) {
} }
session.directorEnabledPPT = true; session.directorEnabledPPT = true;
toggleMute(true);
//await toggleSettings(); //await toggleSettings();
log("session.seeding: " +session.seeding); log("session.seeding: " +session.seeding);
@ -32869,8 +32907,9 @@ function whipOut(){
var streamsource = false; var streamsource = false;
if (!tracks || !tracks.length){ if (!tracks || !tracks.length){
var audioCtx = new AudioContext(); var audioCtx = new AudioContext();
streamsource = destination.stream;
var destination = audioCtx.createMediaStreamDestination(); var destination = audioCtx.createMediaStreamDestination();
streamsource = destination.stream;
destination.stream.getAudioTracks().forEach(trk=>{ destination.stream.getAudioTracks().forEach(trk=>{
tracks = trk; tracks = trk;
}); });
@ -33081,9 +33120,6 @@ function whipOut(){
} else if (callback){ } else if (callback){
callback(); callback();
} }
} else{
console.warn(this.responseText);
console.error(this);
} }
}; };
if (type==="trickle-ice-sdpfrag"){ if (type==="trickle-ice-sdpfrag"){
@ -33109,6 +33145,8 @@ function whipOut(){
function GOP(){ function GOP(){
log("Sending keyframe"); log("Sending keyframe");
try { try {
if (!session.whipOut){return;}
var senders = session.whipOut.getSenders(); var senders = session.whipOut.getSenders();
var sender = false; var sender = false;
senders.forEach((senderVideo)=>{ senders.forEach((senderVideo)=>{
@ -33117,7 +33155,6 @@ function whipOut(){
} }
}); });
if (!sender){ if (!sender){
warnlog("can't change bitrate; no video sender found"); warnlog("can't change bitrate; no video sender found");
return false; return false;
@ -33126,7 +33163,8 @@ function whipOut(){
var settings = {}; var settings = {};
settings.scaleResolutionDownBy = 10; // 50% of default max settings.scaleResolutionDownBy = 10; // 50% of default max
setEncodings(sender, settings, function(){
setEncodings(sender, settings, function(sendr){
var settings = {}; var settings = {};
var chromeVersion = getChromeVersion(); var chromeVersion = getChromeVersion();
@ -33136,10 +33174,10 @@ function whipOut(){
settings.scaleResolutionDownBy = 1.0; settings.scaleResolutionDownBy = 1.0;
} }
setEncodings(sender, settings, function(){ setEncodings(sendr, settings, function(){
//log("scaleResolutionDownBy set 3b!"); //log("scaleResolutionDownBy set 3b!");
}); });
}.bind(sender)); }, sender);
return true; return true;
} catch(e){ } catch(e){

View File

@ -736,7 +736,7 @@ body.darktheme .credits>a:visited {
color: #FFF; color: #FFF;
} }
.altpress { .pressed.altpress, .altpress {
background: #673100 !important; background: #673100 !important;
-webkit-box-shadow: inset 0px 0px 1px #b90000; -webkit-box-shadow: inset 0px 0px 1px #b90000;
-moz-box-shadow: inset 0px 0px 1px #b90000; -moz-box-shadow: inset 0px 0px 1px #b90000;
@ -744,7 +744,9 @@ body.darktheme .credits>a:visited {
outline: none; outline: none;
color: white; color: white;
} }
.pressed.armed, .armed {
background: #BF3F3F !important;
}
#mainmenu.row { #mainmenu.row {
align-content: center; align-content: center;
text-align: center; text-align: center;

View File

@ -478,7 +478,7 @@
"try-out-versus-cam": "Multi-Stream Monitor", "try-out-versus-cam": "Multi-Stream Monitor",
"voice-comms-app": "Group Voice Comms", "voice-comms-app": "Group Voice Comms",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Gast Umschalten", "guest-toggle": "Gast Umschalten",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Einstellungen", "settings": "Einstellungen",
"more": "Mehr", "more": "Mehr",
"links": "Links", "links": "Links",

View File

@ -268,7 +268,7 @@
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"voice-chat": " Solo Talk", "voice-chat": " Solo Talk",
"solo-video": "Highlight", "solo-video": "Highlight",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"toggle-remote-speaker": "Deafen", "toggle-remote-speaker": "Deafen",
"hide-guest": "Hide", "hide-guest": "Hide",
"toggle-remote-display": "Blind", "toggle-remote-display": "Blind",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Invitado alterna", "guest-toggle": "Invitado alterna",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Configuración", "settings": "Configuración",
"more": "Más", "more": "Más",
"links": "Enlaces", "links": "Enlaces",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Invité Basculer", "guest-toggle": "Invité Basculer",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "paramètres", "settings": "paramètres",
"more": "Plus", "more": "Plus",
"links": "Liens", "links": "Liens",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -493,7 +493,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -514,7 +514,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

View File

@ -514,7 +514,7 @@
"remote-control-obs-menu": "Remote Controller for OBS Studio", "remote-control-obs-menu": "Remote Controller for OBS Studio",
"director-video-muted-you": "The director has disabled your camera temporarily.", "director-video-muted-you": "The director has disabled your camera temporarily.",
"guest-toggle": "Guest Toggle", "guest-toggle": "Guest Toggle",
"mute-video-guest": "Video on", "mute-video-guest": "Video off",
"settings": "Settings", "settings": "Settings",
"more": "More", "more": "More",
"scene-options": "Scene options", "scene-options": "Scene options",

File diff suppressed because one or more lines are too long

View File

@ -328,7 +328,7 @@
<div id="urlInput2" class="urlInput"title="Put the WHIP token you want to listen for"> <div id="urlInput2" class="urlInput"title="Put the WHIP token you want to listen for">
<h3>Setup VDO.Ninja to be a WHIP-ingestion end-point</h3> <h3>Setup VDO.Ninja to be a WHIP-ingestion end-point (ie: OBS -> VDO)</h3>
<div class="inputCombo" id="inputCombo2"> <div class="inputCombo" id="inputCombo2">
<label for="changeText"> <label for="changeText">
@ -337,6 +337,7 @@
<input type="text" id="changeText2" class="inputfield changeText" placeholder="Ingest WHIP token" /> <input type="text" id="changeText2" class="inputfield changeText" placeholder="Ingest WHIP token" />
<button onclick="gohere2();" class="gobutton" id="gobutton2">GO</button> <button onclick="gohere2();" class="gobutton" id="gobutton2">GO</button>
</div> </div>
<h3 style="text-align: center;color:#ccc;"><i>The WHIP endpoint for VDO.Ninja is <b>https://whip.vdo.ninja</b></i></h3>
</div> </div>
<div id="urlInput3" class="urlInput"title="Put the link you want to play here"> <div id="urlInput3" class="urlInput"title="Put the link you want to play here">
@ -401,8 +402,8 @@ function gohere1t(){
function gohere2(){ function gohere2(){
if (document.getElementById('changeText2').value){ if (document.getElementById('changeText2').value){
localStorage.setItem('changeText2', document.getElementById('changeText1').value); localStorage.setItem('changeText2', document.getElementById('changeText2').value);
window.location = domain + "?hidemenu&whip=" + document.getElementById('changeText1').value; window.location = domain + "?hidemenu&whip=" + document.getElementById('changeText2').value;
} }
} }