mirror of
https://github.com/jech/galene.git
synced 2024-11-22 16:45:58 +01:00
Add UI for simulcast control.
This commit is contained in:
parent
795a40ceaf
commit
2f44961589
3 changed files with 42 additions and 4 deletions
|
@ -771,6 +771,12 @@ h1 {
|
||||||
margin-right: 0.4em;
|
margin-right: 0.4em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#simulcastselect {
|
||||||
|
width: 8em;
|
||||||
|
text-align-last: center;
|
||||||
|
margin-right: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
#requestselect {
|
#requestselect {
|
||||||
width: 8em;
|
width: 8em;
|
||||||
text-align-last: center;
|
text-align-last: center;
|
||||||
|
|
|
@ -208,6 +208,15 @@
|
||||||
</select>
|
</select>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<form id="simulcastform">
|
||||||
|
<label for="simulcastselect" class="sidenav-label-first">Simulcast:</label>
|
||||||
|
<select id="simulcastselect" class="select select-inline">
|
||||||
|
<option value="off">off</option>
|
||||||
|
<option value="auto" selected>auto</option>
|
||||||
|
<option value="on">on</option>
|
||||||
|
</select>
|
||||||
|
</form>
|
||||||
|
|
||||||
<form id="requestform">
|
<form id="requestform">
|
||||||
<label for="requestselect" class="sidenav-label">Receive:</label>
|
<label for="requestselect" class="sidenav-label">Receive:</label>
|
||||||
<select id="requestselect" class="select select-inline">
|
<select id="requestselect" class="select select-inline">
|
||||||
|
|
|
@ -78,7 +78,7 @@ function getUserPass() {
|
||||||
* @property {boolean} [localMute]
|
* @property {boolean} [localMute]
|
||||||
* @property {string} [video]
|
* @property {string} [video]
|
||||||
* @property {string} [audio]
|
* @property {string} [audio]
|
||||||
* @property {boolean} [simulcast]
|
* @property {string} [simulcast]
|
||||||
* @property {string} [send]
|
* @property {string} [send]
|
||||||
* @property {string} [request]
|
* @property {string} [request]
|
||||||
* @property {boolean} [activityDetection]
|
* @property {boolean} [activityDetection]
|
||||||
|
@ -229,6 +229,13 @@ function reflectSettings() {
|
||||||
store = true;
|
store = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(settings.hasOwnProperty('simulcast')) {
|
||||||
|
getSelectElement('simulcastselect').value = settings.simulcast
|
||||||
|
} else {
|
||||||
|
settings.simulcast = getSelectElement('simulcastselect').value;
|
||||||
|
store = true;
|
||||||
|
}
|
||||||
|
|
||||||
if(settings.hasOwnProperty('blackboardMode')) {
|
if(settings.hasOwnProperty('blackboardMode')) {
|
||||||
getInputElement('blackboardbox').checked = settings.blackboardMode;
|
getInputElement('blackboardbox').checked = settings.blackboardMode;
|
||||||
} else {
|
} else {
|
||||||
|
@ -538,6 +545,17 @@ getSelectElement('sendselect').onchange = async function(e) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
getSelectElement('simulcastselect').onchange = async function(e) {
|
||||||
|
if(!(this instanceof HTMLSelectElement))
|
||||||
|
throw new Error('Unexpected type for this');
|
||||||
|
updateSettings({simulcast: this.value});
|
||||||
|
let t = getMaxVideoThroughput();
|
||||||
|
for(let id in serverConnection.up) {
|
||||||
|
let c = serverConnection.up[id];
|
||||||
|
await setMaxVideoThroughput(c, t);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} what
|
* @param {string} what
|
||||||
* @returns {Object<string,Array<string>>}
|
* @returns {Object<string,Array<string>>}
|
||||||
|
@ -1042,10 +1060,15 @@ const simulcastRate = 100000;
|
||||||
* @returns {boolean}
|
* @returns {boolean}
|
||||||
*/
|
*/
|
||||||
function doSimulcast() {
|
function doSimulcast() {
|
||||||
if(!getSettings().simulcast)
|
switch(getSettings().simulcast) {
|
||||||
|
case 'on':
|
||||||
|
return true;
|
||||||
|
case 'off':
|
||||||
return false;
|
return false;
|
||||||
|
default:
|
||||||
let bps = getMaxVideoThroughput();
|
let bps = getMaxVideoThroughput();
|
||||||
return bps <= 0 || bps >= 2 * simulcastRate;
|
return bps <= 0 || bps >= 2 * simulcastRate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue