Merge pull request #1078 from yonghuang28/add-a-URL-parameter-&batterymeter

Add a url parameter &batterymeter
This commit is contained in:
Steve Seguin 2023-07-11 06:37:42 -04:00 committed by GitHub
commit 43c0854ae5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 110 additions and 9 deletions

79
lib.js
View File

@ -3677,6 +3677,11 @@ function switchModes(state=null){
target.appendChild(session.rpcs[UUID].signalMeter);
}
}
if (session.batteryMeter){
if (session.rpcs[UUID].batteryMeter){
target.appendChild(session.rpcs[UUID].batteryMeter);
}
}
if (session.rpcs[UUID].voiceMeter){
target.appendChild(session.rpcs[UUID].voiceMeter);
}
@ -5720,6 +5725,23 @@ function updateMixerRun(e=false){ // this is the main auto-mixing code. It's a
}
}
if (session.batteryMeter){
if (vid.dataset.UUID && !session.rpcs[vid.dataset.UUID].batteryMeter){
session.rpcs[vid.dataset.UUID].batteryMeter = getById("batteryMeterTemplate").cloneNode(true);
session.rpcs[vid.dataset.UUID].batteryMeter.classList.remove("hidden");
session.rpcs[vid.dataset.UUID].batteryMeter.id = "batteryMeter_" + vid.dataset.UUID;
session.rpcs[vid.dataset.UUID].batteryMeter.dataset.level = 0;
session.rpcs[vid.dataset.UUID].batteryMeter.title = miscTranslations["battery-meter"];
holder.appendChild(session.rpcs[vid.dataset.UUID].batteryMeter);
holder.batteryMeter = session.rpcs[vid.dataset.UUID].batteryMeter;
} else if (vid.dataset.UUID && session.rpcs[vid.dataset.UUID].batteryMeter){
if (!holder.batteryMeter){
holder.appendChild(session.rpcs[vid.dataset.UUID].batteryMeter);
holder.batteryMeter = session.rpcs[vid.dataset.UUID].batteryMeter;
}
}
}
if (session.volumeControl && session.rpcs[vid.dataset.UUID].videoElement && (vid.tagName != "VIDEO")){
if (vid.dataset.UUID && !session.rpcs[vid.dataset.UUID].volumeControl){
session.rpcs[vid.dataset.UUID].volumeControl = getById("volumeControlTemplate").cloneNode(true);
@ -16395,6 +16417,9 @@ async function createRoomCallback(passAdd, passAdd2) {
if (session.signalMeter===null){
session.signalMeter = true;
}
if (session.batteryMeter===null){
session.batteryMeter = true;
}
if (session.directorPassword){
getById("coDirectorEnable").checked = true;
@ -17688,11 +17713,14 @@ function createControlBox(UUID, soloLink, streamID, slot_init=false) {
});
}
videoContainer.appendChild(session.rpcs[UUID].signalMeter);
}
if (session.batteryMeter){
////////
if (!session.rpcs[UUID].batteryMeter){
session.rpcs[UUID].batteryMeter = getById("batteryMeterTemplate").cloneNode(true);
session.rpcs[UUID].batteryMeter.id = "batteryMeter_" + UUID;
/*
if (session.rpcs[UUID].stats.info && (session.rpcs[UUID].stats.info.power_level!==null)){
var level = session.rpcs[UUID].batteryMeter.querySelector(".battery-level");
if (level){
@ -17717,6 +17745,8 @@ function createControlBox(UUID, soloLink, streamID, slot_init=false) {
} else {
session.rpcs[UUID].batteryMeter.dataset.plugged = "1";
}
*/
batteryMeterInfoUpdate(UUID);
}
videoContainer.appendChild(session.rpcs[UUID].batteryMeter);
}
@ -32886,7 +32916,7 @@ function batteryMeterInfoUpdate(UUID){
if (value > 100){value = 100;}
if (value < 0){ value = 0;}
level.style.height = parseInt(value)+"%";
if (value<10){
if (value<15){
session.rpcs[UUID].batteryMeter.classList.remove("warn");
session.rpcs[UUID].batteryMeter.classList.add("alert");
} else if (value<25){
@ -32899,7 +32929,8 @@ function batteryMeterInfoUpdate(UUID){
if (value<100){
session.rpcs[UUID].batteryMeter.classList.remove("hidden");
}
session.rpcs[UUID].batteryMeter.title = value+"% battery remaining";
//session.rpcs[UUID].batteryMeter.title = value+"% battery remaining";
session.rpcs[UUID].batteryMeter.title = parseInt(value)+"% battery remaining";
}
}
@ -32908,6 +32939,9 @@ function batteryMeterInfoUpdate(UUID){
session.rpcs[UUID].batteryMeter.classList.remove("hidden");
} else {
session.rpcs[UUID].batteryMeter.dataset.plugged = "1";
// add on
session.rpcs[UUID].batteryMeter.title = parseInt(value)+"% charging";
session.rpcs[UUID].batteryMeter.classList.add("hidden");
}
}
@ -37519,7 +37553,44 @@ function createControlBoxScreenshare(UUID, soloLink, streamID) {
}
videoContainer.appendChild(session.rpcs[UUID].signalMeter);
}
if (session.batteryMeter){
////////
if (!session.rpcs[UUID].batteryMeter){
session.rpcs[UUID].batteryMeter = getById("batteryMeterTemplate").cloneNode(true);
session.rpcs[UUID].batteryMeter.id = "batteryMeter_" + UUID;
/*
if (session.rpcs[UUID].stats.info && (session.rpcs[UUID].stats.info.power_level!==null)){
var level = session.rpcs[UUID].batteryMeter.querySelector(".battery-level");
if (level){
var value = session.rpcs[UUID].stats.info.power_level;
if (value > 100){value = 100;}
else if (value < 0){ value = 0;}
level.style.height = parseInt(value)+"%";
if (value<10){
session.rpcs[UUID].batteryMeter.classList.add("alert");
} else if (value<25){
session.rpcs[UUID].batteryMeter.classList.add("warn");
}
if (value<100){
session.rpcs[UUID].batteryMeter.classList.remove("hidden");
}
session.rpcs[UUID].batteryMeter.title = (Math.round(value*10)/10)+"% battery remaining";
}
}
if (session.rpcs[UUID].stats.info && ("plugged_in" in session.rpcs[UUID].stats.info) && (session.rpcs[UUID].stats.info.plugged_in===false)){
session.rpcs[UUID].batteryMeter.dataset.plugged = "0";
session.rpcs[UUID].batteryMeter.classList.remove("hidden");
} else {
session.rpcs[UUID].batteryMeter.dataset.plugged = "1";
}
*/
batteryMeterInfoUpdate(UUID);
}
videoContainer.appendChild(session.rpcs[UUID].batteryMeter);
}
if (session.showConnections){
if (!session.rpcs[UUID].connectionDetails){
createConnectionDetailsEle(UUID);

View File

@ -933,7 +933,7 @@ hr {
font-size: 1.5em;
z-index: 2;
cursor: help;
display:none;
display:block;
}
.battery-charging{
@ -945,14 +945,27 @@ hr {
display: none;
}
.battery[data-plugged="1"] > .battery-charging {
display:block;
.battery[data-plugged="1"] {
display:none;
}
@keyframes blink-warn {
0% { opacity: 0; }
50% { opacity: 1; }
100% { opacity: 0; }
}
@keyframes blink-alert {
0% { opacity: 0; }
50% { opacity: 1; }
100% { opacity: 0; }
}
.battery.warn {
border: 3px solid #EFAF13;
animation: blink-warn 2s infinite;
}
.battery.alert {
border: 3px solid #e81309;
animation: blink-alert 1s infinite;
}
.battery-level {
background: #30b455;
@ -5445,4 +5458,4 @@ button.toggleSettings,
}
#sharefilebutton{
display:none!important;
}
}

19
main.js
View File

@ -657,11 +657,13 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
}
session.meterStyle = 1;
session.signalMeter = true;
session.batteryMeter = true;
} else if (filename === "director") {
directorLanding = true;
filename = false;
session.meterStyle = 1;
session.signalMeter = true;
session.batteryMeter = true;
}
session.slotmode = false; // temporary; remove in the future TODO: ## -----------------------
@ -685,6 +687,21 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
}
}
if (urlParams.has('batterymeter')) {
session.batteryMeter = urlParams.get('batterymeter');
if (session.batteryMeter === "false") {
session.batteryMeter = false;
} else if (session.batteryMeter=== "0") {
session.batteryMeter = false;
} else if (session.batteryMeter === "no") {
session.batteryMeter = false;
} else if (session.batteryMeter === "off") {
session.batteryMeter = false;
} else {
session.batteryMeter = true;
}
}
if (urlParams.has('rooms')) {
session.rooms = urlParams.get('rooms').split(",").map(function(e) {
return sanitizeRoomName(e);
@ -6236,4 +6253,4 @@ async function main(){ // main asyncronous thread; mostly initializes the user s
};
script.src = "./thirdparty/polyfill.min.js"; // dynamically load this only if its needed. Keeps loading time down.
},100);
}
}