Merge pull request #7 from havfo/develop

Sync with upstream Develop
auto_join_3.3
Saša Davidović 2020-05-15 12:57:58 +02:00 committed by GitHub
commit a4272149f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 83 additions and 55 deletions

View File

@ -52,6 +52,16 @@ var config =
noiseSuppression : true,
sampleSize : 16
},
/**
* Set the auto mute / Push To Talk threshold
* default value is 4
*
* Set it to 0 to disable auto mute functionality,
* but use it with caution
* full mesh audio strongly decrease room capacity!
*/
autoMuteThreshold : 4,
background : 'images/background.jpg',
defaultLayout : 'democratic', // democratic, filmstrip
// If true, will show media control buttons in separate

View File

@ -304,12 +304,18 @@ export default class RoomClient
{
case String.fromCharCode(37):
{
this._spotlights.setPrevAsSelected();
const newPeerId = this._spotlights.getPrevAsSelected(
store.getState().room.selectedPeerId);
if (newPeerId) this.setSelectedPeer(newPeerId);
break;
}
case String.fromCharCode(39):
{
this._spotlights.setNextAsSelected();
const newPeerId = this._spotlights.getNextAsSelected(
store.getState().room.selectedPeerId);
if (newPeerId) this.setSelectedPeer(newPeerId);
break;
}
case 'A': // Activate advanced mode
@ -2970,7 +2976,9 @@ export default class RoomClient
if (!this._muted)
{
await this.enableMic();
if (peers.length > 4)
const { autoMuteThreshold } = store.getState().settings;
if (autoMuteThreshold && peers.length > autoMuteThreshold)
this.muteMic();
}
@ -3616,6 +3624,8 @@ export default class RoomClient
this._screenSharingProducer = null;
this._screenSharing.stop();
store.dispatch(meActions.setScreenShareInProgress(false));
}

View File

@ -46,15 +46,11 @@ export default class Spotlights extends EventEmitter
}
}
setNextAsSelected()
getNextAsSelected(peerId)
{
let peerId = null;
let newSelectedPeer = null;
if (this._selectedSpotlights.length > 0)
{
peerId = this._selectedSpotlights[0];
}
else if (this._unmutablePeerList.length > 0)
if (peerId == null && this._unmutablePeerList.length > 0)
{
peerId = this._unmutablePeerList[0];
}
@ -66,37 +62,29 @@ export default class Spotlights extends EventEmitter
let index = oldIndex;
index++;
do
for (let i = 0; i < this._unmutablePeerList.length; i++)
{
if (index >= this._unmutablePeerList.length)
{
index = 0;
}
const newSelectedPeer = this._unmutablePeerList[index];
newSelectedPeer = this._unmutablePeerList[index];
if (!this._currentSpotlights.includes(newSelectedPeer))
{
this.setPeerSpotlight(newSelectedPeer);
break;
}
index++;
if (index === oldIndex)
{
break;
}
} while (true);
}
}
setPrevAsSelected()
{
let peerId = null;
if (this._selectedSpotlights.length > 0)
{
peerId = this._selectedSpotlights[0];
return newSelectedPeer;
}
else if (this._unmutablePeerList.length > 0)
getPrevAsSelected(peerId)
{
let newSelectedPeer = null;
if (peerId == null && this._unmutablePeerList.length > 0)
{
peerId = this._unmutablePeerList[0];
}
@ -108,26 +96,22 @@ export default class Spotlights extends EventEmitter
let index = oldIndex;
index--;
do
for (let i = 0; i < this._unmutablePeerList.length; i++)
{
if (index < 0)
{
index = this._unmutablePeerList.length - 1;
}
const newSelectedPeer = this._unmutablePeerList[index];
newSelectedPeer = this._unmutablePeerList[index];
if (!this._currentSpotlights.includes(newSelectedPeer))
{
this.setPeerSpotlight(newSelectedPeer);
break;
}
index--;
if (index === oldIndex)
{
break;
}
} while (true);
}
return newSelectedPeer;
}
setPeerSpotlight(peerId)

View File

@ -284,6 +284,25 @@ const Me = (props) =>
defaultMessage : 'Start screen sharing'
});
}
const [
screenShareTooltipOpen,
screenShareTooltipSetOpen
] = React.useState(false);
const screenShareTooltipHandleClose = () =>
{
screenShareTooltipSetOpen(false);
};
const screenShareTooltipHandleOpen = () =>
{
screenShareTooltipSetOpen(true);
};
if (screenState === 'off' && me.screenShareInProgress && screenShareTooltipOpen)
{
screenShareTooltipHandleClose();
}
const spacingStyle =
{
@ -511,7 +530,11 @@ const Me = (props) =>
}
</Tooltip>
{ me.browser.platform !== 'mobile' &&
<Tooltip title={screenTip} placement='left'>
<Tooltip open={screenShareTooltipOpen}
onClose={screenShareTooltipHandleClose}
onOpen={screenShareTooltipHandleOpen}
title={screenTip} placement='left'
>
{ smallContainer ?
<div>
<IconButton

View File

@ -20,6 +20,7 @@ const initialState =
notificationSounds : true,
buttonControlBar : window.config.buttonControlBar || false,
drawerOverlayed : window.config.drawerOverlayed || true,
autoMuteThreshold : window.config.autoMuteThreshold || 4,
...window.config.defaultAudio
};