implementation of "start muted"
This commit is contained in:
parent
3fd68fa0fd
commit
0262917aa6
|
@ -1 +1,2 @@
|
||||||
*.bundle.js -text -diff
|
*.bundle.js -text -diff
|
||||||
|
lib-jitsi-meet.js -text -diff
|
||||||
|
|
2
app.js
2
app.js
|
@ -1,4 +1,4 @@
|
||||||
/* global $, JitsiMeetJS, config, interfaceConfig */
|
/* global $, JitsiMeetJS, config */
|
||||||
/* application specific logic */
|
/* application specific logic */
|
||||||
|
|
||||||
import "babel-polyfill";
|
import "babel-polyfill";
|
||||||
|
|
|
@ -15,8 +15,7 @@ const ConnectionErrors = JitsiMeetJS.errors.connection;
|
||||||
const ConferenceEvents = JitsiMeetJS.events.conference;
|
const ConferenceEvents = JitsiMeetJS.events.conference;
|
||||||
const ConferenceErrors = JitsiMeetJS.errors.conference;
|
const ConferenceErrors = JitsiMeetJS.errors.conference;
|
||||||
|
|
||||||
let room, connection, localTracks, localAudio, localVideo;
|
let room, connection, localTracks, localAudio, localVideo, roomLocker;
|
||||||
let roomLocker = createRoomLocker(room);
|
|
||||||
|
|
||||||
const Commands = {
|
const Commands = {
|
||||||
CONNECTION_QUALITY: "stats",
|
CONNECTION_QUALITY: "stats",
|
||||||
|
@ -223,7 +222,13 @@ export default {
|
||||||
return room.isSIPCallingSupported();
|
return room.isSIPCallingSupported();
|
||||||
},
|
},
|
||||||
get membersCount () {
|
get membersCount () {
|
||||||
return room.getParticipants().length; // FIXME maybe +1?
|
return room.getParticipants().length + 1;
|
||||||
|
},
|
||||||
|
get startAudioMuted () {
|
||||||
|
return room && room.isStartAudioMuted();
|
||||||
|
},
|
||||||
|
get startVideoMuted () {
|
||||||
|
return room && room.isStartVideoMuted();
|
||||||
},
|
},
|
||||||
// used by torture currently
|
// used by torture currently
|
||||||
isJoined () {
|
isJoined () {
|
||||||
|
@ -241,6 +246,7 @@ export default {
|
||||||
_createRoom () {
|
_createRoom () {
|
||||||
room = connection.initJitsiConference(APP.conference.roomName,
|
room = connection.initJitsiConference(APP.conference.roomName,
|
||||||
this._getConferenceOptions());
|
this._getConferenceOptions());
|
||||||
|
roomLocker = createRoomLocker(room);
|
||||||
this._room = room; // FIXME do not use this
|
this._room = room; // FIXME do not use this
|
||||||
this.localId = room.myUserId();
|
this.localId = room.myUserId();
|
||||||
|
|
||||||
|
@ -508,7 +514,16 @@ export default {
|
||||||
|
|
||||||
APP.UI.addListener(UIEvents.START_MUTED_CHANGED,
|
APP.UI.addListener(UIEvents.START_MUTED_CHANGED,
|
||||||
(startAudioMuted, startVideoMuted) => {
|
(startAudioMuted, startVideoMuted) => {
|
||||||
// FIXME start muted
|
room.setStartMuted(startAudioMuted, startVideoMuted);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
room.on(
|
||||||
|
ConferenceEvents.START_MUTED,
|
||||||
|
function (startAudioMuted, startVideoMuted, initiallyMuted) {
|
||||||
|
APP.UI.onStartMutedChanged();
|
||||||
|
if (initiallyMuted) {
|
||||||
|
APP.UI.notifyInitiallyMuted();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -781,4 +781,8 @@ UI.stopPrezi = function (userId) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
UI.onStartMutedChanged = function () {
|
||||||
|
SettingsMenu.onStartMutedChanged();
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = UI;
|
module.exports = UI;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
import UIUtil from "../../util/UIUtil";
|
import UIUtil from "../../util/UIUtil";
|
||||||
import UIEvents from "../../../../service/UI/UIEvents";
|
import UIEvents from "../../../../service/UI/UIEvents";
|
||||||
import languages from "../../../../service/translation/languages";
|
import languages from "../../../../service/translation/languages";
|
||||||
|
import Settings from '../../../settings/Settings';
|
||||||
|
|
||||||
function generateLanguagesSelectBox() {
|
function generateLanguagesSelectBox() {
|
||||||
var currentLang = APP.translation.getCurrentLanguage();
|
var currentLang = APP.translation.getCurrentLanguage();
|
||||||
|
@ -21,32 +22,53 @@ function generateLanguagesSelectBox() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const SettingsMenu = {
|
export default {
|
||||||
|
init (emitter) {
|
||||||
|
function update() {
|
||||||
|
let displayName = UIUtil.escapeHtml($('#setDisplayName').val());
|
||||||
|
|
||||||
init: function (emitter) {
|
if (displayName && Settings.getDisplayName() !== displayName) {
|
||||||
this.emitter = emitter;
|
emitter.emit(UIEvents.NICKNAME_CHANGED, displayName);
|
||||||
|
}
|
||||||
|
|
||||||
var startMutedSelector = $("#startMutedOptions");
|
let language = $("#languages_selectbox").val();
|
||||||
startMutedSelector.before(generateLanguagesSelectBox());
|
if (language !== Settings.getLanguage()) {
|
||||||
|
emitter.emit(UIEvents.LANG_CHANGED, language);
|
||||||
|
}
|
||||||
|
|
||||||
|
let email = UIUtil.escapeHtml($('#setEmail').val());
|
||||||
|
if (email !== Settings.getEmail()) {
|
||||||
|
emitter.emit(UIEvents.EMAIL_CHANGED, email);
|
||||||
|
}
|
||||||
|
|
||||||
|
let startAudioMuted = $("#startAudioMuted").is(":checked");
|
||||||
|
let startVideoMuted = $("#startVideoMuted").is(":checked");
|
||||||
|
if (startAudioMuted !== APP.conference.startAudioMuted
|
||||||
|
|| startVideoMuted !== APP.conference.startVideoMuted) {
|
||||||
|
emitter.emit(
|
||||||
|
UIEvents.START_MUTED_CHANGED,
|
||||||
|
startAudioMuted,
|
||||||
|
startVideoMuted
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let startMutedBlock = $("#startMutedOptions");
|
||||||
|
startMutedBlock.before(generateLanguagesSelectBox());
|
||||||
APP.translation.translateElement($("#languages_selectbox"));
|
APP.translation.translateElement($("#languages_selectbox"));
|
||||||
|
|
||||||
|
this.onRoleChanged();
|
||||||
|
this.onStartMutedChanged();
|
||||||
|
|
||||||
|
$("#updateSettings").click(update);
|
||||||
$('#settingsmenu>input').keyup(function(event){
|
$('#settingsmenu>input').keyup(function(event){
|
||||||
if (event.keyCode === 13) {//enter
|
if (event.keyCode === 13) {//enter
|
||||||
SettingsMenu.update();
|
update();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (APP.conference.isModerator) {
|
|
||||||
startMutedSelector.css("display", "block");
|
|
||||||
} else {
|
|
||||||
startMutedSelector.css("display", "none");
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#updateSettings").click(function () {
|
|
||||||
SettingsMenu.update();
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onRoleChanged: function () {
|
onRoleChanged () {
|
||||||
if(APP.conference.isModerator) {
|
if(APP.conference.isModerator) {
|
||||||
$("#startMutedOptions").css("display", "block");
|
$("#startMutedOptions").css("display", "block");
|
||||||
}
|
}
|
||||||
|
@ -55,46 +77,22 @@ const SettingsMenu = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
setStartMuted: function (audio, video) {
|
onStartMutedChanged () {
|
||||||
$("#startAudioMuted").attr("checked", audio);
|
$("#startAudioMuted").attr("checked", APP.conference.startAudioMuted);
|
||||||
$("#startVideoMuted").attr("checked", video);
|
$("#startVideoMuted").attr("checked", APP.conference.startVideoMuted);
|
||||||
},
|
},
|
||||||
|
|
||||||
update: function() {
|
isVisible () {
|
||||||
// FIXME check if this values really changed:
|
|
||||||
// compare them with Settings etc.
|
|
||||||
var newDisplayName =
|
|
||||||
UIUtil.escapeHtml($('#setDisplayName').get(0).value);
|
|
||||||
|
|
||||||
if (newDisplayName) {
|
|
||||||
this.emitter.emit(UIEvents.NICKNAME_CHANGED, newDisplayName);
|
|
||||||
}
|
|
||||||
|
|
||||||
var language = $("#languages_selectbox").val();
|
|
||||||
this.emitter.emit(UIEvents.LANG_CHANGED, language);
|
|
||||||
|
|
||||||
var newEmail = UIUtil.escapeHtml($('#setEmail').get(0).value);
|
|
||||||
this.emitter.emit(UIEvents.EMAIL_CHANGED, newEmail);
|
|
||||||
|
|
||||||
var startAudioMuted = ($("#startAudioMuted").is(":checked"));
|
|
||||||
var startVideoMuted = ($("#startVideoMuted").is(":checked"));
|
|
||||||
this.emitter.emit(
|
|
||||||
UIEvents.START_MUTED_CHANGED, startAudioMuted, startVideoMuted
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
isVisible: function() {
|
|
||||||
return $('#settingsmenu').is(':visible');
|
return $('#settingsmenu').is(':visible');
|
||||||
},
|
},
|
||||||
|
|
||||||
onDisplayNameChange: function(id, newDisplayName) {
|
onDisplayNameChange (id, newDisplayName) {
|
||||||
if(id === 'localVideoContainer' || APP.conference.isLocalId(id)) {
|
if(id === 'localVideoContainer' || APP.conference.isLocalId(id)) {
|
||||||
$('#setDisplayName').get(0).value = newDisplayName;
|
$('#setDisplayName').val(newDisplayName);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
changeAvatar: function (thumbUrl) {
|
|
||||||
$('#avatar').get(0).src = thumbUrl;
|
changeAvatar (thumbUrl) {
|
||||||
|
$('#avatar').attr('src', thumbUrl);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export default SettingsMenu;
|
|
||||||
|
|
|
@ -157,7 +157,9 @@ var VideoLayout = {
|
||||||
let {thumbWidth, thumbHeight} = this.calculateThumbnailSize();
|
let {thumbWidth, thumbHeight} = this.calculateThumbnailSize();
|
||||||
AudioLevels.updateAudioLevelCanvas(null, thumbWidth, thumbHeight);
|
AudioLevels.updateAudioLevelCanvas(null, thumbWidth, thumbHeight);
|
||||||
|
|
||||||
|
if (!stream.isMuted()) {
|
||||||
localVideoThumbnail.changeVideo(stream);
|
localVideoThumbnail.changeVideo(stream);
|
||||||
|
}
|
||||||
|
|
||||||
/* force update if we're currently being displayed */
|
/* force update if we're currently being displayed */
|
||||||
if (this.isCurrentlyOnLarge(localId)) {
|
if (this.isCurrentlyOnLarge(localId)) {
|
||||||
|
|
|
@ -97,7 +97,7 @@ module.exports = {
|
||||||
} else {
|
} else {
|
||||||
type = "video";
|
type = "video";
|
||||||
}
|
}
|
||||||
APP.createLocalTracks(type).then(function (tracks) {
|
APP.conference.createLocalTracks(type).then(function (tracks) {
|
||||||
if (!tracks.length) {
|
if (!tracks.length) {
|
||||||
if (type === 'desktop') {
|
if (type === 'desktop') {
|
||||||
getDesktopStreamFailed();
|
getDesktopStreamFailed();
|
||||||
|
|
|
@ -86,8 +86,6 @@ var XMPPEvents = {
|
||||||
JINGLE_FATAL_ERROR: 'xmpp.jingle_fatal_error',
|
JINGLE_FATAL_ERROR: 'xmpp.jingle_fatal_error',
|
||||||
PROMPT_FOR_LOGIN: 'xmpp.prompt_for_login',
|
PROMPT_FOR_LOGIN: 'xmpp.prompt_for_login',
|
||||||
FOCUS_DISCONNECTED: 'xmpp.focus_disconnected',
|
FOCUS_DISCONNECTED: 'xmpp.focus_disconnected',
|
||||||
ROOM_JOIN_ERROR: 'xmpp.room_join_error',
|
|
||||||
ROOM_CONNECT_ERROR: 'xmpp.room_connect_error',
|
|
||||||
// xmpp is connected and obtained user media
|
// xmpp is connected and obtained user media
|
||||||
READY_TO_JOIN: 'xmpp.ready_to_join'
|
READY_TO_JOIN: 'xmpp.ready_to_join'
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue