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, noiseSuppression : true,
sampleSize : 16 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', background : 'images/background.jpg',
defaultLayout : 'democratic', // democratic, filmstrip defaultLayout : 'democratic', // democratic, filmstrip
// If true, will show media control buttons in separate // If true, will show media control buttons in separate

View File

@ -304,12 +304,18 @@ export default class RoomClient
{ {
case String.fromCharCode(37): case String.fromCharCode(37):
{ {
this._spotlights.setPrevAsSelected(); const newPeerId = this._spotlights.getPrevAsSelected(
store.getState().room.selectedPeerId);
if (newPeerId) this.setSelectedPeer(newPeerId);
break; break;
} }
case String.fromCharCode(39): case String.fromCharCode(39):
{ {
this._spotlights.setNextAsSelected(); const newPeerId = this._spotlights.getNextAsSelected(
store.getState().room.selectedPeerId);
if (newPeerId) this.setSelectedPeer(newPeerId);
break; break;
} }
case 'A': // Activate advanced mode case 'A': // Activate advanced mode
@ -2970,7 +2976,9 @@ export default class RoomClient
if (!this._muted) if (!this._muted)
{ {
await this.enableMic(); await this.enableMic();
if (peers.length > 4) const { autoMuteThreshold } = store.getState().settings;
if (autoMuteThreshold && peers.length > autoMuteThreshold)
this.muteMic(); this.muteMic();
} }
@ -3616,6 +3624,8 @@ export default class RoomClient
this._screenSharingProducer = null; this._screenSharingProducer = null;
this._screenSharing.stop();
store.dispatch(meActions.setScreenShareInProgress(false)); 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) if (peerId == null && this._unmutablePeerList.length > 0)
{
peerId = this._selectedSpotlights[0];
}
else if (this._unmutablePeerList.length > 0)
{ {
peerId = this._unmutablePeerList[0]; peerId = this._unmutablePeerList[0];
} }
@ -66,37 +62,29 @@ export default class Spotlights extends EventEmitter
let index = oldIndex; let index = oldIndex;
index++; index++;
do for (let i = 0; i < this._unmutablePeerList.length; i++)
{ {
if (index >= this._unmutablePeerList.length) if (index >= this._unmutablePeerList.length)
{ {
index = 0; index = 0;
} }
const newSelectedPeer = this._unmutablePeerList[index]; newSelectedPeer = this._unmutablePeerList[index];
if (!this._currentSpotlights.includes(newSelectedPeer)) if (!this._currentSpotlights.includes(newSelectedPeer))
{ {
this.setPeerSpotlight(newSelectedPeer);
break; break;
} }
index++; index++;
if (index === oldIndex)
{
break;
}
} while (true);
} }
} }
setPrevAsSelected() return newSelectedPeer;
{
let peerId = null;
if (this._selectedSpotlights.length > 0)
{
peerId = this._selectedSpotlights[0];
} }
else if (this._unmutablePeerList.length > 0)
getPrevAsSelected(peerId)
{
let newSelectedPeer = null;
if (peerId == null && this._unmutablePeerList.length > 0)
{ {
peerId = this._unmutablePeerList[0]; peerId = this._unmutablePeerList[0];
} }
@ -108,26 +96,22 @@ export default class Spotlights extends EventEmitter
let index = oldIndex; let index = oldIndex;
index--; index--;
do for (let i = 0; i < this._unmutablePeerList.length; i++)
{ {
if (index < 0) if (index < 0)
{ {
index = this._unmutablePeerList.length - 1; index = this._unmutablePeerList.length - 1;
} }
const newSelectedPeer = this._unmutablePeerList[index]; newSelectedPeer = this._unmutablePeerList[index];
if (!this._currentSpotlights.includes(newSelectedPeer)) if (!this._currentSpotlights.includes(newSelectedPeer))
{ {
this.setPeerSpotlight(newSelectedPeer);
break; break;
} }
index--; index--;
if (index === oldIndex)
{
break;
} }
} while (true);
} }
return newSelectedPeer;
} }
setPeerSpotlight(peerId) setPeerSpotlight(peerId)

View File

@ -284,6 +284,25 @@ const Me = (props) =>
defaultMessage : 'Start screen sharing' 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 = const spacingStyle =
{ {
@ -511,7 +530,11 @@ const Me = (props) =>
} }
</Tooltip> </Tooltip>
{ me.browser.platform !== 'mobile' && { me.browser.platform !== 'mobile' &&
<Tooltip title={screenTip} placement='left'> <Tooltip open={screenShareTooltipOpen}
onClose={screenShareTooltipHandleClose}
onOpen={screenShareTooltipHandleOpen}
title={screenTip} placement='left'
>
{ smallContainer ? { smallContainer ?
<div> <div>
<IconButton <IconButton

View File

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